[*] Binary protection state of dbus-launch

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


[*] Function printf tear down of dbus-launch

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/dbus-launch @ 0x19cc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000019cc ()                  | void fcn_000019cc (int16_t arg_0h, int16_t arg_80000000h, int16_t arg_8h, int16_t arg_ch, int16_t arg_18h, void * errnum, int16_t arg_28h, char * s2, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, int16_t arg_54h, char * * endptr, int16_t arg_60h, int16_t arg_64h, int16_t arg_68h, int16_t arg_70h, int16_t arg_78h, int16_t arg_80h, int16_t arg_84h, int16_t arg_104h, int16_t arg_180h, int16_t arg_200h, void * s1, int16_t arg_284h, int16_t arg_28ch, void * buf) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     do {
    0x00000cd6 cmp.w fp, 0x2d                |         
                                             |         if (fp != 0x2d) {
    0x00000cda bne.w 0xe5a                   |             goto label_25;
                                             |         }
    0x00000cde ldrb r1, [r4, 1]              |         r1 = *((r4 + 1));
    0x00000ce0 cmp r1, 0x63                  |         
                                             |         if (r1 != 0x63) {
    0x00000ce2 bne.w 0xe5a                   |             goto label_25;
                                             |         }
    0x00000ce6 ldrb r1, [r4, 2]              |         r1 = *((r4 + 2));
    0x00000ce8 cmp r1, 0                     |         
                                             |         if (r1 != 0) {
    0x00000cea bne.w 0xe5a                   |             goto label_25;
                                             |         }
                                             | label_1:
    0x00000cee movs r3, 1                    |         r3 = 1;
    0x00000cf0 str r3, [sp, 0x28]            |         *(arg_28h) = r3;
                                             | label_2:
    0x00000cf2 adds r5, 1                    |         r5++;
    0x00000cf4 cmp r7, r5                    |         
                                             |         if (r7 == r5) {
    0x00000cf6 beq 0xd4e                     |             goto label_26;
                                             |         }
                                             | label_0:
    0x00000cf8 mov sl, r4                    |         sl = r4;
    0x00000cfa ldr r4, [r6, 4]!              |         r4 = *((r6 += 4));
    0x00000cfe mov r1, r8                    |         r1 = r8;
    0x00000d00 mov r0, r4                    |         r0 = r4;
    0x00000d02 blx 0xa44                     |         r0 = strcmp (r0, r1);
    0x00000d06 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00000d08 beq.w 0x13be                  |             goto label_27;
                                             |         }
    0x00000d0c ldrb.w fp, [r4]               |         fp = *(r4);
    0x00000d10 cmp.w fp, 0x2d                |         
                                             |         if (fp == 0x2d) {
    0x00000d14 bne 0xd38                     |             
    0x00000d16 ldrb r1, [r4, 1]              |             r1 = *((r4 + 1));
    0x00000d18 cmp r1, 0x68                  |             
                                             |             if (r1 == 0x68) {
    0x00000d1a bne 0xd24                     |                 
    0x00000d1c ldrb r1, [r4, 2]              |                 r1 = *((r4 + 2));
    0x00000d1e cmp r1, 0                     |                 
                                             |                 if (r1 == 0) {
    0x00000d20 beq.w 0x13be                  |                     goto label_27;
                                             |                 }
                                             |             }
    0x00000d24 cmp.w fp, 0x2d                |             
                                             |             if (fp != 0x2d) {
    0x00000d28 bne 0xd38                     |                 goto label_28;
                                             |             }
    0x00000d2a ldrb r1, [r4, 1]              |             r1 = *((r4 + 1));
    0x00000d2c cmp r1, 0x3f                  |             
                                             |             if (r1 != 0x3f) {
    0x00000d2e bne 0xd38                     |                 goto label_28;
                                             |             }
    0x00000d30 ldrb r1, [r4, 2]              |             r1 = *((r4 + 2));
    0x00000d32 cmp r1, 0                     |             
                                             |             if (r1 == 0) {
    0x00000d34 beq.w 0x13be                  |                 goto label_27;
                                             |             }
    0x00000d36 strh r3, [r0, 0x1a]           |             *((r0 + 0x1a)) = r3;
                                             |         }
                                             | label_28:
    0x00000d38 mov r1, sb                    |         r1 = sb;
    0x00000d3a mov r0, r4                    |         r0 = r4;
    0x00000d3c blx 0xa44                     |         r0 = strcmp (r0, r1);
    0x00000d40 cmp r0, 0                     |         
    0x00000d42 bne 0xcd6                     |         
                                             |     } while (r0 != 0);
    0x00000d44 adds r5, 1                    |     r5++;
    0x00000d46 movs r3, 1                    |     r3 = 1;
    0x00000d48 cmp r7, r5                    |     
    0x00000d4a str r3, [sp, 0x24]            |     *(errnum) = r3;
                                             |     if (r7 != r5) {
    0x00000d4c bne 0xcf8                     |         goto label_0;
                                             |     }
                                             | label_26:
    0x00000d4e movs r3, 0                    |     r3 = 0;
    0x00000d50 mov fp, r3                    |     
    0x00000d52 str r3, [sp, 0x2c]            |     *(s2) = r3;
                                             | label_16:
    0x00000d54 ldr r3, [sp, 0x40]            |     r3 = *(arg_40h);
    0x00000d56 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00000d58 bne.w 0x1764                  |         goto label_29;
                                             |     }
    0x00000d5c ldr r3, [sp, 0x24]            |     r3 = *(errnum);
    0x00000d5e cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00000d60 bne.w 0x1046                  |         goto label_30;
                                             |     }
                                             | label_3:
    0x00000d64 ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x00000d66 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00000d68 bne.w 0x17ec                  |         goto label_31;
                                             |     }
    0x00000d6a strh r0, [r0, 0x2a]           |     *((r0 + 0x2a)) = r0;
    0x00000d6c ldr r3, [sp, 0x48]            |     r3 = *(arg_48h);
    0x00000d6e cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00000d70 bne.w 0x179c                  |         goto label_32;
                                             |     }
    0x00000d74 add.w r8, sp, 0x68            |     r8 += arg_68h;
    0x00000d78 mov r0, r8                    |     r0 = r8;
    0x00000d7a blx 0xbf4                     |     r0 = pipe ();
    0x00000d7e cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00000d80 blt.w 0x170e                  |         goto label_33;
                                             |     }
    0x00000d84 add r6, sp, 0x78              |     r6 += arg_78h;
    0x00000d86 mov r0, r6                    |     r0 = r6;
    0x00000d88 blx 0xbf4                     |     r0 = pipe ();
    0x00000d8c cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00000d8e blt.w 0x170e                  |         goto label_33;
                                             |     }
    0x00000d92 add.w sb, sp, 0x70            |     sb += arg_70h;
    0x00000d96 mov r0, sb                    |     r0 = sb;
    0x00000d98 blx 0xbf4                     |     r0 = pipe ();
    0x00000d9c cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00000d9e blt.w 0x170e                  |         goto label_33;
                                             |     }
    0x00000da0 strh r6, [r6, 0x24]           |     *((r6 + 0x24)) = r6;
    0x00000da2 blx 0xc0c                     |     r0 = fork ();
    0x00000da6 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 < r0) {
    0x00000da8 blt.w 0x16f4                  |         goto label_34;
                                             |     }
                                             |     if (r4 != r0) {
    0x00000dac bne.w 0x1082                  |         goto label_35;
                                             |     }
    0x00000db0 ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x00000db2 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00000db4 bne.w 0x125e                  |         goto label_36;
                                             |     }
                                             | label_5:
    0x00000db8 blx 0xc0c                     |     r0 = fork ();
    0x00000dbc subs r5, r0, 0                |     r5 = r0 - 0;
                                             |     if (r5 < r0) {
    0x00000dbe blt.w 0x1728                  |         goto label_37;
                                             |     }
    0x00000dc2 ldr.w r0, [r8]                |     r0 = *(r8);
                                             |     if (r5 == r0) {
    0x00000dc6 beq.w 0xf30                   |         goto label_38;
                                             |     }
    0x00000dca blx 0xc54                     |     close (r0);
    0x00000dce ldr.w r0, [r8, 4]             |     r0 = *((r8 + 4));
    0x00000dd2 blx 0xc54                     |     close (r0);
    0x00000dd6 ldr r0, [r6]                  |     r0 = *(r6);
    0x00000dd8 blx 0xc54                     |     close (r0);
    0x00000ddc ldr r0, [r6, 4]               |     r0 = *((r6 + 4));
    0x00000dde blx 0xc54                     |     close (r0);
    0x00000de2 ldr.w r0, [sb, 4]             |     r0 = *((sb + 4));
    0x00000de6 blx 0xc54                     |     close (r0);
    0x00000dea ldr.w r0, [pc, 0xa78]         |     
    0x00000dee ldr.w r6, [sb]                |     r6 = *(sb);
    0x00000df2 add r0, pc                    |     r0 = 0x265c;
    0x00000df4 blx 0xae0                     |     r0 = chdir ();
    0x00000df8 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00000dfa blt.w 0x12a8                  |         goto label_39;
                                             |     }
    0x00000dfe ldr.w r0, [pc, 0xa68]         |     
    0x00000e02 add r4, sp, 0x64              |     r4 += arg_64h;
    0x00000e04 ldr r3, [sp, 0x54]            |     r3 = *(arg_54h);
    0x00000e06 add r0, pc                    |     r0 = 0x2674;
    0x00000e08 rsb.w r7, r3, 3               |     r7 = 3 - r3;
    0x00000e0c blx 0xb1c                     |     getenv (r0);
    0x00000e10 str r0, [r4]                  |     *(r4) = r0;
                                             |     if (r0 != 0) {
    0x00000e12 cbz r0, 0xe18                 |         
    0x00000e14 ldrb r3, [r0]                 |         r3 = *(r0);
                                             |         if (r3 != 0) {
    0x00000e16 cbnz r3, 0xe1c                |             goto label_40;
                                             |         }
                                             |     }
    0x00000e18 orr r7, r7, 4                 |     r7 |= 4;
                                             | label_40:
    0x00000e1c mov r0, r7                    |     r0 = r7;
    0x00000e1e mov r1, r4                    |     r1 = r4;
    0x00000e20 blx 0xb88                     |     r0 = dbus_ensure_standard_fds ();
    0x00000e24 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00000e26 bne.w 0x12f4                  |         goto label_41;
                                             |     }
    0x00000e2a ldr.w r2, [pc, 0xa40]         |     r2 = *(0x186e);
    0x00000e2e ldr r3, [sp, 0x34]            |     r3 = *(arg_34h);
    0x00000e30 ldr r6, [r4]                  |     r6 = *(r4);
    0x00000e32 ldr r3, [r3, r2]              |     r3 = *((r3 + r2));
    0x00000e34 ldr r5, [r3]                  |     r5 = *(r3);
    0x00000e36 blx 0xb94                     |     r0 = errno_location ();
    0x00000e3a ldr r0, [r0]                  |     r0 = *(r0);
    0x00000e3c blx 0xb40                     |     strerror (r0);
    0x00000e40 ldr.w r2, [pc, 0xa2c]         |     
    0x00000e44 mov r4, r0                    |     r4 = r0;
    0x00000e46 add r2, pc                    |     r2 = 0x26ba;
                                             | label_4:
    0x00000e48 mov r3, r6                    |     r3 = r6;
    0x00000e4a movs r1, 1                    |     r1 = 1;
    0x00000e4c mov r0, r5                    |     r0 = r5;
    0x00000e4e str r4, [sp]                  |     *(sp) = r4;
    0x00000e50 blx 0xbdc                     |     fprintf_chk ()
    0x00000e54 movs r0, 1                    |     r0 = 1;
    0x00000e56 blx 0xb64                     |     exit (r0);
                                             | label_25:
    0x00000e5a ldr r1, [sp, 0x2c]            |     r1 = *(s2);
    0x00000e5c mov r0, r4                    |     r0 = r4;
    0x00000e5e blx 0xa44                     |     r0 = strcmp (r0, r1);
    0x00000e62 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00000e64 beq.w 0xcee                   |         goto label_1;
                                             |     }
    0x00000e66 add r7, sp, 0x10c             |     r7 = sp + 0x10c;
    0x00000e68 cmp.w fp, 0x2d                |     
                                             |     if (fp != 0x2d) {
    0x00000e6c bne 0xe7e                     |         goto label_42;
                                             |     }
    0x00000e6e ldrb r2, [r4, 1]              |     r2 = *((r4 + 1));
    0x00000e70 cmp r2, 0x73                  |     
                                             |     if (r2 != 0x73) {
    0x00000e72 bne 0xe7e                     |         goto label_42;
                                             |     }
    0x00000e74 ldrb r2, [r4, 2]              |     r2 = *((r4 + 2));
    0x00000e76 cbnz r2, 0xe7e                |     
                                             |     while (r0 == 0) {
    0x00000e78 movs r3, 1                    |         r3 = 1;
    0x00000e7a str r3, [sp, 0x30]            |         *(arg_30h) = r3;
    0x00000e7c b 0xcf2                       |         goto label_2;
                                             | label_42:
    0x00000e7e ldr.w r1, [pc, 0x9f4]         |         
    0x00000e82 mov r0, r4                    |         r0 = r4;
    0x00000e84 add r1, pc                    |         r1 = 0x26fe;
    0x00000e86 blx 0xa44                     |         r0 = strcmp (r0, r1);
    0x00000e8a cmp r0, 0                     |         
    0x00000e8c beq 0xe78                     |         
                                             |     }
    0x00000e8e ldr.w r1, [pc, 0x9e8]         |     
    0x00000e92 mov r0, r4                    |     r0 = r4;
    0x00000e94 add r1, pc                    |     r1 = 0x2712;
    0x00000e96 blx 0xa44                     |     r0 = strcmp (r0, r1);
                                             |     if (r0 != 0) {
    0x00000e9a cbz r0, 0xec2                 |         
    0x00000e9c ldr.w r1, [pc, 0x9dc]         |         
    0x00000ea0 mov r0, r4                    |         r0 = r4;
    0x00000ea2 add r1, pc                    |         r1 = 0x2722;
    0x00000ea4 blx 0xa44                     |         r0 = strcmp (r0, r1);
    0x00000ea8 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00000eaa beq.w 0x174c                  |             goto label_43;
                                             |         }
    0x00000eae ldr.w r1, [pc, 0x9d0]         |         
    0x00000eb2 mov r0, r4                    |         r0 = r4;
    0x00000eb4 add r1, pc                    |         r1 = 0x273a;
    0x00000eb6 blx 0xa44                     |         r0 = strcmp (r0, r1);
                                             |         if (r0 != 0) {
    0x00000eba cbnz r0, 0xec8                |             goto label_44;
                                             |         }
    0x00000ebc movs r3, 1                    |         r3 = 1;
    0x00000ebe str r3, [sp, 0x54]            |         *(arg_54h) = r3;
    0x00000ec0 b 0xcf2                       |         goto label_2;
                                             |     }
    0x00000ec2 movs r3, 1                    |     r3 = 1;
    0x00000ec4 str r3, [sp, 0x50]            |     *(arg_50h) = r3;
    0x00000ec6 b 0xcf2                       |     goto label_2;
                                             | label_44:
    0x00000ec8 ldr.w r1, [pc, 0x9b8]         |     
    0x00000ecc mov r0, r4                    |     r0 = r4;
    0x00000ece add r1, pc                    |     r1 = 0x2756;
    0x00000ed0 blx 0xa44                     |     r0 = strcmp (r0, r1);
    0x00000ed4 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00000ed6 beq.w 0x1294                  |         goto label_45;
                                             |     }
    0x00000eda ldr.w r1, [pc, 0x9ac]         |     
    0x00000ede mov r0, r4                    |     r0 = r4;
    0x00000ee0 add r1, pc                    |     r1 = 0x276e;
    0x00000ee2 blx 0xa44                     |     r0 = strcmp (r0, r1);
    0x00000ee6 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00000ee8 beq.w 0x1352                  |         goto label_46;
                                             |     }
    0x00000eec ldr.w r1, [pc, 0x99c]         |     
    0x00000ef0 movs r2, 0xd                  |     r2 = 0xd;
    0x00000ef2 mov r0, r4                    |     r0 = r4;
    0x00000ef4 add r1, pc                    |     r1 = 0x2784;
    0x00000ef6 blx 0xc3c                     |     r0 = strncmp (r0, r1, r2);
    0x00000efa cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00000efc beq.w 0x1472                  |         goto label_47;
                                             |     }
    0x00000f00 cmp.w sl, 0                   |     
                                             |     if (sl == 0) {
    0x00000f04 beq.w 0x136a                  |         goto label_48;
                                             |     }
    0x00000f08 ldr.w r1, [pc, 0x984]         |     
    0x00000f0c mov r0, sl                    |     r0 = sl;
    0x00000f0e add r1, pc                    |     r1 = 0x27a2;
    0x00000f10 blx 0xa44                     |     r0 = strcmp (r0, r1);
    0x00000f14 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00000f16 bne.w 0x136a                  |         goto label_48;
                                             |     }
    0x00000f1a ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x00000f1c cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00000f1e bne.w 0x17da                  |         goto label_49;
                                             |     }
    0x00000f22 mov r0, r4                    |     r0 = r4;
    0x00000f24 str r3, [sp, 0x40]            |     *(arg_40h) = r3;
    0x00000f26 bl 0x1b9c                     |     fcn_00001b9c (r0);
    0x00000f2a movs r3, 1                    |     r3 = 1;
    0x00000f2c str r3, [sp, 0x3c]            |     *(arg_3ch) = r3;
    0x00000f2e b 0xcf2                       |     goto label_2;
                                             | label_38:
    0x00000f30 blx 0xc54                     |     close (r0);
    0x00000f34 ldr r0, [r6]                  |     r0 = *(r6);
    0x00000f36 add r4, sp, 0x28c             |     r4 += arg_28ch;
    0x00000f38 blx 0xc54                     |     close (r0);
    0x00000f3c ldr.w r0, [sb]                |     r0 = *(sb);
    0x00000f40 blx 0xc54                     |     close (r0);
    0x00000f44 ldr.w r5, [pc, 0x94c]         |     
    0x00000f48 ldr.w r0, [sb, 4]             |     r0 = *((sb + 4));
    0x00000f4c blx 0xc54                     |     close (r0);
    0x00000f50 ldr.w r3, [r8, 4]             |     r3 = *((r8 + 4));
    0x00000f54 add r5, pc                    |     r5 = 0x27ec;
    0x00000f56 movs r2, 0x40                 |     r2 = 0x40;
    0x00000f58 movs r1, 1                    |     r1 = 1;
    0x00000f5a mov r0, r4                    |     r0 = r4;
    0x00000f5c str r3, [sp]                  |     *(sp) = r3;
    0x00000f5e mov r3, r5                    |     r3 = r5;
    0x00000f60 blx 0xba0                     |     sprintf_chk ()
    0x00000f64 ldr r3, [r6, 4]               |     r3 = *((r6 + 4));
    0x00000f66 movs r2, 0x40                 |     r2 = 0x40;
    0x00000f68 movs r1, 1                    |     r1 = 1;
    0x00000f6a str r3, [sp]                  |     *(sp) = r3;
    0x00000f6c mov r3, r5                    |     r3 = r5;
    0x00000f6e add r5, sp, 0x2cc             |     r5 += buf;
    0x00000f70 mov r0, r5                    |     r0 = r5;
    0x00000f72 blx 0xba0                     |     sprintf_chk ()
    0x00000f76 ldr r3, [sp, 0x4c]            |     r3 = *(arg_4ch);
    0x00000f78 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00000f7a bne.w 0x129a                  |         goto label_50;
                                             |     }
    0x00000f7e ldr.w r8, [pc, 0x918]         |     
    0x00000f82 add r8, pc                    |     r8 = 0x2820;
                                             | label_6:
    0x00000f84 ldr r3, [sp, 0x44]            |     r3 = *(arg_44h);
    0x00000f86 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00000f88 beq.w 0x134a                  |         goto label_51;
                                             |     }
    0x00000f8c ldr.w sl, [pc, 0x90c]         |     
    0x00000f90 add sl, pc                    |     sl = 0x2830;
                                             | label_9:
    0x00000f92 ldr.w r1, [pc, 0x90c]         |     
    0x00000f96 mov.w fp, 0                   |     
    0x00000f9a ldr.w r7, [pc, 0x908]         |     
    0x00000f9c ldrb r0, [r1, 4]              |     r0 = *((r1 + 4));
    0x00000f9e ldr.w sb, [pc, 0x908]         |     
    0x00000fa2 ldr.w r2, [pc, 0x908]         |     
    0x00000fa6 add r1, pc                    |     r1 = 0x284c;
    0x00000fa8 ldr r3, [sp, 0x44]            |     r3 = *(arg_44h);
    0x00000faa add r7, pc                    |     r7 = 0x2854;
    0x00000fac add sb, pc                    |     sb = 0x285a;
    0x00000fae mov r0, r1                    |     r0 = r1;
    0x00000fb0 add r2, pc                    |     r2 = 0x2862;
    0x00000fb2 str r4, [sp, 4]               |     var_4h = r4;
    0x00000fb4 strd sl, r3, [sp, 0x10]       |     __asm ("strd sl, r3, [sp, 0x10]");
    0x00000fb8 mov r3, r7                    |     r3 = r7;
    0x00000fba str r2, [sp, 0x28]            |     *(arg_28h) = r2;
    0x00000fbc str r2, [sp]                  |     *(sp) = r2;
    0x00000fbe mov r2, r8                    |     r2 = r8;
    0x00000fc0 str r5, [sp, 0xc]             |     *(arg_ch) = r5;
    0x00000fc2 str.w sb, [sp, 8]             |     __asm ("str.w sb, [arg_8h]");
    0x00000fc6 str.w fp, [sp, 0x18]          |     __asm ("str.w fp, [arg_18h]");
    0x00000fca str r1, [sp, 0x30]            |     *(arg_30h) = r1;
    0x00000fcc blx 0xc24                     |     execl ();
    0x00000fd0 ldr.w r3, [pc, 0x898]         |     r3 = *(0x186c);
    0x00000fd4 ldr r0, [sp, 0x34]            |     r0 = *(arg_34h);
    0x00000fd6 ldr r0, [r0, r3]              |     r0 = *((r0 + r3));
    0x00000fd8 str r0, [sp, 0x24]            |     *(errnum) = r0;
    0x00000fda blx 0xb94                     |     r0 = errno_location ();
    0x00000fde mov r6, r0                    |     r6 = r0;
    0x00000fe0 ldr r0, [sp, 0x24]            |     r0 = *(errnum);
    0x00000fe2 ldr r2, [r0]                  |     r2 = *(r0);
    0x00000fe4 ldr r0, [r6]                  |     r0 = *(r6);
    0x00000fe6 str r2, [sp, 0x2c]            |     *(s2) = r2;
    0x00000fe8 blx 0xb40                     |     strerror (r0);
    0x00000fec ldr r2, [sp, 0x2c]            |     r2 = *(s2);
    0x00000fee ldr r1, [sp, 0x30]            |     r1 = *(arg_30h);
    0x00000ff0 str r0, [sp]                  |     *(sp) = r0;
    0x00000ff2 mov r0, r2                    |     r0 = r2;
    0x00000ff4 ldr.w r2, [pc, 0x8b8]         |     
    0x00000ff8 mov r3, r1                    |     r3 = r1;
    0x00000ffa movs r1, 1                    |     r1 = 1;
    0x00000ffc add r2, pc                    |     r2 = 0x28b0;
    0x00000ffe blx 0xbdc                     |     fprintf_chk ()
    0x00001002 ldr r1, [sp, 0x28]            |     r1 = *(arg_28h);
    0x00001004 mov r2, r8                    |     r2 = r8;
    0x00001006 ldr r3, [sp, 0x44]            |     r3 = *(arg_44h);
    0x00001008 str r4, [sp, 4]               |     var_4h = r4;
    0x0000100a str r1, [sp]                  |     *(sp) = r1;
    0x0000100c ldr.w r1, [pc, 0x8a4]         |     
    0x00001010 strd sl, r3, [sp, 0x10]       |     __asm ("strd sl, r3, [sp, 0x10]");
    0x00001014 mov r3, r7                    |     r3 = r7;
    0x00001016 str.w fp, [sp, 0x18]          |     __asm ("str.w fp, [arg_18h]");
    0x0000101a add r1, pc                    |     r1 = 0x28d2;
    0x0000101c strd sb, r5, [sp, 8]          |     __asm ("strd sb, r5, [sp, 8]");
    0x00001020 mov r0, r1                    |     r0 = r1;
    0x00001022 blx 0xaa4                     |     execlp ();
    0x00001026 ldr r0, [sp, 0x24]            |     r0 = *(errnum);
    0x00001028 ldr r4, [r0]                  |     r4 = *(r0);
    0x0000102a ldr r0, [r6]                  |     r0 = *(r6);
    0x0000102c blx 0xb40                     |     strerror (r0);
    0x00001030 ldr.w r2, [pc, 0x884]         |     
    0x00001034 mov r3, r0                    |     r3 = r0;
    0x00001036 add r2, pc                    |     r2 = 0x28f2;
                                             | label_7:
    0x00001038 movs r1, 1                    |     r1 = 1;
    0x0000103a mov r0, r4                    |     r0 = r4;
    0x0000103c blx 0xbdc                     |     fprintf_chk ()
    0x00001040 movs r0, 1                    |     r0 = 1;
    0x00001042 blx 0xb64                     |     exit (r0);
                                             | label_30:
    0x00001046 ldr.w r0, [pc, 0x874]         |     
    0x0000104a add r0, pc                    |     r0 = 0x290c;
    0x0000104c blx 0xb1c                     |     r0 = getenv (r0);
    0x00001050 mov r4, r0                    |     r4 = r0;
    0x00001052 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001054 beq.w 0x12a2                  |         goto label_52;
                                             |     }
    0x00001058 blx 0xb70                     |     strlen (r0);
    0x0000105c ldr.w r1, [pc, 0x860]         |     
    0x00001060 subs r0, 3                    |     r0 -= 3;
    0x00001062 movs r2, 3                    |     r2 = 3;
    0x00001064 add r0, r4                    |     r0 += r4;
    0x00001066 add r1, pc                    |     r1 = 0x292a;
    0x00001068 blx 0xc3c                     |     strncmp (r0, r1, r2);
    0x0000106c ldr r2, [sp, 0x24]            |     r2 = *(errnum);
    0x0000106e cmp r0, 0                     |     
    0x00001070 ldr r3, [sp, 0x30]            |     r3 = *(arg_30h);
    0x00001072 it ne                         |     
                                             |     if (r0 == 0) {
    0x00001074 movne r3, r2                  |         r3 = r2;
                                             |     }
    0x00001076 str r3, [sp, 0x30]            |     *(arg_30h) = r3;
    0x00001078 ldr r3, [sp, 0x28]            |     r3 = *(arg_28h);
    0x0000107a it eq                         |     
                                             |     if (r0 != 0) {
    0x0000107c moveq r3, r2                  |         r3 = r2;
                                             |     }
    0x0000107e str r3, [sp, 0x28]            |     *(arg_28h) = r3;
    0x00001080 b 0xd64                       |     goto label_3;
                                             | label_35:
    0x00001082 ldr.w r0, [r8, 4]             |     r0 = *((r8 + 4));
    0x00001086 blx 0xc54                     |     close (r0);
    0x0000108a ldr r0, [r6, 4]               |     r0 = *((r6 + 4));
    0x0000108c blx 0xc54                     |     close (r0);
    0x00001090 ldr.w r0, [sb]                |     r0 = *(sb);
    0x00001094 blx 0xc54                     |     close (r0);
    0x00001098 mov r0, r4                    |     r0 = r4;
    0x0000109a bl 0x1aa0                     |     r0 = fcn_00001aa0 (r0);
    0x0000109e cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000010a0 blt.w 0x1782                  |         goto label_53;
                                             |     }
    0x000010a4 add r5, sp, 0x2cc             |     r5 += buf;
    0x000010a6 ldr r0, [r6]                  |     r0 = *(r6);
    0x000010a8 mov.w r2, 0x200               |     r2 = 0x200;
    0x000010ac mov r1, r5                    |     r1 = r5;
    0x000010ae bl 0x1ac4                     |     r0 = fcn_00001ac4 (r0, r1, r2);
    0x000010b2 cmp r0, 1                     |     
    0x000010b4 mov r4, r0                    |     r4 = r0;
                                             |     if (r0 == 1) {
    0x000010b6 beq.w 0x17f6                  |         goto label_54;
                                             |     }
    0x000010ba cmp r0, 2                     |     
                                             |     if (r0 == 2) {
    0x000010bc beq.w 0x181c                  |         goto label_55;
                                             |     }
    0x000010c0 ldr r0, [r6]                  |     r0 = *(r6);
    0x000010c2 add r4, sp, 0x28c             |     r4 += arg_28ch;
    0x000010c4 blx 0xc54                     |     close (r0);
    0x000010c8 ldr.w r0, [r8]                |     r0 = *(r8);
    0x000010cc movs r2, 0x40                 |     r2 = 0x40;
    0x000010ce mov r1, r4                    |     r1 = r4;
    0x000010d0 bl 0x1ac4                     |     r0 = fcn_00001ac4 (r0, r1, r2);
    0x000010d4 cmp r0, 1                     |     
    0x000010d6 mov r6, r0                    |     r6 = r0;
                                             |     if (r0 == 1) {
    0x000010d8 beq.w 0x1826                  |         goto label_56;
                                             |     }
    0x000010dc cmp r0, 2                     |     
                                             |     if (r0 == 2) {
    0x000010de beq.w 0x1742                  |         goto label_57;
                                             |     }
    0x000010e2 add.w sl, sp, 0x5c            |     sl += endptr;
    0x000010e6 movs r2, 0                    |     r2 = 0;
    0x000010e8 mov r1, sl                    |     r1 = sl;
    0x000010ea mov r0, r4                    |     r0 = r4;
    0x000010ec str.w r2, [sl]                |     __asm ("str.w r2, [sl]");
    0x000010f0 blx 0xa5c                     |     strtol (r0, r1, r2);
    0x000010f2 ldc p8, c15, [r4], 0x368      |     __asm ("ldc p8, c15, [r4], 0x368");
    0x000010f6 adds r0, 0                    |     r0 += 0;
    0x000010f8 mov r6, r0                    |     r6 = r0;
    0x000010fa cmp r3, r4                    |     
                                             |     if (r3 == r4) {
    0x000010fc beq.w 0x12c6                  |         goto label_58;
                                             |     }
    0x00001100 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00001102 beq.w 0x12c6                  |         goto label_58;
                                             |     }
    0x00001106 ldr.w r3, [pc, 0x7bc]         |     r3 = *(0x000018c4);
    0x0000110a add r4, sp, 0x64              |     r4 += arg_64h;
    0x0000110c ldr.w r0, [r8]                |     r0 = *(r8);
    0x00001110 add r3, pc                    |     r3 += pc;
    0x00001112 str r6, [r3]                  |     *(r3) = r6;
    0x00001114 blx 0xc54                     |     close (r0);
    0x00001116 ldc p8, c15, [lr, 0x364]      |     __asm ("ldc p8, c15, [lr, 0x364]");
    0x0000111a movs r4, r0                   |     r4 = r0;
    0x0000111c movs r2, 4                    |     r2 = 4;
    0x0000111e mov r1, r4                    |     r1 = r4;
    0x00001120 str r6, [r4]                  |     *(r4) = r6;
    0x00001122 bl 0x1b20                     |     fcn_00001b20 (r0, r1, r2);
    0x00001126 ldr.w r0, [sb, 4]             |     r0 = *((sb + 4));
    0x0000112a blx 0xc54                     |     close (r0);
    0x0000112e ldr r3, [sp, 0x2c]            |     r3 = *(s2);
    0x00001130 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00001132 beq.w 0x13dc                  |         goto label_59;
                                             |     }
    0x00001136 mov r2, fp                    |     r2 = fp;
    0x00001138 mov r0, r5                    |     r0 = r5;
    0x0000113a subs r7, r7, r2               |     r7 -= r2;
    0x0000113c blx 0xb70                     |     strlen (r0);
    0x00001140 adds r0, 0x1a                 |     r0 += 0x1a;
    0x00001142 blx 0xb34                     |     malloc (r0);
    0x00001146 str r0, [sp, 0x24]            |     *(errnum) = r0;
    0x00001148 mov r4, r0                    |     r4 = r0;
    0x0000114a adds r0, r7, 2                |     r0 = r7 + 2;
    0x0000114c lsls r0, r0, 2                |     r0 <<= 2;
    0x0000114e blx 0xb34                     |     r0 = malloc (r0);
    0x00001152 mov r8, r0                    |     r8 = r0;
    0x00001154 cmp r4, 0                     |     
                                             |     if (r4 == 0) {
    0x00001156 beq.w 0x14ac                  |         goto label_22;
                                             |     }
    0x0000115a cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000115c beq.w 0x17b0                  |         goto label_60;
                                             |     }
    0x00001160 ldr r0, [sp, 0x2c]            |     r0 = *(s2);
    0x00001162 bl 0x1bf8                     |     fcn_00001bf8 (r0);
    0x00001166 str.w r0, [r8]                |     __asm ("str.w r0, [r8]");
    0x0000116a cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000116c beq.w 0x14a6                  |         goto label_21;
                                             |     }
    0x00001170 cmp r7, 0                     |     
                                             |     if (r7 <= 0) {
    0x00001172 ble.w 0x16d6                  |         goto label_61;
                                             |     }
    0x00001176 ldr r3, [sp, 0x38]            |     r3 = *(arg_38h);
    0x00001178 add.w r4, fp, -0x80000000     |     r4 = fp + -0x80000000;
    0x0000117c subs r4, 1                    |     r4--;
    0x0000117e mov sl, r8                    |     sl = r8;
    0x00001180 movs r6, 1                    |     r6 = 1;
    0x00001182 mov fp, r5                    |     
    0x00001184 add.w r4, r3, r4, lsl 2       |     r4 = r3 + (r4 << 2);
                                             |     do {
    0x00001188 ldr r5, [r4, 4]!              |         r5 = *((r4 += 4));
    0x0000118c mov r0, r5                    |         r0 = r5;
    0x0000118e blx 0xb70                     |         r0 = strlen (r0);
    0x00001192 add.w sb, r0, 1               |         sb = r0 + 1;
    0x00001196 mov r0, sb                    |         r0 = sb;
    0x00001198 blx 0xb34                     |         malloc (r0);
    0x0000119c str r0, [sl, 4]!              |         *((sl += 4)) = r0;
    0x000011a0 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x000011a2 beq.w 0x1494                  |             goto label_62;
                                             |         }
    0x000011a6 mov r2, sb                    |         r2 = sb;
    0x000011a8 mov r1, r5                    |         r1 = r5;
    0x000011aa adds r6, 1                    |         r6++;
    0x000011ac blx 0xbb8                     |         strncpy (r0, r1, r2);
    0x000011ae stc p2, c4, [r4, -0x2dc]      |         __asm ("stc p2, c4, [r4, -0x2dc]");
    0x000011b2 bge 0x1188                    |         
                                             |     } while (r6 >= 1);
    0x000011b4 mov r5, fp                    |     r5 = fp;
                                             | label_20:
    0x000011b6 ldr.w r7, [pc, 0x710]         |     
    0x000011ba movs r3, 0                    |     r3 = 0;
    0x000011bc ldr.w ip, [sp, 0x24]          |     ip = *(errnum);
    0x000011c0 str.w r3, [r8, r6, lsl 2]     |     __asm ("str.w r3, [r8, r6, lsl 2]");
    0x000011c4 add r7, pc                    |     r7 = 0x2a92;
    0x000011c6 ldm r7!, {r0, r1, r2, r3}     |     r0 = *(r7!);
                                             |     r1 = *((r7! + 4));
                                             |     r2 = *((r7! + 8));
                                             |     r3 = *((r7! + 12));
    0x000011c8 mov r4, ip                    |     r4 = ip;
    0x000011ca stm r4!, {r0, r1, r2, r3}     |     *(r4!) = r0;
                                             |     *((r4! + 4)) = r1;
                                             |     *((r4! + 8)) = r2;
                                             |     *((r4! + 12)) = r3;
    0x000011cc ldm.w r7, {r0, r1, r2}        |     r0 = *(r7);
                                             |     r1 = *((r7 + 4));
                                             |     r2 = *((r7 + 8));
    0x000011d0 stm r4!, {r0, r1}             |     *(r4!) = r0;
                                             |     *((r4! + 4)) = r1;
    0x000011d2 add.w r0, ip, 0x19            |     r0 = ip + 0x19;
    0x000011d6 strb r2, [r4]                 |     *(r4) = r2;
    0x000011d8 mov r1, r5                    |     r1 = r5;
    0x000011da mov r4, ip                    |     r4 = ip;
    0x000011dc blx 0xb10                     |     strcpy (r0, r1);
    0x000011e0 mov r0, r4                    |     r0 = r4;
    0x000011e2 blx 0xc18                     |     putenv ();
    0x000011e6 ldr r6, [sp, 0x2c]            |     r6 = *(s2);
    0x000011e8 mov r1, r8                    |     r1 = r8;
    0x000011ea mov r0, r6                    |     r0 = r6;
    0x000011ec blx 0xa98                     |     execvp ();
    0x000011f0 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x000011f2 ldr.w r3, [pc, 0x678]         |     r3 = *(0x186e);
    0x000011f6 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000011f8 ldr r5, [r3]                  |     r5 = *(0x186e);
    0x000011fa blx 0xb94                     |     r0 = errno_location ();
    0x000011fe ldr r0, [r0]                  |     r0 = *(r0);
    0x00001200 blx 0xb40                     |     strerror (r0);
    0x00001204 ldr.w r2, [pc, 0x6c4]         |     
    0x00001208 mov r4, r0                    |     r4 = r0;
    0x0000120a add r2, pc                    |     r2 = 0x2ada;
    0x0000120c b 0xe48                       |     goto label_4;
                                             | label_36:
    0x0000125e ldr.w r3, [pc, 0x60c]         |     r3 = *(0x186e);
    0x00001262 add r4, sp, 0x64              |     r4 += arg_64h;
    0x00001264 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x00001266 ldr r5, [r2, r3]              |     r5 = *((r2 + r3));
    0x00001268 ldr r0, [r5]                  |     r0 = *(r5);
    0x0000126a blx 0xa74                     |     fflush (r0);
    0x0000126e mov r1, r4                    |     r1 = r4;
    0x00001270 movs r0, 4                    |     r0 = 4;
    0x00001272 blx 0xb88                     |     r0 = dbus_ensure_standard_fds ();
    0x00001276 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00001278 bne.w 0xdb8                   |         goto label_5;
                                             |     }
    0x0000127c blx 0xb94                     |     r0 = errno_location ();
    0x00001280 ldr r0, [r0]                  |     r0 = *(r0);
    0x00001282 ldr r5, [r5]                  |     r5 = *(r5);
    0x00001284 ldr r6, [sp, 0x64]            |     r6 = *(arg_64h);
    0x00001286 blx 0xb40                     |     strerror (r0);
    0x0000128a ldr.w r2, [pc, 0x64c]         |     
    0x0000128e mov r4, r0                    |     r4 = r0;
    0x00001290 add r2, pc                    |     r2 = 0x2b6e;
    0x00001292 b 0xe48                       |     goto label_4;
                                             | label_45:
    0x00001294 movs r3, 1                    |     r3 = 1;
    0x00001296 str r3, [sp, 0x48]            |     *(arg_48h) = r3;
    0x00001298 b 0xcf2                       |     goto label_2;
                                             | label_50:
    0x0000129a ldr.w r8, [pc, 0x640]         |     
    0x0000129e add r8, pc                    |     r8 = 0x2b80;
    0x000012a0 b 0xf84                       |     goto label_6;
                                             | label_52:
    0x000012a2 ldr r3, [sp, 0x24]            |     r3 = *(errnum);
    0x000012a4 str r3, [sp, 0x30]            |     *(arg_30h) = r3;
    0x000012a6 b 0xd64                       |     goto label_3;
                                             | label_39:
    0x000012a8 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x000012aa ldr.w r3, [pc, 0x5c0]         |     r3 = *(0x186e);
    0x000012ae ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000012b0 ldr r4, [r3]                  |     r4 = *(0x186e);
    0x000012b2 blx 0xb94                     |     r0 = errno_location ();
    0x000012b6 ldr r0, [r0]                  |     r0 = *(r0);
    0x000012b8 blx 0xb40                     |     strerror (r0);
    0x000012bc ldr.w r2, [pc, 0x620]         |     
    0x000012c0 mov r3, r0                    |     r3 = r0;
    0x000012c2 add r2, pc                    |     r2 = 0x2ba6;
    0x000012c4 b 0x1038                      |     goto label_7;
                                             | label_58:
    0x000012c6 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x000012c8 ldr.w r3, [pc, 0x5a0]         |     r3 = *(0x186c);
    0x000012cc ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000012ce ldr r6, [r3]                  |     r6 = *(0x186c);
    0x000012d0 blx 0xb94                     |     r0 = errno_location ();
    0x000012d4 ldr r0, [r0]                  |     r0 = *(r0);
    0x000012d6 blx 0xb40                     |     strerror (r0);
    0x000012da ldr.w r2, [pc, 0x608]         |     
    0x000012de mov r5, r0                    |     r5 = r0;
    0x000012e0 mov r3, r4                    |     r3 = r4;
    0x000012e2 movs r1, 1                    |     r1 = 1;
    0x000012e4 mov r0, r6                    |     r0 = r6;
    0x000012e6 str r5, [sp]                  |     *(sp) = r5;
    0x000012e8 add r2, pc                    |     r2 = 0x2bd2;
    0x000012ea blx 0xbdc                     |     fprintf_chk ()
    0x000012ee movs r0, 1                    |     r0 = 1;
    0x000012f0 blx 0xb64                     |     r0 = exit (r0);
                                             | label_41:
    0x000012f4 blx 0xc0c                     |     r0 = fork ();
    0x000012f8 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000012fa blt.w 0x1454                  |         goto label_63;
                                             |     }
                                             |     if (r0 != 0) {
    0x000012fe bne 0x1358                    |         goto label_64;
                                             |     }
    0x00001300 ldr.w r7, [pc, 0x5e4]         |     r7 = *(0x000018e8);
    0x00001304 movs r5, 4                    |     r5 = 4;
    0x00001306 mov r4, r0                    |     r4 = r0;
    0x00001308 mov r2, r5                    |     r2 = r5;
    0x0000130a add r7, pc                    |     r7 += pc;
    0x0000130c b 0x131c                      |     
                                             |     while (r0 >= 0) {
                                             |         if (r5 == 4) {
    0x0000130e beq.w 0x15e6                  |             goto label_65;
                                             |         }
    0x00001312 add r4, r0                    |         r4 += r0;
                                             | label_8:
    0x00001314 rsbs.w r2, r4, 4              |         r2 = 4 - r4;
                                             |         if (r5 == 4) {
    0x00001318 beq.w 0x14f2                  |             goto label_66;
                                             |         }
    0x0000131c adds r1, r7, r4               |         r1 = r7 + r4;
    0x0000131e mov r0, r6                    |         r0 = r6;
    0x00001320 blx 0xa68                     |         r0 = read (r0, r1, r2);
    0x00001324 cmp r0, 0                     |         
    0x00001326 bge 0x130e                    |         
                                             |     }
    0x00001328 blx 0xb94                     |     r0 = errno_location ();
    0x0000132c ldr r0, [r0]                  |     r0 = *(r0);
    0x0000132e cmp r0, 4                     |     
                                             |     if (r0 == 4) {
    0x00001330 beq 0x1314                    |         goto label_8;
                                             |     }
    0x00001332 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x00001334 ldr.w r3, [pc, 0x534]         |     r3 = *(0x186c);
    0x00001338 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0000133a ldr r4, [r3]                  |     r4 = *(0x186c);
    0x0000133c blx 0xb40                     |     strerror (r0);
    0x00001340 ldr.w r2, [pc, 0x5a8]         |     
    0x00001344 mov r3, r0                    |     r3 = r0;
    0x00001346 add r2, pc                    |     r2 = 0x2c36;
    0x00001348 b 0x1038                      |     goto label_7;
                                             | label_51:
    0x0000134a ldr.w sl, [pc, 0x5a4]         |     
    0x0000134e add sl, pc                    |     sl = 0x2c44;
    0x00001350 b 0xf92                       |     goto label_9;
                                             | label_46:
    0x00001352 movs r3, 1                    |     r3 = 1;
    0x00001354 str r3, [sp, 0x4c]            |     *(arg_4ch) = r3;
    0x00001356 b 0xcf2                       |     goto label_2;
                                             | label_64:
    0x00001358 mov r0, r5                    |     r0 = r5;
    0x0000135a bl 0x1aa0                     |     r0 = fcn_00001aa0 (r0);
    0x0000135e cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00001360 blt.w 0x14d4                  |         goto label_67;
                                             |     }
    0x00001362 strh r0, [r7, 4]              |     *((r7 + 4)) = r0;
                                             |     do {
                                             | label_10:
    0x00001364 movs r0, 0                    |         r0 = 0;
    0x00001366 blx 0xb64                     |         exit (r0);
                                             | label_48:
    0x0000136a ldr.w r1, [pc, 0x588]         |         
    0x0000136e mov r0, r4                    |         r0 = r4;
    0x00001370 add r1, pc                    |         r1 = 0x2c6a;
    0x00001372 blx 0xa44                     |         r0 = strcmp (r0, r1);
    0x00001376 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00001378 beq.w 0x148e                  |             goto label_15;
                                             |         }
    0x0000137c ldr.w r1, [pc, 0x578]         |         
    0x00001380 movs r2, 0xe                  |         r2 = 0xe;
    0x00001382 mov r0, r4                    |         r0 = r4;
    0x00001384 add r1, pc                    |         r1 = 0x2c80;
    0x00001386 blx 0xc3c                     |         r0 = strncmp (r0, r1, r2);
    0x0000138a cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x0000138c beq.w 0x16da                  |             goto label_68;
                                             |         }
    0x00001390 cmp.w sl, 0                   |         
                                             |         if (sl == 0) {
    0x00001394 beq.w 0x1668                  |             goto label_69;
                                             |         }
    0x00001396 strh r0, [r5, 0xa]            |         *((r5 + 0xa)) = r0;
    0x00001398 ldr.w r1, [pc, 0x560]         |         
    0x0000139c mov r0, sl                    |         r0 = sl;
    0x0000139e add r1, pc                    |         r1 = 0x2c9e;
    0x000013a0 blx 0xa44                     |         r0 = strcmp (r0, r1);
    0x000013a2 adcs.w r8, r0, r0, lsl 8      |         __asm ("adcs.w r8, r0, r0, lsl 8");
                                             |         if (sl != 0) {
    0x000013a6 bne.w 0x1668                  |             goto label_69;
                                             |         }
    0x000013aa ldr r3, [sp, 0x44]            |         r3 = *(arg_44h);
    0x000013ac cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x000013ae bne.w 0x17a6                  |             goto label_70;
                                             |         }
    0x000013b2 str r0, [sp, 0x40]            |         *(arg_40h) = r0;
    0x000013b4 mov r0, r4                    |         r0 = r4;
    0x000013b6 bl 0x1bf8                     |         fcn_00001bf8 (r0);
    0x000013ba str r0, [sp, 0x44]            |         *(arg_44h) = r0;
    0x000013bc b 0xcf2                       |         goto label_2;
                                             | label_27:
    0x000013be ldr r4, [sp, 0x34]            |         r4 = *(arg_34h);
    0x000013c0 movs r2, 0xdd                 |         r2 = 0xdd;
    0x000013c2 ldr.w r3, [pc, 0x4a8]         |         
    0x000013c6 movs r1, 1                    |         r1 = 1;
    0x000013c8 ldr.w r0, [pc, 0x534]         |         
    0x000013ca lsls r4, r6, 0x14             |         r4 = r6 << 0x14;
    0x000013cc ldr r3, [r4, r3]              |         r3 = *((r4 + r3));
    0x000013ce add r0, pc                    |         r0 = 0x2cd2;
    0x000013d0 ldr r3, [r3]                  |         r3 = *(0x186e);
    0x000013d2 blx 0xaf8                     |         fwrite (r0, r1, r2, r3);
    0x000013d6 movs r0, 0                    |         r0 = 0;
    0x000013d8 blx 0xb64                     |         exit (r0);
                                             | label_59:
    0x000013dc ldr r3, [sp, 0x2c]            |         r3 = *(s2);
    0x000013de add r7, sp, 0x60              |         r7 += arg_60h;
    0x000013e0 str r6, [r7]                  |         *(r7) = r6;
    0x000013e2 str r3, [r4]                  |         *(r4) = r3;
    0x000013e4 ldr r3, [sp, 0x50]            |         r3 = *(arg_50h);
    0x000013e6 cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x000013e8 bne.w 0x163c                  |             goto label_71;
                                             |         }
    0x000013ec ldr r3, [sp, 0x28]            |         r3 = *(arg_28h);
    0x000013ee cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x000013f0 bne.w 0x1616                  |             goto label_72;
                                             |         }
    0x000013f4 ldr r3, [sp, 0x30]            |         r3 = *(arg_30h);
    0x000013f6 cmp r3, 0                     |         
                                             |         if (r3 == 0) {
    0x000013f8 beq.w 0x15f0                  |             goto label_73;
                                             |         }
    0x000013fc ldr.w r1, [pc, 0x504]         |         
    0x00001400 mov r2, r5                    |         r2 = r5;
    0x00001402 movs r0, 1                    |         r0 = 1;
    0x00001404 add r1, pc                    |         r1 = 0x2d0c;
    0x00001406 blx 0xbc4                     |         printf_chk ()
    0x0000140a ldr.w r0, [pc, 0x4fc]         |         
    0x0000140e add r0, pc                    |         r0 = 0x2d1c;
    0x00001410 blx 0xb28                     |         puts (r0);
    0x00001414 ldr r2, [r7]                  |         r2 = *(r7);
    0x00001416 cmp r2, 0                     |         
                                             |         if (r2 != 0) {
    0x00001418 bne.w 0x16ca                  |             goto label_74;
                                             |         }
                                             | label_19:
    0x0000141c ldr r2, [r4]                  |         r2 = *(r4);
    0x0000141e cmp r2, 0                     |         
                                             |         if (r2 != 0) {
    0x00001420 bne.w 0x16be                  |             goto label_75;
                                             |         }
                                             | label_13:
    0x00001424 ldr.w r3, [pc, 0x4e4]         |         r3 = *(0x190c);
    0x00001428 ldr r2, [sp, 0x34]            |         r2 = *(arg_34h);
    0x0000142a ldr r4, [r2, r3]              |         r4 = *((r2 + r3));
    0x0000142c ldr r0, [r4]                  |         r0 = *(r4);
    0x0000142e blx 0xa74                     |         fflush (r0);
                                             | label_14:
    0x00001432 ldr r0, [r4]                  |         r0 = *(r4);
    0x00001434 blx 0xa74                     |         fflush (r0);
    0x00001438 ldr r2, [sp, 0x34]            |         r2 = *(arg_34h);
    0x0000143a ldr.w r3, [pc, 0x430]         |         r3 = *(0x186e);
    0x0000143e ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x00001440 ldr r0, [r3]                  |         r0 = *(0x186e);
    0x00001442 blx 0xa74                     |         fflush (r0);
    0x00001446 movs r0, 1                    |         r0 = 1;
    0x00001448 blx 0xc54                     |         close (r0);
    0x0000144c movs r0, 2                    |         r0 = 2;
    0x0000144e blx 0xc54                     |         close (r0);
    0x00001452 b 0x1364                      |         
                                             |     } while (1);
                                             | label_63:
    0x00001454 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x00001456 ldr.w r3, [pc, 0x414]         |     r3 = *(0x186e);
    0x0000145a ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0000145c ldr r4, [r3]                  |     r4 = *(0x186e);
    0x0000145e blx 0xb94                     |     r0 = errno_location ();
    0x00001462 ldr r0, [r0]                  |     r0 = *(r0);
    0x00001464 blx 0xb40                     |     strerror (r0);
    0x00001468 ldr.w r2, [pc, 0x4a4]         |     
    0x0000146c mov r3, r0                    |     r3 = r0;
    0x0000146e add r2, pc                    |     r2 = 0x2d82;
    0x00001470 b 0x1038                      |     goto label_7;
                                             | label_47:
    0x00001472 ldr r3, [sp, 0x3c]            |     r3 = *(arg_3ch);
    0x00001474 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x00001476 bne.w 0x17da                  |         goto label_49;
                                             |     }
    0x0000147a movs r1, 0x3d                 |     r1 = 0x3d;
    0x0000147c mov r0, r4                    |     r0 = r4;
    0x0000147e blx 0xb7c                     |     strchr (r0, r1);
    0x00001482 adds r0, 1                    |     r0++;
    0x00001484 bl 0x1b9c                     |     fcn_00001b9c (r0);
    0x00001488 movs r3, 1                    |     r3 = 1;
    0x0000148a str r3, [sp, 0x3c]            |     *(arg_3ch) = r3;
    0x0000148c b 0xcf2                       |     goto label_2;
                                             | label_15:
    0x0000148e movs r3, 1                    |     r3 = 1;
    0x00001490 str r3, [sp, 0x40]            |     *(arg_40h) = r3;
    0x00001492 b 0xcf2                       |     goto label_2;
                                             | label_62:
    0x00001494 add.w r6, r8, r6, lsl 2       |     r6 = r8 + (r6 << 2);
    0x00001498 b 0x14a0                      |     
                                             |     while (r8 != r6) {
    0x0000149a ldr r0, [r6]                  |         r0 = *(r6);
    0x0000149c blx 0xa80                     |         free (r0);
    0x000014a0 subs r6, 4                    |         r6 -= 4;
    0x000014a2 cmp r8, r6                    |         
    0x000014a4 bne 0x149a                    |         
                                             |     }
                                             | label_21:
    0x000014a6 ldr r0, [sp, 0x24]            |     r0 = *(errnum);
    0x000014a8 blx 0xa80                     |     free (r0);
                                             | label_22:
    0x000014ac cmp.w r8, 0                   |     
                                             |     if (r8 != 0) {
    0x000014b0 beq 0x14b8                    |         
    0x000014b2 mov r0, r8                    |         r0 = r8;
    0x000014b4 blx 0xa80                     |         free (r0);
                                             |     }
    0x000014b8 ldr.w r0, [pc, 0x458]         |     
    0x000014bc movs r2, 0xe                  |     r2 = 0xe;
    0x000014be ldr r3, [pc, 0x3ac]           |     r3 = *(0x186e);
    0x000014c0 add r0, pc                    |     r0 = 0x2dd8;
                                             |     do {
                                             | label_12:
    0x000014c2 ldr r4, [sp, 0x34]            |         r4 = *(arg_34h);
    0x000014c4 movs r1, 1                    |         r1 = 1;
    0x000014c6 ldr r3, [r4, r3]              |         r3 = *((r4 + r3));
    0x000014c8 ldr r3, [r3]                  |         r3 = *(r3);
    0x000014ca blx 0xaf8                     |         fwrite (r0, r1, r2, r3);
    0x000014ce movs r0, 1                    |         r0 = 1;
    0x000014d0 blx 0xb64                     |         exit (r0);
                                             | label_67:
    0x000014d4 ldr.w r0, [pc, 0x440]         |         
    0x000014d8 movs r2, 0x31                 |         r2 = 0x31;
    0x000014da ldr r3, [pc, 0x390]           |         r3 = *(0x186e);
    0x000014dc add r0, pc                    |         r0 = 0x2df8;
    0x000014de b 0x14c2                      |         
                                             |     } while (1);
                                             | label_66:
    0x000014f2 ldr r3, [sp, 0x54]            |     r3 = *(arg_54h);
    0x000014f4 mov r5, r2                    |     r5 = r2;
    0x000014f6 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000014f8 beq.w 0x1364                  |         goto label_10;
                                             |     }
    0x000014fc ldr.w r8, [pc, 0x41c]         |     r8 = *(0x0000191c);
    0x00001500 add r4, sp, 0x180             |     r4 += arg_180h;
    0x00001502 mov r0, r4                    |     r0 = r4;
    0x00001504 add r8, pc                    |     r8 += pc;
    0x00001506 str.w r5, [r8]                |     __asm ("str.w r5, [r8]");
    0x0000150a blx 0xc00                     |     sigemptyset ();
    0x0000150e ldr.w r3, [pc, 0x410]         |     r3 = *(0x1922);
                                             | label_24:
    0x00001510 adds r4, 0x10                 |     r4 += 0x10;
    0x00001512 mov r1, r4                    |     r1 = r4;
    0x00001514 movs r2, 0x80                 |     r2 = 0x80;
    0x00001516 add r4, sp, 0x200             |     r4 += arg_200h;
    0x00001518 add r0, sp, 0x204             |     r0 += s1;
    0x0000151a add r3, pc                    |     r3 += pc;
    0x0000151c str r3, [sp, 0x200]           |     *(arg_200h) = r3;
    0x0000151e blx 0xa8c                     |     memcpy (r0, r1, r2);
    0x00001522 mov r2, r5                    |     r2 = r5;
    0x00001524 mov r1, r4                    |     r1 = r4;
    0x00001526 movs r0, 1                    |     r0 = 1;
    0x00001528 str r5, [sp, 0x284]           |     *(arg_284h) = r5;
    0x0000152a blx 0xaec                     |     sigaction ();
    0x0000152e mov r2, r5                    |     r2 = r5;
    0x00001530 mov r1, r4                    |     r1 = r4;
    0x00001532 movs r0, 0xf                  |     r0 = 0xf;
    0x00001534 blx 0xaec                     |     sigaction ();
    0x00001538 mov r2, r5                    |     r2 = r5;
    0x0000153a mov r1, r4                    |     r1 = r4;
    0x0000153c movs r0, 2                    |     r0 = 2;
    0x0000153e blx 0xaec                     |     sigaction ();
    0x00001542 mov r0, r5                    |     r0 = r5;
    0x00001544 blx 0xc30                     |     r0 = isatty (r0);
    0x00001548 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000154a beq.w 0x16a4                  |         goto label_76;
                                             |     }
    0x0000154e add r7, sp, 0x80              |     r7 += arg_80h;
    0x00001550 add.w sl, sp, 0x84            |     sl += arg_84h;
    0x00001554 add.w fp, sp, 0x100           |     
    0x00001558 add.w sb, sp, 0x104           |     sb += arg_104h;
                                             |     do {
                                             | label_11:
    0x0000155c movs r2, 0x7c                 |         r2 = 0x7c;
    0x0000155e movs r1, 0                    |         r1 = 0;
    0x00001560 mov r0, sl                    |         r0 = sl;
    0x00001562 movs r4, 1                    |         r4 = 1;
    0x00001564 blx 0xbac                     |         memset (r0, r1, r2);
    0x00001568 movs r2, 0x7c                 |         r2 = 0x7c;
    0x0000156a movs r1, 0                    |         r1 = 0;
    0x0000156c mov r0, sb                    |         r0 = sb;
    0x0000156e blx 0xbac                     |         memset (r0, r1, r2);
    0x00001572 str r5, [sp]                  |         *(sp) = r5;
    0x00001574 mov r3, fp                    |         r3 = fp;
    0x00001576 movs r2, 0                    |         r2 = 0;
    0x00001578 mov r1, r7                    |         r1 = r7;
    0x0000157a mov r0, r4                    |         r0 = r4;
    0x0000157c str r4, [r7]                  |         *(r7) = r4;
    0x0000157e str.w r4, [fp]                |         __asm ("str.w r4, [fp]");
    0x00001582 blx 0xab0                     |         select ();
    0x00001586 ldr.w r3, [r8]                |         r3 = *(r8);
                                             |         if (r3 != 0) {
    0x0000158a cbnz r3, 0x159a               |             goto label_77;
                                             |         }
    0x0000158c ldr r2, [r7]                  |         r2 = *(r7);
    0x0000158e lsls r2, r2, 0x1f             |         r2 <<= 0x1f;
                                             |         if (r2 < r2) {
    0x00001590 bmi 0x15a0                    |             goto label_78;
                                             |         }
    0x00001592 ldr.w r3, [fp]                |         r3 = *(fp);
    0x00001596 lsls r3, r3, 0x1f             |         r3 <<= 0x1f;
    0x00001598 bpl 0x155c                    |         
                                             |     } while (r3 >= r3);
                                             |     do {
                                             | label_77:
    0x0000159a movs r0, 0                    |         r0 = 0;
    0x0000159c bl 0x1c1c                     |         fcn_00001c1c (r0);
                                             | label_78:
    0x000015a0 mov.w r2, 0x200               |         r2 = 0x200;
    0x000015a4 add r1, sp, 0x2cc             |         r1 += buf;
    0x000015a6 mov r0, r3                    |         r0 = r3;
    0x000015a8 str r3, [sp, 0x24]            |         *(errnum) = r3;
    0x000015aa blx 0xa68                     |         r0 = read (r0, r1, r2);
    0x000015ae mov r6, r0                    |         r6 = r0;
    0x000015b0 blx 0xb94                     |         r0 = errno_location ();
    0x000015b4 ldr r0, [r0]                  |         r0 = *(r0);
    0x000015b6 cmp r6, 0                     |         
    0x000015b8 beq 0x159a                    |         
                                             |     } while (r6 == 0);
    0x000015ba cmp r6, 0                     |     
                                             |     if (r6 >= 0) {
    0x000015bc bge 0x155c                    |         goto label_11;
                                             |     }
    0x000015be cmp r0, 4                     |     
    0x000015c0 ldr r3, [sp, 0x24]            |     r3 = *(errnum);
                                             |     if (r0 == 4) {
    0x000015c2 beq 0x155c                    |         goto label_11;
                                             |     }
    0x000015c4 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x000015c6 mov r6, r3                    |     r6 = r3;
    0x000015c8 ldr r3, [pc, 0x2a0]           |     r3 = *(0x186c);
    0x000015ca ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000015cc ldr r5, [r3]                  |     r5 = *(0x186c);
    0x000015ce blx 0xb40                     |     strerror (r0);
    0x000015d2 ldr r2, [pc, 0x350]           |     
    0x000015d4 mov r3, r0                    |     r3 = r0;
    0x000015d6 mov r1, r4                    |     r1 = r4;
    0x000015d8 mov r0, r5                    |     r0 = r5;
    0x000015da add r2, pc                    |     r2 = 0x2f04;
    0x000015dc blx 0xbdc                     |     fprintf_chk ()
    0x000015e0 mov r0, r6                    |     r0 = r6;
    0x000015e2 bl 0x1c1c                     |     fcn_00001c1c (r0);
                                             | label_65:
    0x000015e6 ldr r0, [pc, 0x340]           |     
    0x000015e8 movs r2, 0x2f                 |     r2 = 0x2f;
    0x000015ea ldr r3, [pc, 0x280]           |     r3 = *(0x186e);
    0x000015ec add r0, pc                    |     r0 = 0x2f1a;
    0x000015ee b 0x14c2                      |     goto label_12;
                                             | label_73:
    0x000015f0 ldr r1, [pc, 0x338]           |     
    0x000015f2 mov r2, r5                    |     r2 = r5;
    0x000015f4 movs r0, 1                    |     r0 = 1;
    0x000015f6 add r1, pc                    |     r1 = 0x2f26;
    0x000015f8 blx 0xbc4                     |     printf_chk ()
    0x000015fc ldr r2, [r7]                  |     r2 = *(r7);
    0x000015fe cmp r2, 0                     |     
                                             |     if (r2 != 0) {
    0x00001600 bne 0x168c                    |         goto label_79;
                                             |     }
                                             | label_17:
    0x00001602 ldr r2, [r4]                  |     r2 = *(r4);
    0x00001604 cmp r2, 0                     |     
                                             |     if (r2 == 0) {
    0x00001606 beq.w 0x1424                  |         goto label_13;
                                             |     }
    0x0000160a ldr r1, [pc, 0x324]           |     
    0x0000160c movs r0, 1                    |     r0 = 1;
    0x0000160e add r1, pc                    |     r1 = 0x2f44;
    0x00001610 blx 0xbc4                     |     printf_chk ()
    0x00001614 b 0x1424                      |     goto label_13;
                                             | label_72:
    0x00001616 ldr r1, [pc, 0x31c]           |     
    0x00001618 mov r2, r5                    |     r2 = r5;
    0x0000161a movs r0, 1                    |     r0 = 1;
    0x0000161c add r1, pc                    |     r1 = 0x2f56;
    0x0000161e blx 0xbc4                     |     printf_chk ()
    0x00001622 ldr r2, [r7]                  |     r2 = *(r7);
    0x00001624 cmp r2, 0                     |     
                                             |     if (r2 != 0) {
    0x00001626 bne 0x1698                    |         goto label_80;
                                             |     }
                                             | label_18:
    0x00001628 ldr r2, [r4]                  |     r2 = *(r4);
    0x0000162a cmp r2, 0                     |     
                                             |     if (r2 == 0) {
    0x0000162c beq.w 0x1424                  |         goto label_13;
                                             |     }
    0x00001630 ldr r1, [pc, 0x304]           |     
    0x00001632 movs r0, 1                    |     r0 = 1;
    0x00001634 add r1, pc                    |     r1 = 0x2f70;
    0x00001636 blx 0xbc4                     |     printf_chk ()
    0x0000163a b 0x1424                      |     goto label_13;
                                             | label_71:
    0x0000163c mov r0, r5                    |     r0 = r5;
    0x0000163e blx 0xb70                     |     strlen (r0);
    0x00001642 mov r1, r5                    |     r1 = r5;
    0x00001644 adds r2, r0, 1                |     r2 = r0 + 1;
    0x00001646 movs r0, 1                    |     r0 = 1;
    0x00001648 bl 0x1b20                     |     fcn_00001b20 (r0, r1, r2);
    0x0000164c movs r2, 4                    |     r2 = 4;
    0x0000164e mov r1, r7                    |     r1 = r7;
    0x00001650 movs r0, 1                    |     r0 = 1;
    0x00001652 bl 0x1b20                     |     fcn_00001b20 (r0, r1, r2);
    0x00001656 movs r2, 4                    |     r2 = 4;
    0x00001658 mov r1, r4                    |     r1 = r4;
    0x0000165a movs r0, 1                    |     r0 = 1;
    0x0000165c bl 0x1b20                     |     fcn_00001b20 (r0, r1, r2);
    0x00001660 ldr r3, [pc, 0x2a8]           |     r3 = *(0x190c);
    0x00001662 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x00001664 ldr r4, [r2, r3]              |     r4 = *((r2 + r3));
    0x00001666 b 0x1432                      |     goto label_14;
                                             | label_69:
    0x00001668 ldr r1, [pc, 0x2d0]           |     
    0x0000166a mov r0, r4                    |     r0 = r4;
    0x0000166c add r1, pc                    |     r1 = 0x2fac;
    0x0000166e blx 0xa44                     |     r0 = strcmp (r0, r1);
    0x00001672 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001674 beq.w 0x148e                  |         goto label_15;
                                             |     }
    0x00001678 ldrb r3, [r4]                 |     r3 = *(r4);
    0x0000167a cmp r3, 0x2d                  |     
                                             |     if (r3 == 0x2d) {
    0x0000167c beq.w 0x17ba                  |         goto label_81;
                                             |     }
    0x00001680 adds r3, r5, 1                |     r3 = r5 + 1;
    0x00001682 str r4, [sp, 0x2c]            |     *(s2) = r4;
    0x00001684 mov fp, r3                    |     
    0x00001686 mov r4, sl                    |     r4 = sl;
    0x00001688 b.w 0xd54                     |     goto label_16;
                                             | label_79:
    0x0000168c ldr r1, [pc, 0x2b0]           |     
    0x0000168e movs r0, 1                    |     r0 = 1;
    0x00001690 add r1, pc                    |     r1 = 0x2fd4;
    0x00001692 blx 0xbc4                     |     printf_chk ()
    0x00001696 b 0x1602                      |     goto label_17;
                                             | label_80:
    0x00001698 ldr r1, [pc, 0x2a8]           |     
    0x0000169a movs r0, 1                    |     r0 = 1;
    0x0000169c add r1, pc                    |     r1 = 0x2fe4;
    0x0000169e blx 0xbc4                     |     printf_chk ()
    0x000016a2 b 0x1628                      |     goto label_18;
                                             | label_76:
    0x000016a4 ldr r4, [sp, 0x34]            |     r4 = *(arg_34h);
    0x000016a6 movs r2, 0x5e                 |     r2 = 0x5e;
    0x000016a8 ldr r3, [pc, 0x1c0]           |     
    0x000016aa movs r1, 1                    |     r1 = 1;
    0x000016ac ldr r0, [pc, 0x298]           |     
    0x000016ae ldr r3, [r4, r3]              |     r3 = *((r4 + r3));
    0x000016b0 add r0, pc                    |     r0 = 0x2ffc;
    0x000016b2 ldr r3, [r3]                  |     r3 = *(0x186c);
    0x000016b4 blx 0xaf8                     |     fwrite (r0, r1, r2, r3);
    0x000016b8 movs r0, 1                    |     r0 = 1;
    0x000016ba bl 0x1c1c                     |     fcn_00001c1c (r0);
                                             | label_75:
    0x000016be ldr r1, [pc, 0x28c]           |     
    0x000016c0 movs r0, 1                    |     r0 = 1;
    0x000016c2 add r1, pc                    |     r1 = 0x3014;
    0x000016c4 blx 0xbc4                     |     printf_chk ()
    0x000016c8 b 0x1424                      |     goto label_13;
                                             | label_74:
    0x000016ca ldr r1, [pc, 0x284]           |     
    0x000016cc movs r0, 1                    |     r0 = 1;
    0x000016ce add r1, pc                    |     r1 = 0x3024;
    0x000016d0 blx 0xbc4                     |     printf_chk ()
    0x000016d4 b 0x141c                      |     goto label_19;
                                             | label_61:
    0x000016d6 movs r6, 1                    |     r6 = 1;
    0x000016d8 b 0x11b6                      |     goto label_20;
                                             | label_68:
    0x000016da ldr r3, [sp, 0x44]            |     r3 = *(arg_44h);
    0x000016dc cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000016de bne 0x17a6                    |         
    0x000016e0 movs r1, 0x3d                 |         r1 = 0x3d;
    0x000016e2 mov r0, r4                    |         r0 = r4;
    0x000016e4 blx 0xb7c                     |         strchr (r0, r1);
    0x000016e8 adds r0, 1                    |         r0++;
    0x000016ea bl 0x1bf8                     |         fcn_00001bf8 (r0);
    0x000016ee str r0, [sp, 0x44]            |         *(arg_44h) = r0;
    0x000016f0 b.w 0xcf2                     |         goto label_2;
                                             | label_34:
    0x000016f4 ldr r2, [sp, 0x34]            |         r2 = *(arg_34h);
    0x000016f6 ldr r3, [pc, 0x174]           |         r3 = *(0x186e);
    0x000016f8 ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x000016fa ldr r4, [r3]                  |         r4 = *(0x186e);
    0x000016fc blx 0xb94                     |         r0 = errno_location ();
    0x00001700 ldr r0, [r0]                  |         r0 = *(r0);
    0x00001702 blx 0xb40                     |         strerror (r0);
    0x00001706 ldr r2, [pc, 0x24c]           |         
    0x00001708 mov r3, r0                    |         r3 = r0;
    0x0000170a add r2, pc                    |         r2 = 0x3064;
    0x0000170c b 0x1038                      |         goto label_7;
                                             | label_33:
    0x0000170e ldr r2, [sp, 0x34]            |         r2 = *(arg_34h);
    0x00001710 ldr r3, [pc, 0x158]           |         r3 = *(0x186c);
    0x00001712 ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x00001714 ldr r4, [r3]                  |         r4 = *(0x186c);
    0x00001716 blx 0xb94                     |         r0 = errno_location ();
    0x0000171a ldr r0, [r0]                  |         r0 = *(r0);
    0x0000171c blx 0xb40                     |         strerror (r0);
    0x00001720 ldr r2, [pc, 0x234]           |         
    0x00001722 mov r3, r0                    |         r3 = r0;
    0x00001724 add r2, pc                    |         r2 = 0x3080;
    0x00001726 b 0x1038                      |         goto label_7;
                                             | label_37:
    0x00001728 ldr r2, [sp, 0x34]            |         r2 = *(arg_34h);
    0x0000172a ldr r3, [pc, 0x140]           |         r3 = *(0x186e);
    0x0000172c ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x0000172e ldr r4, [r3]                  |         r4 = *(0x186e);
    0x00001730 blx 0xb94                     |         r0 = errno_location ();
    0x00001734 ldr r0, [r0]                  |         r0 = *(r0);
    0x00001736 blx 0xb40                     |         strerror (r0);
    0x0000173a ldr r2, [pc, 0x220]           |         
    0x0000173c mov r3, r0                    |         r3 = r0;
    0x0000173e add r2, pc                    |         r2 = 0x30a0;
    0x00001740 b 0x1038                      |         goto label_7;
                                             | label_57:
    0x00001742 ldr r0, [pc, 0x21c]           |         
    0x00001744 movs r2, 0x20                 |         r2 = 0x20;
    0x00001746 ldr r3, [pc, 0x124]           |         r3 = *(0x186e);
    0x00001748 add r0, pc                    |         r0 = 0x30ae;
    0x0000174a b 0x14c2                      |         goto label_12;
                                             | label_43:
    0x0000174c ldr r2, [pc, 0x214]           |         
    0x0000174e ldr r1, [pc, 0x218]           |         
    0x00001750 str r0, [sp, 0x24]            |         *(errnum) = r0;
    0x00001752 movs r0, 1                    |         r0 = 1;
    0x00001754 add r2, pc                    |         r2 = 0x30bc;
    0x00001756 add r1, pc                    |         r1 = 0x30c4;
    0x00001758 blx 0xbc4                     |         printf_chk ()
    0x0000175c ldr r3, [sp, 0x24]            |         r3 = *(errnum);
    0x0000175e mov r0, r3                    |         r0 = r3;
    0x00001760 blx 0xb64                     |         exit (r0);
                                             | label_29:
    0x00001764 ldr r2, [pc, 0x204]           |         
    0x00001766 ldr r0, [pc, 0x104]           |         r0 = *(0x186e);
    0x00001768 add r2, pc                    |         r2 = 0x30d8;
                                             | label_23:
    0x0000176a mov r3, r4                    |         r3 = r4;
    0x0000176c ldr r4, [sp, 0x34]            |         r4 = *(arg_34h);
    0x0000176e movs r1, 1                    |         r1 = 1;
    0x00001770 ldr r0, [r4, r0]              |         r0 = *((r4 + r0));
    0x00001772 ldr r0, [r0]                  |         r0 = *(r0);
    0x00001774 blx 0xbdc                     |         fprintf_chk ()
    0x00001778 movs r0, 1                    |         r0 = 1;
    0x0000177a blx 0xb64                     |         r0 = exit (r0);
    0x0000177e blx 0xac8                     |         stack_chk_fail ();
                                             | label_53:
    0x00001782 ldr r2, [sp, 0x34]            |         r2 = *(arg_34h);
    0x00001784 ldr r3, [pc, 0xe4]            |         r3 = *(0x186c);
    0x00001786 ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x00001788 ldr r4, [r3]                  |         r4 = *(0x186c);
    0x0000178a blx 0xb94                     |         r0 = errno_location ();
    0x0000178e ldr r0, [r0]                  |         r0 = *(r0);
    0x00001790 blx 0xb40                     |         strerror (r0);
    0x00001794 ldr r2, [pc, 0x1d8]           |         
    0x00001796 mov r3, r0                    |         r3 = r0;
    0x00001798 add r2, pc                    |         r2 = 0x310c;
    0x0000179a b 0x1038                      |         goto label_7;
                                             | label_32:
    0x0000179c ldr r0, [pc, 0x1d4]           |         
    0x0000179e movs r2, 0x4a                 |         r2 = 0x4a;
    0x000017a0 ldr r3, [pc, 0xc8]            |         r3 = *(0x186c);
    0x000017a2 add r0, pc                    |         r0 = 0x311a;
    0x000017a4 b 0x14c2                      |         goto label_12;
                                             |     }
                                             | label_70:
    0x000017a6 ldr r0, [pc, 0x1d0]           |     
    0x000017a8 movs r2, 0x1a                 |     r2 = 0x1a;
    0x000017aa ldr r3, [pc, 0xc0]            |     r3 = *(0x186e);
    0x000017ac add r0, pc                    |     r0 = 0x312a;
    0x000017ae b 0x14c2                      |     goto label_12;
                                             | label_60:
    0x000017b0 ldr r3, [sp, 0x24]            |     r3 = *(errnum);
    0x000017b2 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x000017b4 bne.w 0x14a6                  |         goto label_21;
                                             |     }
    0x000017b8 b 0x14ac                      |     goto label_22;
                                             | label_81:
    0x000017ba ldr r1, [pc, 0x1c0]           |     
    0x000017bc mov r0, r4                    |     r0 = r4;
    0x000017be add r1, pc                    |     r1 = 0x3140;
    0x000017c0 blx 0xa44                     |     r0 = strcmp (r0, r1);
                                             |     if (r0 == 0) {
    0x000017c4 cbnz r0, 0x17e4               |         
    0x000017c6 ldr r2, [sp, 0x38]            |         r2 = *(arg_38h);
    0x000017c8 adds r3, r5, 1                |         r3 = r5 + 1;
    0x000017ca mov r4, sl                    |         r4 = sl;
    0x000017cc ldr.w r3, [r2, r3, lsl 2]     |         offset_0 = r3 << 2;
                                             |         r3 = *((r2 + offset_0));
    0x000017d0 str r3, [sp, 0x2c]            |         *(s2) = r3;
    0x000017d2 adds r3, r5, 2                |         r3 = r5 + 2;
    0x000017d4 mov fp, r3                    |         
    0x000017d6 b.w 0xd54                     |         goto label_16;
                                             | label_49:
    0x000017da ldr r0, [pc, 0x1a4]           |         
    0x000017dc movs r2, 0x19                 |         r2 = 0x19;
    0x000017de ldr r3, [pc, 0x8c]            |         r3 = *(0x186e);
    0x000017e0 add r0, pc                    |         r0 = 0x3166;
    0x000017e2 b 0x14c2                      |         goto label_12;
                                             |     }
    0x000017e4 ldr r2, [pc, 0x19c]           |     
    0x000017e6 ldr r0, [pc, 0x84]            |     r0 = *(0x186e);
    0x000017e8 add r2, pc                    |     r2 = 0x3170;
    0x000017ea b 0x176a                      |     goto label_23;
                                             | label_31:
    0x000017ec ldr r0, [pc, 0x198]           |     
    0x000017ee movs r2, 0x48                 |     r2 = 0x48;
    0x000017f0 ldr r3, [pc, 0x78]            |     r3 = *(0x186c);
    0x000017f2 add r0, pc                    |     r0 = 0x317e;
    0x000017f4 b 0x14c2                      |     goto label_12;
                                             | label_54:
    0x000017f6 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x000017f8 ldr r3, [pc, 0x70]            |     r3 = *(0x186c);
    0x000017fa ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000017fc ldr r5, [r3]                  |     r5 = *(0x186c);
    0x000017fe blx 0xb94                     |     r0 = errno_location ();
    0x00001802 ldr r0, [r0]                  |     r0 = *(r0);
    0x00001804 blx 0xb40                     |     strerror (r0);
    0x00001808 ldr r2, [pc, 0x180]           |     
    0x0000180a mov r3, r0                    |     r3 = r0;
    0x0000180c mov r1, r4                    |     r1 = r4;
    0x0000180e mov r0, r5                    |     r0 = r5;
    0x00001810 add r2, pc                    |     r2 = 0x31a0;
    0x00001812 blx 0xbdc                     |     fprintf_chk ()
    0x00001816 mov r0, r4                    |     r0 = r4;
    0x00001818 blx 0xb64                     |     exit (r0);
                                             | label_55:
    0x0000181c ldr r0, [pc, 0x170]           |     
    0x0000181e movs r2, 0x33                 |     r2 = 0x33;
    0x00001820 ldr r3, [pc, 0x48]            |     r3 = *(0x186c);
    0x00001822 add r0, pc                    |     r0 = 0x31b6;
    0x00001824 b 0x14c2                      |     goto label_12;
                                             | label_56:
    0x00001826 ldr r2, [sp, 0x34]            |     r2 = *(arg_34h);
    0x00001828 ldr r3, [pc, 0x40]            |     r3 = *(0x186c);
    0x0000182a ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0000182c ldr r4, [r3]                  |     r4 = *(0x186c);
    0x0000182e blx 0xb94                     |     r0 = errno_location ();
    0x00001832 ldr r0, [r0]                  |     r0 = *(r0);
    0x00001834 blx 0xb40                     |     strerror (r0);
    0x00001838 ldr r2, [pc, 0x158]           |     
    0x0000183a mov r3, r0                    |     r3 = r0;
    0x0000183c mov r1, r6                    |     r1 = r6;
    0x0000183e mov r0, r4                    |     r0 = r4;
    0x00001840 add r2, pc                    |     r2 = 0x31d8;
    0x00001842 blx 0xbdc                     |     fprintf_chk ()
    0x00001846 mov r0, r6                    |     r0 = r6;
    0x00001848 blx 0xb64                     |     exit (r0);
    0x0000184c movs r2, 0x9e                 |     r2 = 0x9e;
    0x0000184e movs r1, r0                   |     r1 = r0;
    0x00001850 lsls r4, r1, 3                |     r4 = r1 << 3;
    0x00001852 movs r0, r0                   |     
    0x00001854 movs r2, 0x86                 |     r2 = 0x86;
    0x00001856 movs r1, r0                   |     r1 = r0;
    0x00001858 asrs r6, r1, 0xa              |     r6 = r1 >> 0xa;
    0x0000185a movs r0, r0                   |     
    0x0000185c asrs r2, r2, 6                |     r2 >>= 6;
    0x0000185e movs r0, r0                   |     
    0x00001860 asrs r6, r6, 9                |     r6 >>= 9;
    0x00001862 movs r0, r0                   |     
    0x00001864 asrs r6, r4, 0x10             |     r6 = r4 >> 0x10;
    0x00001866 movs r0, r0                   |     
    0x00001868 asrs r6, r7, 0x10             |     r6 = r7 >> 0x10;
    0x0000186a movs r0, r0                   |     
    0x0000186c lsls r0, r2, 3                |     r0 = r2 << 3;
    0x0000186e movs r0, r0                   |     
    0x00001870 asrs r2, r1, 0xf              |     r2 = r1 >> 0xf;
    0x00001872 movs r0, r0                   |     
    0x00001874 asrs r0, r2, 3                |     r0 = r2 >> 3;
    0x00001876 movs r0, r0                   |     
    0x00001878 asrs r4, r1, 3                |     r4 = r1 >> 3;
    0x0000187a movs r0, r0                   |     
    0x0000187c asrs r6, r1, 3                |     r6 = r1 >> 3;
    0x0000187e movs r0, r0                   |     
    0x00001880 asrs r0, r5, 6                |     r0 = r5 >> 6;
    0x00001882 movs r0, r0                   |     
    0x00001884 asrs r2, r4, 6                |     r2 = r4 >> 6;
    0x00001886 movs r0, r0                   |     
    0x00001888 asrs r0, r4, 6                |     r0 = r4 >> 6;
    0x0000188a movs r0, r0                   |     
    0x0000188c asrs r4, r3, 6                |     r4 = r3 >> 6;
    0x0000188e movs r0, r0                   |     
    0x00001890 asrs r6, r5, 6                |     r6 = r5 >> 6;
    0x00001892 movs r0, r0                   |     
    0x00001894 asrs r0, r5, 0xf              |     r0 = r5 >> 0xf;
    0x00001896 movs r0, r0                   |     
    0x00001898 lsrs r6, r4, 0x19             |     r6 = r4 >> 0x19;
    0x0000189a movs r0, r0                   |     
    0x0000189c lsrs r4, r4, 0x19             |     r4 >>= 0x19;
    0x0000189e movs r0, r0                   |     
    0x000018a0 asrs r2, r4, 0xe              |     r2 = r4 >> 0xe;
    0x000018a2 movs r0, r0                   |     
    0x000018a4 asrs r6, r2, 0xe              |     r6 = r2 >> 0xe;
    0x000018a6 movs r0, r0                   |     
    0x000018a8 asrs r4, r6, 0xe              |     r4 = r6 >> 0xe;
    0x000018aa movs r0, r0                   |     
    0x000018ac asrs r0, r0, 0xf              |     r0 >>= 0xf;
    0x000018ae movs r0, r0                   |     
    0x000018b0 asrs r0, r0, 0xe              |     r0 >>= 0xe;
    0x000018b2 movs r0, r0                   |     
    0x000018b4 asrs r6, r6, 0xe              |     r6 >>= 0xe;
    0x000018b6 movs r0, r0                   |     
    0x000018b8 asrs r6, r4, 0xe              |     r6 = r4 >> 0xe;
    0x000018ba movs r0, r0                   |     
    0x000018bc asrs r2, r6, 3                |     r2 = r6 >> 3;
    0x000018be movs r0, r0                   |     
    0x000018c0 asrs r6, r3, 3                |     r6 = r3 >> 3;
    0x000018c2 movs r0, r0                   |     
    0x000018c4 subs r4, r6, 3                |     r4 = r6 - 3;
    0x000018c6 movs r1, r0                   |     r1 = r0;
    0x000018c8 asrs r4, r4, 0xd              |     r4 >>= 0xd;
    0x000018ca movs r0, r0                   |     
    0x000018cc asrs r2, r7, 0xc              |     r2 = r7 >> 0xc;
    0x000018ce movs r0, r0                   |     
    0x000018d0 lsrs r6, r3, 0xf              |     r6 = r3 >> 0xf;
    0x000018d2 movs r0, r0                   |     
    0x000018d4 adds r0, r3, 3                |     r0 = r3 + 3;
    0x000018d6 movs r1, r0                   |     r1 = r0;
    0x000018d8 lsrs r0, r0, 0x1e             |     r0 >>= 0x1e;
    0x000018da movs r0, r0                   |     
    0x000018dc lsrs r2, r7, 0xc              |     r2 = r7 >> 0xc;
    0x000018de movs r0, r0                   |     
    0x000018e0 lsrs r2, r3, 0x1d             |     r2 = r3 >> 0x1d;
    0x000018e2 movs r0, r0                   |     
    0x000018e4 asrs r4, r3, 8                |     r4 = r3 >> 8;
    0x000018e6 movs r0, r0                   |     
    0x000018e8 adds r2, r7, 3                |     r2 = r7 + 3;
    0x000018ea movs r1, r0                   |     r1 = r0;
    0x000018ec asrs r2, r4, 0xd              |     r2 = r4 >> 0xd;
    0x000018ee movs r0, r0                   |     
    0x000018f0 lsrs r6, r6, 0xa              |     r6 >>= 0xa;
    0x000018f2 movs r0, r0                   |     
    0x000018f4 lsrs r4, r1, 0x15             |     r4 = r1 >> 0x15;
    0x000018f6 movs r0, r0                   |     
    0x000018f8 lsrs r0, r1, 0x15             |     r0 = r1 >> 0x15;
    0x000018fa movs r0, r0                   |     
    0x000018fc lsrs r6, r2, 9                |     r6 = r2 >> 9;
    0x000018fe movs r0, r0                   |     
    0x00001900 lsrs r6, r0, 0xa              |     r6 = r0 >> 0xa;
    0x00001902 movs r0, r0                   |     
    0x00001904 asrs r4, r0, 7                |     r4 = r0 >> 7;
    0x00001906 movs r0, r0                   |     
    0x00001908 asrs r2, r3, 7                |     r2 = r3 >> 7;
    0x0000190a movs r0, r0                   |     
    0x0000190c lsls r0, r3, 3                |     r0 = r3 << 3;
    0x0000190e movs r0, r0                   |     
    0x00001910 lsrs r2, r5, 0x17             |     r2 = r5 >> 0x17;
    0x00001912 movs r0, r0                   |     
    0x00001914 asrs r0, r5, 6                |     r0 = r5 >> 6;
    0x00001916 movs r0, r0                   |     
    0x00001918 lsrs r0, r4, 0x16             |     r0 = r4 >> 0x16;
    0x0000191a movs r0, r0                   |     
    0x0000191c subs r0, r1, r4               |     r0 = r1 - r4;
    0x0000191e movs r1, r0                   |     r1 = r0;
    0x00001920 lsls r7, r6, 0x15             |     r7 = r6 << 0x15;
    0x00001922 movs r0, r0                   |     
    0x00001924 lsrs r6, r6, 0x14             |     r6 >>= 0x14;
    0x00001926 movs r0, r0                   |     
    0x00001928 asrs r4, r1, 2                |     r4 = r1 >> 2;
    0x0000192a movs r0, r0                   |     
    0x0000192c asrs r6, r2, 0x20             |     r6 = r2 >> 0x20;
    0x0000192e movs r0, r0                   |     
    0x00001930 asrs r2, r7, 0x20             |     r2 = r7 >> 0x20;
    0x00001932 movs r0, r0                   |     
    0x00001934 lsrs r0, r0, 0x1d             |     r0 >>= 0x1d;
    0x00001936 movs r0, r0                   |     
    0x00001938 lsrs r0, r6, 0x1d             |     r0 = r6 >> 0x1d;
    0x0000193a movs r0, r0                   |     
    0x0000193c lsls r0, r1, 0x1e             |     r0 = r1 << 0x1e;
    0x0000193e movs r0, r0                   |     
    0x00001940 lsrs r4, r3, 0x1e             |     r4 = r3 >> 0x1e;
    0x00001942 movs r0, r0                   |     
    0x00001944 lsrs r0, r5, 0x1b             |     r0 = r5 >> 0x1b;
    0x00001946 movs r0, r0                   |     
    0x00001948 lsrs r0, r0, 0x10             |     r0 >>= 0x10;
    0x0000194a movs r0, r0                   |     
    0x0000194c lsrs r6, r4, 0x1b             |     r6 = r4 >> 0x1b;
    0x0000194e movs r0, r0                   |     
    0x00001950 lsrs r2, r7, 0x1a             |     r2 = r7 >> 0x1a;
    0x00001952 movs r0, r0                   |     
    0x00001954 lsrs r2, r6, 0xb              |     r2 = r6 >> 0xb;
    0x00001956 movs r0, r0                   |     
    0x00001958 lsrs r4, r7, 0xa              |     r4 = r7 >> 0xa;
    0x0000195a movs r0, r0                   |     
    0x0000195c lsrs r6, r7, 0xa              |     r6 = r7 >> 0xa;
    0x0000195e movs r0, r0                   |     
    0x00001960 lsrs r0, r6, 0x15             |     r0 = r6 >> 0x15;
    0x00001962 movs r0, r0                   |     
    0x00001964 lsrs r0, r5, 0x20             |     r0 = r5 >> 0x20;
    0x00001966 movs r0, r0                   |     
    0x00001968 lsrs r6, r5, 0x20             |     r6 = r5 >> 0x20;
    0x0000196a movs r0, r0                   |     
    0x0000196c lsrs r0, r6, 6                |     r0 = r6 >> 6;
    0x0000196e movs r0, r0                   |     
    0x00001970 lsrs r0, r6, 0x11             |     r0 = r6 >> 0x11;
    0x00001972 movs r0, r0                   |     
    0x00001974 lsrs r2, r6, 7                |     r2 = r6 >> 7;
    0x00001976 movs r0, r0                   |     
    0x00001978 lsrs r0, r6, 4                |     r0 = r6 >> 4;
    0x0000197a movs r0, r0                   |     
    0x0000197c lsrs r2, r7, 4                |     r2 = r7 >> 4;
    0x0000197e movs r0, r0                   |     
    0x00001980 lsrs r0, r0, 3                |     r0 >>= 3;
    0x00001982 movs r0, r0                   |     
    0x00001984 lsrs r4, r2, 4                |     r4 = r2 >> 4;
    0x00001986 movs r0, r0                   |     
    0x00001988 lsrs r6, r2, 5                |     r6 = r2 >> 5;
    0x0000198a movs r0, r0                   |     
    0x0000198c lsrs r4, r5, 0x11             |     r4 = r5 >> 0x11;
    0x0000198e movs r0, r0                   |     
    0x00001990 lsrs r6, r4, 0x10             |     r6 = r4 >> 0x10;
    0x00001992 movs r0, r0                   |     
    0x00001994 lsrs r4, r3, 0x12             |     r4 = r3 >> 0x12;
    0x00001996 movs r0, r0                   |     
    0x000019cc adds r0, 0x14                 |     r0 += 0x14;
    0x000019ce b 0x1510                      |     goto label_24;
                                             | }

[*] Function printf used 21 times dbus-launch