[*] Binary protection state of dbus-launch
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of dbus-launch
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-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 printf used 23 times dbus-launch