[*] Binary protection state of dbus-launch

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


[*] Function sprintf tear down of dbus-launch

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-launch @ 0x1ff4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00001ff4 ()                                  | void fcn_00001ff4 (int16_t arg_8h, int16_t arg_ch, int16_t arg_18h, int16_t arg_24h, int16_t arg_28h, char * stream, 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, int16_t arg_58h, int16_t arg_5ch, char * * endptr, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_78h, int16_t arg_80h, int16_t arg_88h, int16_t arg_108h, int16_t arg_10ch, int16_t arg_188h, int16_t arg_208h, void * s1, int16_t arg_28ch, int16_t arg_294h, void * buf, int16_t arg_4d4h) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     do {
    0x000010f8 cmp.w fp, 0x2d                                |         
                                                             |         if (fp != 0x2d) {
    0x000010fc bne.w 0x1368                                  |             goto label_26;
                                                             |         }
    0x00001100 ldrb r1, [r7, 1]                              |         r1 = *((r7 + 1));
    0x00001102 cmp r1, 0x63                                  |         
                                                             |         if (r1 != 0x63) {
    0x00001104 bne.w 0x1368                                  |             goto label_26;
                                                             |         }
    0x00001108 ldrb r1, [r7, 2]                              |         r1 = *((r7 + 2));
    0x0000110a cmp r1, 0                                     |         
                                                             |         if (r1 != 0) {
    0x0000110c bne.w 0x1368                                  |             goto label_26;
                                                             |         }
                                                             | label_1:
    0x00001110 movs r3, 1                                    |         r3 = 1;
    0x00001112 str r3, [sp, 0x28]                            |         *(arg_28h) = r3;
                                                             | label_2:
    0x00001114 adds r6, 1                                    |         r6++;
    0x00001116 cmp r4, r6                                    |         
                                                             |         if (r4 == r6) {
    0x00001118 beq 0x1170                                    |             goto label_27;
                                                             |         }
                                                             | label_0:
    0x0000111a mov r5, r7                                    |         r5 = r7;
    0x0000111c ldr r7, [r8, 4]!                              |         r7 = *((r8 += 4));
    0x00001120 mov r1, sb                                    |         r1 = sb;
    0x00001122 mov r0, r7                                    |         r0 = r7;
    0x00001124 blx 0x1050                                    |         r0 = strcmp (r0, r1);
    0x00001128 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000112a beq.w 0x17b8                                  |             goto label_28;
                                                             |         }
    0x0000112e ldrb.w fp, [r7]                               |         fp = *(r7);
    0x00001132 cmp.w fp, 0x2d                                |         
    0x00001134 lsrs r5, r5, 0x1c                             |         r5 >>= 0x1c;
                                                             |         if (r5 == r5) {
    0x00001136 bne 0x115a                                    |             
    0x00001138 ldrb r1, [r7, 1]                              |             r1 = *((r7 + 1));
    0x0000113a cmp r1, 0x68                                  |             
                                                             |             if (r1 == 0x68) {
    0x0000113c bne 0x1146                                    |                 
    0x0000113e ldrb r1, [r7, 2]                              |                 r1 = *((r7 + 2));
    0x00001140 cmp r1, 0                                     |                 
                                                             |                 if (r1 == 0) {
    0x00001142 beq.w 0x17b8                                  |                     goto label_28;
                                                             |                 }
                                                             |             }
    0x00001146 cmp.w fp, 0x2d                                |             
                                                             |             if (fp != 0x2d) {
    0x0000114a bne 0x115a                                    |                 goto label_29;
                                                             |             }
    0x0000114c ldrb r1, [r7, 1]                              |             r1 = *((r7 + 1));
    0x0000114e cmp r1, 0x3f                                  |             
                                                             |             if (r1 != 0x3f) {
    0x00001150 bne 0x115a                                    |                 goto label_29;
                                                             |             }
    0x00001152 ldrb r1, [r7, 2]                              |             r1 = *((r7 + 2));
    0x00001154 cmp r1, 0                                     |             
                                                             |             if (r1 == 0) {
    0x00001156 beq.w 0x17b8                                  |                 goto label_28;
                                                             |             }
                                                             |         }
                                                             | label_29:
    0x0000115a mov r1, sl                                    |         r1 = sl;
    0x0000115c mov r0, r7                                    |         r0 = r7;
    0x0000115e blx 0x1050                                    |         r0 = strcmp (r0, r1);
    0x00001162 cmp r0, 0                                     |         
    0x00001164 bne 0x10f8                                    |         
                                                             |     } while (r0 != 0);
    0x00001166 adds r6, 1                                    |     r6++;
    0x00001168 movs r3, 1                                    |     r3 = 1;
    0x0000116a cmp r4, r6                                    |     
    0x0000116c str r3, [sp, 0x24]                            |     *(arg_24h) = r3;
                                                             |     if (r4 != r6) {
    0x0000116e bne 0x111a                                    |         goto label_0;
                                                             |     }
                                                             | label_27:
    0x00001170 movs r3, 0                                    |     r3 = 0;
    0x00001172 strd r3, r3, [sp, 0x58]                       |     __asm ("strd r3, r3, [sp, 0x58]");
                                                             | label_10:
    0x00001176 ldr r3, [sp, 0x48]                            |     r3 = *(arg_48h);
    0x00001178 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000117a bne.w 0x1bec                                  |         goto label_30;
                                                             |     }
    0x0000117e ldr r3, [sp, 0x24]                            |     r3 = *(arg_24h);
    0x00001180 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00001182 bne.w 0x143c                                  |         goto label_31;
                                                             |     }
    0x00001186 ldr r3, [sp, 0x30]                            |     r3 = *(arg_30h);
    0x00001188 str r3, [sp, 0x24]                            |     *(arg_24h) = r3;
                                                             | label_3:
    0x0000118a ldr r3, [sp, 0x44]                            |     r3 = *(arg_44h);
    0x0000118c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000118e bne.w 0x1be2                                  |         goto label_32;
                                                             |     }
    0x00001192 ldr r3, [sp, 0x4c]                            |     r3 = *(arg_4ch);
    0x00001194 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00001196 bne.w 0x1bf4                                  |         goto label_33;
                                                             |     }
    0x0000119a add.w r8, sp, 0x70                            |     r8 += arg_70h;
    0x0000119e mov r0, r8                                    |     r0 = r8;
    0x000011a0 blx 0x1044                                    |     r0 = pipe ();
    0x000011a4 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x000011a6 blt.w 0x1eea                                  |         goto label_34;
                                                             |     }
    0x000011aa add r7, sp, 0x80                              |     r7 += arg_80h;
    0x000011ac mov r0, r7                                    |     r0 = r7;
    0x000011ae blx 0x1044                                    |     r0 = pipe ();
    0x000011b2 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x000011b4 blt.w 0x1eea                                  |         goto label_34;
                                                             |     }
    0x000011b8 add.w sb, sp, 0x78                            |     sb += arg_78h;
    0x000011bc mov r0, sb                                    |     r0 = sb;
    0x000011be blx 0x1044                                    |     r0 = pipe ();
    0x000011c2 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x000011c4 blt.w 0x1eea                                  |         goto label_34;
                                                             |     }
    0x000011c8 ldr r5, [sp, 0x38]                            |     r5 = *(arg_38h);
    0x000011ca ldr.w r3, [pc, 0xb34]                         |     r3 = *(0x1d02);
    0x000011ce ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000011d0 ldr r0, [r3]                                  |     r0 = *(0x1d02);
    0x000011d2 str r3, [sp, 0x30]                            |     *(arg_30h) = r3;
    0x000011d4 blx 0xf0c                                     |     fflush (r0);
    0x000011d8 ldr.w r3, [pc, 0xb28]                         |     r3 = *(0x1d04);
    0x000011dc ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000011de ldr r0, [r3]                                  |     r0 = *(0x1d04);
    0x000011e0 str r3, [sp, 0x2c]                            |     *(stream) = r3;
    0x000011e2 blx 0xf0c                                     |     r0 = fflush (r0);
    0x000011e6 blx 0x1008                                    |     r0 = fork ();
    0x000011ea subs.w sl, r0, 0                              |     sl = r0 - 0;
                                                             |     if (sl < r0) {
    0x000011ee blt.w 0x1ac8                                  |         goto label_35;
                                                             |     }
                                                             |     if (sl != r0) {
    0x000011f2 bne.w 0x1486                                  |         goto label_36;
                                                             |     }
    0x000011f6 ldr r3, [sp, 0x3c]                            |     r3 = *(arg_3ch);
    0x000011f8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000011fa bne.w 0x16d0                                  |         goto label_37;
                                                             |     }
                                                             | label_5:
    0x000011fe ldr r3, [sp, 0x30]                            |     r3 = *(arg_30h);
    0x00001200 ldr r0, [r3]                                  |     r0 = *(r3);
    0x00001202 blx 0xf0c                                     |     fflush (r0);
    0x00001206 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001208 ldr r0, [r3]                                  |     r0 = *(r3);
    0x0000120a blx 0xf0c                                     |     r0 = fflush (r0);
    0x0000120e blx 0x1008                                    |     r0 = fork ();
    0x00001212 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x00001214 blt.w 0x1b0a                                  |         goto label_38;
                                                             |     }
    0x00001218 ldr.w r0, [r8]                                |     r0 = *(r8);
                                                             |     if (r4 != r0) {
    0x0000121c bne.w 0x1b20                                  |         goto label_39;
                                                             |     }
    0x00001220 blx 0xf9c                                     |     close (r0);
    0x00001224 ldr r0, [r7]                                  |     r0 = *(r7);
    0x00001226 add.w sl, sp, 0x294                           |     sl += arg_294h;
    0x00001228 ldrb r5, [r4, 8]                              |     r5 = *((r4 + 8));
    0x0000122a blx 0xf9c                                     |     close (r0);
    0x0000122e ldr.w r0, [sb]                                |     r0 = *(sb);
    0x00001232 add.w fp, sp, 0x2d4                           |     
    0x00001236 blx 0xf9c                                     |     close (r0);
    0x0000123a ldr.w r4, [pc, 0xacc]                         |     r4 = *(0x00001d08);
    0x0000123e ldr.w r0, [sb, 4]                             |     r0 = *((sb + 4));
    0x00001242 blx 0xf9c                                     |     close (r0);
    0x00001246 ldr.w r3, [r8, 4]                             |     r3 = *((r8 + 4));
    0x0000124a add r4, pc                                    |     r4 += pc;
    0x0000124c movs r2, 0x40                                 |     r2 = 0x40;
    0x0000124e movs r1, 1                                    |     r1 = 1;
    0x00001250 mov r0, sl                                    |     r0 = sl;
    0x00001252 str r3, [sp]                                  |     *(sp) = r3;
    0x00001254 mov r3, r4                                    |     r3 = r4;
    0x00001256 blx 0x1014                                    |     sprintf_chk ()
    0x0000125a ldr r2, [r7, 4]                               |     r2 = *((r7 + 4));
    0x0000125c mov r3, r4                                    |     r3 = r4;
    0x0000125e movs r1, 1                                    |     r1 = 1;
    0x00001260 mov r0, fp                                    |     r0 = fp;
    0x00001262 str r2, [sp]                                  |     *(sp) = r2;
    0x00001264 movs r2, 0x40                                 |     r2 = 0x40;
    0x00001266 blx 0x1014                                    |     sprintf_chk ()
    0x0000126a blx 0xf84                                     |     dbus_fd_set_all_close_on_exec ();
    0x0000126e ldr r0, [r7, 4]                               |     r0 = *((r7 + 4));
    0x00001270 blx 0xf48                                     |     dbus_fd_clear_close_on_exec ();
    0x00001274 ldr.w r0, [r8, 4]                             |     r0 = *((r8 + 4));
    0x00001278 blx 0xf48                                     |     dbus_fd_clear_close_on_exec ();
    0x0000127c ldr.w r0, [pc, 0xa8c]                         |     
    0x00001280 add r0, pc                                    |     r0 = 0x2f90;
    0x00001282 blx 0xe7c                                     |     r0 = getenv (r0);
    0x00001286 mov r5, r0                                    |     r5 = r0;
    0x00001288 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000128a beq.w 0x199a                                  |         goto label_40;
                                                             |     }
    0x0000128e ldr r3, [sp, 0x34]                            |     r3 = *(arg_34h);
    0x00001290 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00001292 bne.w 0x1f40                                  |         goto label_41;
                                                             |     }
    0x00001296 ldr.w r4, [pc, 0xa78]                         |     r4 = *(0x00001d10);
    0x0000129a add r4, pc                                    |     r4 += pc;
    0x0000129c mov r0, r4                                    |     r0 = r4;
    0x0000129e blx 0xe7c                                     |     getenv (r0);
    0x000012a2 str r0, [sp, 0x34]                            |     *(arg_34h) = r0;
    0x000012a4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000012a6 beq.w 0x1f50                                  |         goto label_42;
                                                             |     }
    0x000012aa mov r0, r4                                    |     r0 = r4;
    0x000012ac blx 0xe7c                                     |     r0 = getenv (r0);
    0x000012b0 mov r6, r0                                    |     r6 = r0;
    0x000012b2 blx 0xf24                                     |     r0 = strlen (r0);
    0x000012b6 mov r4, r0                                    |     r4 = r0;
    0x000012b8 adds r0, 0x21                                 |     r0 += 0x21;
    0x000012ba blx 0xfb4                                     |     malloc (r0);
    0x000012be str r0, [sp, 0x34]                            |     *(arg_34h) = r0;
    0x000012c0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000012c2 beq.w 0x1702                                  |         goto label_43;
                                                             |     }
    0x000012c6 mov r2, r4                                    |     r2 = r4;
    0x000012c8 ldr.w r7, [pc, 0xa48]                         |     
    0x000012cc mov r1, r6                                    |     r1 = r6;
    0x000012ce blx 0xf3c                                     |     memcpy (r0, r1, r2);
    0x000012d2 ldr r3, [sp, 0x34]                            |     r3 = *(arg_34h);
    0x000012d4 add r7, pc                                    |     r7 = 0x2fec;
    0x000012d6 add.w ip, r7, 0x20                            |     
    0x000012da add r4, r3                                    |     r4 += r3;
                                                             |     do {
    0x000012dc mov r6, r7                                    |         r6 = r7;
    0x000012de adds r4, 0x10                                 |         r4 += 0x10;
    0x000012e0 ldm r6!, {r0, r1, r2, r3}                     |         r0 = *(r6!);
                                                             |         r1 = *((r6! + 4));
                                                             |         r2 = *((r6! + 8));
                                                             |         r3 = *((r6! + 12));
    0x000012e2 adds r7, 0x10                                 |         r7 += 0x10;
    0x000012e4 cmp r6, ip                                    |         
    0x000012e6 str r0, [r4, -0x10]                           |         *((r4 - 0x10)) = r0;
    0x000012ea str r1, [r4, -0xc]                            |         *((r4 - 0xc)) = r1;
    0x000012ee str r2, [r4, -0x8]                            |         *((r4 - 0x8)) = r2;
    0x000012f2 str r3, [r4, -0x4]                            |         *((r4 - 0x4)) = r3;
    0x000012f6 bne 0x12dc                                    |         
                                                             |     } while (r6 != ip);
    0x000012f8 ldrb r3, [r7]                                 |     r3 = *(r7);
    0x000012fa strb r3, [r4]                                 |     *(r4) = r3;
    0x000012fc ldr r3, [sp, 0x3c]                            |     r3 = *(arg_3ch);
    0x000012fe cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00001300 beq.w 0x1478                                  |         goto label_44;
                                                             |     }
    0x00001304 ldr.w r2, [pc, 0xa10]                         |     
    0x00001308 ldr.w r3, [pc, 0xa10]                         |     r3 = *(0x00001d1c);
    0x0000130c add r2, pc                                    |     r2 = 0x3028;
    0x0000130e add r3, pc                                    |     r3 += pc;
                                                             | label_4:
    0x00001310 ldr r1, [sp, 0x34]                            |     r1 = *(arg_34h);
    0x00001312 movs r0, 0                                    |     r0 = 0;
    0x00001314 str r0, [sp, 0x18]                            |     *(arg_18h) = r0;
    0x00001316 mov r0, r5                                    |     r0 = r5;
    0x00001318 str.w fp, [sp, 0xc]                           |     __asm ("str.w fp, [arg_ch]");
    0x0000131c strd r3, r1, [sp, 0x10]                       |     __asm ("strd r3, r1, [sp, 0x10]");
    0x00001320 ldr.w r3, [pc, 0x9fc]                         |     
    0x00001324 ldr.w r1, [pc, 0x9fc]                         |     
    0x00001328 str.w sl, [sp, 4]                             |     __asm ("str.w sl, [var_4h]");
    0x0000132c add r3, pc                                    |     
    0x0000132e str r3, [sp]                                  |     *(sp) = r3;
    0x00001330 add r1, pc                                    |     r1 = 0x3058;
    0x00001332 ldr.w r3, [pc, 0x9f4]                         |     r3 = *(0x00001d28);
    0x00001336 str r1, [sp, 8]                               |     *(arg_8h) = r1;
    0x00001338 mov r1, r5                                    |     r1 = r5;
    0x0000133a add r3, pc                                    |     r3 = 0x438e;
    0x0000133c blx 0xf00                                     |     execl ();
    0x00001340 blx 0x1068                                    |     errno_location ();
    0x00001344 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001346 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001348 ldr r6, [r3]                                  |     r6 = *(0x438e);
    0x0000134a blx 0xe4c                                     |     strerror (r0);
    0x0000134e ldr.w r2, [pc, 0x9dc]                         |     
    0x00001350 cmp r1, 0xdc                                  |     
    0x00001352 mov r4, r0                                    |     r4 = r0;
    0x00001354 mov r3, r5                                    |     r3 = r5;
    0x00001356 movs r1, 1                                    |     r1 = 1;
    0x00001358 mov r0, r6                                    |     r0 = r6;
    0x0000135a str r4, [sp]                                  |     *(sp) = r4;
    0x0000135c add r2, pc                                    |     r2 = 0x308e;
    0x0000135e blx 0xfe4                                     |     fprintf_chk ();
    0x00001362 movs r0, 1                                    |     r0 = 1;
    0x00001364 blx 0x105c                                    |     exit (r0);
                                                             | label_26:
    0x00001368 ldr r1, [sp, 0x2c]                            |     r1 = *(stream);
    0x0000136a mov r0, r7                                    |     r0 = r7;
    0x0000136c blx 0x1050                                    |     r0 = strcmp (r0, r1);
    0x00001370 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001372 beq.w 0x1110                                  |         goto label_1;
                                                             |     }
    0x00001374 add r6, sp, 0x334                             |     r6 = sp + 0x334;
    0x00001376 cmp.w fp, 0x2d                                |     
                                                             |     if (fp != 0x2d) {
    0x0000137a bne 0x138c                                    |         goto label_45;
                                                             |     }
    0x0000137c ldrb r2, [r7, 1]                              |     r2 = *((r7 + 1));
    0x0000137e cmp r2, 0x73                                  |     
                                                             |     if (r2 != 0x73) {
    0x00001380 bne 0x138c                                    |         goto label_45;
                                                             |     }
    0x00001382 ldrb r2, [r7, 2]                              |     r2 = *((r7 + 2));
    0x00001384 cbnz r2, 0x138c                               |     
                                                             |     while (r0 == 0) {
    0x00001386 movs r3, 1                                    |         r3 = 1;
    0x00001388 str r3, [sp, 0x30]                            |         *(arg_30h) = r3;
    0x0000138a b 0x1114                                      |         goto label_2;
                                                             | label_45:
    0x0000138c ldr.w r1, [pc, 0x9a0]                         |         r1 = *(0x00001d30);
    0x00001390 mov r0, r7                                    |         r0 = r7;
    0x00001392 add r1, pc                                    |         r1 += pc;
    0x00001394 blx 0x1050                                    |         r0 = strcmp (r0, r1);
    0x00001398 cmp r0, 0                                     |         
    0x0000139a beq 0x1386                                    |         
                                                             |     }
    0x0000139c ldr.w r1, [pc, 0x994]                         |     r1 = *(0x00001d34);
    0x000013a0 mov r0, r7                                    |     r0 = r7;
    0x000013a2 add r1, pc                                    |     r1 += pc;
    0x000013a4 blx 0x1050                                    |     r0 = strcmp (r0, r1);
                                                             |     if (r0 != 0) {
    0x000013a8 cbz r0, 0x13d0                                |         
    0x000013aa ldr.w r1, [pc, 0x98c]                         |         
    0x000013ae mov r0, r7                                    |         r0 = r7;
    0x000013b0 add r1, pc                                    |         r1 = 0x30ee;
    0x000013b2 blx 0x1050                                    |         r0 = strcmp (r0, r1);
    0x000013b6 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000013b8 beq.w 0x1f1e                                  |             goto label_46;
                                                             |         }
    0x000013bc ldr.w r1, [pc, 0x97c]                         |         r1 = *(0x00001d3c);
    0x000013c0 mov r0, r7                                    |         r0 = r7;
    0x000013c2 add r1, pc                                    |         r1 += pc;
    0x000013c4 blx 0x1050                                    |         r0 = strcmp (r0, r1);
                                                             |         if (r0 != 0) {
    0x000013c8 cbnz r0, 0x13d6                               |             goto label_47;
                                                             |         }
    0x000013ca movs r3, 1                                    |         r3 = 1;
    0x000013cc str r3, [sp, 0x54]                            |         *(arg_54h) = r3;
    0x000013ce b 0x1114                                      |         goto label_2;
                                                             |     }
    0x000013d0 movs r3, 1                                    |     r3 = 1;
    0x000013d2 str r3, [sp, 0x50]                            |     *(arg_50h) = r3;
    0x000013d4 b 0x1114                                      |     goto label_2;
                                                             | label_47:
    0x000013d6 ldr.w r1, [pc, 0x968]                         |     
    0x000013da mov r0, r7                                    |     r0 = r7;
    0x000013dc add r1, pc                                    |     r1 = 0x3122;
    0x000013de blx 0x1050                                    |     r0 = strcmp (r0, r1);
    0x000013e2 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000013e4 beq.w 0x16b0                                  |         goto label_48;
                                                             |     }
    0x000013e8 ldr.w r1, [pc, 0x958]                         |     r1 = *(0x00001d44);
    0x000013ec mov r0, r7                                    |     r0 = r7;
    0x000013ee add r1, pc                                    |     r1 += pc;
    0x000013f0 blx 0x1050                                    |     r0 = strcmp (r0, r1);
    0x000013f4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000013f6 beq.w 0x171a                                  |         goto label_49;
                                                             |     }
    0x000013fa ldr.w r1, [pc, 0x94c]                         |     r1 = *(0x00001d48);
    0x000013fe movs r2, 0xd                                  |     r2 = 0xd;
    0x00001400 mov r0, r7                                    |     r0 = r7;
    0x00001402 add r1, pc                                    |     r1 += pc;
    0x00001404 blx 0x1020                                    |     r0 = strncmp (r0, r1, r2);
    0x00001408 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000140a beq.w 0x184a                                  |         goto label_50;
                                                             |     }
    0x0000140c strh r6, [r3, 0x10]                           |     *((r3 + 0x10)) = r6;
    0x0000140e cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00001410 beq.w 0x1768                                  |         goto label_51;
                                                             |     }
    0x00001414 ldr.w r1, [pc, 0x934]                         |     r1 = *(0x00001d4c);
    0x00001418 mov r0, r5                                    |     r0 = r5;
    0x0000141a add r1, pc                                    |     r1 += pc;
    0x0000141c blx 0x1050                                    |     r0 = strcmp (r0, r1);
    0x00001420 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00001422 bne.w 0x1768                                  |         goto label_51;
                                                             |     }
    0x00001426 ldr r3, [sp, 0x44]                            |     r3 = *(arg_44h);
    0x00001428 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000142a bne.w 0x1f36                                  |         goto label_52;
                                                             |     }
    0x0000142e mov r0, r7                                    |     r0 = r7;
    0x00001430 str r3, [sp, 0x48]                            |     *(arg_48h) = r3;
    0x00001432 bl 0x21c8                                     |     fcn_000021c8 (r0);
    0x00001436 movs r3, 1                                    |     r3 = 1;
    0x00001438 str r3, [sp, 0x44]                            |     *(arg_44h) = r3;
    0x0000143a b 0x1114                                      |     goto label_2;
                                                             | label_31:
    0x0000143c ldr.w r0, [pc, 0x910]                         |     
    0x00001440 add r0, pc                                    |     r0 = 0x3194;
    0x00001442 blx 0xe7c                                     |     r0 = getenv (r0);
    0x00001446 mov r7, r0                                    |     r7 = r0;
    0x00001448 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000144a beq.w 0x118a                                  |         goto label_3;
                                                             |     }
    0x0000144e blx 0xf24                                     |     strlen (r0);
    0x00001452 ldr.w r1, [pc, 0x900]                         |     
    0x00001456 subs r0, 3                                    |     r0 -= 3;
    0x00001458 movs r2, 3                                    |     r2 = 3;
    0x0000145a add r0, r7                                    |     r0 += r7;
    0x0000145c add r1, pc                                    |     r1 = 0x31b6;
    0x0000145e blx 0x1020                                    |     strncmp (r0, r1, r2);
    0x00001462 ldrd r2, r3, [sp, 0x24]                       |     __asm ("ldrd r2, r3, [arg_24h]");
    0x00001466 cmp r0, 0                                     |     
    0x00001468 it eq                                         |     
                                                             |     if (r0 != 0) {
    0x0000146a moveq r3, r2                                  |         r3 = r2;
                                                             |     }
    0x0000146c str r3, [sp, 0x28]                            |     *(arg_28h) = r3;
    0x0000146e ldr r3, [sp, 0x30]                            |     r3 = *(arg_30h);
    0x00001470 it ne                                         |     
                                                             |     if (r0 == 0) {
    0x00001472 movne r3, r2                                  |         r3 = r2;
                                                             |     }
    0x00001474 str r3, [sp, 0x24]                            |     *(arg_24h) = r3;
    0x00001476 b 0x118a                                      |     goto label_3;
                                                             | label_44:
    0x00001478 ldr.w r2, [pc, 0x8dc]                         |     
    0x0000147c ldr.w r3, [pc, 0x8dc]                         |     r3 = *(0x00001d5c);
    0x00001480 add r2, pc                                    |     r2 = 0x31dc;
    0x00001482 add r3, pc                                    |     r3 += pc;
    0x00001484 b 0x1310                                      |     goto label_4;
                                                             | label_36:
    0x00001486 ldr.w r0, [r8, 4]                             |     r0 = *((r8 + 4));
    0x0000148a blx 0xf9c                                     |     close (r0);
    0x0000148e ldr r0, [r7, 4]                               |     r0 = *((r7 + 4));
    0x00001490 blx 0xf9c                                     |     close (r0);
    0x00001494 ldr.w r0, [sb]                                |     r0 = *(sb);
    0x00001498 blx 0xf9c                                     |     close (r0);
    0x0000149c mov r0, sl                                    |     r0 = sl;
    0x0000149e bl 0x20c8                                     |     r0 = fcn_000020c8 (r0);
    0x000014a2 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x000014a4 blt.w 0x1f08                                  |         goto label_53;
                                                             |     }
    0x000014a8 add.w fp, sp, 0x2d4                           |     
    0x000014ac ldr r0, [r7]                                  |     r0 = *(r7);
    0x000014ae mov.w r2, 0x200                               |     r2 = 0x200;
    0x000014b2 mov r1, fp                                    |     r1 = fp;
    0x000014b4 bl 0x20ec                                     |     r0 = fcn_000020ec (r0, r1, r2);
    0x000014b8 mov sl, r0                                    |     sl = r0;
    0x000014ba cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000014bc bne.w 0x161a                                  |         goto label_54;
                                                             |     }
    0x000014c0 ldr r0, [r7]                                  |     r0 = *(r7);
    0x000014c2 add.w sl, sp, 0x294                           |     sl += arg_294h;
    0x000014c6 blx 0xf9c                                     |     close (r0);
    0x000014ca ldr.w r0, [r8]                                |     r0 = *(r8);
    0x000014ce movs r2, 0x40                                 |     r2 = 0x40;
    0x000014d0 mov r1, sl                                    |     r1 = sl;
    0x000014d2 bl 0x20ec                                     |     r0 = fcn_000020ec (r0, r1, r2);
    0x000014d6 mov r7, r0                                    |     r7 = r0;
    0x000014d8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000014da bne.w 0x163e                                  |         goto label_55;
                                                             |     }
    0x000014de add r1, sp, 0x64                              |     r1 += endptr;
    0x000014e0 mov r2, r0                                    |     r2 = r0;
    0x000014e2 str r0, [r1]                                  |     *(r1) = r0;
    0x000014e4 mov r0, sl                                    |     r0 = sl;
    0x000014e6 str r1, [sp, 0x34]                            |     *(arg_34h) = r1;
    0x000014e8 blx 0xf54                                     |     strtol (r0, r1, r2);
    0x000014ec ldr r1, [sp, 0x34]                            |     r1 = *(arg_34h);
    0x000014ee mov r3, r0                                    |     r3 = r0;
    0x000014f0 ldr r2, [r1]                                  |     r2 = *(r1);
    0x000014f2 cmp r2, sl                                    |     
                                                             |     if (r2 == sl) {
    0x000014f4 beq.w 0x16b6                                  |         goto label_56;
                                                             |     }
    0x000014f8 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000014fa beq.w 0x16b6                                  |         goto label_56;
                                                             |     }
    0x000014fe ldr.w r2, [pc, 0x860]                         |     r2 = *(0x00001d60);
    0x00001502 add r7, sp, 0x6c                              |     r7 += arg_6ch;
    0x00001504 ldr.w r0, [r8]                                |     r0 = *(r8);
    0x00001508 str r3, [sp, 0x34]                            |     *(arg_34h) = r3;
    0x0000150a add r2, pc                                    |     r2 += pc;
    0x0000150c str r3, [r2]                                  |     *(r2) = r3;
    0x0000150e blx 0xf9c                                     |     close (r0);
    0x00001512 ldr r3, [sp, 0x34]                            |     r3 = *(arg_34h);
    0x00001514 movs r2, 4                                    |     r2 = 4;
    0x00001516 ldr.w r0, [sb, 4]                             |     r0 = *((sb + 4));
    0x00001518 movs r4, r0                                   |     r4 = r0;
    0x0000151a mov r1, r7                                    |     r1 = r7;
    0x0000151c str r3, [r7]                                  |     *(r7) = r3;
    0x0000151e bl 0x214c                                     |     fcn_0000214c (r0, r1, r2);
    0x00001522 ldr.w r0, [sb, 4]                             |     r0 = *((sb + 4));
    0x00001526 blx 0xf9c                                     |     close (r0);
    0x0000152a ldr r5, [sp, 0x58]                            |     r5 = *(arg_58h);
    0x0000152c ldr r3, [sp, 0x34]                            |     r3 = *(arg_34h);
    0x0000152e cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00001530 beq.w 0x17d6                                  |         goto label_57;
                                                             |     }
    0x00001534 ldr r3, [sp, 0x5c]                            |     r3 = *(arg_5ch);
    0x00001536 mov r0, fp                                    |     r0 = fp;
    0x00001538 subs r4, r4, r3                               |     r4 -= r3;
    0x0000153a blx 0xf24                                     |     r0 = strlen (r0);
    0x0000153e mov sl, r0                                    |     sl = r0;
    0x00001540 adds r0, 0x1a                                 |     r0 += 0x1a;
    0x00001542 blx 0xfb4                                     |     r0 = malloc (r0);
    0x00001546 mov r7, r0                                    |     r7 = r0;
    0x00001548 adds r0, r4, 2                                |     r0 = r4 + 2;
    0x0000154a lsls r0, r0, 2                                |     r0 <<= 2;
    0x0000154c blx 0xfb4                                     |     r0 = malloc (r0);
    0x00001550 mov r6, r0                                    |     r6 = r0;
    0x00001552 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00001554 beq.w 0x1ac0                                  |         goto label_58;
                                                             |     }
    0x00001558 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000155a beq.w 0x1ab8                                  |         goto label_59;
                                                             |     }
    0x0000155e mov r0, r5                                    |     r0 = r5;
    0x00001560 bl 0x2224                                     |     xstrdup ();
    0x00001564 str r0, [r6]                                  |     *(r6) = r0;
    0x00001566 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001568 beq.w 0x1880                                  |         goto label_60;
                                                             |     }
    0x0000156c cmp r4, 0                                     |     
                                                             |     if (r4 <= 0) {
    0x0000156e ble.w 0x1940                                  |         goto label_61;
                                                             |     }
    0x00001572 ldr r3, [sp, 0x5c]                            |     r3 = *(arg_5ch);
    0x00001574 mov sb, r6                                    |     sb = r6;
    0x00001576 mov.w r8, 1                                   |     r8 = 1;
    0x0000157a strd r7, r6, [sp, 0x24]                       |     __asm ("strd r7, r6, [sp, 0x24]");
    0x0000157e add.w r5, r3, -0x80000000                     |     r5 = r3 + -0x80000000;
    0x00001582 ldr r3, [sp, 0x40]                            |     r3 = *(arg_40h);
    0x00001584 subs r5, 1                                    |     r5--;
    0x00001586 add.w r5, r3, r5, lsl 2                       |     r5 = r3 + (r5 << 2);
                                                             |     do {
    0x0000158a ldr r6, [r5, 4]!                              |         r6 = *((r5 += 4));
    0x0000158e mov r0, r6                                    |         r0 = r6;
    0x00001590 blx 0xf24                                     |         r0 = strlen (r0);
    0x00001594 adds r7, r0, 1                                |         r7 = r0 + 1;
    0x00001596 mov r0, r7                                    |         r0 = r7;
    0x00001598 blx 0xfb4                                     |         malloc (r0);
    0x0000159c str r0, [sb, 4]!                              |         *((sb += 4)) = r0;
    0x000015a0 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000015a2 beq.w 0x1866                                  |             goto label_62;
                                                             |         }
    0x000015a6 mov r2, r7                                    |         r2 = r7;
    0x000015a8 mov r1, r6                                    |         r1 = r6;
    0x000015aa add.w r8, r8, 1                               |         r8++;
    0x000015ae blx 0xe70                                     |         strncpy (r0, r1, r2);
    0x000015b2 cmp r4, r8                                    |         
    0x000015b4 bge 0x158a                                    |         
                                                             |     } while (r4 >= r8);
    0x000015b6 ldrd r7, r6, [sp, 0x24]                       |     __asm ("ldrd r7, r6, [arg_24h]");
                                                             | label_12:
    0x000015ba ldr.w r5, [pc, 0x7a8]                         |     r5 = *(0x00001d64);
    0x000015be movs r3, 0                                    |     r3 = 0;
    0x000015c0 str.w r3, [r6, r8, lsl 2]                     |     __asm ("str.w r3, [r6, r8, lsl 2]");
    0x000015c4 mov r4, r7                                    |     r4 = r7;
    0x000015c6 add r5, pc                                    |     r5 += pc;
    0x000015c8 ldm r5!, {r0, r1, r2, r3}                     |     r0 = *(r5!);
                                                             |     r1 = *((r5! + 4));
                                                             |     r2 = *((r5! + 8));
                                                             |     r3 = *((r5! + 12));
    0x000015ca stm r4!, {r0, r1, r2, r3}                     |     *(r4!) = r0;
                                                             |     *((r4! + 4)) = r1;
                                                             |     *((r4! + 8)) = r2;
                                                             |     *((r4! + 12)) = r3;
    0x000015cc ldm.w r5, {r0, r1, r2}                        |     r0 = *(r5);
                                                             |     r1 = *((r5 + 4));
                                                             |     r2 = *((r5 + 8));
    0x000015d0 stm r4!, {r0, r1}                             |     *(r4!) = r0;
                                                             |     *((r4! + 4)) = r1;
    0x000015d2 mov r1, fp                                    |     r1 = fp;
    0x000015d4 strb r2, [r4]                                 |     *(r4) = r2;
    0x000015d6 add.w r0, r7, 0x19                            |     r0 = r7 + 0x19;
    0x000015da add.w r2, sl, 1                               |     r2 = sl + 1;
    0x000015de blx 0xf3c                                     |     memcpy (r0, r1, r2);
    0x000015e2 mov r0, r7                                    |     r0 = r7;
    0x000015e4 blx 0xf78                                     |     putenv ();
    0x000015e8 mov r1, r6                                    |     r1 = r6;
    0x000015ea ldr r6, [sp, 0x58]                            |     r6 = *(arg_58h);
    0x000015ec mov r0, r6                                    |     r0 = r6;
    0x000015ee blx 0xeac                                     |     execvp ();
    0x000015f2 blx 0x1068                                    |     errno_location ();
    0x000015f6 ldr r2, [sp, 0x2c]                            |     r2 = *(stream);
    0x000015f8 ldr r0, [r0]                                  |     r0 = *(r0);
    0x000015fa ldr r5, [r2]                                  |     r5 = *(r2);
    0x000015fc blx 0xe4c                                     |     strerror (r0);
    0x00001600 ldr.w r2, [pc, 0x764]                         |     r2 = *(0x00001d68);
    0x00001604 mov r4, r0                                    |     r4 = r0;
    0x00001606 add r2, pc                                    |     r2 += pc;
                                                             | label_6:
    0x00001608 mov r3, r6                                    |     r3 = r6;
                                                             |     do {
    0x0000160a movs r1, 1                                    |         r1 = 1;
    0x0000160c mov r0, r5                                    |         r0 = r5;
    0x0000160e str r4, [sp]                                  |         *(sp) = r4;
    0x00001610 blx 0xfe4                                     |         fprintf_chk ();
    0x00001614 movs r0, 1                                    |         r0 = 1;
    0x00001616 blx 0x105c                                    |         r0 = exit (r0);
                                                             | label_54:
    0x0000161a cmp r0, 1                                     |         
                                                             |         if (r0 == 1) {
    0x0000161c beq.w 0x1744                                  |             goto label_63;
                                                             |         }
    0x00001620 cmp r0, 2                                     |         
                                                             |         if (r0 != 2) {
    0x00001622 bne.w 0x1aea                                  |             goto label_64;
                                                             |         }
    0x00001626 ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x00001628 movs r2, 0x33                                 |         r2 = 0x33;
    0x0000162a ldr.w r0, [pc, 0x740]                         |         r0 = *(0x00001d6c);
    0x0000162e movs r1, 1                                    |         r1 = 1;
    0x00001630 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00001632 add r0, pc                                    |         r0 += pc;
    0x00001634 blx 0xfa8                                     |         fwrite (r0, r1, r2, r3);
    0x00001638 movs r0, 1                                    |         r0 = 1;
    0x0000163a blx 0x105c                                    |         r0 = exit (r0);
                                                             | label_55:
    0x0000163e cmp r0, 1                                     |         
                                                             |         if (r0 == 1) {
    0x00001640 beq 0x1720                                    |             goto label_65;
                                                             |         }
    0x00001642 cmp r0, 2                                     |         
                                                             |         if (r0 != 2) {
    0x00001644 bne.w 0x1afa                                  |             goto label_66;
                                                             |         }
    0x00001648 ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x0000164a movs r2, 0x20                                 |         r2 = 0x20;
    0x0000164c ldr.w r0, [pc, 0x720]                         |         
    0x00001650 movs r1, 1                                    |         r1 = 1;
    0x00001652 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00001654 add r0, pc                                    |         r0 = 0x33c8;
    0x00001656 blx 0xfa8                                     |         fwrite (r0, r1, r2, r3);
    0x0000165a movs r0, 1                                    |         r0 = 1;
    0x0000165c blx 0x105c                                    |         exit (r0);
    0x00001660 ldr.w r2, [pc, 0x6a0]                         |         r2 = *(0x1d04);
    0x00001664 ldr r3, [sp, 0x38]                            |         r3 = *(arg_38h);
    0x00001666 ldr r6, [r5]                                  |         r6 = *(r5);
    0x00001668 ldr r3, [r3, r2]                              |         r3 = *((r3 + r2));
    0x0000166a ldr r5, [r3]                                  |         r5 = *(r3);
    0x0000166c blx 0x1068                                    |         r0 = errno_location ();
    0x00001670 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00001672 blx 0xeb8                                     |         dbus_strerror ();
    0x00001676 ldr.w r2, [pc, 0x6fc]                         |         
    0x0000167a mov r4, r0                                    |         r4 = r0;
    0x0000167c mov r3, r6                                    |         r3 = r6;
    0x0000167e movs r1, 1                                    |         r1 = 1;
    0x00001680 mov r0, r5                                    |         r0 = r5;
    0x00001682 str r4, [sp]                                  |         *(sp) = r4;
    0x00001684 add r2, pc                                    |         
    0x00001686 blx 0xfe4                                     |         fprintf_chk ();
    0x0000168a ldr.w r2, [pc, 0x6ec]                         |         r2 = *(0x00001d78);
    0x0000168e ldr.w r3, [pc, 0x65c]                         |         r3 = *(0x1cee);
    0x00001692 add r2, pc                                    |         r2 = 0x4a94;
    0x00001694 ldr r3, [r2, r3]                              |         r3 = *(0x4a94);
    0x00001696 ldr r2, [r3]                                  |         r2 = *(0x4a94);
    0x00001698 ldr.w r3, [sp, 0x4d4]                         |         r3 = *(arg_4d4h);
    0x0000169c eors r2, r3                                   |         r2 ^= r3;
    0x0000169e mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x000016a2 bne.w 0x1f04                                  |             goto label_67;
                                                             |         }
    0x000016a6 movs r0, 1                                    |         r0 = 1;
    0x000016a8 addw sp, sp, 0x4dc                            |         __asm ("addw sp, sp, 0x4dc");
    0x000016ac pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_48:
    0x000016b0 movs r3, 1                                    |         r3 = 1;
    0x000016b2 str r3, [sp, 0x4c]                            |         *(arg_4ch) = r3;
    0x000016b4 b 0x1114                                      |         goto label_2;
                                                             | label_56:
    0x000016b6 blx 0x1068                                    |         errno_location ();
    0x000016ba ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x000016bc ldr r0, [r0]                                  |         r0 = *(r0);
    0x000016be ldr r5, [r3]                                  |         r5 = *(r3);
    0x000016c0 blx 0xe4c                                     |         strerror (r0);
    0x000016c4 ldr.w r2, [pc, 0x6b4]                         |         
    0x000016c8 mov r4, r0                                    |         r4 = r0;
    0x000016ca mov r3, sl                                    |         r3 = sl;
    0x000016cc add r2, pc                                    |         r2 = 0x344c;
    0x000016ce b 0x160a                                      |         
                                                             |     } while (1);
                                                             | label_37:
    0x000016d0 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x000016d2 add r4, sp, 0x6c                              |     r4 += arg_6ch;
    0x000016d4 ldr r0, [r3]                                  |     r0 = *(r3);
    0x000016d6 blx 0xf0c                                     |     fflush (r0);
    0x000016da mov r1, r4                                    |     r1 = r4;
    0x000016dc movs r0, 4                                    |     r0 = 4;
    0x000016de blx 0xf30                                     |     r0 = dbus_ensure_standard_fds ();
    0x000016e2 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000016e4 bne.w 0x11fe                                  |         goto label_5;
                                                             |     }
    0x000016e8 blx 0x1068                                    |     errno_location ();
    0x000016ec ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x000016ee ldr r0, [r0]                                  |     r0 = *(r0);
    0x000016f0 ldr r6, [sp, 0x6c]                            |     r6 = *(arg_6ch);
    0x000016f2 ldr r5, [r3]                                  |     r5 = *(r3);
    0x000016f4 blx 0xe4c                                     |     strerror (r0);
    0x000016f8 ldr.w r2, [pc, 0x684]                         |     r2 = *(0x00001d80);
    0x000016fc mov r4, r0                                    |     r4 = r0;
    0x000016fe add r2, pc                                    |     r2 += pc;
    0x00001700 b 0x1608                                      |     goto label_6;
                                                             | label_43:
    0x00001702 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001704 ldr.w r0, [pc, 0x67c]                         |     r0 = *(0x00001d84);
    0x00001708 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0000170a add r0, pc                                    |     r0 += pc;
                                                             | label_7:
    0x0000170c movs r2, 0xe                                  |     r2 = 0xe;
    0x0000170e movs r1, 1                                    |     r1 = 1;
    0x00001710 blx 0xfa8                                     |     fwrite (r0, r1, r2, r3);
    0x00001714 movs r0, 1                                    |     r0 = 1;
    0x00001716 blx 0x105c                                    |     exit (r0);
                                                             | label_49:
    0x0000171a movs r3, 1                                    |     r3 = 1;
    0x0000171c str r3, [sp, 0x3c]                            |     *(arg_3ch) = r3;
    0x0000171e b 0x1114                                      |     goto label_2;
                                                             | label_65:
    0x00001720 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001722 ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001724 blx 0x1068                                    |     r0 = errno_location ();
    0x00001728 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000172a blx 0xe4c                                     |     strerror (r0);
    0x0000172e ldr.w r2, [pc, 0x658]                         |     
    0x00001732 mov r3, r0                                    |     r3 = r0;
    0x00001734 mov r1, r7                                    |     r1 = r7;
    0x00001736 mov r0, r4                                    |     r0 = r4;
    0x00001738 add r2, pc                                    |     r2 = 0x34c6;
    0x0000173a blx 0xfe4                                     |     fprintf_chk ();
    0x0000173e mov r0, r7                                    |     r0 = r7;
    0x00001740 blx 0x105c                                    |     exit (r0);
                                                             | label_63:
    0x00001744 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001746 ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001748 blx 0x1068                                    |     r0 = errno_location ();
    0x0000174c ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000174e blx 0xe4c                                     |     strerror (r0);
    0x00001752 ldr.w r2, [pc, 0x638]                         |     
    0x00001756 mov r3, r0                                    |     r3 = r0;
    0x00001758 mov r1, sl                                    |     r1 = sl;
    0x0000175a mov r0, r4                                    |     r0 = r4;
    0x0000175c add r2, pc                                    |     r2 = 0x34ee;
    0x0000175e blx 0xfe4                                     |     fprintf_chk ();
    0x00001762 mov r0, sl                                    |     r0 = sl;
    0x00001764 blx 0x105c                                    |     exit (r0);
                                                             | label_51:
    0x00001768 ldr.w r1, [pc, 0x624]                         |     r1 = *(0x00001d90);
    0x0000176c mov r0, r7                                    |     r0 = r7;
    0x0000176e add r1, pc                                    |     r1 += pc;
    0x00001770 blx 0x1050                                    |     r0 = strcmp (r0, r1);
    0x00001774 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00001776 beq 0x1844                                    |         
    0x00001778 ldr.w r1, [pc, 0x618]                         |         r1 = sym.imp.malloc;
    0x0000177c movs r2, 0xe                                  |         r2 = 0xe;
    0x0000177e mov r0, r7                                    |         r0 = r7;
    0x00001780 add r1, pc                                    |         r1 += pc;
    0x00001782 blx 0x1020                                    |         r0 = strncmp (r0, r1, r2);
    0x00001786 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00001788 beq.w 0x1946                                  |             goto label_68;
                                                             |         }
    0x0000178c cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x0000178e beq.w 0x18f8                                  |             goto label_69;
                                                             |         }
    0x00001792 ldr.w r1, [pc, 0x604]                         |         
    0x00001796 mov r0, r5                                    |         r0 = r5;
    0x00001798 add r1, pc                                    |         r1 = 0x3536;
    0x0000179a blx 0x1050                                    |         r0 = strcmp (r0, r1);
    0x0000179e cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000017a0 bne.w 0x18f8                                  |             goto label_69;
                                                             |         }
    0x000017a4 ldr r3, [sp, 0x34]                            |         r3 = *(arg_34h);
    0x000017a6 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000017a8 bne.w 0x1a9e                                  |             goto label_70;
                                                             |         }
    0x000017ac str r0, [sp, 0x48]                            |         *(arg_48h) = r0;
    0x000017ae mov r0, r7                                    |         r0 = r7;
    0x000017b0 bl 0x2224                                     |         xstrdup ();
    0x000017b4 str r0, [sp, 0x34]                            |         *(arg_34h) = r0;
    0x000017b6 b 0x1114                                      |         goto label_2;
                                                             | label_28:
    0x000017b8 ldr r4, [sp, 0x38]                            |         r4 = *(arg_38h);
    0x000017ba movs r2, 0xdd                                 |         r2 = 0xdd;
    0x000017bc ldr.w r3, [pc, 0x544]                         |         
    0x000017c0 movs r1, 1                                    |         r1 = 1;
    0x000017c2 ldr.w r0, [pc, 0x5d8]                         |         
    0x000017c6 ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x000017c8 add r0, pc                                    |         r0 = 0x356a;
    0x000017ca ldr r3, [r3]                                  |         r3 = *(0x1d04);
    0x000017cc blx 0xfa8                                     |         fwrite (r0, r1, r2, r3);
    0x000017d0 movs r0, 0                                    |         r0 = 0;
    0x000017d2 blx 0x105c                                    |         exit (r0);
                                                             | label_57:
    0x000017d6 str r3, [sp, 0x68]                            |         *(arg_68h) = r3;
    0x000017d8 add r4, sp, 0x68                              |         r4 += arg_68h;
    0x000017da ldr r3, [sp, 0x50]                            |         r3 = *(arg_50h);
    0x000017dc ldr r2, [sp, 0x58]                            |         r2 = *(arg_58h);
    0x000017de str r2, [r7]                                  |         *(r7) = r2;
    0x000017e0 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000017e2 bne.w 0x191a                                  |             goto label_71;
                                                             |         }
    0x000017e6 ldr r3, [sp, 0x28]                            |         r3 = *(arg_28h);
    0x000017e8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000017ea bne 0x18d0                                    |             goto label_72;
                                                             |         }
    0x000017ec ldr r3, [sp, 0x24]                            |         r3 = *(arg_24h);
    0x000017ee mov r2, fp                                    |         r2 = fp;
    0x000017f0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000017f2 beq 0x18aa                                    |             goto label_73;
                                                             |         }
    0x000017f4 ldr.w r1, [pc, 0x5a8]                         |         r1 = *(0x00001da0);
    0x000017f8 movs r0, 1                                    |         r0 = 1;
    0x000017fa add r1, pc                                    |         r1 += pc;
    0x000017fc blx 0xe88                                     |         printf_chk ();
    0x00001800 ldr.w r0, [pc, 0x5a0]                         |         
    0x00001804 add r0, pc                                    |         r0 = 0x35ac;
    0x00001806 blx 0xffc                                     |         puts (r0);
    0x0000180a ldr r2, [r4]                                  |         r2 = *(r4);
    0x0000180c cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x0000180e bne.w 0x197e                                  |             goto label_74;
                                                             |         }
                                                             | label_14:
    0x00001812 ldr r2, [r7]                                  |         r2 = *(r7);
    0x00001814 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00001816 bne.w 0x1962                                  |             goto label_75;
                                                             |         }
                                                             | label_8:
    0x0000181a ldr r3, [sp, 0x30]                            |         r3 = *(arg_30h);
    0x0000181c ldr r0, [r3]                                  |         r0 = *(r3);
    0x0000181e blx 0xf0c                                     |         fflush (r0);
                                                             | label_11:
    0x00001822 ldr r3, [sp, 0x30]                            |         r3 = *(arg_30h);
    0x00001824 ldr r0, [r3]                                  |         r0 = *(r3);
    0x00001826 blx 0xf0c                                     |         fflush (r0);
    0x0000182a ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x0000182c ldr r0, [r3]                                  |         r0 = *(r3);
    0x0000182e blx 0xf0c                                     |         fflush (r0);
    0x00001832 movs r0, 1                                    |         r0 = 1;
    0x00001834 blx 0xf9c                                     |         close (r0);
    0x00001838 movs r0, 2                                    |         r0 = 2;
    0x0000183a blx 0xf9c                                     |         close (r0);
                                                             | label_20:
    0x0000183e movs r0, 0                                    |         r0 = 0;
    0x00001840 blx 0x105c                                    |         exit (r0);
                                                             |     }
                                                             | label_9:
    0x00001844 movs r3, 1                                    |     r3 = 1;
    0x00001846 str r3, [sp, 0x48]                            |     *(arg_48h) = r3;
    0x00001848 b 0x1114                                      |     goto label_2;
                                                             | label_50:
    0x0000184a ldr r3, [sp, 0x44]                            |     r3 = *(arg_44h);
    0x0000184c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000184e bne.w 0x1f36                                  |         goto label_52;
                                                             |     }
    0x00001852 movs r1, 0x3d                                 |     r1 = 0x3d;
    0x00001854 mov r0, r7                                    |     r0 = r7;
    0x00001856 blx 0xe94                                     |     strchr (r0, r1);
    0x0000185a adds r0, 1                                    |     r0++;
    0x0000185c bl 0x21c8                                     |     fcn_000021c8 (r0);
    0x00001860 movs r3, 1                                    |     r3 = 1;
    0x00001862 str r3, [sp, 0x44]                            |     *(arg_44h) = r3;
    0x00001864 b 0x1114                                      |     goto label_2;
                                                             | label_62:
    0x00001866 ldrd r7, r6, [sp, 0x24]                       |     __asm ("ldrd r7, r6, [arg_24h]");
    0x0000186a add.w r8, r6, r8, lsl 2                       |     r8 = r6 + (r8 << 2);
    0x0000186e b 0x1878                                      |     
                                                             |     while (r6 != r8) {
    0x00001870 ldr.w r0, [r8]                                |         r0 = *(r8);
    0x00001874 blx 0xedc                                     |         free (r0);
    0x00001878 sub.w r8, r8, 4                               |         r8 -= 4;
    0x0000187c cmp r6, r8                                    |         
    0x0000187e bne 0x1870                                    |         
                                                             |     }
                                                             | label_60:
    0x00001880 mov r0, r7                                    |     r0 = r7;
    0x00001882 blx 0xedc                                     |     free (r0);
                                                             | label_17:
    0x00001886 mov r0, r6                                    |     r0 = r6;
    0x00001888 blx 0xedc                                     |     free (r0);
                                                             | label_18:
    0x0000188c ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x0000188e ldr.w r0, [pc, 0x518]                         |     
    0x00001892 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00001894 add r0, pc                                    |     r0 = 0x3642;
    0x00001896 b 0x170c                                      |     goto label_7;
                                                             | label_73:
    0x000018aa ldr.w r1, [pc, 0x500]                         |     
    0x000018ae movs r0, 1                                    |     r0 = 1;
    0x000018b0 add r1, pc                                    |     r1 = 0x3662;
    0x000018b2 blx 0xe88                                     |     printf_chk ();
    0x000018b6 ldr r2, [r4]                                  |     r2 = *(r4);
    0x000018b8 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x000018ba bne 0x198c                                    |         goto label_76;
                                                             |     }
                                                             | label_15:
    0x000018bc ldr r2, [r7]                                  |     r2 = *(r7);
    0x000018be cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000018c0 beq 0x181a                                    |         goto label_8;
                                                             |     }
    0x000018c2 ldr.w r1, [pc, 0x4ec]                         |     
    0x000018c6 movs r0, 1                                    |     r0 = 1;
    0x000018c8 add r1, pc                                    |     r1 = 0x367e;
    0x000018ca blx 0xe88                                     |     printf_chk ();
    0x000018ce b 0x181a                                      |     goto label_8;
                                                             | label_72:
    0x000018d0 ldr.w r1, [pc, 0x4e0]                         |     
    0x000018d4 mov r2, fp                                    |     r2 = fp;
    0x000018d6 movs r0, 1                                    |     r0 = 1;
    0x000018d8 add r1, pc                                    |     r1 = 0x3690;
    0x000018da blx 0xe88                                     |     printf_chk ();
    0x000018de ldr r2, [r4]                                  |     r2 = *(r4);
    0x000018e0 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x000018e2 bne 0x1970                                    |         goto label_77;
                                                             |     }
                                                             | label_13:
    0x000018e4 ldr r2, [r7]                                  |     r2 = *(r7);
    0x000018e6 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000018e8 beq 0x181a                                    |         goto label_8;
                                                             |     }
    0x000018ea ldr.w r1, [pc, 0x4cc]                         |     
    0x000018ee movs r0, 1                                    |     r0 = 1;
    0x000018f0 add r1, pc                                    |     r1 = 0x36ae;
    0x000018f2 blx 0xe88                                     |     printf_chk ();
    0x000018f6 b 0x181a                                      |     goto label_8;
                                                             | label_69:
    0x000018f8 ldr.w r1, [pc, 0x4c0]                         |     r1 = *(0x00001dbc);
    0x000018fc mov r0, r7                                    |     r0 = r7;
    0x000018fe add r1, pc                                    |     r1 += pc;
    0x00001900 blx 0x1050                                    |     r0 = strcmp (r0, r1);
    0x00001904 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001906 beq 0x1844                                    |         goto label_9;
                                                             |     }
    0x00001908 ldrb r3, [r7]                                 |     r3 = *(r7);
    0x0000190a cmp r3, 0x2d                                  |     
                                                             |     if (r3 == 0x2d) {
    0x0000190c beq.w 0x1a58                                  |         goto label_78;
                                                             |     }
    0x00001910 adds r3, r6, 1                                |     r3 = r6 + 1;
    0x00001912 str r7, [sp, 0x58]                            |     *(arg_58h) = r7;
    0x00001914 str r3, [sp, 0x5c]                            |     *(arg_5ch) = r3;
    0x00001916 mov r7, r5                                    |     r7 = r5;
    0x00001918 b 0x1176                                      |     goto label_10;
                                                             | label_71:
    0x0000191a mov r0, fp                                    |     r0 = fp;
    0x0000191c blx 0xf24                                     |     strlen (r0);
    0x00001920 mov r1, fp                                    |     r1 = fp;
    0x00001922 adds r2, r0, 1                                |     r2 = r0 + 1;
    0x00001924 movs r0, 1                                    |     r0 = 1;
    0x00001926 bl 0x214c                                     |     fcn_0000214c (r0, r1, r2);
    0x0000192a mov r1, r4                                    |     r1 = r4;
    0x0000192c movs r2, 4                                    |     r2 = 4;
    0x0000192e movs r0, 1                                    |     r0 = 1;
    0x00001930 bl 0x214c                                     |     fcn_0000214c (r0, r1, r2);
    0x00001934 movs r2, 4                                    |     r2 = 4;
    0x00001936 mov r1, r7                                    |     r1 = r7;
    0x00001938 movs r0, 1                                    |     r0 = 1;
    0x0000193a bl 0x214c                                     |     fcn_0000214c (r0, r1, r2);
    0x0000193e b 0x1822                                      |     goto label_11;
                                                             | label_61:
    0x00001940 mov.w r8, 1                                   |     r8 = 1;
    0x00001944 b 0x15ba                                      |     goto label_12;
                                                             | label_68:
    0x00001946 ldr r3, [sp, 0x34]                            |     r3 = *(arg_34h);
    0x00001948 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000194a bne.w 0x1a9e                                  |         goto label_70;
                                                             |     }
    0x0000194e movs r1, 0x3d                                 |     r1 = 0x3d;
    0x00001950 mov r0, r7                                    |     r0 = r7;
    0x00001952 blx 0xe94                                     |     strchr (r0, r1);
    0x00001956 adds r0, 1                                    |     r0++;
    0x00001958 bl 0x2224                                     |     xstrdup ();
    0x0000195c str r0, [sp, 0x34]                            |     *(arg_34h) = r0;
    0x0000195e b.w 0x1114                                    |     goto label_2;
                                                             | label_75:
    0x00001962 ldr.w r1, [pc, 0x45c]                         |     
    0x00001966 movs r0, 1                                    |     r0 = 1;
    0x00001968 add r1, pc                                    |     r1 = 0x372e;
    0x0000196a blx 0xe88                                     |     printf_chk ();
    0x0000196e b 0x181a                                      |     goto label_8;
                                                             | label_77:
    0x00001970 ldr.w r1, [pc, 0x450]                         |     r1 = *(0x00001dc4);
    0x00001974 movs r0, 1                                    |     r0 = 1;
    0x00001976 add r1, pc                                    |     r1 += pc;
    0x00001978 blx 0xe88                                     |     printf_chk ();
    0x0000197c b 0x18e4                                      |     goto label_13;
                                                             | label_74:
    0x0000197e ldr.w r1, [pc, 0x448]                         |     
    0x00001982 movs r0, 1                                    |     r0 = 1;
    0x00001984 add r1, pc                                    |     r1 = 0x3752;
    0x00001986 blx 0xe88                                     |     printf_chk ();
    0x0000198a b 0x1812                                      |     goto label_14;
                                                             | label_76:
    0x0000198c ldr.w r1, [pc, 0x43c]                         |     r1 = *(0x00001dcc);
    0x00001990 movs r0, 1                                    |     r0 = 1;
    0x00001992 add r1, pc                                    |     r1 += pc;
    0x00001994 blx 0xe88                                     |     printf_chk ();
    0x00001998 b 0x18bc                                      |     goto label_15;
                                                             | label_40:
    0x0000199a ldr r3, [sp, 0x3c]                            |     r3 = *(arg_3ch);
    0x0000199c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000199e beq 0x1a7e                                    |         goto label_79;
                                                             |     }
    0x000019a0 ldr.w r5, [pc, 0x42c]                         |     
    0x000019a4 add r5, pc                                    |     r5 = 0x3778;
                                                             | label_16:
    0x000019a6 ldr r3, [sp, 0x34]                            |     r3 = *(arg_34h);
    0x000019a8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000019aa beq 0x1a78                                    |         goto label_80;
                                                             |     }
    0x000019ac ldr.w r6, [pc, 0x424]                         |     
    0x000019b0 add r6, pc                                    |     r6 = 0x3788;
                                                             |     do {
    0x000019b2 ldr r3, [sp, 0x34]                            |         r3 = *(arg_34h);
    0x000019b4 mov.w sb, 0                                   |         sb = 0;
    0x000019b8 ldr.w r1, [pc, 0x41c]                         |         
    0x000019bc ldr.w r2, [pc, 0x41c]                         |         r2 = *(0x00001ddc);
    0x000019c0 ldr.w r7, [pc, 0x41c]                         |         
    0x000019c4 strd r6, r3, [sp, 0x10]                       |         __asm ("strd r6, r3, [sp, 0x10]");
    0x000019c8 add r1, pc                                    |         r1 = 0x37a4;
    0x000019ca ldr.w r3, [pc, 0x418]                         |         r3 = *(0x00001de4);
    0x000019ce add r2, pc                                    |         r2 += pc;
    0x000019d0 add r7, pc                                    |         r7 = 0x37b4;
    0x000019d2 mov r0, r1                                    |         r0 = r1;
    0x000019d4 str r2, [sp, 0x28]                            |         *(arg_28h) = r2;
    0x000019d6 add r3, pc                                    |         r3 += pc;
    0x000019d8 str r2, [sp, 8]                               |         *(arg_8h) = r2;
    0x000019da str.w fp, [sp, 0xc]                           |         __asm ("str.w fp, [arg_ch]");
    0x000019de mov r2, r5                                    |         r2 = r5;
    0x000019e0 str.w sl, [sp, 4]                             |         __asm ("str.w sl, [var_4h]");
    0x000019e4 mov r8, r3                                    |         r8 = r3;
    0x000019e6 str r7, [sp]                                  |         *(sp) = r7;
    0x000019e8 str.w sb, [sp, 0x18]                          |         __asm ("str.w sb, [arg_18h]");
    0x000019ec str r1, [sp, 0x30]                            |         *(arg_30h) = r1;
    0x000019ee blx 0xf00                                     |         execl ();
    0x000019f2 blx 0x1068                                    |         errno_location ();
    0x000019f6 ldr r1, [sp, 0x2c]                            |         r1 = *(stream);
    0x000019f8 mov r4, r0                                    |         r4 = r0;
    0x000019fa ldr r0, [r1]                                  |         r0 = *(0x37a4);
    0x000019fc str r0, [sp, 0x24]                            |         *(arg_24h) = r0;
    0x000019fe ldr r0, [r4]                                  |         r0 = *(r4);
    0x00001a00 blx 0xe4c                                     |         strerror (r0);
    0x00001a04 ldr r1, [sp, 0x30]                            |         r1 = *(arg_30h);
    0x00001a06 ldr r2, [pc, 0x3e0]                           |         
    0x00001a08 str r0, [sp]                                  |         *(sp) = r0;
    0x00001a0a mov r3, r1                                    |         r3 = r1;
    0x00001a0c ldr r0, [sp, 0x24]                            |         r0 = *(arg_24h);
    0x00001a0e add r2, pc                                    |         r2 = 0x37fc;
    0x00001a10 movs r1, 1                                    |         r1 = 1;
    0x00001a12 blx 0xfe4                                     |         fprintf_chk ();
    0x00001a16 ldr r1, [pc, 0x3d4]                           |         
    0x00001a18 ldr r3, [sp, 0x34]                            |         r3 = *(arg_34h);
    0x00001a1a ldr r2, [sp, 0x28]                            |         r2 = *(arg_28h);
    0x00001a1c add r1, pc                                    |         r1 = 0x380e;
    0x00001a1e str.w sb, [sp, 0x18]                          |         __asm ("str.w sb, [arg_18h]");
    0x00001a22 mov r0, r1                                    |         r0 = r1;
    0x00001a24 strd r6, r3, [sp, 0x10]                       |         __asm ("strd r6, r3, [sp, 0x10]");
    0x00001a28 strd sl, r2, [sp, 4]                          |         __asm ("strd sl, r2, [sp, 4]");
    0x00001a2c mov r3, r8                                    |         r3 = r8;
    0x00001a2e mov r2, r5                                    |         r2 = r5;
    0x00001a30 str.w fp, [sp, 0xc]                           |         __asm ("str.w fp, [arg_ch]");
    0x00001a34 str r7, [sp]                                  |         *(sp) = r7;
    0x00001a36 blx 0xed0                                     |         execlp ();
    0x00001a3a ldr r1, [sp, 0x2c]                            |         r1 = *(stream);
    0x00001a3c ldr r0, [r4]                                  |         r0 = *(r4);
    0x00001a3e ldr r5, [r1]                                  |         r5 = *(0x380e);
    0x00001a40 blx 0xe4c                                     |         strerror (r0);
    0x00001a44 ldr r2, [pc, 0x3a8]                           |         
    0x00001a46 mov r3, r0                                    |         r3 = r0;
    0x00001a48 movs r1, 1                                    |         r1 = 1;
    0x00001a4a mov r0, r5                                    |         r0 = r5;
    0x00001a4c add r2, pc                                    |         r2 = 0x3840;
    0x00001a4e blx 0xfe4                                     |         fprintf_chk ();
    0x00001a52 movs r0, 1                                    |         r0 = 1;
    0x00001a54 blx 0x105c                                    |         exit (r0);
                                                             | label_78:
    0x00001a58 ldr r1, [pc, 0x398]                           |         
    0x00001a5a mov r0, r7                                    |         r0 = r7;
    0x00001a5c add r1, pc                                    |         r1 = 0x3854;
    0x00001a5e blx 0x1050                                    |         r0 = strcmp (r0, r1);
                                                             |         if (r0 != 0) {
    0x00001a62 cbnz r0, 0x1a84                               |             goto label_81;
                                                             |         }
    0x00001a64 ldr r2, [sp, 0x40]                            |         r2 = *(arg_40h);
    0x00001a66 adds r3, r6, 1                                |         r3 = r6 + 1;
    0x00001a68 mov r7, r5                                    |         r7 = r5;
    0x00001a6a ldr.w r3, [r2, r3, lsl 2]                     |         offset_0 = r3 << 2;
                                                             |         r3 = *((r2 + offset_0));
    0x00001a6e str r3, [sp, 0x58]                            |         *(arg_58h) = r3;
    0x00001a70 adds r3, r6, 2                                |         r3 = r6 + 2;
    0x00001a72 str r3, [sp, 0x5c]                            |         *(arg_5ch) = r3;
    0x00001a74 b.w 0x1176                                    |         goto label_10;
                                                             | label_80:
    0x00001a78 ldr r6, [pc, 0x37c]                           |         
    0x00001a7a add r6, pc                                    |         r6 = 0x3876;
    0x00001a7c b 0x19b2                                      |         
                                                             |     } while (1);
                                                             | label_79:
    0x00001a7e ldr r5, [pc, 0x37c]                           |     
    0x00001a80 add r5, pc                                    |     r5 = 0x3882;
    0x00001a82 b 0x19a6                                      |     goto label_16;
                                                             | label_81:
    0x00001a84 ldr r2, [pc, 0x378]                           |     
    0x00001a86 ldr r0, [pc, 0x27c]                           |     r0 = *(0x1d06);
    0x00001a88 add r2, pc                                    |     r2 = 0x388c;
                                                             | label_22:
    0x00001a8a ldr r4, [sp, 0x38]                            |     r4 = *(arg_38h);
    0x00001a8c mov r3, r7                                    |     r3 = r7;
    0x00001a8e movs r1, 1                                    |     r1 = 1;
    0x00001a90 ldr r0, [r4, r0]                              |     r0 = *((r4 + r0));
    0x00001a92 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001a94 blx 0xfe4                                     |     fprintf_chk ();
    0x00001a98 movs r0, 1                                    |     r0 = 1;
    0x00001a9a blx 0x105c                                    |     exit (r0);
                                                             | label_70:
    0x00001a9e ldr r0, [pc, 0x364]                           |     
    0x00001aa0 movs r2, 0x1a                                 |     r2 = 0x1a;
    0x00001aa2 ldr r3, [pc, 0x260]                           |     r3 = *(0x1d06);
    0x00001aa4 add r0, pc                                    |     r0 = 0x38ae;
                                                             | label_21:
    0x00001aa6 ldr r4, [sp, 0x38]                            |     r4 = *(arg_38h);
    0x00001aa8 movs r1, 1                                    |     r1 = 1;
    0x00001aaa ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x00001aac ldr r3, [r3]                                  |     r3 = *(r3);
    0x00001aae blx 0xfa8                                     |     fwrite (r0, r1, r2, r3);
    0x00001ab2 movs r0, 1                                    |     r0 = 1;
    0x00001ab4 blx 0x105c                                    |     exit (r0);
                                                             |     if (r7 != 0) {
                                                             | label_59:
    0x00001ab8 cbz r7, 0x1ac0                                |         
    0x00001aba mov r0, r7                                    |         r0 = r7;
    0x00001abc blx 0xedc                                     |         free (r0);
                                                             |     }
                                                             | label_58:
    0x00001ac0 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00001ac2 bne.w 0x1886                                  |         goto label_17;
                                                             |     }
    0x00001ac6 b 0x188c                                      |     goto label_18;
                                                             | label_35:
    0x00001ac8 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001aca ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001acc blx 0x1068                                    |     r0 = errno_location ();
    0x00001ad0 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001ad2 blx 0xe4c                                     |     strerror (r0);
    0x00001ad6 ldr r2, [pc, 0x330]                           |     
    0x00001ad8 mov r3, r0                                    |     r3 = r0;
    0x00001ada add r2, pc                                    |     r2 = 0x38e8;
                                                             |     do {
                                                             | label_19:
    0x00001adc movs r1, 1                                    |         r1 = 1;
    0x00001ade mov r0, r4                                    |         r0 = r4;
    0x00001ae0 blx 0xfe4                                     |         fprintf_chk ();
    0x00001ae4 movs r0, 1                                    |         r0 = 1;
    0x00001ae6 blx 0x105c                                    |         exit (r0);
                                                             | label_64:
    0x00001aea ldr r1, [pc, 0x320]                           |         
    0x00001aec movw r2, 0x54d                                |         r2 = 0x54d;
    0x00001af0 ldr r0, [pc, 0x31c]                           |         
    0x00001af2 add r1, pc                                    |         r1 = 0x3904;
    0x00001af4 add r0, pc                                    |         r0 = 0x3908;
    0x00001af6 blx 0xf6c                                     |         dbus_real_assert_not_reached ();
                                                             | label_66:
    0x00001afa ldr r1, [pc, 0x318]                           |         
    0x00001afc movw r2, 0x562                                |         r2 = 0x562;
    0x00001b00 ldr r0, [pc, 0x314]                           |         
    0x00001b02 add r1, pc                                    |         r1 = 0x391c;
    0x00001b04 add r0, pc                                    |         r0 = 0x3920;
    0x00001b06 blx 0xf6c                                     |         dbus_real_assert_not_reached ();
                                                             | label_38:
    0x00001b0a ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x00001b0c ldr r4, [r3]                                  |         r4 = *(r3);
    0x00001b0e blx 0x1068                                    |         r0 = errno_location ();
    0x00001b12 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00001b14 blx 0xe4c                                     |         strerror (r0);
    0x00001b18 ldr r2, [pc, 0x300]                           |         
    0x00001b1a mov r3, r0                                    |         r3 = r0;
    0x00001b1c add r2, pc                                    |         r2 = 0x393c;
    0x00001b1e b 0x1adc                                      |         
                                                             |     } while (1);
                                                             | label_39:
    0x00001b20 blx 0xf9c                                     |     close (r0);
    0x00001b24 ldr.w r0, [r8, 4]                             |     r0 = *((r8 + 4));
    0x00001b28 blx 0xf9c                                     |     close (r0);
    0x00001b2c ldr r0, [r7]                                  |     r0 = *(r7);
    0x00001b2e blx 0xf9c                                     |     close (r0);
    0x00001b32 ldr r0, [r7, 4]                               |     r0 = *((r7 + 4));
    0x00001b34 blx 0xf9c                                     |     close (r0);
                                                             | label_25:
    0x00001b38 ldr.w r0, [sb, 4]                             |     r0 = *((sb + 4));
    0x00001b3c blx 0xf9c                                     |     close (r0);
    0x00001b40 ldr r0, [pc, 0x2dc]                           |     
    0x00001b42 ldr.w r6, [sb]                                |     r6 = *(sb);
    0x00001b46 add r0, pc                                    |     r0 = 0x396a;
    0x00001b48 blx 0xfd8                                     |     r0 = chdir ();
    0x00001b4c cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00001b4e blt 0x1b8e                                    |         
    0x00001b50 ldr r0, [pc, 0x2d0]                           |         
    0x00001b52 add r7, sp, 0x6c                              |         r7 += arg_6ch;
    0x00001b54 add r0, pc                                    |         r0 = 0x397c;
    0x00001b56 blx 0xe7c                                     |         getenv (r0);
    0x00001b5a ldr r2, [sp, 0x54]                            |         r2 = *(arg_54h);
    0x00001b5c mov r3, r0                                    |         r3 = r0;
    0x00001b5e str r0, [r7]                                  |         *(r7) = r0;
    0x00001b60 rsb.w r0, r2, 3                               |         r0 = 3 - r2;
                                                             |         if (r3 != 0) {
    0x00001b64 cbz r3, 0x1b6a                                |             
    0x00001b66 ldrb r3, [r3]                                 |             r3 = *(r3);
                                                             |             if (r3 != 0) {
    0x00001b68 cbnz r3, 0x1b6e                               |                 goto label_82;
                                                             |             }
                                                             |         }
    0x00001b6a orr r0, r0, 4                                 |         r0 |= 4;
                                                             | label_82:
    0x00001b6e mov r1, r7                                    |         r1 = r7;
    0x00001b70 blx 0xf30                                     |         r0 = dbus_ensure_standard_fds ();
                                                             |         if (r0 != 0) {
    0x00001b74 cbnz r0, 0x1ba4                               |             goto label_83;
                                                             |         }
    0x00001b76 blx 0x1068                                    |         errno_location ();
    0x00001b7a ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x00001b7c ldr r0, [r0]                                  |         r0 = *(r0);
    0x00001b7e ldr r6, [r7]                                  |         r6 = *(r7);
    0x00001b80 ldr r5, [r3]                                  |         r5 = *(r3);
    0x00001b82 blx 0xe4c                                     |         strerror (r0);
    0x00001b86 ldr r2, [pc, 0x2a0]                           |         
    0x00001b88 mov r4, r0                                    |         r4 = r0;
    0x00001b8a add r2, pc                                    |         r2 = 0x39b8;
    0x00001b8c b 0x1608                                      |         goto label_6;
                                                             |     }
    0x00001b8e ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001b90 ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001b92 blx 0x1068                                    |     r0 = errno_location ();
    0x00001b96 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001b98 blx 0xe4c                                     |     strerror (r0);
    0x00001b9c ldr r2, [pc, 0x28c]                           |     
    0x00001b9e mov r3, r0                                    |     r3 = r0;
    0x00001ba0 add r2, pc                                    |     r2 = 0x39d0;
    0x00001ba2 b 0x1adc                                      |     goto label_19;
                                                             | label_83:
    0x00001ba4 ldr r3, [sp, 0x30]                            |     r3 = *(arg_30h);
    0x00001ba6 ldr r0, [r3]                                  |     r0 = *(r3);
    0x00001ba8 blx 0xf0c                                     |     fflush (r0);
    0x00001bac ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001bae ldr r0, [r3]                                  |     r0 = *(r3);
    0x00001bb0 blx 0xf0c                                     |     r0 = fflush (r0);
    0x00001bb4 blx 0x1008                                    |     r0 = fork ();
    0x00001bb8 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00001bba blt.w 0x1cd0                                  |         goto label_84;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00001bbe beq 0x1bfe                                    |         goto label_85;
                                                             |     }
    0x00001bc0 mov r0, r4                                    |     r0 = r4;
    0x00001bc2 bl 0x20c8                                     |     r0 = fcn_000020c8 (r0);
    0x00001bc6 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00001bc8 bge.w 0x183e                                  |         goto label_20;
                                                             |     }
    0x00001bcc ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001bce movs r2, 0x31                                 |     r2 = 0x31;
    0x00001bd0 ldr r0, [pc, 0x25c]                           |     
    0x00001bd2 movs r1, 1                                    |     r1 = 1;
    0x00001bd4 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00001bd6 add r0, pc                                    |     r0 = 0x3a0a;
    0x00001bd8 blx 0xfa8                                     |     fwrite (r0, r1, r2, r3);
    0x00001bdc movs r0, 1                                    |     r0 = 1;
    0x00001bde blx 0x105c                                    |     exit (r0);
                                                             | label_32:
    0x00001be2 ldr r0, [pc, 0x250]                           |     
    0x00001be4 movs r2, 0x48                                 |     r2 = 0x48;
    0x00001be6 ldr r3, [pc, 0x11c]                           |     r3 = *(0x1d06);
    0x00001be8 add r0, pc                                    |     r0 = 0x3a22;
    0x00001bea b 0x1aa6                                      |     goto label_21;
                                                             | label_30:
    0x00001bec ldr r2, [pc, 0x248]                           |     
    0x00001bee ldr r0, [pc, 0x114]                           |     r0 = *(0x1d06);
    0x00001bf0 add r2, pc                                    |     r2 = 0x3a2c;
    0x00001bf2 b 0x1a8a                                      |     goto label_22;
                                                             | label_33:
    0x00001bf4 ldr r0, [pc, 0x244]                           |     
    0x00001bf6 movs r2, 0x4a                                 |     r2 = 0x4a;
    0x00001bf8 ldr r3, [pc, 0x108]                           |     r3 = *(0x1d04);
    0x00001bfa add r0, pc                                    |     r0 = 0x3a3a;
    0x00001bfc b 0x1aa6                                      |     goto label_21;
                                                             | label_85:
    0x00001bfe ldr r7, [pc, 0x240]                           |     
    0x00001c00 movs r4, 4                                    |     r4 = 4;
    0x00001c02 mov r5, r0                                    |     r5 = r0;
    0x00001c04 mov r2, r4                                    |     r2 = r4;
    0x00001c06 add r7, pc                                    |     r7 = 0x3a4c;
                                                             |     do {
                                                             | label_23:
    0x00001c08 adds r1, r7, r5                               |         r1 = r7 + r5;
    0x00001c0a mov r0, r6                                    |         r0 = r6;
    0x00001c0c blx 0xee8                                     |         r0 = read (r0, r1, r2);
    0x00001c10 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x00001c12 blt.w 0x1e66                                  |             goto label_86;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00001c16 beq.w 0x1e50                                  |             goto label_87;
                                                             |         }
    0x00001c1a add r5, r0                                    |         r5 += r0;
    0x00001c1c rsbs.w r2, r5, 4                              |         r2 = 4 - r5;
    0x00001c20 bne 0x1c08                                    |         
                                                             |     } while (r0 != 0);
    0x00001c22 ldr r3, [sp, 0x54]                            |     r3 = *(arg_54h);
    0x00001c24 mov r4, r2                                    |     r4 = r2;
    0x00001c26 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00001c28 beq.w 0x183e                                  |         goto label_20;
                                                             |     }
    0x00001c2c ldr.w sb, [pc, 0x214]                         |     
    0x00001c30 add r5, sp, 0x188                             |     r5 += arg_188h;
    0x00001c32 mov r0, r5                                    |     r0 = r5;
    0x00001c34 add sb, pc                                    |     sb = 0x3a7c;
    0x00001c36 str.w r4, [sb]                                |     __asm ("str.w r4, [sb]");
    0x00001c3a blx 0xe40                                     |     sigemptyset ();
    0x00001c3e ldr r3, [pc, 0x208]                           |     
    0x00001c40 mov r1, r5                                    |     r1 = r5;
    0x00001c42 movs r2, 0x80                                 |     r2 = 0x80;
    0x00001c44 add r5, sp, 0x208                             |     r5 += arg_208h;
    0x00001c46 add r0, sp, 0x20c                             |     r0 += s1;
    0x00001c48 add r3, pc                                    |     r3 = 0x3a96;
    0x00001c4a str r3, [sp, 0x208]                           |     *(arg_208h) = r3;
    0x00001c4c blx 0xf3c                                     |     memcpy (r0, r1, r2);
    0x00001c50 mov r2, r4                                    |     r2 = r4;
    0x00001c52 mov r1, r5                                    |     r1 = r5;
    0x00001c54 movs r0, 1                                    |     r0 = 1;
    0x00001c56 str r4, [sp, 0x28c]                           |     *(arg_28ch) = r4;
    0x00001c58 blx 0xfcc                                     |     sigaction ();
    0x00001c5c mov r2, r4                                    |     r2 = r4;
    0x00001c5e mov r1, r5                                    |     r1 = r5;
    0x00001c60 movs r0, 0xf                                  |     r0 = 0xf;
    0x00001c62 blx 0xfcc                                     |     sigaction ();
    0x00001c66 mov r2, r4                                    |     r2 = r4;
    0x00001c68 mov r1, r5                                    |     r1 = r5;
    0x00001c6a movs r0, 2                                    |     r0 = 2;
    0x00001c6c blx 0xfcc                                     |     sigaction ();
    0x00001c70 mov r0, r4                                    |     r0 = r4;
    0x00001c72 blx 0xf18                                     |     r0 = isatty (r0);
    0x00001c76 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001c78 beq.w 0x1ed4                                  |         goto label_88;
                                                             |     }
    0x00001c7c add.w r8, sp, 0x88                            |     r8 += arg_88h;
    0x00001c80 add.w fp, sp, 0x8c                            |     
    0x00001c84 add r7, sp, 0x108                             |     r7 += arg_108h;
    0x00001c86 add.w sl, sp, 0x10c                           |     sl += arg_10ch;
                                                             |     do {
                                                             | label_24:
    0x00001c8a movs r2, 0x7c                                 |         r2 = 0x7c;
    0x00001c8c movs r1, 0                                    |         r1 = 0;
    0x00001c8e mov r0, fp                                    |         r0 = fp;
    0x00001c90 movs r5, 1                                    |         r5 = 1;
    0x00001c92 blx 0xea0                                     |         memset (r0, r1, r2);
    0x00001c96 movs r2, 0x7c                                 |         r2 = 0x7c;
    0x00001c98 movs r1, 0                                    |         r1 = 0;
    0x00001c9a mov r0, sl                                    |         r0 = sl;
    0x00001c9c blx 0xea0                                     |         memset (r0, r1, r2);
    0x00001ca0 str r4, [sp]                                  |         *(sp) = r4;
    0x00001ca2 mov r3, r7                                    |         r3 = r7;
    0x00001ca4 movs r2, 0                                    |         r2 = 0;
    0x00001ca6 mov r1, r8                                    |         r1 = r8;
    0x00001ca8 mov r0, r5                                    |         r0 = r5;
    0x00001caa str.w r5, [r8]                                |         __asm ("str.w r5, [r8]");
    0x00001cae str r5, [r7]                                  |         *(r7) = r5;
    0x00001cb0 blx 0xf90                                     |         select ();
    0x00001cb4 ldr.w r3, [sb]                                |         r3 = *(sb);
                                                             |         if (r3 != 0) {
    0x00001cb8 cbnz r3, 0x1cca                               |             goto label_89;
                                                             |         }
    0x00001cba ldr.w r2, [r8]                                |         r2 = *(r8);
    0x00001cbe lsls r2, r2, 0x1f                             |         r2 <<= 0x1f;
                                                             |         if (r2 < r2) {
    0x00001cc0 bmi.w 0x1e76                                  |             goto label_90;
                                                             |         }
    0x00001cc4 ldr r3, [r7]                                  |         r3 = *(r7);
    0x00001cc6 lsls r3, r3, 0x1f                             |         r3 <<= 0x1f;
    0x00001cc8 bpl 0x1c8a                                    |         
                                                             |     } while (r3 >= r3);
                                                             |     do {
                                                             | label_89:
    0x00001cca movs r0, 0                                    |         r0 = 0;
    0x00001ccc bl 0x224c                                     |         kill_bus_and_exit ();
                                                             | label_84:
    0x00001cd0 ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x00001cd2 ldr r4, [r3]                                  |         r4 = *(r3);
    0x00001cd4 blx 0x1068                                    |         r0 = errno_location ();
    0x00001cd8 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00001cda blx 0xe4c                                     |         strerror (r0);
    0x00001cde ldr r2, [pc, 0x16c]                           |         
    0x00001ce0 mov r3, r0                                    |         r3 = r0;
    0x00001ce2 add r2, pc                                    |         r2 = 0x3b34;
    0x00001ce4 b 0x1adc                                      |         goto label_19;
                                                             | label_87:
    0x00001e50 ldr r3, [sp, 0x2c]                            |         r3 = *(stream);
    0x00001e52 movs r2, 0x2f                                 |         r2 = 0x2f;
    0x00001e54 ldr r0, [pc, 0x120]                           |         
    0x00001e56 movs r1, 1                                    |         r1 = 1;
    0x00001e58 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00001e5a add r0, pc                                    |         r0 = 0x3dd6;
    0x00001e5c blx 0xfa8                                     |         fwrite (r0, r1, r2, r3);
    0x00001e60 movs r0, 1                                    |         r0 = 1;
    0x00001e62 blx 0x105c                                    |         r0 = exit (r0);
                                                             | label_86:
    0x00001e66 blx 0x1068                                    |         r0 = errno_location ();
    0x00001e6a ldr r3, [r0]                                  |         r3 = *(r0);
    0x00001e6c cmp r3, 4                                     |         
                                                             |         if (r3 != 4) {
    0x00001e6e bne 0x1ebe                                    |             goto label_91;
                                                             |         }
    0x00001e70 rsb.w r2, r5, 4                               |         r2 = 4 - r5;
    0x00001e74 b 0x1c08                                      |         goto label_23;
                                                             | label_90:
    0x00001e76 mov.w r2, 0x200                               |         r2 = 0x200;
    0x00001e7a add r1, sp, 0x2d4                             |         r1 += buf;
    0x00001e7c mov r0, r3                                    |         r0 = r3;
    0x00001e7e str r3, [sp, 0x24]                            |         *(arg_24h) = r3;
    0x00001e80 blx 0xee8                                     |         r0 = read (r0, r1, r2);
    0x00001e84 mov r6, r0                                    |         r6 = r0;
    0x00001e86 blx 0x1068                                    |         r0 = errno_location ();
    0x00001e8a ldr r0, [r0]                                  |         r0 = *(r0);
    0x00001e8c cmp r6, 0                                     |         
    0x00001e8e beq.w 0x1cca                                  |         
                                                             |     } while (r6 == 0);
    0x00001e92 cmp r6, 0                                     |     
                                                             |     if (r6 >= 0) {
    0x00001e94 bge.w 0x1c8a                                  |         goto label_24;
                                                             |     }
    0x00001e98 cmp r0, 4                                     |     
    0x00001e9a ldr r3, [sp, 0x24]                            |     r3 = *(arg_24h);
                                                             |     if (r0 == 4) {
    0x00001e9c beq.w 0x1c8a                                  |         goto label_24;
                                                             |     }
    0x00001ea0 mov r6, r3                                    |     r6 = r3;
    0x00001ea2 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001ea4 ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001ea6 blx 0xe4c                                     |     strerror (r0);
    0x00001eaa ldr r2, [pc, 0xd0]                            |     
    0x00001eac mov r3, r0                                    |     r3 = r0;
    0x00001eae mov r1, r5                                    |     r1 = r5;
    0x00001eb0 mov r0, r4                                    |     r0 = r4;
    0x00001eb2 add r2, pc                                    |     r2 = 0x3e34;
    0x00001eb4 blx 0xfe4                                     |     fprintf_chk ();
    0x00001eb8 mov r0, r6                                    |     r0 = r6;
    0x00001eba bl 0x224c                                     |     kill_bus_and_exit ();
                                                             | label_91:
    0x00001ebe ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001ec0 ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001ec2 blx 0x1068                                    |     r0 = errno_location ();
    0x00001ec6 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001ec8 blx 0xe4c                                     |     strerror (r0);
    0x00001ecc ldr r2, [pc, 0xb0]                            |     
    0x00001ece mov r3, r0                                    |     r3 = r0;
    0x00001ed0 add r2, pc                                    |     r2 = 0x3e54;
    0x00001ed2 b 0x1adc                                      |     goto label_19;
                                                             | label_88:
    0x00001ed4 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001ed6 movs r2, 0x5e                                 |     r2 = 0x5e;
    0x00001ed8 ldr r0, [pc, 0xa8]                            |     
    0x00001eda movs r1, 1                                    |     r1 = 1;
    0x00001edc ldr r3, [r3]                                  |     r3 = *(r3);
    0x00001ede add r0, pc                                    |     r0 = 0x3e66;
    0x00001ee0 blx 0xfa8                                     |     fwrite (r0, r1, r2, r3);
    0x00001ee4 movs r0, 1                                    |     r0 = 1;
    0x00001ee6 bl 0x224c                                     |     kill_bus_and_exit ();
                                                             | label_34:
    0x00001eea ldr r2, [sp, 0x38]                            |     r2 = *(arg_38h);
    0x00001eec ldr r3, [pc, 0x98]                            |     r3 = *(0x1f88);
    0x00001eee ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00001ef0 ldr r4, [r3]                                  |     r4 = *(0x1f88);
    0x00001ef2 blx 0x1068                                    |     r0 = errno_location ();
    0x00001ef6 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001ef8 blx 0xe4c                                     |     strerror (r0);
    0x00001efc ldr r2, [pc, 0x8c]                            |     
    0x00001efe mov r3, r0                                    |     r3 = r0;
    0x00001f00 add r2, pc                                    |     r2 = "GNU";
    0x00001f02 b 0x1adc                                      |     goto label_19;
                                                             | label_67:
    0x00001f04 blx 0xfc0                                     |     stack_chk_fail ();
                                                             | label_53:
    0x00001f08 ldr r3, [sp, 0x2c]                            |     r3 = *(stream);
    0x00001f0a ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001f0c blx 0x1068                                    |     r0 = errno_location ();
    0x00001f10 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001f12 blx 0xe4c                                     |     strerror (r0);
    0x00001f16 ldr r2, [pc, 0x78]                            |     
    0x00001f18 mov r3, r0                                    |     r3 = r0;
    0x00001f1a add r2, pc                                    |     r2 = 0x3eb0;
    0x00001f1c b 0x1adc                                      |     goto label_19;
                                                             | label_46:
    0x00001f1e ldr r2, [pc, 0x74]                            |     
    0x00001f20 ldr r1, [pc, 0x74]                            |     
    0x00001f22 str r0, [sp, 0x24]                            |     *(arg_24h) = r0;
    0x00001f24 movs r0, 1                                    |     r0 = 1;
    0x00001f26 add r2, pc                                    |     r2 = 0x3ec0;
    0x00001f28 add r1, pc                                    |     r1 = 0x3ec4;
    0x00001f2a blx 0xe88                                     |     printf_chk ();
    0x00001f2e ldr r3, [sp, 0x24]                            |     r3 = *(arg_24h);
    0x00001f30 mov r0, r3                                    |     r0 = r3;
    0x00001f32 blx 0x105c                                    |     exit (r0);
                                                             | label_52:
    0x00001f36 ldr r0, [pc, 0x64]                            |     
    0x00001f38 movs r2, 0x19                                 |     r2 = 0x19;
    0x00001f3a ldr r3, [pc, 0x4c]                            |     r3 = *(0x1f8a);
    0x00001f3c add r0, pc                                    |     r0 = 0x3ede;
    0x00001f3e b 0x1aa6                                      |     goto label_21;
                                                             | label_41:
    0x00001f40 ldr r3, [sp, 0x3c]                            |     r3 = *(arg_3ch);
                                                             |     if (r3 != 0) {
    0x00001f42 cbz r3, 0x1f60                                |         
    0x00001f44 ldr r2, [pc, 0x58]                            |         
    0x00001f46 ldr r3, [pc, 0x5c]                            |         
    0x00001f48 add r2, pc                                    |         r2 = 0x3eec;
    0x00001f4a add r3, pc                                    |         r3 = 0x3ef4;
    0x00001f4c b.w 0x1310                                    |         goto label_4;
                                                             | label_42:
    0x00001f50 ldr r3, [sp, 0x3c]                            |         r3 = *(arg_3ch);
                                                             |         if (r3 == 0) {
    0x00001f52 cbz r3, 0x1f6c                                |             goto label_92;
                                                             |         }
    0x00001f54 ldr r2, [pc, 0x50]                            |         
    0x00001f56 ldr r3, [pc, 0x54]                            |         
    0x00001f58 add r2, pc                                    |         r2 = 0x3f04;
    0x00001f5a add r3, pc                                    |         r3 = 0x3f0c;
    0x00001f5c b.w 0x1310                                    |         goto label_4;
                                                             |     }
    0x00001f60 ldr r2, [pc, 0x4c]                            |     
    0x00001f62 ldr r3, [pc, 0x50]                            |     
    0x00001f64 add r2, pc                                    |     r2 = 0x3f18;
    0x00001f66 add r3, pc                                    |     r3 = 0x3f20;
    0x00001f68 b.w 0x1310                                    |     goto label_4;
                                                             | label_92:
    0x00001f6c ldr r2, [pc, 0x48]                            |     
    0x00001f6e ldr r3, [pc, 0x4c]                            |     
    0x00001f70 add r2, pc                                    |     r2 = "__";
    0x00001f72 add r3, pc                                    |     r3 = "__";
    0x00001f74 b.w 0x1310                                    |     goto label_4;
    0x00001ff4 adds r0, 0x14                                 |     r0 += 0x14;
    0x00001ff6 b 0x1b38                                      |     goto label_25;
                                                             | }

[*] Function sprintf used 3 times dbus-launch