[*] Binary protection state of dbus-run-session
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of dbus-run-session
; 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-run-session @ 0x13ec */
| #include <stdint.h>
|
; (fcn) fcn.000013ec () | void fcn_000013ec (int16_t arg_10h, int16_t arg_28h, int16_t arg_30h, int16_t arg_44h, int16_t arg_294h) {
| int16_t var_0h;
| label_1:
0x00000da6 movs r0, 0x7f | r0 = 0x7f;
| label_3:
0x00000da8 ldr.w r2, [pc, 0x530] | r2 = *(0x000012dc);
0x00000dac ldr.w r3, [pc, 0x4f4] | r3 = *(0x12a4);
0x00000db0 add r2, pc | r2 += pc;
0x00000db2 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00000db4 ldr r2, [r3] | r2 = *(0x12a4);
0x00000db6 ldr r3, [sp, 0x294] | r3 = *(arg_294h);
0x00000db8 eors r2, r3 | r2 ^= r3;
0x00000dba mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00000dbe bne.w 0x11d8 | goto label_5;
| }
0x00000dc2 add.w sp, sp, 0x29c |
0x00000dc6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| if (r2 == r3) {
| label_4:
0x00000f30 beq.w 0x1284 | goto label_6;
| }
0x00000f34 ldr r0, [pc, 0x3cc] |
0x00000f36 movs r1, 0 | r1 = 0;
0x00000f38 add r0, pc | r0 = 0x2240;
0x00000f3a blx 0xae0 | r0 = dbus_setenv ();
0x00000f3e cmp r0, 0 |
| if (r0 == 0) {
0x00000f40 beq.w 0x1284 | goto label_6;
| }
0x00000f44 ldr r3, [sp, 0x10] | r3 = *(arg_10h);
0x00000f46 ldr r0, [r3] | r0 = *(r3);
0x00000f48 blx 0xb4c | fflush (r0);
0x00000f4c ldr.w r0, [sl] | r0 = *(sl);
0x00000f50 blx 0xb4c | r0 = fflush (r0);
0x00000f54 blx 0xba0 | r0 = fork ();
0x00000f58 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x00000f5a blt.w 0x119a | goto label_7;
| }
| if (r6 == r0) {
0x00000f5e beq.w 0x1248 | goto label_8;
| }
0x00000f62 ldr r7, [pc, 0x3a4] |
0x00000f64 add r4, sp, 0x44 | r4 += arg_44h;
0x00000f66 ldr r5, [pc, 0x3a4] |
0x00000f68 add r7, pc | r7 = 0x2276;
0x00000f6a add r5, pc | r5 = 0x227c;
| do {
| label_0:
0x00000f6c movs r2, 0 | r2 = 0;
0x00000f6e mov r1, r4 | r1 = r4;
0x00000f70 mov.w r0, -1 | r0 = -1;
0x00000f74 blx 0xb64 | r0 = waitpid ();
0x00000f78 adds r3, r0, 1 | r3 = r0 + 1;
| if (r3 == r0) {
0x00000f7a beq 0xfaa | goto label_9;
| }
0x00000f7c cmp r0, r8 |
| if (r0 == r8) {
0x00000f7e beq 0xffa | goto label_10;
| }
0x00000f80 cmp r6, r0 |
| if (r6 == r0) {
0x00000f82 beq.w 0x117e | goto label_11;
| }
0x00000f86 str r0, [sp] | *(sp) = r0;
0x00000f88 mov r3, r7 | r3 = r7;
0x00000f8a ldr.w r0, [sl] | r0 = *(sl);
0x00000f8e mov r2, r5 | r2 = r5;
0x00000f90 movs r1, 1 | r1 = 1;
0x00000f92 blx 0xb94 | fprintf_chk ()
0x00000f96 b 0xf6c |
| } while (1);
| label_9:
0x00000faa blx 0xc00 | r0 = errno_location ();
0x00000fae ldr r0, [r0] | r0 = *(r0);
0x00000fb0 cmp r0, 4 |
| if (r0 == 4) {
0x00000fb2 beq 0xf6c | goto label_0;
| }
0x00000fb4 ldr.w r5, [sl] | r5 = *(sl);
0x00000fb8 blx 0xac8 | strerror (r0);
0x00000fbc ldr r3, [pc, 0x350] |
0x00000fbe mov r4, r0 | r4 = r0;
0x00000fc0 ldr r2, [pc, 0x350] |
0x00000fc2 movs r1, 1 | r1 = 1;
0x00000fc4 mov r0, r5 | r0 = r5;
0x00000fc6 str r4, [sp] | *(sp) = r4;
0x00000fc8 add r3, pc | r3 = 0x22dc;
0x00000fca add r2, pc | r2 = 0x22e2;
0x00000fcc blx 0xb94 | fprintf_chk ()
0x00000fd0 b 0xda6 | goto label_1;
| label_10:
0x00000ffa ldr r3, [r4] | r3 = *(r4);
0x00000ffc ldr.w r0, [sl] | r0 = *(sl);
0x00001000 ands r2, r3, 0x7f | r2 = r3 & 0x7f;
| if (r2 == r3) {
0x00001004 beq.w 0x111c | goto label_12;
| }
0x00001008 adds r3, r2, 1 | r3 = r2 + 1;
0x0000100a sbfx r3, r3, 1, 7 | __asm ("sbfx r3, r3, 1, 7");
0x0000100e cmp r3, 0 |
| if (r3 <= 0) {
0x00001010 ble.w 0x1132 | goto label_13;
| }
0x00001014 ldr r3, [pc, 0x304] |
0x00001016 movs r1, 1 | r1 = 1;
0x00001018 str r2, [sp] | *(sp) = r2;
0x0000101a ldr r2, [pc, 0x304] |
0x0000101c add r3, pc | r3 = 0x233c;
0x0000101e add r2, pc | r2 = 0x2344;
0x00001020 blx 0xb94 | fprintf_chk ()
| do {
| label_2:
0x00001024 mov.w r8, 0 | r8 = 0;
0x00001028 b 0xf6c | goto label_0;
| label_12:
0x0000111c ubfx r3, r3, 8, 8 | r3 = (r3 >> 8) & ((1 << 8) - 1);
0x00001120 ldr r2, [pc, 0x238] |
0x00001122 str r3, [sp] | *(sp) = r3;
0x00001124 movs r1, 1 | r1 = 1;
0x00001126 ldr r3, [pc, 0x238] |
0x00001128 add r2, pc | r2 = 0x2488;
0x0000112a add r3, pc | r3 = 0x2490;
0x0000112c blx 0xb94 | fprintf_chk ()
0x00001130 b 0x1024 |
| } while (1);
| label_13:
0x00001132 ldr r3, [pc, 0x230] |
0x00001134 movs r1, 1 | r1 = 1;
0x00001136 ldr r2, [pc, 0x230] |
0x00001138 add r3, pc | r3 = 0x24a2;
0x0000113a add r2, pc | r2 = 0x24a8;
0x0000113c blx 0xb94 | fprintf_chk ()
0x00001140 b 0x1024 | goto label_2;
| label_11:
0x0000117e cmp.w r8, 0 |
0x00001182 bne 0x1210 |
| while (1) {
0x00001184 ldr r3, [r4] | r3 = *(r4);
0x00001186 ands r0, r3, 0x7f | r0 = r3 & 0x7f;
| if (r0 != r3) {
0x0000118a beq 0x120a |
0x0000118c adds r3, r0, 1 | r3 = r0 + 1;
0x0000118e sbfx r3, r3, 1, 7 | __asm ("sbfx r3, r3, 1, 7");
0x00001192 cmp r3, 0 |
| if (r3 > 0) {
0x00001194 ble 0x11f6 |
0x00001196 adds r0, 0x80 | r0 += 0x80;
0x00001198 b 0xda8 | goto label_3;
| label_7:
0x0000119a blx 0xc00 | r0 = errno_location ();
0x0000119e ldr r0, [r0] | r0 = *(r0);
0x000011a0 ldr.w r5, [sl] | r5 = *(sl);
0x000011a4 blx 0xac8 | strerror (r0);
0x000011a8 ldr r3, [pc, 0x1d0] |
0x000011aa mov r4, r0 | r4 = r0;
0x000011ac ldr r2, [pc, 0x1d0] |
0x000011ae movs r1, 1 | r1 = 1;
0x000011b0 mov r0, r5 | r0 = r5;
0x000011b2 str r4, [sp] | *(sp) = r4;
0x000011b4 add r3, pc | r3 = 0x2534;
0x000011b6 add r2, pc | r2 = 0x253a;
0x000011b8 blx 0xb94 | fprintf_chk ()
0x000011bc b 0xda6 | goto label_1;
| label_5:
0x000011d8 blx 0xb88 | stack_chk_fail ();
0x000011dc ldr r1, [pc, 0xec] | r1 = *(0x12cc);
0x000011de ldr r0, [sp, 0x28] | r0 = *(arg_28h);
0x000011e0 ldr r3, [pc, 0x1ac] |
0x000011e2 ldr r2, [pc, 0x1b0] |
0x000011e4 ldr r0, [r0, r1] | r0 = *((r0 + r1));
0x000011e6 movs r1, 1 | r1 = 1;
0x000011e8 str r4, [sp] | *(sp) = r4;
0x000011ea add r3, pc | r3 = 0x257e;
0x000011ec add r2, pc | r2 = 0x2586;
0x000011ee ldr r0, [r0] | r0 = *(r0);
0x000011f0 blx 0xb94 | fprintf_chk ()
0x000011f4 b 0xda6 | goto label_1;
| }
0x000011f6 ldr r3, [pc, 0x1a0] |
0x000011f8 movs r1, 1 | r1 = 1;
0x000011fa ldr r2, [pc, 0x1a0] |
0x000011fc ldr.w r0, [sl] | r0 = *(sl);
0x00001200 add r3, pc | r3 = 0x259e;
0x00001202 add r2, pc | r2 = 0x25a4;
0x00001204 blx 0xb94 | fprintf_chk ()
0x00001208 b 0xda6 | goto label_1;
| }
0x0000120a ubfx r0, r3, 8, 8 | r0 = (r3 >> 8) & ((1 << 8) - 1);
0x0000120e b 0xda8 | goto label_3;
0x00001210 movs r1, 0xf | r1 = 0xf;
0x00001212 mov r0, r8 | r0 = r8;
0x00001214 blx 0xbc4 | kill (r0, r1);
0x00001218 b 0x1184 |
| }
| label_8:
0x00001248 ldr r4, [sp, 0x30] | r4 = *(arg_30h);
0x0000124a ldr.w r0, [r4, r5, lsl 2] | offset_0 = r5 << 2;
| r0 = *((r4 + offset_0));
0x0000124e add.w r1, r4, r5, lsl 2 | r1 = r4 + (r5 << 2);
0x00001252 blx 0xb1c | execvp ();
0x00001256 blx 0xc00 | r0 = errno_location ();
0x0000125a ldr r0, [r0] | r0 = *(r0);
0x0000125c ldr.w r6, [sl] | r6 = *(sl);
0x00001260 ldr.w r4, [r4, r5, lsl 2] | offset_1 = r5 << 2;
| r4 = *((r4 + offset_1));
0x00001264 blx 0xac8 | strerror (r0);
0x00001268 ldr r3, [pc, 0x13c] |
0x0000126a mov r1, r0 | r1 = r0;
0x0000126c ldr r2, [pc, 0x13c] |
0x0000126e mov r0, r6 | r0 = r6;
0x00001270 strd r4, r1, [sp] | __asm ("strd r4, r1, [sp]");
0x00001274 movs r1, 1 | r1 = 1;
0x00001276 add r3, pc | r3 = 0x2622;
0x00001278 add r2, pc | r2 = 0x2628;
0x0000127a blx 0xb94 | fprintf_chk ()
0x0000127e movs r0, 1 | r0 = 1;
0x00001280 blx 0xbf4 | exit (r0);
| label_6:
0x00001284 ldr r3, [pc, 0x128] |
0x00001286 movs r1, 1 | r1 = 1;
0x00001288 ldr r2, [pc, 0x128] |
0x0000128a ldr.w r0, [sl] | r0 = *(sl);
0x0000128e add r3, pc | r3 = 0x2642;
0x00001290 add r2, pc | r2 = 0x2648;
0x00001292 blx 0xb94 | fprintf_chk ()
0x00001296 movs r0, 1 | r0 = 1;
0x00001298 blx 0xbf4 | exit (r0);
0x0000129c movs r3, 0x36 | r3 = 0x36;
0x0000129e movs r0, r0 |
0x000012a0 movs r3, 0x28 | r3 = 0x28;
0x000012a2 movs r0, r0 |
0x000012a4 lsls r0, r1, 2 | r0 = r1 << 2;
0x000012a6 movs r0, r0 |
0x000012a8 lsrs r4, r3, 8 | r4 = r3 >> 8;
0x000012aa movs r0, r0 |
0x000012ac lsrs r0, r5, 0xb | r0 = r5 >> 0xb;
0x000012ae movs r0, r0 |
0x000012b0 lsrs r4, r5, 0x10 | r4 = r5 >> 0x10;
0x000012b2 movs r0, r0 |
0x000012b4 lsrs r4, r2, 0x11 | r4 = r2 >> 0x11;
0x000012b6 movs r0, r0 |
0x000012b8 lsrs r4, r4, 5 | r4 >>= 5;
0x000012ba movs r0, r0 |
0x000012bc lsrs r4, r3, 5 | r4 = r3 >> 5;
0x000012be movs r0, r0 |
0x000012c0 lsrs r0, r3, 6 | r0 = r3 >> 6;
0x000012c2 movs r0, r0 |
0x000012c4 lsrs r0, r2, 0x1b | r0 = r2 >> 0x1b;
0x000012c6 movs r0, r0 |
0x000012c8 lsrs r6, r4, 4 | r6 = r4 >> 4;
0x000012ca movs r0, r0 |
0x000012cc lsls r0, r2, 2 | r0 = r2 << 2;
0x000012ce movs r0, r0 |
0x000012d0 lsrs r0, r2, 3 | r0 = r2 >> 3;
0x000012d2 movs r0, r0 |
0x000012d4 lsrs r0, r5, 0x18 | r0 = r5 >> 0x18;
0x000012d6 movs r0, r0 |
0x000012d8 lsrs r6, r4, 3 | r6 = r4 >> 3;
0x000012da movs r0, r0 |
0x000012dc movs r1, 0xb0 | r1 = 0xb0;
0x000012de movs r0, r0 |
0x000012e0 lsrs r0, r6, 0x16 | r0 = r6 >> 0x16;
0x000012e2 movs r0, r0 |
0x000012e4 lsrs r6, r7, 0x20 | r6 = r7 >> 0x20;
0x000012e6 movs r0, r0 |
0x000012e8 lsrs r6, r3, 0x16 | r6 = r3 >> 0x16;
0x000012ea movs r0, r0 |
0x000012ec lsrs r0, r4, 0xa | r0 = r4 >> 0xa;
0x000012ee movs r0, r0 |
0x000012f0 lsls r4, r1, 2 | r4 = r1 << 2;
0x000012f2 movs r0, r0 |
0x000012f4 lsrs r4, r5, 0xc | r4 = r5 >> 0xc;
0x000012f6 movs r0, r0 |
0x000012f8 lsrs r4, r1, 0xd | r4 = r1 >> 0xd;
0x000012fa movs r0, r0 |
0x000012fc lsrs r4, r2, 0xd | r4 = r2 >> 0xd;
0x000012fe movs r0, r0 |
0x00001300 lsrs r0, r4, 0xd | r0 = r4 >> 0xd;
0x00001302 movs r0, r0 |
0x00001304 lsrs r0, r5, 0xd | r0 = r5 >> 0xd;
0x00001306 movs r0, r0 |
0x00001308 lsrs r4, r2, 0x11 | r4 = r2 >> 0x11;
0x0000130a movs r0, r0 |
0x0000130c lsrs r2, r5, 0x10 | r2 = r5 >> 0x10;
0x0000130e movs r0, r0 |
0x00001310 lsrs r4, r6, 0xf | r4 = r6 >> 0xf;
0x00001312 movs r0, r0 |
0x00001314 lsrs r6, r1, 0xc | r6 = r1 >> 0xc;
0x00001316 movs r0, r0 |
0x00001318 lsrs r6, r7, 4 | r6 = r7 >> 4;
0x0000131a movs r0, r0 |
0x0000131c lsrs r0, r4, 0xe | r0 = r4 >> 0xe;
0x0000131e movs r0, r0 |
0x00001320 lsrs r6, r7, 0xb | r6 = r7 >> 0xb;
0x00001322 movs r0, r0 |
0x00001324 lsrs r0, r7, 0xd | r0 = r7 >> 0xd;
0x00001326 movs r0, r0 |
0x00001328 lsrs r6, r5, 6 | r6 = r5 >> 6;
0x0000132a movs r0, r0 |
0x0000132c lsrs r2, r0, 4 | r2 = r0 >> 4;
0x0000132e movs r0, r0 |
0x00001330 lsls r2, r7, 0x15 | r2 = r7 << 0x15;
0x00001332 movs r0, r0 |
0x00001334 lsrs r0, r5, 3 | r0 = r5 >> 3;
0x00001336 movs r0, r0 |
0x00001338 lsrs r4, r6, 3 | r4 = r6 >> 3;
0x0000133a movs r0, r0 |
0x0000133c lsrs r6, r0, 0xc | r6 = r0 >> 0xc;
0x0000133e movs r0, r0 |
0x00001340 lsrs r4, r3, 3 | r4 = r3 >> 3;
0x00001342 movs r0, r0 |
0x00001344 lsrs r6, r3, 0xb | r6 = r3 >> 0xb;
0x00001346 movs r0, r0 |
0x00001348 lsrs r4, r3, 1 | r4 = r3 >> 1;
0x0000134a movs r0, r0 |
0x0000134c lsrs r2, r1, 0xb | r2 = r1 >> 0xb;
0x0000134e movs r0, r0 |
0x00001350 lsls r4, r7, 0x1f | r4 = r7 << 0x1f;
0x00001352 movs r0, r0 |
0x00001354 lsrs r2, r5, 0xa | r2 = r5 >> 0xa;
0x00001356 movs r0, r0 |
0x00001358 lsrs r0, r1, 1 | r0 = r1 >> 1;
0x0000135a movs r0, r0 |
0x0000135c lsrs r4, r1, 7 | r4 = r1 >> 7;
0x0000135e movs r0, r0 |
0x00001360 lsrs r2, r2, 0xa | r2 >>= 0xa;
0x00001362 movs r0, r0 |
0x00001364 lsrs r4, r0, 0xa | r4 = r0 >> 0xa;
0x00001366 movs r0, r0 |
0x00001368 lsrs r6, r1, 8 | r6 = r1 >> 8;
0x0000136a movs r0, r0 |
0x0000136c lsls r4, r0, 0x13 | r4 = r0 << 0x13;
0x0000136e movs r0, r0 |
0x00001370 lsls r4, r0, 0x1f | r4 = r0 << 0x1f;
0x00001372 movs r0, r0 |
0x00001374 lsrs r2, r2, 9 | r2 >>= 9;
0x00001376 movs r0, r0 |
0x00001378 lsls r0, r5, 0x14 | r0 = r5 << 0x14;
0x0000137a movs r0, r0 |
0x0000137c lsrs r0, r1, 8 | r0 = r1 >> 8;
0x0000137e movs r0, r0 |
0x00001380 lsls r6, r4, 0x1e | r6 = r4 << 0x1e;
0x00001382 movs r0, r0 |
0x00001384 lsls r0, r5, 0x16 | r0 = r5 << 0x16;
0x00001386 movs r0, r0 |
0x00001388 lsrs r2, r6, 7 | r2 = r6 >> 7;
0x0000138a movs r0, r0 |
0x0000138c lsls r4, r5, 0x16 | r4 = r5 << 0x16;
0x0000138e movs r0, r0 |
0x00001390 lsrs r2, r2, 7 | r2 >>= 7;
0x00001392 movs r0, r0 |
0x00001394 lsls r0, r5, 0x1c | r0 = r5 << 0x1c;
0x00001396 movs r0, r0 |
0x00001398 lsrs r4, r7, 6 | r4 = r7 >> 6;
0x0000139a movs r0, r0 |
0x0000139c lsrs r2, r5, 5 | r2 = r5 >> 5;
0x0000139e movs r0, r0 |
0x000013a0 lsrs r0, r3, 6 | r0 = r3 >> 6;
0x000013a2 movs r0, r0 |
0x000013a4 lsls r2, r4, 0x1e | r2 = r4 << 0x1e;
0x000013a6 movs r0, r0 |
0x000013a8 lsrs r6, r0, 5 | r6 = r0 >> 5;
0x000013aa movs r0, r0 |
0x000013ac lsrs r0, r0, 1 | r0 >>= 1;
0x000013ae movs r0, r0 |
0x000013b0 lsrs r6, r5, 4 | r6 = r5 >> 4;
0x000013b2 movs r0, r0 |
0x000013b4 lsls r0, r6, 0x1e | r0 = r6 << 0x1e;
0x000013b6 movs r0, r0 |
0x000013ec adds r0, 0x14 | r0 += 0x14;
0x000013ee b 0xf30 | goto label_4;
| }
; 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-run-session @ 0xc18 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main (int32_t argc, char ** argv) {
| int16_t var_0h;
| int32_t var_0h_2;
| int16_t var_8h;
| int16_t var_ch;
| char * var_10h;
| char * s2;
| char * var_18h;
| char * var_1ch;
| char * var_20h;
| char * var_24h;
| int16_t var_28h;
| char * var_2ch;
| char ** var_30h;
| void * var_34h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t errnum;
| int32_t fildes;
| int16_t var_54h;
| int16_t var_94h;
| void * s;
| int16_t var_294h;
| r0 = argc;
| r1 = argv;
| /* [13] -r-x section size 2372 named .text */
0x00000c18 ldr.w r3, [pc, 0x680] | r3 = *(0x0000129c);
0x00000c1c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00000c20 sub.w sp, sp, 0x29c |
0x00000c24 ldr.w r2, [pc, 0x678] | r2 = *(0x000012a0);
0x00000c28 movs r4, 0 | r4 = 0;
0x00000c2a add r3, pc | r3 += pc;
0x00000c2c mov r8, r0 | r8 = r0;
0x00000c2e str r3, [sp, 0x28] | var_28h = r3;
0x00000c30 add.w sb, sp, 0x3c | sb += var_3ch;
0x00000c34 ldr.w r3, [pc, 0x66c] |
0x00000c38 add r2, pc | r2 += pc;
0x00000c3a str r1, [sp, 0x30] | var_30h = r1;
0x00000c3c add.w sl, sp, 0x40 | sl += var_40h;
0x00000c40 mov r1, r4 | r1 = r4;
0x00000c42 add r0, sp, 0x98 | r0 += s;
0x00000c44 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00000c46 mov.w r2, 0x1fc | r2 = 0x1fc;
0x00000c4a ldr r3, [r3] | r3 = *(0x12a4);
0x00000c4c str r3, [sp, 0x294] | var_294h = r3;
0x00000c4e mov.w r3, 0 | r3 = 0;
0x00000c52 add r3, sp, 0x94 | r3 += var_94h;
0x00000c54 str.w r4, [sb] | __asm ("str.w r4, [sb]");
0x00000c58 str.w r4, [sl] | __asm ("str.w r4, [sl]");
0x00000c5c str r3, [sp, 0x34] | var_34h = r3;
0x00000c5e str r4, [sp, 0x94] | var_94h = r4;
0x00000c60 blx 0xb10 | memset (r0, r1, r2);
0x00000c64 cmp.w r8, 1 |
| if (r8 <= 1) {
0x00000c68 ble 0xce0 | goto label_8;
| }
0x00000c6a ldr.w r3, [pc, 0x63c] |
0x00000c6e movs r5, 2 | r5 = 2;
0x00000c70 ldr r6, [sp, 0x30] | r6 = var_30h;
0x00000c72 mov r7, r4 | r7 = r4;
0x00000c74 add r3, pc | r3 = 0x1f22;
0x00000c76 str r3, [sp, 0x10] | var_10h = r3;
0x00000c78 ldr.w r3, [pc, 0x630] |
0x00000c7c add r3, pc | r3 = 0x1f2c;
0x00000c7e str r3, [sp, 0x18] | var_18h = r3;
0x00000c80 ldr.w r3, [pc, 0x62c] |
0x00000c84 add r3, pc | r3 = 0x1f38;
0x00000c86 str r3, [sp, 0x1c] | var_1ch = r3;
0x00000c88 ldr.w r3, [pc, 0x628] |
0x00000c8c add r3, pc | r3 = 0x1f44;
0x00000c8e str r3, [sp, 0x20] | var_20h = r3;
0x00000c90 ldr.w r3, [pc, 0x624] |
0x00000c94 add r3, pc | r3 = 0x1f50;
0x00000c96 str r3, [sp, 0x2c] | var_2ch = r3;
0x00000c98 ldr.w r3, [pc, 0x620] |
0x00000c9c add r3, pc | r3 = 0x1f5c;
0x00000c9e str r3, [sp, 0x14] | s2 = r3;
0x00000ca0 ldr.w r3, [pc, 0x61c] |
0x00000ca4 add r3, pc | r3 = 0x1f68;
0x00000ca6 str r3, [sp, 0x24] | var_24h = r3;
| do {
0x00000ca8 mov fp, r4 |
0x00000caa ldr r4, [r6, 4]! | r4 = *((r6 += 4));
| if (r7 == 0) {
0x00000cae cbz r7, 0xcfe | goto label_9;
| }
0x00000cb0 ldr r1, [sp, 0x14] | r1 = s2;
0x00000cb2 mov r0, fp | r0 = fp;
0x00000cb4 blx 0xbe8 | r0 = strcmp (r0, r1);
0x00000cb8 cmp r0, 0 |
| if (r0 == 0) {
0x00000cba beq 0xd7c | goto label_10;
| }
0x00000cbc ldr r1, [sp, 0x24] | r1 = var_24h;
0x00000cbe mov r0, fp | r0 = fp;
0x00000cc0 blx 0xbe8 | r0 = strcmp (r0, r1);
0x00000cc4 cmp r0, 0 |
| if (r0 != 0) {
0x00000cc6 bne.w 0xdfe | goto label_11;
| }
0x00000cca ldr.w r7, [sl] | r7 = *(sl);
0x00000cce mov r2, sl | r2 = sl;
0x00000cd0 cmp r7, 0 |
| if (r7 != 0) {
0x00000cd2 bne 0xd86 | goto label_12;
| }
| label_1:
0x00000cd4 mov r3, r5 | r3 = r5;
0x00000cd6 str r4, [r2] | *(r2) = r4;
| label_0:
0x00000cd8 cmp r8, r3 |
0x00000cda add.w r5, r5, 1 | r5++;
0x00000cde bgt 0xca8 |
| } while (r8 > r3);
| label_8:
0x00000ce0 ldr.w r3, [pc, 0x5e0] |
0x00000ce4 ldr.w r2, [pc, 0x5e0] | r2 = *(0x000012c8);
0x00000ce8 ldr.w r0, [pc, 0x5e0] | r0 = *(0x12cc);
0x00000cec add r3, pc | r3 = 0x1fb4;
0x00000cee add r2, pc | r2 += pc;
| label_2:
0x00000cf0 ldr r4, [sp, 0x28] | r4 = var_28h;
0x00000cf2 movs r1, 1 | r1 = 1;
0x00000cf4 ldr r0, [r4, r0] | r0 = *((r4 + r0));
0x00000cf6 ldr r0, [r0] | r0 = *(r0);
0x00000cf8 blx 0xb94 | fprintf_chk ()
0x00000cfc b 0xda6 | void (*0xda6)() ();
| label_9:
0x00000cfe ldr r1, [sp, 0x10] | r1 = var_10h;
0x00000d00 mov r0, r4 | r0 = r4;
0x00000d02 blx 0xbe8 | r0 = strcmp (r0, r1);
0x00000d06 cmp r0, 0 |
| if (r0 == 0) {
0x00000d08 beq.w 0x115e | goto label_13;
| }
0x00000d0c ldrb r3, [r4] | r3 = *(r4);
0x00000d0e cmp r3, 0x2d |
| if (r3 == 0x2d) {
0x00000d10 bne 0xd32 |
0x00000d12 ldrb r2, [r4, 1] | r2 = *((r4 + 1));
0x00000d14 cmp r2, 0x68 |
| if (r2 == 0x68) {
0x00000d16 bne 0xd20 |
0x00000d18 ldrb r2, [r4, 2] | r2 = *((r4 + 2));
0x00000d1a cmp r2, 0 |
| if (r2 == 0) {
0x00000d1c beq.w 0x115e | goto label_13;
| }
| }
0x00000d20 cmp r3, 0x2d |
| if (r3 != 0x2d) {
0x00000d22 bne 0xd32 | goto label_14;
| }
0x00000d24 ldrb r3, [r4, 1] | r3 = *((r4 + 1));
0x00000d26 cmp r3, 0x3f |
| if (r3 != 0x3f) {
0x00000d28 bne 0xd32 | goto label_14;
| }
0x00000d2a ldrb r3, [r4, 2] | r3 = *((r4 + 2));
0x00000d2c cmp r3, 0 |
| if (r3 == 0) {
0x00000d2e beq.w 0x115e | goto label_13;
| }
| }
| label_14:
0x00000d32 ldr r1, [sp, 0x18] | r1 = var_18h;
0x00000d34 mov r0, r4 | r0 = r4;
0x00000d36 blx 0xbe8 | r0 = strcmp (r0, r1);
0x00000d3a cmp r0, 0 |
| if (r0 == 0) {
0x00000d3c beq.w 0x11be | goto label_15;
| }
0x00000d40 ldr r1, [sp, 0x1c] | r1 = var_1ch;
0x00000d42 movs r2, 0xe | r2 = 0xe;
0x00000d44 mov r0, r4 | r0 = r4;
0x00000d46 blx 0xbb8 | r0 = strncmp (r0, r1, r2);
0x00000d4a cmp r0, 0 |
| if (r0 == 0) {
0x00000d4c beq 0xdca | goto label_16;
| }
0x00000d4e ldr r1, [sp, 0x20] | r1 = var_20h;
0x00000d50 movs r2, 0xe | r2 = 0xe;
0x00000d52 mov r0, r4 | r0 = r4;
0x00000d54 blx 0xbb8 | r0 = strncmp (r0, r1, r2);
0x00000d58 cmp r0, 0 |
| if (r0 == 0) {
0x00000d5a beq 0xde2 | goto label_17;
| }
0x00000d5c ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x00000d5e mov r0, r4 | r0 = r4;
0x00000d60 blx 0xbe8 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x00000d64 cbz r0, 0xd76 |
0x00000d66 ldr.w r1, [pc, 0x568] | r1 = *(0x000012d0);
0x00000d6a mov r0, r4 | r0 = r4;
0x00000d6c add r1, pc | r1 += pc;
0x00000d6e blx 0xbe8 | r0 = strcmp (r0, r1);
0x00000d72 cmp r0, 0 |
| if (r0 != 0) {
0x00000d74 bne 0xe24 | goto label_18;
| }
| }
0x00000d76 movs r7, 1 | r7 = 1;
0x00000d78 mov r3, r5 | r3 = r5;
0x00000d7a b 0xcd8 | goto label_0;
| label_10:
0x00000d7c ldr.w r7, [sb] | r7 = *(sb);
0x00000d80 mov r2, sb | r2 = sb;
0x00000d82 cmp r7, 0 |
| if (r7 == 0) {
0x00000d84 beq 0xcd4 | goto label_1;
| }
| label_12:
0x00000d86 ldr.w r3, [pc, 0x54c] |
0x00000d8a mov r7, fp | r7 = fp;
0x00000d8c ldr.w r2, [pc, 0x548] | r2 = *(0x000012d8);
0x00000d90 ldr.w r1, [pc, 0x538] | r1 = *(0x12cc);
0x00000d94 add r3, pc | r3 = 0x206e;
0x00000d96 add r2, pc | r2 += pc;
| do {
0x00000d98 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00000d9a ldr r0, [r0, r1] | r0 = *((r0 + r1));
0x00000d9c movs r1, 1 | r1 = 1;
0x00000d9e str r7, [sp] | *(sp) = r7;
0x00000da0 ldr r0, [r0] | r0 = *(r0);
0x00000da2 blx 0xb94 | fprintf_chk ()
| label_16:
0x00000dca ldr.w r3, [sb] | r3 = *(sb);
| if (r3 != 0) {
0x00000dce cbnz r3, 0xe12 | goto label_19;
| }
0x00000dd0 movs r1, 0x3d | r1 = 0x3d;
0x00000dd2 mov r0, r4 | r0 = r4;
0x00000dd4 blx 0xb04 | strchr (r0, r1);
0x00000dd8 adds r0, 1 | r0++;
0x00000dda mov r3, r5 | r3 = r5;
0x00000ddc str.w r0, [sb] | __asm ("str.w r0, [sb]");
0x00000de0 b 0xcd8 | goto label_0;
| label_17:
0x00000de2 ldr.w r3, [sl] | r3 = *(sl);
0x00000de6 cmp r3, 0 |
| if (r3 != 0) {
0x00000de8 bne.w 0x10ec | goto label_20;
| }
0x00000dec movs r1, 0x3d | r1 = 0x3d;
0x00000dee mov r0, r4 | r0 = r4;
0x00000df0 blx 0xb04 | strchr (r0, r1);
0x00000df4 adds r0, 1 | r0++;
0x00000df6 mov r3, r5 | r3 = r5;
0x00000df8 str.w r0, [sl] | __asm ("str.w r0, [sl]");
0x00000dfc b 0xcd8 | goto label_0;
| label_11:
0x00000dfe ldr.w r3, [pc, 0x4e0] |
0x00000e02 mov r7, fp | r7 = fp;
0x00000e04 ldr.w r2, [pc, 0x4dc] | r2 = *(0x000012e4);
0x00000e08 ldr.w r1, [pc, 0x4c0] | r1 = *(0x12cc);
0x00000e0c add r3, pc | r3 = 0x20f2;
0x00000e0e add r2, pc | r2 += pc;
0x00000e10 b 0xd98 |
| } while (1);
| label_19:
0x00000e12 ldr.w r3, [pc, 0x4d4] | r3 = *(0x000012e8);
0x00000e16 ldr.w r2, [pc, 0x4d4] |
0x00000e1a ldr.w r0, [pc, 0x4b0] | r0 = *(0x12ce);
0x00000e1e add r3, pc | r3 += pc;
0x00000e20 add r2, pc | r2 = 0x2112;
0x00000e22 b 0xcf0 | goto label_2;
| label_18:
0x00000e24 ldrb r3, [r4] | r3 = *(r4);
0x00000e26 cmp r3, 0x2d |
| if (r3 == 0x2d) {
0x00000e28 beq.w 0x1148 | goto label_21;
| }
0x00000e2c subs r5, 1 | r5--;
| label_7:
0x00000e2e ldr.w r3, [sl] | r3 = *(sl);
0x00000e32 cmp r3, 0 |
| if (r3 == 0) {
0x00000e34 beq.w 0xff0 | goto label_22;
| }
| label_5:
0x00000e38 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00000e3c ldr.w r6, [sb] | r6 = *(sb);
0x00000e40 add.w sb, sp, 0x48 | sb += errnum;
0x00000e44 mov r0, sb | r0 = sb;
0x00000e46 ldr.w r4, [sl] | r4 = *(sl);
0x00000e4a vstr d16, [sp, 0x48] | __asm ("vstr d16, [sp, 0x48]");
0x00000e4e blx 0xbdc | r0 = pipe ();
0x00000e52 cmp r0, 0 |
| if (r0 < 0) {
0x00000e54 blt.w 0x10c0 | goto label_23;
| }
0x00000e58 ldr r7, [sp, 0x28] | r7 = var_28h;
0x00000e5a ldr.w r3, [pc, 0x494] | r3 = *(0x12f2);
0x00000e5e ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x00000e60 ldr r0, [r3] | r0 = *(0x12f2);
0x00000e62 str r3, [sp, 0x10] | var_10h = r3;
0x00000e64 blx 0xb4c | fflush (r0);
0x00000e68 ldr.w r3, [pc, 0x460] | r3 = *(0x12cc);
0x00000e6c ldr.w sl, [r7, r3] | sl = *((r7 + r3));
0x00000e70 ldr.w r0, [sl] | r0 = *(sl);
0x00000e74 blx 0xb4c | r0 = fflush (r0);
0x00000e78 blx 0xba0 | r0 = fork ();
0x00000e7c subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00000e80 blt.w 0x10f8 | goto label_24;
| }
| if (r8 == r0) {
0x00000e84 beq.w 0x104e | goto label_25;
| }
0x00000e88 ldr.w r0, [sb, 4] | r0 = fildes;
0x00000e8c movw r4, 0x1ff | r4 = 0x1ff;
0x00000e90 blx 0xb7c | close (r0);
0x00000e94 mov.w r2, 0x200 | r2 = 0x200;
0x00000e98 ldr r0, [sp, 0x34] | r0 = var_34h;
0x00000e9a movs r1, 0 | r1 = 0;
0x00000e9c ldr.w r7, [sb] | r7 = *(sb);
0x00000ea0 mov.w fp, 0 |
0x00000ea4 mov r6, r4 | r6 = r4;
0x00000ea6 blx 0xb10 | memset (r0, r1, r2);
0x00000eaa mov r2, r4 | r2 = r4;
| do {
| label_3:
0x00000eac ldr r3, [sp, 0x34] | r3 = var_34h;
0x00000eae mov r0, r7 | r0 = r7;
0x00000eb0 add.w r1, r3, fp | r1 = r3 + fp;
0x00000eb4 blx 0xb34 | r0 = read (r0, r1, r2);
0x00000eb8 cmp r0, 0 |
| if (r0 < 0) {
0x00000eba blt 0xf98 | goto label_26;
| }
| if (r0 == 0) {
0x00000ebc beq.w 0xfd2 | goto label_27;
| }
0x00000ec0 add fp, r0 |
0x00000ec2 subs.w r2, r6, fp | r2 = r6 - fp;
0x00000ec6 bne 0xeac |
| } while (r2 != r6);
0x00000ec8 mov r4, r2 | r4 = r2;
0x00000eca movw fp, 0x1ff | fp = 0x1ff;
| label_6:
0x00000ece eor r3, r4, 1 | r3 = r4 ^ 1;
0x00000ed2 cmp.w fp, 0 |
0x00000ed6 ite eq |
| if (fp != 0) {
0x00000ed8 moveq r3, 0 | r3 = 0;
| }
| if (fp == 0) {
0x00000eda andne r3, r3, 1 | r3 &= 1;
| }
0x00000ede cmp r3, 0 |
| if (r3 != 0) {
0x00000ee0 bne.w 0x122e | goto label_28;
| }
0x00000ee4 cmp r4, 1 |
| if (r4 == 1) {
0x00000ee6 beq.w 0x102a | goto label_29;
| }
| label_4:
0x00000eea ldr.w r0, [sb] | r0 = *(sb);
0x00000eee blx 0xb7c | close (r0);
0x00000ef2 ldr.w r0, [pc, 0x400] |
0x00000ef6 ldr r1, [sp, 0x34] | r1 = var_34h;
0x00000ef8 add r0, pc | r0 = 0x21f2;
0x00000efa blx 0xae0 | r0 = dbus_setenv ();
0x00000efe cmp r0, 0 |
| if (r0 == 0) {
0x00000f00 beq.w 0x1284 | void (*0x1284)() ();
| }
0x00000f04 ldr r0, [pc, 0x3f0] |
0x00000f06 movs r1, 0 | r1 = 0;
0x00000f08 add r0, pc | r0 = 0x2204;
0x00000f0a blx 0xae0 | r0 = dbus_setenv ();
0x00000f0e cmp r0, 0 |
| if (r0 == 0) {
0x00000f10 beq.w 0x1284 | void (*0x1284)() ();
| }
0x00000f14 ldr r0, [pc, 0x3e4] |
0x00000f16 movs r1, 0 | r1 = 0;
0x00000f18 add r0, pc | r0 = 0x2218;
0x00000f1a blx 0xae0 | r0 = dbus_setenv ();
0x00000f1e cmp r0, 0 |
| if (r0 == 0) {
0x00000f20 beq.w 0x1284 | void (*0x1284)() ();
| }
0x00000f24 ldr r0, [pc, 0x3d8] |
0x00000f26 movs r1, 0 | r1 = 0;
0x00000f28 add r0, pc | r0 = 0x222c;
0x00000f2a blx 0xae0 | r0 = dbus_setenv ();
0x00000f2e cmp r0, 0 |
| label_26:
0x00000f98 blx 0xc00 | r0 = errno_location ();
0x00000f9c ldr r3, [r0] | r3 = *(r0);
0x00000f9e cmp r3, 4 |
| if (r3 != 4) {
0x00000fa0 bne.w 0x10e8 | goto label_30;
| }
0x00000fa4 sub.w r2, r6, fp | r2 = r6 - fp;
0x00000fa8 b 0xeac | goto label_3;
| label_27:
0x00000fd2 cmp.w fp, 0 |
| if (fp == 0) {
0x00000fd6 beq.w 0x121a | goto label_31;
| }
0x00000fda ldr r3, [sp, 0x34] | r3 = var_34h;
0x00000fdc add.w fp, fp, -1 |
0x00000fe0 ldrb.w r3, [r3, fp] | r3 = *((r3 + fp));
0x00000fe4 cmp r3, 0xa |
| if (r3 != 0xa) {
0x00000fe6 bne 0xeea | goto label_4;
| }
0x00000fe8 ldr r3, [sp, 0x34] | r3 = var_34h;
0x00000fea strb.w r0, [r3, fp] | *((r3 + fp)) = r0;
0x00000fee b 0xeea | goto label_4;
| label_22:
0x00000ff0 ldr r3, [pc, 0x324] |
0x00000ff2 add r3, pc | r3 = 0x230e;
0x00000ff4 str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x00000ff8 b 0xe38 | goto label_5;
| label_29:
0x0000102a blx 0xc00 | r0 = errno_location ();
0x0000102e ldr r0, [r0] | r0 = *(r0);
0x00001030 ldr.w r6, [sl] | r6 = *(sl);
0x00001034 blx 0xac8 | strerror (r0);
0x00001038 ldr r3, [pc, 0x2e8] |
0x0000103a mov r5, r0 | r5 = r0;
0x0000103c ldr r2, [pc, 0x2e8] |
0x0000103e mov r1, r4 | r1 = r4;
0x00001040 mov r0, r6 | r0 = r6;
0x00001042 str r5, [sp] | *(sp) = r5;
0x00001044 add r3, pc | r3 = 0x236c;
0x00001046 add r2, pc | r2 = 0x2372;
0x00001048 blx 0xb94 | fprintf_chk ()
0x0000104c b 0xda6 | void (*0xda6)() ();
| label_25:
0x0000104e ldr.w r0, [sb] | r0 = *(sb);
0x00001052 add r5, sp, 0x54 | r5 += var_54h;
0x00001054 blx 0xb7c | r0 = close (r0);
0x00001058 blx 0xb70 | dbus_fd_set_all_close_on_exec ();
0x0000105c ldr.w r0, [sb, 4] | r0 = fildes;
0x00001060 blx 0xb58 | dbus_fd_clear_close_on_exec ();
0x00001064 ldr.w r3, [sb, 4] | r3 = fildes;
0x00001068 movs r2, 0x40 | r2 = 0x40;
0x0000106a movs r1, 1 | r1 = 1;
0x0000106c mov r0, r5 | r0 = r5;
0x0000106e str r3, [sp] | *(sp) = r3;
0x00001070 ldr r3, [pc, 0x2b8] |
0x00001072 add r3, pc | r3 = 0x23a2;
0x00001074 blx 0xbac | sprintf_chk ();
0x00001078 cmp r6, 0 |
| if (r6 == 0) {
0x0000107a beq 0x1142 | goto label_32;
| }
0x0000107c ldr r2, [pc, 0x2b0] |
0x0000107e add r2, pc | r2 = 0x23b2;
| do {
0x00001080 strd r5, r2, [sp] | __asm ("strd r5, r2, [sp]");
0x00001084 movs r0, 0 | r0 = 0;
0x00001086 ldr r3, [pc, 0x2ac] |
0x00001088 mov r1, r4 | r1 = r4;
0x0000108a ldr r2, [pc, 0x2ac] |
0x0000108c str r0, [sp, 0xc] | var_ch = r0;
0x0000108e mov r0, r4 | r0 = r4;
0x00001090 add r3, pc | r3 = 0x23ca;
0x00001092 str r6, [sp, 8] | var_8h = r6;
0x00001094 add r2, pc | r2 = 0x23d2;
0x00001096 blx 0xb28 | execlp ();
0x0000109a blx 0xc00 | r0 = errno_location ();
0x0000109e ldr r0, [r0] | r0 = *(r0);
0x000010a0 ldr.w r5, [sl] | r5 = *(sl);
0x000010a4 blx 0xac8 | strerror (r0);
0x000010a8 ldr r3, [pc, 0x290] |
0x000010aa mov r1, r0 | r1 = r0;
0x000010ac ldr r2, [pc, 0x290] |
0x000010ae mov r0, r5 | r0 = r5;
0x000010b0 strd r4, r1, [sp] | __asm ("strd r4, r1, [sp]");
0x000010b4 movs r1, 1 | r1 = 1;
0x000010b6 add r3, pc | r3 = 0x23f6;
0x000010b8 add r2, pc | r2 = 0x23fc;
0x000010ba blx 0xb94 | fprintf_chk ()
0x000010be b 0xda6 | void (*0xda6)() ();
| label_23:
0x000010c0 ldr r2, [sp, 0x28] | r2 = var_28h;
0x000010c2 ldr r3, [pc, 0x208] | r3 = *(0x12ce);
0x000010c4 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000010c6 ldr r5, [r3] | r5 = *(0x12ce);
0x000010c8 blx 0xc00 | r0 = errno_location ();
0x000010cc ldr r0, [r0] | r0 = *(r0);
0x000010ce blx 0xac8 | strerror (r0);
0x000010d2 ldr r3, [pc, 0x270] |
0x000010d4 mov r4, r0 | r4 = r0;
0x000010d6 ldr r2, [pc, 0x270] |
0x000010d8 movs r1, 1 | r1 = 1;
0x000010da mov r0, r5 | r0 = r5;
0x000010dc str r4, [sp] | *(sp) = r4;
0x000010de add r3, pc | r3 = 0x2428;
0x000010e0 add r2, pc | r2 = 0x242e;
0x000010e2 blx 0xb94 | fprintf_chk ()
0x000010e6 b 0xda6 | void (*0xda6)() ();
| label_30:
0x000010e8 movs r4, 1 | r4 = 1;
0x000010ea b 0xece | goto label_6;
| label_20:
0x000010ec ldr r3, [pc, 0x25c] |
0x000010ee ldr r2, [pc, 0x260] |
0x000010f0 ldr r0, [pc, 0x1d8] | r0 = *(0x12cc);
0x000010f2 add r3, pc | r3 = 0x2442;
0x000010f4 add r2, pc | r2 = 0x244a;
0x000010f6 b 0xcf0 | goto label_2;
| label_24:
0x000010f8 blx 0xc00 | r0 = errno_location ();
0x000010fc ldr r0, [r0] | r0 = *(r0);
0x000010fe ldr.w r5, [sl] | r5 = *(sl);
0x00001102 blx 0xac8 | strerror (r0);
0x00001106 ldr r3, [pc, 0x24c] |
0x00001108 mov r4, r0 | r4 = r0;
0x0000110a ldr r2, [pc, 0x24c] |
0x0000110c movs r1, 1 | r1 = 1;
0x0000110e mov r0, r5 | r0 = r5;
0x00001110 str r4, [sp] | *(sp) = r4;
0x00001112 add r3, pc | r3 = 0x246c;
0x00001114 add r2, pc | r2 = 0x2472;
0x00001116 blx 0xb94 | fprintf_chk ()
0x0000111a b 0xda6 | void (*0xda6)() ();
| label_32:
0x00001142 ldr r2, [pc, 0x228] |
0x00001144 add r2, pc | r2 = 0x24b6;
0x00001146 b 0x1080 |
| } while (1);
| label_21:
0x00001148 ldr r1, [pc, 0x224] |
0x0000114a mov r0, r4 | r0 = r4;
0x0000114c add r1, pc | r1 = 0x24c0;
0x0000114e blx 0xbe8 | r0 = strcmp (r0, r1);
0x00001152 cmp r0, 0 |
| if (r0 != 0) {
0x00001154 bne 0x11dc | void (*0x11dc)() ();
| }
0x00001156 cmp r8, r5 |
| if (r8 > r5) {
0x00001158 bgt.w 0xe2e | goto label_7;
| }
0x0000115c b 0xce0 | goto label_8;
| label_13:
0x0000115e ldr r4, [sp, 0x28] | r4 = var_28h;
0x00001160 movs r1, 1 | r1 = 1;
0x00001162 ldr r0, [pc, 0x168] |
0x00001164 ldr r3, [pc, 0x20c] |
0x00001166 ldr r2, [pc, 0x210] |
0x00001168 ldr r0, [r4, r0] | r0 = *((r4 + r0));
0x0000116a add r3, pc | r3 = 0x24e2;
0x0000116c strd r3, r3, [sp] | __asm ("strd r3, r3, [sp]");
0x00001170 add r2, pc | r2 = 0x24ee;
0x00001172 ldr r0, [r0] | r0 = *(0x12ce);
0x00001174 blx 0xb94 | fprintf_chk ()
0x00001178 movs r0, 0 | r0 = 0;
0x0000117a blx 0xbf4 | exit (r0);
| label_15:
0x000011be ldr r3, [pc, 0x1c4] |
0x000011c0 mov r7, r0 | r7 = r0;
0x000011c2 ldr r2, [pc, 0x1c4] |
0x000011c4 movs r0, 1 | r0 = 1;
0x000011c6 ldr r1, [pc, 0x1c4] |
0x000011c8 add r3, pc | r3 = 0x2552;
0x000011ca add r2, pc | r2 = 0x2558;
0x000011cc add r1, pc | r1 = 0x255e;
0x000011ce blx 0xaf8 | printf_chk ();
0x000011d2 mov r0, r7 | r0 = r7;
0x000011d4 blx 0xbf4 | exit (r0);
| label_31:
0x0000121a ldr r3, [pc, 0x184] |
0x0000121c movs r1, 1 | r1 = 1;
0x0000121e ldr r2, [pc, 0x184] |
0x00001220 ldr.w r0, [sl] | r0 = *(sl);
0x00001224 add r3, pc | r3 = 0x25ca;
0x00001226 add r2, pc | r2 = 0x25d0;
0x00001228 blx 0xb94 | fprintf_chk ()
0x0000122c b 0xda6 | void (*0xda6)() ();
| label_28:
0x0000122e ldr r3, [sp, 0x34] | r3 = var_34h;
0x00001230 add.w fp, fp, -1 |
0x00001234 ldrb.w r3, [r3, fp] | r3 = *((r3 + fp));
0x00001238 cmp r3, 0xa |
| if (r3 != 0xa) {
0x0000123a bne.w 0xeea | goto label_4;
| }
0x0000123e ldr r2, [sp, 0x34] | r2 = var_34h;
0x00001240 movs r3, 0 | r3 = 0;
0x00001242 strb.w r3, [r2, fp] | *((r2 + fp)) = r3;
0x00001246 b 0xeea | goto label_4;
| }
; 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-run-session @ 0x14b4 */
| #include <stdint.h>
|
; (fcn) sym.tool_oom () | void tool_oom (int16_t arg1) {
| r0 = arg1;
0x000014b4 ldr.w ip, [pc, 0x24] | ip = *(0x000014dc);
0x000014b8 movs r1, 1 | r1 = 1;
0x000014ba push {r3, lr} |
0x000014bc mov r3, r0 | r3 = r0;
0x000014be ldr.w lr, [pc, 0x20] | lr = *(0x14e2);
0x000014c2 add ip, pc |
0x000014c4 ldr r2, [pc, 0x1c] |
0x000014c6 mov r0, ip | r0 = ip;
0x000014c8 ldr.w r4, [ip, lr] | r4 = *((ip + lr));
0x000014cc add r2, pc | r2 = 0x29b4;
0x000014ce ldr r0, [r4] | r0 = *(r4);
0x000014d0 blx 0xb94 | fprintf_chk ()
0x000014d4 movs r0, 1 | r0 = 1;
0x000014d6 blx 0xbf4 | exit (r0);
0x000014da nop |
0x000014dc subs r6, r3, r2 | r6 = r3 - r2;
0x000014de movs r0, r0 |
0x000014e0 lsls r0, r2, 2 | r0 = r2 << 2;
0x000014e2 movs r0, r0 |
0x000014e4 lsls r4, r0, 0x1c | r4 = r0 << 0x1c;
0x000014e6 movs r0, r0 |
| }
; 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-run-session @ 0x1524 */
| #include <stdint.h>
|
; (fcn) sym.tool_stderr_error () | void tool_stderr_error (int16_t arg1, int16_t arg2) {
| int16_t var_0h;
| int16_t var_4h;
| r0 = arg1;
| r1 = arg2;
| if (? >= ?) {
0x00001524 strmi r4, [r3], -sl, lsl 20 | *(r3) = r4;
| r3 += 20;
| }
0x00001528 ldr.w ip, [pc, 0x28] | ip = *(0x1554);
0x0000152c push {r4, r5, lr} |
0x0000152e sub sp, 0xc |
0x00001530 add r2, pc | r2 += pc;
0x00001532 ldrd r4, r5, [r1] | __asm ("ldrd r4, r5, [r1]");
0x00001536 movs r1, 1 | r1 = 1;
0x00001538 ldr.w r0, [r2, ip] | r0 = *((r2 + ip));
0x0000153c ldr r2, [pc, 0x18] |
0x0000153e ldr r0, [r0] | r0 = *(r0);
0x00001540 add r2, pc | r2 = 0x2a9c;
0x00001542 str r5, [sp, 4] | var_4h = r5;
0x00001544 str r4, [sp] | *(sp) = r4;
0x00001546 blx 0xb94 | fprintf_chk ()
0x0000154a add sp, 0xc |
0x0000154c pop {r4, r5, pc} |
| }
[*] Function fprintf used 21 times dbus-run-session