[*] Binary protection state of curl

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function fprintf tear down of curl

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/curl @ 0xfda0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000fda0 ()                                      | void fcn_0000fda0 (int16_t arg_40h, uint32_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     uint32_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int32_t var_28h_2;
                                                                 |     int16_t var_32h;
                                                                 |     int16_t var_33h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_44h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000fda0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0000fda4 mov fp, r1                                        |     
    0x0000fda6 ldr.w sl, [r1, 0x40]                              |     sl = *((r1 + 0x40));
    0x0000fdaa sub sp, 0x4c                                      |     
    0x0000fdac movs r3, 0                                        |     r3 = 0;
    0x0000fdae ldr r1, [pc, 0x3b0]                               |     
    0x0000fdb0 ldr r2, [pc, 0x3b0]                               |     r2 = *(0x10164);
    0x0000fdb2 ldr.w sb, [pc, 0x3b4]                             |     
    0x0000fdb6 add r1, pc                                        |     r1 = 0x1ff1c;
    0x0000fdb8 ldr r2, [r1, r2]                                  |     
    0x0000fdba add sb, pc                                        |     sb = 0x1ff28;
    0x0000fdbc ldr r2, [r2]                                      |     r2 = *(0x1ff1c);
    0x0000fdbe str r2, [sp, 0x44]                                |     var_44h = r2;
    0x0000fdc0 mov.w r2, 0                                       |     r2 = 0;
    0x0000fdc4 strb.w r3, [sp, 0x32]                             |     var_32h = r3;
    0x0000fdc8 str r0, [sp, 0x14]                                |     var_14h = r0;
    0x0000fdca cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000fdcc beq.w 0x10122                                     |         goto label_17;
                                                                 |     }
    0x0000fdd0 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0000fdd2 ldrb r3, [r2]                                     |     r3 = *(r2);
    0x0000fdd4 cmp r3, 0x2d                                      |     
                                                                 |     if (r3 != 0x2d) {
    0x0000fdd6 bne.w 0xff6a                                      |         goto label_18;
                                                                 |     }
    0x0000fdda ldrb r3, [r2, 1]                                  |     r3 = *((r2 + 1));
    0x0000fddc cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000fdde bne.w 0xff6a                                      |         goto label_18;
                                                                 |     }
    0x0000fde2 ldr r3, [pc, 0x388]                               |     
    0x0000fde4 movs r5, 0                                        |     r5 = 0;
    0x0000fde6 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x0000fdea ldr r3, [r3]                                      |     r3 = *(0x1016e);
    0x0000fdec str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0000fdee ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0000fdf0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000fdf2 beq.w 0xff80                                      |         goto label_12;
                                                                 |     }
                                                                 | label_1:
    0x0000fdf6 add r7, sp, 0x34                                  |     r7 += var_34h;
    0x0000fdf8 mov.w r1, 0x19000                                 |     r1 = 0x19000;
    0x0000fdfc mov r0, r7                                        |     r0 = r7;
    0x0000fdfe mov.w r8, 0                                       |     r8 = 0;
    0x0000fe02 bl 0x12684                                        |     fcn_00012684 (r0, r1);
    0x0000fe06 ldr r3, [pc, 0x368]                               |     
    0x0000fe08 strd r5, sb, [sp, 0x28]                           |     __asm ("strd r5, sb, [var_28h]");
    0x0000fe0c add r3, pc                                        |     r3 = 0x1ff82;
    0x0000fe0e str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0000fe10 ldr r3, [pc, 0x360]                               |     
    0x0000fe12 add r3, pc                                        |     r3 = 0x1ff8a;
    0x0000fe14 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0000fe16 add.w r3, sp, 0x33                                |     r3 += var_33h;
    0x0000fe1a str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000fe1c add.w r3, sp, 0x32                                |     r3 += var_32h;
    0x0000fe20 str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 | label_0:
    0x0000fe22 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0000fe24 mov r1, r7                                        |     r1 = r7;
    0x0000fe26 ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
    0x0000fe28 bl 0xfd04                                         |     r0 = fcn_0000fd04 (r0, r1, r2);
    0x0000fe2c mov r6, r0                                        |     r6 = r0;
    0x0000fe2e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000fe30 beq.w 0x100f0                                     |         goto label_19;
                                                                 |     }
    0x0000fe34 mov r0, r7                                        |     r0 = r7;
    0x0000fe36 add.w r8, r8, 1                                   |     r8++;
    0x0000fe3a bl 0x127ac                                        |     r0 = fcn_000127ac (r0);
    0x0000fe3e mov r5, r0                                        |     r5 = r0;
    0x0000fe40 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000fe42 beq.w 0x1011a                                     |         goto label_20;
                                                                 |     }
    0x0000fe46 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x0000fe48 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000fe4a beq.w 0xff62                                      |         goto label_4;
                                                                 |     }
    0x0000fe4e sub.w r2, r3, 9                                   |     r2 = r3 - 9;
    0x0000fe52 cmp r3, 0x20                                      |     
    0x0000fe54 it ne                                             |     
                                                                 |     if (r3 != 0x20) {
    0x0000fe56 cmpne r2, 4                                       |         __asm ("cmpne r2, 4");
                                                                 |     }
                                                                 |     if (r3 < 0x20) {
    0x0000fe58 bls.w 0x1000c                                     |         goto label_21;
                                                                 |     }
    0x0000fe5c sub.w r2, r3, 0x23                                |     r2 = r3 - 0x23;
    0x0000fe60 uxtb r2, r2                                       |     r2 = (int8_t) r2;
    0x0000fe62 cmp r2, 0xc                                       |     
                                                                 |     if (r2 <= 0xc) {
    0x0000fe64 bhi 0xfe72                                        |         
    0x0000fe66 movw r1, 0x1081                                   |         r1 = 0x1081;
    0x0000fe6a lsr.w r2, r1, r2                                  |         r2 = r1 >> r2;
    0x0000fe6e lsls r2, r2, 0x1f                                 |         r2 <<= 0x1f;
                                                                 |         if (r2 < r2) {
    0x0000fe70 bmi 0xff62                                        |             goto label_4;
                                                                 |         }
                                                                 |     }
    0x0000fe72 ldrb r2, [r5]                                     |     r2 = *(r5);
    0x0000fe74 mov r4, r5                                        |     r4 = r5;
                                                                 |     if (r2 != 0) {
    0x0000fe76 cbnz r2, 0xfe8c                                   |         goto label_22;
                                                                 |     }
    0x0000fe78 b 0xff24                                          |     goto label_23;
                                                                 |     do {
    0x0000fe7a cmp r3, 0x2d                                      |         
                                                                 |         if (r3 != 0x2d) {
    0x0000fe7c beq 0xfe86                                        |             
    0x0000fe7e cmp r2, 0x3d                                      |             
    0x0000fe80 it ne                                             |             
                                                                 |             if (r2 != 0x3d) {
    0x0000fe82 cmpne r2, 0x3a                                    |                 __asm ("cmpne r2, 0x3a");
                                                                 |             }
                                                                 |             if (r2 == 0x3d) {
    0x0000fe84 beq 0xfe98                                        |                 goto label_24;
                                                                 |             }
                                                                 |         }
    0x0000fe86 ldrb r2, [r4, 1]!                                 |         r2 = *((r4 += 1));
                                                                 |         if (r2 == 0) {
    0x0000fe8a cbz r2, 0xfe9e                                    |             goto label_25;
                                                                 |         }
                                                                 | label_22:
    0x0000fe8c sub.w r1, r2, 9                                   |         r1 = r2 - 9;
    0x0000fe90 cmp r2, 0x20                                      |         
    0x0000fe92 it ne                                             |         
                                                                 |         if (r2 != 0x20) {
    0x0000fe94 cmpne r1, 4                                       |             __asm ("cmpne r1, 4");
                                                                 |         }
    0x0000fe96 bhi 0xfe7a                                        |         
                                                                 |     } while (r2 > 0x20);
                                                                 | label_24:
    0x0000fe98 movs r2, 0                                        |     r2 = 0;
    0x0000fe9a strb r2, [r4], 1                                  |     *(r4) = r2;
                                                                 |     r4++;
                                                                 | label_25:
    0x0000fe9e ldrb r2, [r4]                                     |     r2 = *(r4);
    0x0000fea0 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000fea2 beq 0xff24                                        |         goto label_23;
                                                                 |     }
                                                                 |     do {
    0x0000fea4 sub.w r1, r2, 9                                   |         r1 = r2 - 9;
    0x0000fea8 cmp r2, 0x20                                      |         
    0x0000feaa it ne                                             |         
                                                                 |         if (r2 != 0x20) {
    0x0000feac cmpne r1, 4                                       |             __asm ("cmpne r1, 4");
                                                                 |         }
                                                                 |         if (r2 >= 0x20) {
    0x0000feae bls 0xfec0                                        |             
    0x0000feb0 cmp r3, 0x2d                                      |             
                                                                 |             if (r3 == 0x2d) {
    0x0000feb2 beq.w 0x10024                                     |                 goto label_26;
                                                                 |             }
    0x0000feb6 cmp r2, 0x3a                                      |             
    0x0000feb8 it ne                                             |             
                                                                 |             if (r2 != 0x3a) {
    0x0000feba cmpne r2, 0x3d                                    |                 __asm ("cmpne r2, 0x3d");
                                                                 |             }
                                                                 |             if (r2 != 0x3a) {
    0x0000febc bne.w 0x10024                                     |                 goto label_26;
                                                                 |             }
                                                                 |         }
    0x0000fec0 ldrb r2, [r4, 1]!                                 |         r2 = *((r4 += 1));
    0x0000fec4 cmp r2, 0                                         |         
    0x0000fec6 bne 0xfea4                                        |         
                                                                 |     } while (r2 != 0);
                                                                 | label_7:
    0x0000fec8 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0000feca mov r1, r4                                        |     r1 = r4;
                                                                 |     if (r3 != 0) {
    0x0000fecc cbnz r3, 0xfeda                                   |         goto label_27;
                                                                 |     }
    0x0000fece b 0xff24                                          |     goto label_23;
                                                                 |     do {
    0x0000fed0 ldrb r3, [r1, 1]!                                 |         r3 = *((r1 += 1));
    0x0000fed4 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000fed6 beq.w 0x10150                                     |             goto label_28;
                                                                 |         }
                                                                 | label_27:
    0x0000feda sub.w r2, r3, 9                                   |         r2 = r3 - 9;
    0x0000fede cmp r3, 0x20                                      |         
    0x0000fee0 it ne                                             |         
                                                                 |         if (r3 != 0x20) {
    0x0000fee2 cmpne r2, 4                                       |             __asm ("cmpne r2, 4");
                                                                 |         }
    0x0000fee4 ite hi                                            |         
                                                                 |         if (r3 <= 0x20) {
    0x0000fee6 movhi r2, 1                                       |             r2 = 1;
                                                                 |         }
                                                                 |         if (r3 > 0x20) {
    0x0000fee8 movls r2, 0                                       |             r2 = 0;
                                                                 |         }
    0x0000feea bhi 0xfed0                                        |         
                                                                 |     } while (r3 > 0x20);
    0x0000feec mov r3, r2                                        |     r3 = r2;
    0x0000feee mov r2, r1                                        |     r2 = r1;
    0x0000fef0 strb r3, [r2], 1                                  |     *(r2) = r3;
                                                                 |     r2++;
    0x0000fef4 ldrb r3, [r1, 1]                                  |     r3 = *((r1 + 1));
                                                                 |     if (r3 != 0) {
    0x0000fef6 cbz r3, 0xff1c                                    |         
                                                                 | label_5:
    0x0000fef8 sub.w r1, r3, 9                                   |         r1 = r3 - 9;
    0x0000fefc cmp r3, 0x20                                      |         
    0x0000fefe it ne                                             |         
                                                                 |         if (r3 != 0x20) {
    0x0000ff00 cmpne r1, 4                                       |             __asm ("cmpne r1, 4");
                                                                 |         }
                                                                 |         if (r3 < 0x20) {
    0x0000ff02 bls.w 0x10018                                     |             goto label_29;
                                                                 |         }
    0x0000ff06 cmp r3, 0x23                                      |         
                                                                 |         if (r3 == 0x23) {
    0x0000ff08 beq 0xff1c                                        |             goto label_6;
                                                                 |         }
    0x0000ff0a ldr r1, [pc, 0x26c]                               |         
    0x0000ff0c mov r3, r8                                        |         r3 = r8;
    0x0000ff0e ldr.w r0, [sl, 0x2b8]                             |         r0 = *((sl + 0x2b8));
    0x0000ff12 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x0000ff14 add r1, pc                                        |         r1 = 0x20092;
    0x0000ff16 str r5, [sp]                                      |         *(sp) = r5;
    0x0000ff18 bl 0xb9d0                                         |         fcn_0000b9d0 (r0);
                                                                 |     }
                                                                 | label_6:
    0x0000ff1c ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0000ff1e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000ff20 bne.w 0x10150                                     |         goto label_28;
                                                                 |     }
                                                                 | label_23:
    0x0000ff24 movs r2, 0                                        |     r2 = 0;
    0x0000ff26 strd fp, sl, [sp]                                 |     __asm ("strd fp, sl, [sp]");
    0x0000ff2a ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0000ff2c mov r1, r2                                        |     r1 = r2;
    0x0000ff2e mov r0, r5                                        |     r0 = r5;
    0x0000ff30 movs r6, 0                                        |     r6 = 0;
    0x0000ff32 bl 0x7ee4                                         |     fcn_00007ee4 (r0, r1, r2, r3, r4);
    0x0000ff36 ldr.w sl, [fp, 0x40]                              |     sl = *(arg_40h);
    0x0000ff3a mov sb, r6                                        |     sb = r6;
                                                                 | label_2:
    0x0000ff3c cmp r0, 0xf                                       |     
                                                                 |     if (r0 == 0xf) {
    0x0000ff3e beq.w 0x100b6                                     |         goto label_30;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0000ff42 cbz r0, 0xff5e                                    |         
    0x0000ff44 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x0000ff46 ldrb r3, [r2]                                     |         r3 = *(r2);
    0x0000ff48 cmp r3, 0x2d                                      |         
                                                                 |         if (r3 == 0x2d) {
    0x0000ff4a bne 0xff58                                        |             
    0x0000ff4c ldrb r3, [r2, 1]                                  |             r3 = *((r2 + 1));
    0x0000ff4e cmp r3, 0                                         |             
    0x0000ff50 ldr r3, [sp, 0x20]                                |             r3 = var_20h;
    0x0000ff52 it ne                                             |             
                                                                 |             if (r3 == 0) {
    0x0000ff54 movne r3, r2                                      |                 r3 = r2;
                                                                 |             }
    0x0000ff56 str r3, [sp, 0x14]                                |             var_14h = r3;
                                                                 |         }
    0x0000ff58 subs r3, r0, 5                                    |         r3 = r0 - 5;
    0x0000ff5a cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x0000ff5c bhi 0xffe8                                        |             goto label_31;
                                                                 |         }
                                                                 |     }
                                                                 | label_3:
    0x0000ff5e cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0000ff60 bne 0x10004                                       |         goto label_32;
                                                                 |     }
                                                                 | label_4:
    0x0000ff62 mov r0, r7                                        |     r0 = r7;
    0x0000ff64 bl 0x126b4                                        |     fcn_000126b4 (r0);
    0x0000ff68 b 0xfe22                                          |     goto label_0;
                                                                 | label_18:
    0x0000ff6a ldr r1, [pc, 0x210]                               |     
    0x0000ff6c movs r5, 0                                        |     r5 = 0;
    0x0000ff6e ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x0000ff70 add r1, pc                                        |     r1 = 0x200f2;
    0x0000ff72 blx 0x4810                                        |     fcn_00004810 ();
    0x0000ff76 str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x0000ff78 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0000ff7a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000ff7c bne.w 0xfdf6                                      |         goto label_1;
                                                                 |     }
                                                                 | label_12:
    0x0000ff80 movs r5, 0                                        |     r5 = 0;
    0x0000ff82 movs r6, 1                                        |     r6 = 1;
                                                                 | label_11:
    0x0000ff84 mov r0, r5                                        |     r0 = r5;
    0x0000ff86 blx 0x42e0                                        |     fcn_000042e0 ();
                                                                 | label_13:
    0x0000ff8a ldr r2, [pc, 0x1f4]                               |     
    0x0000ff8c ldr r3, [pc, 0x1d4]                               |     r3 = *(0x10164);
    0x0000ff8e add r2, pc                                        |     r2 = 0x20114;
    0x0000ff90 ldr r3, [r2, r3]                                  |     r3 = *(0x20114);
    0x0000ff92 ldr r2, [r3]                                      |     r2 = *(0x20114);
    0x0000ff94 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x0000ff96 eors r2, r3                                       |     r2 ^= r3;
    0x0000ff98 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0000ff9c bne.w 0x1015a                                     |         goto label_33;
                                                                 |     }
    0x0000ffa0 mov r0, r6                                        |     r0 = r6;
    0x0000ffa2 add sp, 0x4c                                      |     
    0x0000ffa4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_8:
    0x0000ffa8 movs r3, 0                                        |     r3 = 0;
    0x0000ffaa strb r3, [r2]                                     |     *(r2) = r3;
                                                                 | label_14:
    0x0000ffac strd fp, sl, [sp]                                 |     __asm ("strd fp, sl, [sp]");
    0x0000ffb0 movs r2, 0                                        |     r2 = 0;
    0x0000ffb2 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0000ffb4 mov r1, sb                                        |     r1 = sb;
    0x0000ffb6 mov r0, r5                                        |     r0 = r5;
    0x0000ffb8 bl 0x7ee4                                         |     fcn_00007ee4 (r0, r1, r2, r3, r4);
    0x0000ffbc ldr.w sl, [fp, 0x40]                              |     sl = *(arg_40h);
    0x0000ffc0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000ffc2 bne 0xff3c                                        |         goto label_2;
                                                                 |     }
    0x0000ffc4 ldrb.w r3, [sb]                                   |     r3 = *(sb);
    0x0000ffc8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000ffca beq 0xff5e                                        |         goto label_3;
                                                                 |     }
    0x0000ffcc ldrb.w r3, [sp, 0x32]                             |     r3 = var_32h;
    0x0000ffd0 movs r0, 9                                        |     r0 = 9;
    0x0000ffd2 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000ffd4 bne 0xff5e                                        |         goto label_3;
                                                                 |     }
                                                                 | label_15:
    0x0000ffd6 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0000ffd8 ldrb r3, [r2]                                     |     r3 = *(r2);
    0x0000ffda cmp r3, 0x2d                                      |     
                                                                 |     if (r3 == 0x2d) {
    0x0000ffdc bne 0xffe8                                        |         
    0x0000ffde ldrb r3, [r2, 1]                                  |         r3 = *((r2 + 1));
                                                                 |         if (r3 != 0) {
    0x0000ffe0 cbnz r3, 0xffe8                                   |             goto label_31;
                                                                 |         }
    0x0000ffe2 ldr r3, [pc, 0x1a0]                               |         
    0x0000ffe4 add r3, pc                                        |         r3 = 0x2016e;
    0x0000ffe6 str r3, [sp, 0x14]                                |         var_14h = r3;
                                                                 |     }
                                                                 | label_31:
    0x0000ffe8 bl 0xb4e4                                         |     fcn_0000b4e4 ();
    0x0000ffec ldr.w r3, [sl, 0x2b8]                             |     r3 = *((sl + 0x2b8));
    0x0000fff0 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0000fff2 strd r5, r0, [sp]                                 |     __asm ("strd r5, r0, [sp]");
    0x0000fff6 ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x0000fff8 mov r0, r3                                        |     r0 = r3;
    0x0000fffa mov r3, r8                                        |     r3 = r8;
    0x0000fffc bl 0xb9d0                                         |     fcn_0000b9d0 (r0);
    0x00010000 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00010002 beq 0xff62                                        |         goto label_4;
                                                                 |     }
                                                                 | label_32:
    0x00010004 mov r0, sb                                        |     r0 = sb;
    0x00010006 blx 0x42e0                                        |     fcn_000042e0 ();
    0x00010008 strd lr, r7, [ip, -0x2a8]!                        |     __asm ("strd lr, r7, [ip, -0x2a8]!");
                                                                 | label_21:
    0x0001000c ldrb r3, [r5, 1]!                                 |     r3 = *((r5 += 1));
    0x00010010 cmp r3, 0                                         |     
    0x00010012 invalid                                           |     
    0x00010014 add r7, sp, 0x70                                  |     r7 = sp + 0x70;
    0x00010016 b 0xff62                                          |     goto label_4;
                                                                 | label_29:
    0x00010018 ldrb r3, [r2, 1]!                                 |     r3 = *((r2 += 1));
    0x0001001c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001001e bne.w 0xfef8                                      |         goto label_5;
                                                                 |     }
    0x00010022 b 0xff1c                                          |     goto label_6;
                                                                 | label_26:
    0x00010024 cmp r2, 0x22                                      |     
                                                                 |     if (r2 != 0x22) {
    0x00010026 bne.w 0xfec8                                      |         goto label_7;
                                                                 |     }
    0x00010028 add r7, sp, 0x13c                                 |     r7 = sp + 0x13c;
    0x0001002a adds r1, r4, 1                                    |     r1 = r4 + 1;
    0x0001002c mov r0, r1                                        |     r0 = r1;
    0x0001002e str r1, [sp, 0x1c]                                |     var_1ch = r1;
    0x00010030 blx 0x4740                                        |     lseek64 ();
    0x00010034 adds r0, 1                                        |     r0++;
    0x00010036 blx 0x4734                                        |     r0 = fclose (r0);
    0x0001003a mov sb, r0                                        |     sb = r0;
    0x0001003c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001003e beq 0x1011a                                       |         goto label_20;
                                                                 |     }
    0x00010040 ldrb r3, [r4, 1]                                  |     r3 = *((r4 + 1));
    0x00010042 mov r2, r0                                        |     r2 = r0;
    0x00010044 cmp r3, 0x22                                      |     
    0x00010046 it ne                                             |     
                                                                 |     if (r3 == 0x22) {
    0x00010048 cmpne r3, 0                                       |         __asm ("cmpne r3, 0");
                                                                 |         goto label_34;
                                                                 |     }
                                                                 |     if (r3 == 0x22) {
                                                                 | label_34:
    0x0001004a beq 0xffa8                                        |         goto label_8;
                                                                 |     }
    0x0001004c ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x0001004e b 0x10060                                         |     goto label_35;
                                                                 | label_9:
    0x00010050 strb r3, [r2], 1                                  |     *(r2) = r3;
                                                                 |     r2++;
    0x00010054 adds r1, 1                                        |     r1++;
    0x00010056 ldrb r3, [r1]                                     |     r3 = *(r1);
                                                                 | label_10:
    0x00010058 cmp r3, 0                                         |     
    0x0001005a it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x0001005c cmpne r3, 0x22                                    |         __asm ("cmpne r3, 0x22");
                                                                 |         goto label_36;
                                                                 |     }
                                                                 |     if (r3 == 0) {
                                                                 | label_36:
    0x0001005e beq 0xffa8                                        |         goto label_8;
                                                                 |     }
                                                                 | label_35:
    0x00010060 cmp r3, 0x5c                                      |     
                                                                 |     if (r3 != 0x5c) {
    0x00010062 bne 0x10050                                       |         goto label_9;
                                                                 |     }
    0x00010064 ldrb r0, [r1, 1]                                  |     r0 = *((r1 + 1));
    0x00010066 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00010068 beq 0xffa8                                        |         goto label_8;
                                                                 |     }
    0x0001006a sub.w r3, r0, 0x6e                                |     r3 = r0 - 0x6e;
    0x0001006e uxtb r4, r3                                       |     r4 = (int8_t) r3;
    0x00010070 cmp r4, 8                                         |     
                                                                 |     if (r4 <= 8) {
    0x00010072 bhi 0x10088                                       |         
    0x00010074 cmp r3, 8                                         |         
                                                                 |         if (r3 > 8) {
    0x00010076 bhi 0x10088                                       |             goto label_16;
                                                                 |         }
                                                                 |         /* switch table (9 cases) at 0x1007c */
    0x00010078 tbb [pc, r3]                                      |         __asm ("tbb [0x00010080]");
    0x00010086 movs r0, 0xb                                      |         r0 = 0xb;
                                                                 |     }
                                                                 | label_16:
    0x00010088 strb r0, [r2], 1                                  |     *(r2) = r0;
                                                                 |     r2++;
    0x0001008c adds r1, 2                                        |     r1 += 2;
    0x0001008e ldrb r3, [r1]                                     |     r3 = *(r1);
    0x00010090 b 0x10058                                         |     goto label_10;
    0x00010092 movs r0, 0xd                                      |     r0 = 0xd;
    0x00010094 adds r1, 2                                        |     r1 += 2;
    0x00010096 strb r0, [r2], 1                                  |     *(r2) = r0;
                                                                 |     r2++;
    0x0001009a ldrb r3, [r1]                                     |     r3 = *(r1);
    0x0001009c b 0x10058                                         |     goto label_10;
    0x0001009e movs r0, 9                                        |     r0 = 9;
    0x000100a0 adds r1, 2                                        |     r1 += 2;
    0x000100a2 strb r0, [r2], 1                                  |     *(r2) = r0;
                                                                 |     r2++;
    0x000100a6 ldrb r3, [r1]                                     |     r3 = *(r1);
    0x000100a8 b 0x10058                                         |     goto label_10;
    0x000100aa movs r0, 0xa                                      |     r0 = 0xa;
    0x000100ac adds r1, 2                                        |     r1 += 2;
    0x000100ae strb r0, [r2], 1                                  |     *(r2) = r0;
                                                                 |     r2++;
    0x000100b2 ldrb r3, [r1]                                     |     r3 = *(r1);
    0x000100b4 b 0x10058                                         |     goto label_10;
                                                                 | label_30:
    0x000100b6 ldr.w r3, [sl, 0x108]                             |     r3 = *((sl + 0x108));
    0x000100ba cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000100bc beq.w 0xff5e                                      |         goto label_3;
                                                                 |     }
    0x000100c0 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x000100c2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000100c4 beq.w 0xff5e                                      |         goto label_3;
                                                                 |     }
    0x000100c8 mov.w r0, 0x2f0                                   |     r0 = 0x2f0;
    0x000100cc blx 0x4734                                        |     fclose (r0);
    0x000100d0 str.w r0, [sl, 0x2c0]                             |     __asm ("str.w r0, [sl, 0x2c0]");
    0x000100d4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000100d6 beq 0x10156                                       |         goto label_37;
                                                                 |     }
    0x000100d8 bl 0x5ee0                                         |     fcn_00005ee0 (r0);
    0x000100dc ldr.w r3, [sl, 0x2c0]                             |     r3 = *((sl + 0x2c0));
    0x000100e0 str.w fp, [r3, 0x2b8]                             |     __asm ("str.w fp, [r3, 0x2b8]");
    0x000100e4 str.w r3, [fp, 0x40]                              |     __asm ("str.w r3, [arg_40h]");
    0x000100e8 str.w sl, [r3, 0x2bc]                             |     __asm ("str.w sl, [r3, 0x2bc]");
    0x000100ec mov sl, r3                                        |     sl = r3;
    0x000100ee b 0xff5e                                          |     goto label_3;
                                                                 | label_19:
    0x000100f0 ldrd r5, sb, [sp, 0x28]                           |     __asm ("ldrd r5, sb, [var_28h]");
                                                                 |     do {
    0x000100f4 mov r0, r7                                        |         r0 = r7;
    0x000100f6 bl 0x12698                                        |         fcn_00012698 (r0);
    0x000100fa ldr r3, [pc, 0x70]                                |         
    0x000100fc ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x000100fe ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00010102 ldr r3, [r3]                                      |         r3 = *(0x1016e);
    0x00010104 cmp r3, r2                                        |         
                                                                 |         if (r3 != r2) {
    0x00010106 beq 0x1010e                                       |             
    0x00010108 mov r0, r2                                        |             r0 = r2;
    0x0001010a blx 0x4758                                        |             curl_mvfprintf ()
                                                                 |         }
    0x0001010e ldrb.w r3, [sp, 0x33]                             |         r3 = var_33h;
    0x00010112 cmp r3, 0                                         |         
    0x00010114 it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x00010116 movne r6, 1                                       |             r6 = 1;
                                                                 |         }
    0x00010118 b 0xff84                                          |         goto label_11;
                                                                 | label_20:
    0x0001011a ldrd r5, sb, [sp, 0x28]                           |         __asm ("ldrd r5, sb, [var_28h]");
    0x0001011e movs r6, 1                                        |         r6 = 1;
    0x00010120 b 0x100f4                                         |         
                                                                 |     } while (1);
                                                                 | label_17:
    0x00010122 ldr r0, [pc, 0x64]                                |     
    0x00010124 movs r1, 1                                        |     r1 = 1;
    0x00010126 add r0, pc                                        |     r0 = 0x202b4;
    0x00010128 bl 0x6620                                         |     fcn_00006620 (r0, r1);
    0x0001012c str r0, [sp, 0x14]                                |     var_14h = r0;
    0x0001012e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00010130 beq.w 0xff80                                      |         goto label_12;
                                                                 |     }
    0x00010134 ldr r1, [pc, 0x54]                                |     
    0x00010136 add r1, pc                                        |     r1 = 0x202c6;
    0x00010138 blx 0x4810                                        |     fcn_00004810 ();
    0x0001013c ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x0001013e str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x00010140 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00010142 bne.w 0xfdf6                                      |         goto label_1;
                                                                 |     }
    0x00010146 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00010148 movs r6, 1                                        |     r6 = 1;
    0x0001014a blx 0x42e0                                        |     fcn_000042e0 ();
    0x0001014e b 0xff8a                                          |     goto label_13;
                                                                 | label_28:
    0x00010150 mov sb, r4                                        |     sb = r4;
    0x00010152 movs r6, 0                                        |     r6 = 0;
    0x00010154 b 0xffac                                          |     goto label_14;
                                                                 | label_37:
    0x00010156 movs r0, 0xe                                      |     r0 = 0xe;
    0x00010158 b 0xffd6                                          |     goto label_15;
                                                                 | label_33:
    0x0001015a blx 0x45e4                                        |     isatty (r0);
    0x0001015e nop                                               |     
    0x00010160 svc 0x5a                                          |     __asm ("svc 0x5a");
    0x00010162 movs r0, r0                                       |     
    0x00010164 lsls r0, r1, 9                                    |     r0 = r1 << 9;
    0x00010166 movs r0, r0                                       |     
    0x00010168 svc 0x56                                          |     __asm ("svc 0x56");
    0x0001016a movs r0, r0                                       |     
    0x0001016c lsls r0, r6, 8                                    |     r0 = r6 << 8;
    0x0001016e movs r0, r0                                       |     
    0x00010170 adr r2, 0x280                                     |     r2 = 0x280;
    0x00010172 movs r0, r0                                       |     
    0x00010174 subs r7, 0xa2                                     |     r7 -= 0xa2;
    0x00010176 movs r0, r0                                       |     
    0x00010178 adr r1, 0x100                                     |     r1 = 0x100;
    0x0001017a movs r0, r0                                       |     
    0x0001017c bics r0, r0                                       |     __asm ("bics r0, r0");
    0x0001017e movs r0, r0                                       |     
                                                                 |     if (r0 <= r0) {
    0x00010180 ble 0x10088                                       |         goto label_16;
                                                                 |     }
    0x00010182 movs r0, r0                                       |     
    0x00010184 subs r5, 0xd0                                     |     r5 -= 0xd0;
    0x00010186 movs r0, r0                                       |     
    0x00010188 str r6, [r6, 0x20]                                |     *((r6 + 0x20)) = r6;
    0x0001018a movs r0, r0                                       |     
    0x0001018c sbcs r2, r7                                       |     __asm ("sbcs r2, r7");
    0x0001018e movs r0, r0                                       |     
                                                                 | }

[*] Function fprintf used 2 times curl