[*] Binary protection state of dbus-monitor
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of dbus-monitor
; 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-monitor @ 0x1dfc */
| #include <stdint.h>
|
; (fcn) fcn.00001dfc () | void fcn_00001dfc (int16_t arg_18h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_0h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x00001dfc push {r4, r5, lr} |
0x00001dfe mov r4, r1 | r4 = r1;
0x00001e00 ldr r1, [pc, 0x10c] |
0x00001e02 sub sp, 0xc |
0x00001e04 mov r5, r3 | r5 = r3;
0x00001e06 mov r3, r2 | r3 = r2;
0x00001e08 str r5, [sp] | *(sp) = r5;
0x00001e0a mov r2, r0 | r2 = r0;
0x00001e0c add r1, pc | r1 = 0x3d20;
0x00001e0e movs r0, 1 | r0 = 1;
0x00001e10 ldr r5, [sp, 0x18] | r5 = *(arg_18h);
0x00001e12 blx 0x1388 | printf_chk ()
0x00001e16 mov r0, r4 | r0 = r4;
0x00001e18 blx 0x13ec | fcn_000013ec ();
0x00001e1c ldr r1, [pc, 0xf4] |
0x00001e1e mov r2, r0 | r2 = r0;
0x00001e20 movs r0, 1 | r0 = 1;
0x00001e22 add r1, pc | r1 = 0x3d3a;
0x00001e24 blx 0x1388 | printf_chk ()
0x00001e28 mov r0, r4 | r0 = r4;
0x00001e2a blx 0x1358 | r0 = dbus_message_get_sender ();
| if (r0 == 0) {
0x00001e2e cbz r0, 0x1e78 | goto label_5;
| }
0x00001e30 mov r0, r4 | r0 = r4;
0x00001e32 blx 0x1358 | r0 = dbus_message_get_sender ();
0x00001e36 mov r2, r0 | r2 = r0;
| do {
0x00001e38 ldr r1, [pc, 0xdc] |
0x00001e3a movs r0, 1 | r0 = 1;
0x00001e3c add r1, pc | r1 = 0x3d58;
0x00001e3e blx 0x1388 | printf_chk ()
0x00001e42 mov r0, r4 | r0 = r4;
0x00001e44 blx 0x15e4 | r0 = fcn_000015e4 ();
| if (r0 == 0) {
0x00001e48 cbz r0, 0x1e7e | goto label_6;
| }
0x00001e4a mov r0, r4 | r0 = r4;
0x00001e4c blx 0x15e4 | r0 = fcn_000015e4 ();
0x00001e50 mov r2, r0 | r2 = r0;
| label_0:
0x00001e52 ldr r1, [pc, 0xc8] |
0x00001e54 movs r0, 1 | r0 = 1;
0x00001e56 add r1, pc | r1 = 0x3d78;
0x00001e58 blx 0x1388 | printf_chk ()
0x00001e5c lsls r0, r5, 0x1e | r0 = r5 << 0x1e;
| if (r0 < r5) {
0x00001e5e bmi 0x1eac | goto label_7;
| }
0x00001e60 lsls r1, r5, 0x1b | r1 = r5 << 0x1b;
| if (r1 < r5) {
0x00001e62 bmi 0x1ec2 | goto label_8;
| }
| label_1:
0x00001e64 lsls r2, r5, 0x1a | r2 = r5 << 0x1a;
| if (r2 < r5) {
0x00001e66 bmi 0x1ee0 | goto label_9;
| }
| label_2:
0x00001e68 lsls r3, r5, 0x19 | r3 = r5 << 0x19;
| if (r3 < r5) {
0x00001e6a bmi 0x1e84 | goto label_10;
| }
0x00001e6c movs r0, 0xa | r0 = 0xa;
0x00001e6e add sp, 0xc |
0x00001e70 pop.w {r4, r5, lr} |
0x00001e74 b.w 0x1394 | void (*0x1394)() ();
| label_5:
0x00001e78 ldr r2, [pc, 0xa4] |
0x00001e7a add r2, pc | r2 = 0x3d9e;
0x00001e7c b 0x1e38 |
| } while (1);
| label_6:
0x00001e7e ldr r2, [pc, 0xa4] |
0x00001e80 add r2, pc | r2 = 0x3daa;
0x00001e82 b 0x1e52 | goto label_0;
| label_10:
0x00001e84 mov r0, r4 | r0 = r4;
0x00001e86 blx 0x141c | r0 = fcn_0000141c ();
0x00001e8a cmp r0, 0 |
| if (r0 == 0) {
0x00001e8c beq 0x1f08 | goto label_11;
| }
0x00001e8e mov r0, r4 | r0 = r4;
0x00001e90 blx 0x141c | r0 = fcn_0000141c ();
0x00001e94 mov r2, r0 | r2 = r0;
| label_4:
0x00001e96 ldr r1, [pc, 0x90] |
0x00001e98 movs r0, 1 | r0 = 1;
0x00001e9a add r1, pc | r1 = 0x3dc8;
0x00001e9c blx 0x1388 | printf_chk ()
0x00001ea0 movs r0, 0xa | r0 = 0xa;
0x00001ea2 add sp, 0xc |
0x00001ea4 pop.w {r4, r5, lr} |
0x00001ea8 b.w 0x1394 | void (*0x1394)() ();
| label_7:
0x00001eac mov r0, r4 | r0 = r4;
0x00001eae blx 0x13f8 | fcn_000013f8 ();
0x00001eb2 ldr r1, [pc, 0x78] |
0x00001eb4 mov r2, r0 | r2 = r0;
0x00001eb6 movs r0, 1 | r0 = 1;
0x00001eb8 add r1, pc | r1 = 0x3dea;
0x00001eba blx 0x1388 | printf_chk ()
0x00001ebe lsls r1, r5, 0x1b | r1 = r5 << 0x1b;
| if (r1 >= r5) {
0x00001ec0 bpl 0x1e64 | goto label_1;
| }
| label_8:
0x00001ec2 mov r0, r4 | r0 = r4;
0x00001ec4 blx 0x1494 | r0 = fcn_00001494 ();
| if (r0 == 0) {
0x00001ec8 cbz r0, 0x1efc | goto label_12;
| }
0x00001eca mov r0, r4 | r0 = r4;
0x00001ecc blx 0x1494 | r0 = fcn_00001494 ();
0x00001ed0 mov r2, r0 | r2 = r0;
| label_3:
0x00001ed2 ldr r1, [pc, 0x5c] |
0x00001ed4 movs r0, 1 | r0 = 1;
0x00001ed6 add r1, pc | r1 = 0x3e0c;
0x00001ed8 blx 0x1388 | printf_chk ()
0x00001edc lsls r2, r5, 0x1a | r2 = r5 << 0x1a;
| if (r2 >= r5) {
0x00001ede bpl 0x1e68 | goto label_2;
| }
| label_9:
0x00001ee0 mov r0, r4 | r0 = r4;
0x00001ee2 blx 0x159c | r0 = fcn_0000159c ();
| if (r0 == 0) {
0x00001ee6 cbz r0, 0x1f02 | goto label_13;
| }
0x00001ee8 mov r0, r4 | r0 = r4;
0x00001eea blx 0x159c | r0 = fcn_0000159c ();
0x00001eee mov r2, r0 | r2 = r0;
| do {
0x00001ef0 ldr r1, [pc, 0x40] |
0x00001ef2 movs r0, 1 | r0 = 1;
0x00001ef4 add r1, pc | r1 = 0x3e2c;
0x00001ef6 blx 0x1388 | printf_chk ()
0x00001efa b 0x1e68 | goto label_2;
| label_12:
0x00001efc ldr r2, [pc, 0x38] |
0x00001efe add r2, pc | r2 = 0x3e3a;
0x00001f00 b 0x1ed2 | goto label_3;
| label_13:
0x00001f02 ldr r2, [pc, 0x38] |
0x00001f04 add r2, pc | r2 = 0x3e46;
0x00001f06 b 0x1ef0 |
| } while (1);
| label_11:
0x00001f08 ldr r2, [pc, 0x34] |
0x00001f0a add r2, pc | r2 = 0x3e4e;
0x00001f0c b 0x1e96 | 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-monitor @ 0x2144 */
| #include <stdint.h>
|
; (fcn) fcn.00002144 () | void fcn_00002144 (int16_t arg1, int16_t arg2, int16_t arg3) {
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_94h;
| int16_t var_96h;
| int16_t var_97h;
| int16_t var_98h;
| int16_t var_9ch;
| int16_t var_114h;
| int16_t var_116h;
| int16_t var_118h;
| int16_t var_11ch;
| int16_t var_194h;
| int16_t var_1c4h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00002144 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00002148 mov sl, r2 | sl = r2;
0x0000214a ldr.w r2, [pc, 0x9a8] |
0x0000214e sub sp, 0x1cc |
0x00002150 mov fp, r0 |
0x00002152 mov sb, r1 | sb = r1;
0x00002154 ldr.w r3, [pc, 0x9a0] | r3 = *(0x2af8);
0x00002158 add r2, pc | r2 = 0x4c52;
0x0000215a ldr.w r4, [pc, 0x9a0] |
0x0000215e ldr r3, [r2, r3] |
0x00002160 add r4, pc | r4 = 0x4c62;
0x00002162 ldr r3, [r3] | r3 = *(0x4c52);
0x00002164 str r3, [sp, 0x1c4] | var_1c4h = r3;
0x00002166 mov.w r3, 0 | r3 = 0;
| label_0:
0x0000216a mov r0, fp | r0 = fp;
0x0000216c blx 0x1584 | r0 = fcn_00001584 ();
0x00002170 mov r7, r0 | r7 = r0;
0x00002172 cmp r0, 0 |
| if (r0 == 0) {
0x00002174 beq 0x21e8 | goto label_15;
| }
0x00002176 cmp.w sl, 0 |
0x0000217a add.w r5, sl, -1 | r5 = sl + -1;
0x0000217e it gt |
| if (sl <= 0) {
0x00002180 movgt r6, r5 | r6 = r5;
| }
| if (sl <= 0) {
0x00002182 ble 0x2192 | goto label_16;
| }
| do {
0x00002184 mov r1, r4 | r1 = r4;
0x00002186 movs r0, 1 | r0 = 1;
0x00002188 subs r6, 1 | r6--;
0x0000218a blx 0x1388 | printf_chk ()
0x0000218e adds r2, r6, 1 | r2 = r6 + 1;
0x00002190 bne 0x2184 |
| } while (r2 != r6);
| label_16:
0x00002192 sub.w r3, r7, 0x61 | r3 = r7 - 0x61;
0x00002196 cmp r3, 0x18 |
| if (r3 <= 0x18) {
0x00002198 bhi 0x21d0 |
| /* switch table (26 cases) at 0x219e */
0x0000219a tbh [pc, r3, lsl 1] | __asm ("tbh [pc, r3, lsl 1]");
| }
0x000021d0 ldr.w r1, [pc, 0x92c] |
0x000021d4 mov r2, r7 | r2 = r7;
0x000021d6 movs r0, 1 | r0 = 1;
0x000021d8 add r1, pc | r1 = 0x4cdc;
0x000021da blx 0x1388 | printf_chk ()
| label_1:
0x000021de mov r0, fp | r0 = fp;
0x000021e0 blx 0x1458 | r0 = fcn_00001458 ();
0x000021e4 cmp r0, 0 |
| if (r0 != 0) {
0x000021e6 bne 0x216a | goto label_0;
| }
| label_15:
0x000021e8 ldr.w r2, [pc, 0x918] |
0x000021ec ldr.w r3, [pc, 0x908] | r3 = *(0x2af8);
0x000021f0 add r2, pc | r2 = 0x4cf8;
0x000021f2 ldr r3, [r2, r3] | r3 = *(0x4cf8);
0x000021f4 ldr r2, [r3] | r2 = *(0x4cf8);
0x000021f6 ldr r3, [sp, 0x1c4] | r3 = var_1c4h;
0x000021f8 eors r2, r3 | r2 ^= r3;
0x000021fa mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000021fe bne.w 0x2ac8 | goto label_17;
| }
0x00002202 add sp, 0x1cc |
0x00002204 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x00002208 add r5, sp, 0x28 | r5 += var_28h;
0x0000220a mov r0, fp | r0 = fp;
0x0000220c mov r1, r5 | r1 = r5;
0x0000220e blx 0x1428 | fcn_00001428 ();
0x00002212 ldr.w r1, [pc, 0x8f4] | r1 = sym.imp.dbus_error_is_set;
0x00002216 movs r0, 1 | r0 = 1;
0x00002218 ldrb.w r2, [sp, 0x28] | r2 = var_28h;
0x0000221c add r1, pc | r1 += pc;
0x0000221e blx 0x1388 | printf_chk ()
0x00002222 b 0x21de | goto label_1;
0x00002224 add r1, sp, 0x28 | r1 += var_28h;
0x00002226 mov r0, fp | r0 = fp;
0x00002228 blx 0x1428 | fcn_00001428 ();
0x0000222c ldr.w r1, [pc, 0x8dc] | r1 = *(0x00002b0c);
0x00002230 movs r0, 1 | r0 = 1;
0x00002232 ldrd r2, r3, [sp, 0x28] | __asm ("ldrd r2, r3, [var_28h]");
0x00002236 add r1, pc | r1 += pc;
0x00002238 blx 0x1388 | printf_chk ()
0x0000223c b 0x21de | goto label_1;
0x0000223e add r5, sp, 0x28 | r5 += var_28h;
0x00002240 mov r0, fp | r0 = fp;
0x00002242 mov r1, r5 | r1 = r5;
0x00002244 blx 0x1340 | dbus_message_iter_recurse ();
0x00002248 ldr.w r1, [pc, 0x8c4] | r1 = *(0x00002b10);
0x0000224c movs r0, 1 | r0 = 1;
0x0000224e add r1, pc | r1 += pc;
0x00002250 blx 0x1388 | printf_chk ()
0x00002254 mov r0, r5 | r0 = r5;
0x00002256 add.w r2, sl, 1 | r2 = sl + 1;
0x0000225a mov r1, sb | r1 = sb;
0x0000225c bl 0x2144 | fcn_00002144 (r0, r1, r2);
0x00002260 b 0x21de | goto label_1;
0x00002262 add r5, sp, 0x28 | r5 += var_28h;
0x00002264 mov r0, fp | r0 = fp;
0x00002266 mov r1, r5 | r1 = r5;
0x00002268 blx 0x1428 | fcn_00001428 ();
0x0000226c ldr.w r1, [pc, 0x8a4] | r1 = fcn.00001518;
0x00002270 movs r0, 1 | r0 = 1;
0x00002272 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00002274 add r1, pc | r1 += pc;
0x00002276 blx 0x1388 | printf_chk ()
0x0000227a b 0x21de | goto label_1;
0x0000227c add r1, sp, 0x28 | r1 += var_28h;
0x0000227e mov r0, fp | r0 = fp;
0x00002280 blx 0x1428 | fcn_00001428 ();
0x00002284 ldr.w r1, [pc, 0x890] | r1 = *(0x00002b18);
0x00002288 movs r0, 1 | r0 = 1;
0x0000228a ldrd r2, r3, [sp, 0x28] | __asm ("ldrd r2, r3, [var_28h]");
0x0000228e add r1, pc | r1 += pc;
0x00002290 blx 0x1388 | printf_chk ()
0x00002294 b 0x21de | goto label_1;
0x00002296 add r5, sp, 0x28 | r5 += var_28h;
0x00002298 mov r0, fp | r0 = fp;
0x0000229a mov r1, r5 | r1 = r5;
0x0000229c blx 0x1428 | fcn_00001428 ();
0x000022a0 cmp.w sb, 0 |
| if (sb == 0) {
0x000022a4 beq.w 0x268e | goto label_18;
| }
0x000022a8 ldr.w r1, [pc, 0x870] |
0x000022ac movs r0, 1 | r0 = 1;
0x000022ae ldr r2, [r5] | r2 = *(r5);
0x000022b0 add r1, pc | r1 = 0x4dd0;
0x000022b2 blx 0x1388 | printf_chk ()
0x000022b6 b 0x21de | goto label_1;
0x000022b8 add r6, sp, 0x28 | r6 += var_28h;
0x000022ba mov r0, fp | r0 = fp;
0x000022bc mov r1, r6 | r1 = r6;
0x000022be add.w r7, sl, 1 | r7 = sl + 1;
0x000022c2 blx 0x1340 | dbus_message_iter_recurse ();
0x000022c6 ldr.w r0, [pc, 0x858] | r0 = *(0x00002b20);
0x000022ca add r0, pc | r0 += pc;
0x000022cc blx 0x1590 | fcn_00001590 ();
| do {
0x000022d0 mov r0, r6 | r0 = r6;
0x000022d2 blx 0x1584 | r0 = fcn_00001584 ();
| if (r0 == 0) {
0x000022d6 cbz r0, 0x2302 | goto label_19;
| }
| label_2:
0x000022d8 mov r2, r7 | r2 = r7;
0x000022da mov r1, sb | r1 = sb;
0x000022dc mov r0, r6 | r0 = r6;
0x000022de bl 0x2144 | fcn_00002144 (r0, r1, r2);
0x000022e2 mov r0, r6 | r0 = r6;
0x000022e4 blx 0x1458 | fcn_00001458 ();
0x000022e8 mov r0, r6 | r0 = r6;
0x000022ea blx 0x1584 | r0 = fcn_00001584 ();
0x000022ee cmp r0, 0 |
0x000022f0 beq 0x22d0 |
| } while (r0 == 0);
0x000022f2 movs r0, 0x2c | r0 = 0x2c;
0x000022f4 blx 0x1398 | fcn_00001398 ();
0x000022f8 mov r0, r6 | r0 = r6;
0x000022fa blx 0x1584 | r0 = fcn_00001584 ();
0x000022fe cmp r0, 0 |
| if (r0 != 0) {
0x00002300 bne 0x22d8 | goto label_2;
| }
| label_19:
0x00002302 cmp.w sl, 0 |
| if (sl <= 0) {
0x00002306 ble 0x231c | goto label_20;
| }
0x00002308 ldr.w r6, [pc, 0x818] | r6 = sym.imp.dbus_message_new_method_call;
0x0000230c add r6, pc | r6 += pc;
| do {
0x0000230e mov r1, r6 | r1 = r6;
0x00002310 movs r0, 1 | r0 = 1;
0x00002312 subs r5, 1 | r5--;
0x00002314 blx 0x1388 | printf_chk ()
0x00002318 adds r7, r5, 1 | r7 = r5 + 1;
0x0000231a bne 0x230e |
| } while (r7 != r5);
| label_20:
0x0000231c ldr.w r0, [pc, 0x808] | r0 = sym.imp.setvbuf;
0x00002320 add r0, pc | r0 += pc;
0x00002322 blx 0x1590 | fcn_00001590 ();
0x00002326 b 0x21de | goto label_1;
0x00002328 add r5, sp, 0x28 | r5 += var_28h;
0x0000232a mov r0, fp | r0 = fp;
0x0000232c mov r1, r5 | r1 = r5;
0x0000232e blx 0x1428 | fcn_00001428 ();
0x00002332 ldr.w r1, [pc, 0x7f8] |
0x00002336 movs r0, 1 | r0 = 1;
0x00002338 ldrh.w r2, [sp, 0x28] | r2 = var_28h;
0x0000233c add r1, pc | r1 = 0x4e6e;
0x0000233e blx 0x1388 | printf_chk ()
0x00002342 b 0x21de | goto label_1;
0x00002344 add r5, sp, 0x28 | r5 += var_28h;
0x00002346 mov r0, fp | r0 = fp;
0x00002348 mov r1, r5 | r1 = r5;
0x0000234a blx 0x1428 | fcn_00001428 ();
0x0000234e cmp.w sb, 0 |
| if (sb == 0) {
0x00002352 beq.w 0x26da | goto label_21;
| }
0x00002356 ldr.w r1, [pc, 0x7d8] | r1 = *(0x00002b30);
0x0000235a movs r0, 1 | r0 = 1;
0x0000235c ldr r2, [r5] | r2 = *(r5);
0x0000235e add r1, pc | r1 += pc;
0x00002360 blx 0x1388 | printf_chk ()
0x00002364 b 0x21de | goto label_1;
0x00002366 add r5, sp, 0x28 | r5 += var_28h;
0x00002368 mov r0, fp | r0 = fp;
0x0000236a mov r1, r5 | r1 = r5;
0x0000236c blx 0x1428 | fcn_00001428 ();
0x00002370 ldr.w r1, [pc, 0x7c0] | r1 = *(0x00002b34);
0x00002374 movs r0, 1 | r0 = 1;
0x00002376 ldrsh.w r2, [sp, 0x28] | r2 = var_28h;
0x0000237a add r1, pc | r1 += pc;
0x0000237c blx 0x1388 | printf_chk ()
0x00002380 b 0x21de | goto label_1;
0x00002382 add r5, sp, 0x28 | r5 += var_28h;
0x00002384 mov r0, fp | r0 = fp;
0x00002386 mov r1, r5 | r1 = r5;
0x00002388 blx 0x1428 | fcn_00001428 ();
0x0000238c ldr.w r1, [pc, 0x7a8] | r1 = fcn.000013ec;
0x00002390 movs r0, 1 | r0 = 1;
0x00002392 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00002394 add r1, pc | r1 += pc;
0x00002396 blx 0x1388 | printf_chk ()
0x0000239a b 0x21de | goto label_1;
0x0000239c add r3, sp, 0x1c | r3 += var_1ch;
0x0000239e mov r0, fp | r0 = fp;
0x000023a0 mov r5, r3 | r5 = r3;
0x000023a2 mov r1, r3 | r1 = r3;
0x000023a4 str r3, [sp, 0xc] | var_ch = r3;
0x000023a6 add r6, sp, 0x28 | r6 += var_28h;
0x000023a8 blx 0x1428 | fcn_00001428 ();
0x000023ac ldr r5, [r5] | r5 = *(r5);
0x000023ae movs r2, 0x68 | r2 = 0x68;
0x000023b0 movs r1, 0 | r1 = 0;
0x000023b2 mov r0, r6 | r0 = r6;
0x000023b4 add r7, sp, 0x20 | r7 += var_20h;
0x000023b6 str r5, [sp, 0x14] | var_14h = r5;
0x000023b8 blx 0x13bc | fcn_000013bc ();
0x000023bc ldr.w r0, [pc, 0x77c] | r0 = fcn.00001494;
0x000023c0 movs r3, 0x80 | r3 = 0x80;
0x000023c2 add r2, sp, 0x24 | r2 += var_24h;
0x000023c4 str r3, [r7] | *(r7) = r3;
0x000023c6 str r2, [sp, 8] | var_8h = r2;
0x000023c8 add r0, pc | r0 += pc;
0x000023ca str r3, [sp, 0x24] | var_24h = r3;
0x000023cc blx 0x1590 | fcn_00001590 ();
0x000023d0 adds r0, r5, 1 | r0 = r5 + 1;
| if (r0 == r5) {
0x000023d2 beq 0x24a6 | goto label_6;
| }
0x000023d4 mov r1, r6 | r1 = r6;
0x000023d6 mov r0, r5 | r0 = r5;
0x000023d8 blx 0x14a0 | fcn_000014a0 ();
0x000023dc adds r0, 1 | r0++;
| if (r0 == 1) {
0x000023de beq 0x24a6 | goto label_6;
| }
0x000023e0 add.w r3, sl, 2 | r3 = sl + 2;
0x000023e4 add.w r2, sl, 1 | r2 = sl + 1;
0x000023e8 cmp r3, 0 |
0x000023ea str r3, [sp, 0x10] | var_10h = r3;
0x000023ec str r2, [sp, 4] | var_4h = r2;
| if (r3 <= 0) {
0x000023ee ble.w 0x2a36 | goto label_22;
| }
0x000023f2 ldr.w r5, [pc, 0x74c] |
0x000023f6 mov r8, r2 | r8 = r2;
0x000023f8 add r5, pc | r5 = 0x4f3e;
| do {
0x000023fa add.w r8, r8, -1 | r8 += -1;
0x000023fe mov r1, r5 | r1 = r5;
0x00002400 movs r0, 1 | r0 = 1;
0x00002402 blx 0x1388 | printf_chk ()
0x00002406 cmp.w r8, -1 |
0x0000240a bne 0x23fa |
| } while (r8 != -1);
0x0000240c ldr.w r1, [pc, 0x734] | r1 = sym.imp.dbus_message_iter_next;
0x00002410 movs r0, 1 | r0 = 1;
0x00002412 ldr r2, [r6, 0x60] | r2 = *((r6 + 0x60));
0x00002414 ldr.w r8, [sp, 4] | r8 = var_4h;
0x00002418 add r1, pc | r1 += pc;
0x0000241a blx 0x1388 | printf_chk ()
| do {
0x0000241e add.w r8, r8, -1 | r8 += -1;
0x00002422 mov r1, r5 | r1 = r5;
0x00002424 movs r0, 1 | r0 = 1;
0x00002426 blx 0x1388 | printf_chk ()
0x0000242a cmp.w r8, -1 |
0x0000242e bne 0x241e |
| } while (r8 != -1);
| label_14:
0x00002430 ldr.w r1, [pc, 0x714] | r1 = *(0x00002b48);
0x00002434 movs r0, 1 | r0 = 1;
0x00002436 add r1, pc | r1 += pc;
0x00002438 blx 0x1388 | printf_chk ()
0x0000243c ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x0000243e and r3, r3, 0xf000 | r3 &= 0xf000;
0x00002442 cmp.w r3, 0x8000 |
| if (r3 == 0x8000) {
0x00002446 beq.w 0x2a26 | goto label_23;
| }
| label_13:
0x0000244a cmp.w r3, 0x4000 |
| if (r3 == 0x4000) {
0x0000244e beq.w 0x2a16 | goto label_24;
| }
| label_12:
0x00002452 cmp.w r3, 0x2000 |
| if (r3 == 0x2000) {
0x00002456 beq.w 0x2a06 | goto label_25;
| }
| label_11:
0x0000245a cmp.w r3, 0x6000 |
| if (r3 == 0x6000) {
0x0000245e beq.w 0x29f6 | goto label_26;
| }
| label_10:
0x00002462 cmp.w r3, 0x1000 |
| if (r3 == 0x1000) {
0x00002466 beq.w 0x29e6 | goto label_27;
| }
| label_9:
0x0000246a cmp.w r3, 0xa000 |
| if (r3 == 0xa000) {
0x0000246e beq.w 0x29d6 | goto label_28;
| }
| label_8:
0x00002472 cmp.w r3, 0xc000 |
| if (r3 == 0xc000) {
0x00002476 beq.w 0x29cc | goto label_29;
| }
| label_7:
0x0000247a add r6, sp, 0x94 | r6 += var_94h;
0x0000247c movs r2, 0x80 | r2 = 0x80;
0x0000247e movs r1, 0 | r1 = 0;
0x00002480 mov r0, r6 | r0 = r6;
0x00002482 add r5, sp, 0x114 | r5 += var_114h;
0x00002484 blx 0x13bc | fcn_000013bc ();
0x00002488 movs r2, 0x80 | r2 = 0x80;
0x0000248a movs r1, 0 | r1 = 0;
0x0000248c mov r0, r5 | r0 = r5;
0x0000248e blx 0x13bc | fcn_000013bc ();
0x00002492 ldr.w r8, [sp, 0x14] | r8 = var_14h;
0x00002496 mov r2, r7 | r2 = r7;
0x00002498 mov r1, r6 | r1 = r6;
0x0000249a mov r0, r8 | r0 = r8;
0x0000249c blx 0x131c | r0 = getsockname (r0, r1, r2);
0x000024a0 cmp r0, 0 |
| if (r0 == 0) {
0x000024a2 beq.w 0x27ce | goto label_30;
| }
| label_6:
0x000024a6 ldr r3, [sp, 0xc] | r3 = var_ch;
0x000024a8 ldr r0, [r3] | r0 = *(r3);
0x000024aa blx 0x1518 | fcn_00001518 ();
0x000024ae b 0x21de | goto label_1;
0x000024b0 add r5, sp, 0x28 | r5 += var_28h;
0x000024b2 mov r0, fp | r0 = fp;
0x000024b4 mov r1, r5 | r1 = r5;
0x000024b6 blx 0x1428 | fcn_00001428 ();
0x000024ba cmp.w sb, 0 |
| if (sb == 0) {
0x000024be beq.w 0x26b4 | goto label_31;
| }
0x000024c2 ldr.w r1, [pc, 0x688] | r1 = *(0x00002b4c);
0x000024c6 movs r0, 1 | r0 = 1;
0x000024c8 ldr r2, [r5] | r2 = *(r5);
0x000024ca add r1, pc | r1 += pc;
0x000024cc blx 0x1388 | printf_chk ()
0x000024d0 b 0x21de | goto label_1;
0x000024d2 add r6, sp, 0x28 | r6 += var_28h;
0x000024d4 mov r0, fp | r0 = fp;
0x000024d6 mov r1, r6 | r1 = r6;
0x000024d8 add.w r7, sl, 1 | r7 = sl + 1;
0x000024dc blx 0x1340 | dbus_message_iter_recurse ();
0x000024e0 ldr.w r0, [pc, 0x66c] |
0x000024e4 add r0, pc | r0 = 0x5038;
0x000024e6 blx 0x1590 | fcn_00001590 ();
0x000024ea mov r2, r7 | r2 = r7;
0x000024ec mov r1, sb | r1 = sb;
0x000024ee mov r0, r6 | r0 = r6;
0x000024f0 bl 0x2144 | fcn_00002144 (r0, r1, r2);
0x000024f4 mov r0, r6 | r0 = r6;
0x000024f6 blx 0x1458 | fcn_00001458 ();
0x000024fa mov r2, r7 | r2 = r7;
0x000024fc mov r1, sb | r1 = sb;
0x000024fe mov r0, r6 | r0 = r6;
0x00002500 bl 0x2144 | fcn_00002144 (r0, r1, r2);
0x00002504 cmp.w sl, 0 |
| if (sl <= 0) {
0x00002508 ble 0x251e | goto label_32;
| }
0x0000250a ldr.w r6, [pc, 0x648] | r6 = *(0x00002b54);
0x0000250e add r6, pc | r6 += pc;
| do {
0x00002510 mov r1, r6 | r1 = r6;
0x00002512 movs r0, 1 | r0 = 1;
0x00002514 subs r5, 1 | r5--;
0x00002516 blx 0x1388 | printf_chk ()
0x0000251a adds r3, r5, 1 | r3 = r5 + 1;
0x0000251c bne 0x2510 |
| } while (r3 != r5);
| label_32:
0x0000251e ldr.w r0, [pc, 0x638] | r0 = *(0x00002b58);
0x00002522 add r0, pc | r0 += pc;
0x00002524 blx 0x1590 | fcn_00001590 ();
0x00002528 b 0x21de | goto label_1;
0x0000252a add r5, sp, 0x28 | r5 += var_28h;
0x0000252c mov r0, fp | r0 = fp;
0x0000252e mov r1, r5 | r1 = r5;
0x00002530 blx 0x1428 | fcn_00001428 ();
0x00002534 ldr.w r1, [pc, 0x624] | r1 = *(0x00002b5c);
0x00002538 movs r0, 1 | r0 = 1;
0x0000253a ldrd r2, r3, [sp, 0x28] | __asm ("ldrd r2, r3, [var_28h]");
0x0000253e add r1, pc | r1 += pc;
0x00002540 blx 0x1388 | printf_chk ()
0x00002544 b 0x21de | goto label_1;
0x00002546 add r5, sp, 0x28 | r5 += var_28h;
0x00002548 mov r0, fp | r0 = fp;
0x0000254a mov r1, r5 | r1 = r5;
0x0000254c blx 0x1428 | fcn_00001428 ();
0x00002550 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00002552 cmp r3, 0 |
| if (r3 != 0) {
0x00002554 bne.w 0x2686 | goto label_33;
| }
0x00002558 ldr.w r2, [pc, 0x604] |
0x0000255c add r2, pc | r2 = 0x50c0;
| label_5:
0x0000255e ldr.w r1, [pc, 0x604] |
0x00002562 movs r0, 1 | r0 = 1;
0x00002564 add r1, pc | r1 = 0x50ce;
0x00002566 blx 0x1388 | printf_chk ()
0x0000256a b 0x21de | goto label_1;
0x0000256c add r6, sp, 0x28 | r6 += var_28h;
0x0000256e mov r0, fp | r0 = fp;
0x00002570 mov r1, r6 | r1 = r6;
0x00002572 blx 0x1340 | dbus_message_iter_recurse ();
0x00002576 mov r0, r6 | r0 = r6;
0x00002578 blx 0x1584 | r0 = fcn_00001584 ();
0x0000257c cmp r0, 0x79 |
0x0000257e mov r7, r0 | r7 = r0;
| if (r0 != 0x79) {
0x00002580 bne.w 0x2700 | goto label_34;
| }
0x00002584 add r3, sp, 0x24 | r3 += var_24h;
0x00002586 add r7, sp, 0x20 | r7 += var_20h;
0x00002588 mov r0, r6 | r0 = r6;
0x0000258a mov r2, r3 | r2 = r3;
0x0000258c mov r6, r3 | r6 = r3;
0x0000258e mov r1, r7 | r1 = r7;
0x00002590 str r3, [sp, 8] | var_8h = r3;
0x00002592 blx 0x1334 | dbus_message_iter_get_fixed_array ();
0x00002596 ldr.w r8, [r6] | r8 = *(r6);
0x0000259a cmp.w r8, 0 |
| if (r8 <= 0) {
0x0000259e ble.w 0x279a | goto label_35;
| }
0x000025a2 ldr r2, [r7] | r2 = *(r7);
0x000025a4 movs r3, 0 | r3 = 0;
0x000025a6 add.w lr, r8, -1 | lr = r8 + -1;
0x000025aa subs r6, r2, 1 | r6 = r2 - 1;
0x000025ac mov r0, r6 | r0 = r6;
0x000025ae b 0x25b8 |
| while (ip < 0x5e) {
| label_3:
0x000025b0 adds r3, 1 | r3++;
0x000025b2 cmp r3, r8 |
| if (r3 == r8) {
0x000025b4 beq.w 0x278e | goto label_36;
| }
0x000025b8 ldrb r1, [r0, 1]! | r1 = *((r0 += 1));
0x000025bc sub.w ip, r1, 0x20 |
0x000025c0 cmp.w ip, 0x5e |
0x000025c4 bls 0x25b0 |
| }
0x000025c6 cmp lr, r3 |
0x000025c8 it le |
| if (lr > r3) {
0x000025ca cmple r1, 0 | __asm ("cmple r1, 0");
| goto label_37;
| }
| if (lr == r3) {
| label_37:
0x000025cc beq 0x25b0 | goto label_3;
| }
0x000025ce ldr.w r0, [pc, 0x598] | r0 = fcn.000013bc;
0x000025d2 str r2, [sp, 4] | var_4h = r2;
0x000025d4 add r0, pc | r0 += pc;
0x000025d6 blx 0x1590 | fcn_00001590 ();
0x000025da add.w r3, sl, 1 | r3 = sl + 1;
0x000025de ldr r2, [sp, 4] | r2 = var_4h;
0x000025e0 cmp r3, 0 |
0x000025e2 str r3, [sp, 0x10] | var_10h = r3;
| if (r3 <= 0) {
0x000025e4 ble 0x260a | goto label_38;
| }
0x000025e6 ldr.w r3, [pc, 0x584] | r3 = *(0x00002b6c);
0x000025ea mov r7, r4 | r7 = r4;
0x000025ec strd r2, r5, [sp, 4] | __asm ("strd r2, r5, [var_8h]");
0x000025f0 mov r5, sl | r5 = sl;
0x000025f2 add r3, pc | r3 += pc;
0x000025f4 mov r4, r3 | r4 = r3;
| do {
0x000025f6 subs r5, 1 | r5--;
0x000025f8 mov r1, r4 | r1 = r4;
0x000025fa movs r0, 1 | r0 = 1;
0x000025fc blx 0x1388 | printf_chk ()
0x00002600 adds r3, r5, 1 | r3 = r5 + 1;
0x00002602 bne 0x25f6 |
| } while (r3 != r5);
0x00002604 ldrd r2, r5, [sp, 4] | __asm ("ldrd r2, r5, [var_8h]");
0x00002608 mov r4, r7 | r4 = r7;
| label_38:
0x0000260a add.w r3, r2, r8 | r3 = r2 + r8;
0x0000260e rsb.w r8, r2, 1 | r8 = 1 - r2;
0x00002612 subs r3, 1 | r3--;
0x00002614 movw r2, 0x5556 |
0x00002618 str r3, [sp, 4] | var_4h = r3;
| /* if there is a right shift of 0, then it's a division by 1/3 */
0x0000261a movt r2, 0x5555 | r2 = 0x55555556;
0x0000261e ldr r3, [sp, 0x10] | r3 = var_10h;
0x00002620 ldr.w r7, [pc, 0x54c] | r7 = *(0x00002b70);
0x00002624 str r4, [sp, 0x14] | var_14h = r4;
0x00002626 sub.w r3, r3, r3, lsl 2 | r3 -= (r3 << 2);
0x0000262a add r7, pc | r7 += pc;
0x0000262c adds r3, 0x50 | r3 += 0x50;
0x0000262e smull r1, r2, r2, r3 | r1:r2 = r2 * r3;
0x00002632 sub.w r3, r2, r3, asr 31 | r3 = r2 - (r3 >> 31);
0x00002636 cmp r3, 8 |
0x00002638 it lo |
| if (r3 >= 8) {
0x0000263a movlo r3, 8 | r3 = 8;
| }
0x0000263c str r3, [sp, 0xc] | var_ch = r3;
0x0000263e ldr.w r3, [pc, 0x534] | r3 = *(0x00002b74);
0x00002642 add r3, pc | r3 += pc;
0x00002644 str r3, [sp, 8] | var_8h = r3;
| do {
| label_4:
0x00002646 ldrb r2, [r6, 1]! | r2 = *((r6 += 1));
0x0000264a movs r0, 1 | r0 = 1;
0x0000264c ldr r1, [sp, 8] | r1 = var_8h;
0x0000264e blx 0x1388 | printf_chk ()
0x00002652 ldr r3, [sp, 4] | r3 = var_4h;
0x00002654 add.w r0, r8, r6 | r0 = r8 + r6;
0x00002658 cmp r6, r3 |
| if (r6 == r3) {
0x0000265a beq.w 0x2760 | goto label_39;
| }
0x0000265e ldr r1, [sp, 0xc] | r1 = var_ch;
0x00002660 bl 0x3174 | fcn_00003174 (r0);
0x00002664 cmp r1, 0 |
| if (r1 != 0) {
0x00002666 bne 0x2758 | goto label_40;
| }
0x00002668 movs r0, 0xa | r0 = 0xa;
0x0000266a blx 0x1398 | fcn_00001398 ();
0x0000266e ldr r3, [sp, 0x10] | r3 = var_10h;
0x00002670 cmp r3, 0 |
0x00002672 ble 0x2646 |
| } while (r3 <= 0);
0x00002674 mov r4, sl | r4 = sl;
| do {
0x00002676 subs r4, 1 | r4--;
0x00002678 mov r1, r7 | r1 = r7;
0x0000267a movs r0, 1 | r0 = 1;
0x0000267c blx 0x1388 | printf_chk ()
0x00002680 adds r0, r4, 1 | r0 = r4 + 1;
0x00002682 bne 0x2676 |
| } while (r0 != r4);
0x00002684 b 0x2646 | goto label_4;
| label_33:
0x00002686 ldr.w r2, [pc, 0x4f0] | r2 = *(0x00002b78);
0x0000268a add r2, pc | r2 += pc;
0x0000268c b 0x255e | goto label_5;
| label_18:
0x0000268e ldr.w r1, [pc, 0x4ec] |
0x00002692 movs r0, 1 | r0 = 1;
0x00002694 add r1, pc |
0x00002696 blx 0x1388 | printf_chk ()
0x0000269a ldr.w r1, [pc, 0x4e4] | r1 = *(0x00002b80);
0x0000269e movs r0, 1 | r0 = 1;
0x000026a0 ldr r2, [r5] | r2 = *(r5);
0x000026a2 add r1, pc | r1 = 0x78bc;
0x000026a4 blx 0x1388 | printf_chk ()
0x000026a8 ldr.w r0, [pc, 0x4d8] |
0x000026ac add r0, pc | r0 = 0x5234;
0x000026ae blx 0x1590 | fcn_00001590 ();
0x000026b2 b 0x21de | goto label_1;
| label_31:
0x000026b4 ldr.w r1, [pc, 0x4d0] | r1 = *(0x00002b88);
0x000026b8 movs r0, 1 | r0 = 1;
0x000026ba add r1, pc | r1 += pc;
0x000026bc blx 0x1388 | printf_chk ()
0x000026c0 ldr.w r1, [pc, 0x4c8] |
0x000026c4 movs r0, 1 | r0 = 1;
0x000026c6 ldr r2, [r5] | r2 = *(r5);
0x000026c8 add r1, pc | r1 = 0x5258;
0x000026ca blx 0x1388 | printf_chk ()
0x000026ce ldr.w r0, [pc, 0x4c0] | r0 = *(0x00002b90);
0x000026d2 add r0, pc | r0 += pc;
0x000026d4 blx 0x1590 | fcn_00001590 ();
0x000026d8 b 0x21de | goto label_1;
| label_21:
0x000026da ldr.w r1, [pc, 0x4b8] |
0x000026de movs r0, 1 | r0 = 1;
0x000026e0 add r1, pc |
0x000026e2 blx 0x1388 | printf_chk ()
0x000026e6 ldr.w r1, [pc, 0x4b0] | r1 = *(0x00002b98);
0x000026ea movs r0, 1 | r0 = 1;
0x000026ec ldr r2, [r5] | r2 = *(r5);
0x000026ee add r1, pc | r1 = 0x796c;
0x000026f0 blx 0x1388 | printf_chk ()
0x000026f4 ldr.w r0, [pc, 0x4a4] |
0x000026f8 add r0, pc | r0 = 0x5298;
0x000026fa blx 0x1590 | fcn_00001590 ();
0x000026fe b 0x21de | goto label_1;
| label_34:
0x00002700 ldr.w r0, [pc, 0x49c] |
0x00002704 add r0, pc | r0 = 0x52a8;
0x00002706 blx 0x1590 | fcn_00001590 ();
| if (r7 == 0) {
0x0000270a cbz r7, 0x2732 | goto label_41;
| }
0x0000270c add.w r7, sl, 1 | r7 = sl + 1;
0x00002710 b 0x2718 |
| while (r0 != 0) {
0x00002712 movs r0, 0x2c | r0 = 0x2c;
0x00002714 blx 0x1398 | fcn_00001398 ();
0x00002718 mov r2, r7 | r2 = r7;
0x0000271a mov r1, sb | r1 = sb;
0x0000271c mov r0, r6 | r0 = r6;
0x0000271e bl 0x2144 | fcn_00002144 (r0, r1, r2);
0x00002722 mov r0, r6 | r0 = r6;
0x00002724 blx 0x1458 | fcn_00001458 ();
0x00002728 mov r0, r6 | r0 = r6;
0x0000272a blx 0x1584 | r0 = fcn_00001584 ();
0x0000272e cmp r0, 0 |
0x00002730 bne 0x2712 |
| }
| label_41:
0x00002732 cmp.w sl, 0 |
| if (sl <= 0) {
0x00002736 ble 0x274c | goto label_42;
| }
0x00002738 ldr.w r6, [pc, 0x468] |
0x0000273c add r6, pc | r6 = 0x52e4;
| do {
0x0000273e subs r5, 1 | r5--;
0x00002740 mov r1, r6 | r1 = r6;
0x00002742 movs r0, 1 | r0 = 1;
0x00002744 blx 0x1388 | printf_chk ()
0x00002748 adds r2, r5, 1 | r2 = r5 + 1;
0x0000274a bne 0x273e |
| } while (r2 != r5);
| label_42:
0x0000274c ldr.w r0, [pc, 0x458] |
0x00002750 add r0, pc | r0 = 0x52fc;
0x00002752 blx 0x1590 | fcn_00001590 ();
0x00002756 b 0x21de | goto label_1;
| label_40:
0x00002758 movs r0, 0x20 | r0 = 0x20;
0x0000275a blx 0x1398 | fcn_00001398 ();
0x0000275e b 0x2646 | goto label_4;
| label_39:
0x00002760 movs r0, 0xa | r0 = 0xa;
0x00002762 ldr r4, [sp, 0x14] | r4 = var_14h;
0x00002764 blx 0x1398 | fcn_00001398 ();
0x00002768 cmp.w sl, 0 |
| if (sl <= 0) {
0x0000276c ble 0x2782 | goto label_43;
| }
0x0000276e ldr.w r6, [pc, 0x43c] | r6 = *(0x00002bac);
0x00002772 add r6, pc | r6 += pc;
| do {
0x00002774 mov r1, r6 | r1 = r6;
0x00002776 subs r5, 1 | r5--;
0x00002778 movs r0, 1 | r0 = 1;
0x0000277a blx 0x1388 | printf_chk ()
0x0000277e adds r1, r5, 1 | r1 = r5 + 1;
0x00002780 bne 0x2774 |
| } while (r1 != r5);
| label_43:
0x00002782 ldr.w r0, [pc, 0x42c] | r0 = *(0x00002bb0);
0x00002786 add r0, pc | r0 += pc;
0x00002788 blx 0x1590 | fcn_00001590 ();
0x0000278c b 0x21de | goto label_1;
| label_36:
0x0000278e add r3, r2 | r3 += r2;
0x00002790 ldrb r3, [r3, -0x1] | r3 = *((r3 - 0x1));
0x00002794 cmp r3, 0 |
| if (r3 == 0) {
0x00002796 beq.w 0x29c0 | goto label_44;
| }
| label_35:
0x0000279a add.w r0, r8, 1 | r0 = r8 + 1;
0x0000279e blx 0x1488 | r0 = fcn_00001488 ();
0x000027a2 mov r5, r0 | r5 = r0;
0x000027a4 cmp r0, 0 |
| if (r0 == 0) {
0x000027a6 beq.w 0x2ac0 | goto label_45;
| }
0x000027aa ldr r3, [sp, 8] | r3 = var_8h;
0x000027ac ldr r1, [r7] | r1 = *(r7);
0x000027ae ldr r6, [r3] | r6 = *(r3);
0x000027b0 mov r2, r6 | r2 = r6;
0x000027b2 blx 0x147c | fcn_0000147c ();
0x000027b6 ldr r1, [pc, 0x3fc] |
0x000027b8 movs r3, 0 | r3 = 0;
0x000027ba mov r2, r5 | r2 = r5;
0x000027bc strb r3, [r5, r6] | *((r5 + r6)) = r3;
0x000027be movs r0, 1 | r0 = 1;
0x000027c0 add r1, pc | r1 = 0x537a;
0x000027c2 blx 0x1388 | printf_chk ()
0x000027c6 mov r0, r5 | r0 = r5;
0x000027c8 blx 0x1328 | dbus_free ();
0x000027cc b 0x21de | goto label_1;
| label_30:
0x000027ce mov r0, r8 | r0 = r8;
0x000027d0 ldr r2, [sp, 8] | r2 = var_8h;
0x000027d2 mov r1, r5 | r1 = r5;
0x000027d4 blx 0x15f0 | fcn_000015f0 ();
0x000027d8 ldr r3, [sp, 0x10] | r3 = var_10h;
0x000027da mov r8, r0 | r8 = r0;
0x000027dc cmp r3, 0 |
| if (r3 <= 0) {
0x000027de ble 0x27fa | goto label_46;
| }
0x000027e0 ldr r3, [pc, 0x3d4] |
0x000027e2 ldr r5, [sp, 4] | r5 = var_4h;
0x000027e4 str r4, [sp, 8] | var_8h = r4;
0x000027e6 add r3, pc | r3 = 0x53a2;
0x000027e8 mov r4, r3 | r4 = r3;
| do {
0x000027ea mov r1, r4 | r1 = r4;
0x000027ec subs r5, 1 | r5--;
0x000027ee movs r0, 1 | r0 = 1;
0x000027f0 blx 0x1388 | printf_chk ()
0x000027f4 adds r1, r5, 1 | r1 = r5 + 1;
0x000027f6 bne 0x27ea |
| } while (r1 != r5);
0x000027f8 ldr r4, [sp, 8] | r4 = var_8h;
| label_46:
0x000027fa ldr r1, [pc, 0x3c0] |
0x000027fc movs r0, 1 | r0 = 1;
0x000027fe add r1, pc | r1 = 0x53c0;
0x00002800 blx 0x1388 | printf_chk ()
0x00002804 ldrh r2, [r6] | r2 = *(r6);
0x00002806 subs r3, r2, 1 | r3 = r2 - 1;
0x00002808 cmp r3, 0x1e |
| if (r3 <= 0x1e) {
0x0000280a bhi 0x2830 |
| /* switch table (31 cases) at 0x2810 */
0x0000280c tbb [pc, r3] | __asm ("tbb [0x00002814]");
| }
0x00002830 ldr r1, [pc, 0x38c] |
0x00002832 movs r0, 1 | r0 = 1;
0x00002834 add r1, pc | r1 = 0x53f8;
0x00002836 blx 0x1388 | printf_chk ()
0x0000283a b 0x24a6 | goto label_6;
0x0000283c ldr r0, [pc, 0x384] |
0x0000283e add r0, pc | r0 = 0x5406;
0x00002840 blx 0x1590 | fcn_00001590 ();
0x00002844 b 0x24a6 | goto label_6;
0x00002846 ldr r0, [pc, 0x380] |
0x00002848 add r5, sp, 0x194 | r5 += var_194h;
0x0000284a add r0, pc | r0 = 0x5418;
0x0000284c blx 0x1590 | fcn_00001590 ();
0x00002850 movs r3, 0x2e | r3 = 0x2e;
0x00002852 mov r2, r5 | r2 = r5;
0x00002854 add r1, sp, 0x9c | r1 += var_9ch;
0x00002856 movs r0, 0xa | r0 = 0xa;
0x00002858 blx 0x1304 | r0 = inet_ntop ();
| if (r0 == 0) {
0x0000285c cbz r0, 0x2890 | goto label_47;
| }
0x0000285e ldr r3, [sp, 0x10] | r3 = var_10h;
0x00002860 cmp r3, 0 |
| if (r3 <= 0) {
0x00002862 ble 0x287e | goto label_48;
| }
0x00002864 ldr r1, [pc, 0x364] |
0x00002866 ldr r7, [sp, 4] | r7 = var_4h;
0x00002868 str r4, [sp, 8] | var_8h = r4;
0x0000286a add r1, pc | r1 = 0x543a;
0x0000286c mov r4, r1 | r4 = r1;
| do {
0x0000286e subs r7, 1 | r7--;
0x00002870 mov r1, r4 | r1 = r4;
0x00002872 movs r0, 1 | r0 = 1;
0x00002874 blx 0x1388 | printf_chk ()
0x00002878 adds r2, r7, 1 | r2 = r7 + 1;
0x0000287a bne 0x286e |
| } while (r2 != r7);
0x0000287c ldr r4, [sp, 8] | r4 = var_8h;
| label_48:
0x0000287e ldrh r3, [r6, 2] | r3 = *((r6 + 2));
0x00002880 mov r2, r5 | r2 = r5;
0x00002882 ldr r1, [pc, 0x34c] |
0x00002884 movs r0, 1 | r0 = 1;
0x00002886 rev16 r3, r3 | __asm ("rev16 r3, r3");
0x00002888 uxth r3, r3 | r3 = (int16_t) r3;
0x0000288a add r1, pc | r1 = 0x5460;
0x0000288c blx 0x1388 | printf_chk ()
| label_47:
0x00002890 cmp.w r8, 0 |
| if (r8 != 0) {
0x00002894 bne.w 0x24a6 | goto label_6;
| }
0x00002898 movs r3, 0x2e | r3 = 0x2e;
0x0000289a mov r2, r5 | r2 = r5;
0x0000289c add r1, sp, 0x11c | r1 += var_11ch;
0x0000289e movs r0, 0xa | r0 = 0xa;
0x000028a0 blx 0x1304 | r0 = inet_ntop ();
0x000028a4 cmp r0, 0 |
| if (r0 == 0) {
0x000028a6 beq.w 0x24a6 | goto label_6;
| }
0x000028aa ldr r3, [sp, 0x10] | r3 = var_10h;
0x000028ac cmp r3, 0 |
| if (r3 <= 0) {
0x000028ae ble 0x28c4 | goto label_49;
| }
0x000028b0 ldr r6, [pc, 0x320] |
0x000028b2 ldr r7, [sp, 4] | r7 = var_4h;
0x000028b4 add r6, pc | r6 = 0x548c;
| do {
0x000028b6 subs r7, 1 | r7--;
0x000028b8 mov r1, r6 | r1 = r6;
0x000028ba movs r0, 1 | r0 = 1;
0x000028bc blx 0x1388 | printf_chk ()
0x000028c0 adds r3, r7, 1 | r3 = r7 + 1;
0x000028c2 bne 0x28b6 |
| } while (r3 != r7);
| label_49:
0x000028c4 ldrh.w r3, [sp, 0x116] | r3 = var_116h;
0x000028c8 mov r2, r5 | r2 = r5;
0x000028ca ldr r1, [pc, 0x30c] |
0x000028cc movs r0, 1 | r0 = 1;
0x000028ce rev16 r3, r3 | __asm ("rev16 r3, r3");
0x000028d0 uxth r3, r3 | r3 = (int16_t) r3;
0x000028d2 add r1, pc | r1 = 0x54b0;
0x000028d4 blx 0x1388 | printf_chk ()
0x000028d8 b 0x24a6 | goto label_6;
0x000028da ldr r0, [pc, 0x300] |
0x000028dc add r5, sp, 0x194 | r5 += var_194h;
0x000028de add r0, pc | r0 = 0x54c0;
0x000028e0 blx 0x1590 | fcn_00001590 ();
0x000028e4 movs r3, 0x2e | r3 = 0x2e;
0x000028e6 mov r2, r5 | r2 = r5;
0x000028e8 add r1, sp, 0x98 | r1 += var_98h;
0x000028ea movs r0, 2 | r0 = 2;
0x000028ec blx 0x1304 | r0 = inet_ntop ();
| if (r0 == 0) {
0x000028f0 cbz r0, 0x2924 | goto label_50;
| }
0x000028f2 ldr r3, [sp, 0x10] | r3 = var_10h;
0x000028f4 cmp r3, 0 |
| if (r3 <= 0) {
0x000028f6 ble 0x2912 | goto label_51;
| }
0x000028f8 ldr r1, [pc, 0x2e4] |
0x000028fa ldr r7, [sp, 4] | r7 = var_4h;
0x000028fc str r4, [sp, 8] | var_8h = r4;
0x000028fe add r1, pc | r1 = 0x54e2;
0x00002900 mov r4, r1 | r4 = r1;
| do {
0x00002902 subs r7, 1 | r7--;
0x00002904 mov r1, r4 | r1 = r4;
0x00002906 movs r0, 1 | r0 = 1;
0x00002908 blx 0x1388 | printf_chk ()
0x0000290c adds r0, r7, 1 | r0 = r7 + 1;
0x0000290e bne 0x2902 |
| } while (r0 != r7);
0x00002910 ldr r4, [sp, 8] | r4 = var_8h;
| label_51:
0x00002912 ldrh r3, [r6, 2] | r3 = *((r6 + 2));
0x00002914 mov r2, r5 | r2 = r5;
0x00002916 ldr r1, [pc, 0x2cc] |
0x00002918 movs r0, 1 | r0 = 1;
0x0000291a rev16 r3, r3 | __asm ("rev16 r3, r3");
0x0000291c uxth r3, r3 | r3 = (int16_t) r3;
0x0000291e add r1, pc | r1 = 0x5508;
0x00002920 blx 0x1388 | printf_chk ()
| label_50:
0x00002924 cmp.w r8, 0 |
| if (r8 != 0) {
0x00002928 bne.w 0x24a6 | goto label_6;
| }
0x0000292c movs r3, 0x2e | r3 = 0x2e;
0x0000292e mov r2, r5 | r2 = r5;
0x00002930 add r1, sp, 0x118 | r1 += var_118h;
0x00002932 movs r0, 2 | r0 = 2;
0x00002934 blx 0x1304 | r0 = inet_ntop ();
0x00002938 cmp r0, 0 |
| if (r0 == 0) {
0x0000293a beq.w 0x24a6 | goto label_6;
| }
0x0000293e ldr r3, [sp, 0x10] | r3 = var_10h;
0x00002940 cmp r3, 0 |
| if (r3 <= 0) {
0x00002942 ble 0x2958 | goto label_52;
| }
0x00002944 ldr r6, [pc, 0x2a0] |
0x00002946 ldr r7, [sp, 4] | r7 = var_4h;
0x00002948 add r6, pc | r6 = 0x5534;
| do {
0x0000294a mov r1, r6 | r1 = r6;
0x0000294c subs r7, 1 | r7--;
0x0000294e movs r0, 1 | r0 = 1;
0x00002950 blx 0x1388 | printf_chk ()
0x00002954 adds r1, r7, 1 | r1 = r7 + 1;
0x00002956 bne 0x294a |
| } while (r1 != r7);
| label_52:
0x00002958 ldrh.w r3, [sp, 0x116] | r3 = var_116h;
0x0000295c mov r2, r5 | r2 = r5;
0x0000295e ldr r1, [pc, 0x28c] |
0x00002960 movs r0, 1 | r0 = 1;
0x00002962 rev16 r3, r3 | __asm ("rev16 r3, r3");
0x00002964 uxth r3, r3 | r3 = (int16_t) r3;
0x00002966 add r1, pc | r1 = 0x5558;
0x00002968 blx 0x1388 | printf_chk ()
0x0000296c b 0x24a6 | goto label_6;
0x0000296e ldr r0, [pc, 0x280] |
0x00002970 add r0, pc | r0 = 0x5566;
0x00002972 blx 0x1590 | fcn_00001590 ();
0x00002976 ldrb r3, [r6, 2] | r3 = *((r6 + 2));
0x00002978 cmp r3, 0 |
| if (r3 == 0) {
0x0000297a beq 0x2a44 | goto label_53;
| }
0x0000297c ldr r3, [sp, 0x10] | r3 = var_10h;
0x0000297e cmp r3, 0 |
| if (r3 <= 0) {
0x00002980 ble.w 0x2acc | goto label_54;
| }
0x00002984 ldr r5, [pc, 0x26c] |
0x00002986 ldr r6, [sp, 4] | r6 = var_4h;
0x00002988 add r5, pc | r5 = 0x5580;
| do {
0x0000298a subs r6, 1 | r6--;
0x0000298c mov r1, r5 | r1 = r5;
0x0000298e movs r0, 1 | r0 = 1;
0x00002990 blx 0x1388 | printf_chk ()
0x00002994 adds r3, r6, 1 | r3 = r6 + 1;
0x00002996 bne 0x298a |
| } while (r3 != r6);
0x00002998 ldr r1, [pc, 0x25c] |
0x0000299a add.w r2, sp, 0x96 | r2 += var_96h;
0x0000299e movs r0, 1 | r0 = 1;
0x000029a0 add r1, pc | r1 = 0x559c;
0x000029a2 blx 0x1388 | printf_chk ()
0x000029a6 cmp.w r8, 0 |
| if (r8 != 0) {
0x000029aa bne.w 0x24a6 | goto label_6;
| }
0x000029ae ldr r6, [sp, 4] | r6 = var_4h;
| do {
0x000029b0 subs r6, 1 | r6--;
0x000029b2 mov r1, r5 | r1 = r5;
0x000029b4 movs r0, 1 | r0 = 1;
0x000029b6 blx 0x1388 | printf_chk ()
0x000029ba adds r7, r6, 1 | r7 = r6 + 1;
0x000029bc bne 0x29b0 |
| } while (r7 != r6);
0x000029be b 0x2ae2 | goto label_55;
| label_44:
0x000029c0 ldr r1, [pc, 0x238] |
0x000029c2 movs r0, 1 | r0 = 1;
0x000029c4 add r1, pc | r1 = 0x55c4;
0x000029c6 blx 0x1388 | printf_chk ()
0x000029ca b 0x21de | goto label_1;
| label_29:
0x000029cc ldr r0, [pc, 0x230] |
0x000029ce add r0, pc | r0 = 0x55d2;
0x000029d0 blx 0x1590 | fcn_00001590 ();
0x000029d4 b 0x247a | goto label_7;
| label_28:
0x000029d6 ldr r0, [pc, 0x22c] |
0x000029d8 add r0, pc | r0 = 0x55e2;
0x000029da blx 0x1590 | fcn_00001590 ();
0x000029de ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x000029e0 and r3, r3, 0xf000 | r3 &= 0xf000;
0x000029e4 b 0x2472 | goto label_8;
| label_27:
0x000029e6 ldr r0, [pc, 0x220] |
0x000029e8 add r0, pc | r0 = 0x55f6;
0x000029ea blx 0x1590 | fcn_00001590 ();
0x000029ee ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x000029f0 and r3, r3, 0xf000 | r3 &= 0xf000;
0x000029f4 b 0x246a | goto label_9;
| label_26:
0x000029f6 ldr r0, [pc, 0x214] |
0x000029f8 add r0, pc | r0 = 0x560a;
0x000029fa blx 0x1590 | fcn_00001590 ();
0x000029fe ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x00002a00 and r3, r3, 0xf000 | r3 &= 0xf000;
0x00002a04 b 0x2462 | goto label_10;
| label_25:
0x00002a06 ldr r0, [pc, 0x208] |
0x00002a08 add r0, pc | r0 = 0x561e;
0x00002a0a blx 0x1590 | fcn_00001590 ();
0x00002a0e ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x00002a10 and r3, r3, 0xf000 | r3 &= 0xf000;
0x00002a14 b 0x245a | goto label_11;
| label_24:
0x00002a16 ldr r0, [pc, 0x1fc] |
0x00002a18 add r0, pc | r0 = 0x5632;
0x00002a1a blx 0x1590 | fcn_00001590 ();
0x00002a1e ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x00002a20 and r3, r3, 0xf000 | r3 &= 0xf000;
0x00002a24 b 0x2452 | goto label_12;
| label_23:
0x00002a26 ldr r0, [pc, 0x1f0] |
0x00002a28 add r0, pc | r0 = 0x5646;
0x00002a2a blx 0x1590 | fcn_00001590 ();
0x00002a2e ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x00002a30 and r3, r3, 0xf000 | r3 &= 0xf000;
0x00002a34 b 0x244a | goto label_13;
| label_22:
0x00002a36 ldr r1, [pc, 0x1e4] |
0x00002a38 movs r0, 1 | r0 = 1;
0x00002a3a ldr r2, [r6, 0x60] | r2 = *((r6 + 0x60));
0x00002a3c add r1, pc | r1 = 0x565e;
0x00002a3e blx 0x1388 | printf_chk ()
0x00002a42 b 0x2430 | goto label_14;
| label_53:
0x00002a44 ldr r3, [sp, 0x10] | r3 = var_10h;
0x00002a46 cmp r3, 0 |
| if (r3 <= 0) {
0x00002a48 ble 0x2a92 | goto label_56;
| }
0x00002a4a ldr r6, [pc, 0x1d4] |
0x00002a4c ldr r5, [sp, 4] | r5 = var_4h;
0x00002a4e add r6, pc | r6 = 0x5674;
| do {
0x00002a50 subs r5, 1 | r5--;
0x00002a52 mov r1, r6 | r1 = r6;
0x00002a54 movs r0, 1 | r0 = 1;
0x00002a56 blx 0x1388 | printf_chk ()
0x00002a5a adds r2, r5, 1 | r2 = r5 + 1;
0x00002a5c bne 0x2a50 |
| } while (r2 != r5);
0x00002a5e ldr r2, [r7] | r2 = *(r7);
0x00002a60 add.w r5, sp, 0x97 | r5 += var_97h;
0x00002a64 ldr r1, [pc, 0x1bc] |
0x00002a66 mov r3, r5 | r3 = r5;
0x00002a68 movs r0, 1 | r0 = 1;
0x00002a6a subs r2, 3 | r2 -= 3;
0x00002a6c add r1, pc | r1 = 0x5694;
0x00002a6e blx 0x1388 | printf_chk ()
0x00002a72 cmp.w r8, 0 |
| if (r8 != 0) {
0x00002a76 bne.w 0x24a6 | goto label_6;
| }
0x00002a7a ldr.w r8, [sp, 4] | r8 = var_4h;
| do {
0x00002a7e add.w r8, r8, -1 | r8 += -1;
0x00002a82 mov r1, r6 | r1 = r6;
0x00002a84 movs r0, 1 | r0 = 1;
0x00002a86 blx 0x1388 | printf_chk ()
0x00002a8a cmp.w r8, -1 |
0x00002a8e bne 0x2a7e |
| } while (r8 != -1);
0x00002a90 b 0x2aae | goto label_57;
| label_56:
0x00002a92 ldr r2, [r7] | r2 = *(r7);
0x00002a94 add.w r5, sp, 0x97 | r5 += var_97h;
0x00002a98 ldr r1, [pc, 0x18c] |
0x00002a9a mov r3, r5 | r3 = r5;
0x00002a9c movs r0, 1 | r0 = 1;
0x00002a9e subs r2, 3 | r2 -= 3;
0x00002aa0 add r1, pc | r1 = 0x56cc;
0x00002aa2 blx 0x1388 | printf_chk ()
0x00002aa6 cmp.w r8, 0 |
| if (r8 != 0) {
0x00002aaa bne.w 0x24a6 | goto label_6;
| }
| label_57:
0x00002aae ldr r2, [r7] | r2 = *(r7);
0x00002ab0 mov r3, r5 | r3 = r5;
0x00002ab2 ldr r1, [pc, 0x178] |
0x00002ab4 movs r0, 1 | r0 = 1;
0x00002ab6 subs r2, 3 | r2 -= 3;
0x00002ab8 add r1, pc | r1 = 0x56ea;
0x00002aba blx 0x1388 | printf_chk ()
0x00002abe b 0x24a6 | goto label_6;
| label_45:
0x00002ac0 ldr r0, [pc, 0x16c] |
0x00002ac2 add r0, pc | r0 = 0x56f6;
0x00002ac4 bl 0x2e6c | tool_oom ();
| label_17:
0x00002ac8 blx 0x1554 | fcn_00001554 ();
| label_54:
0x00002acc ldr r1, [pc, 0x164] |
0x00002ace add.w r2, sp, 0x96 | r2 += var_96h;
0x00002ad2 movs r0, 1 | r0 = 1;
0x00002ad4 add r1, pc | r1 = 0x570c;
0x00002ad6 blx 0x1388 | printf_chk ()
0x00002ada cmp.w r8, 0 |
| if (r8 != 0) {
0x00002ade bne.w 0x24a6 | goto label_6;
| }
| label_55:
0x00002ae2 ldr r1, [pc, 0x154] |
0x00002ae4 add.w r2, sp, 0x116 | r2 += var_116h;
0x00002ae8 movs r0, 1 | r0 = 1;
0x00002aea add r1, pc | r1 = 0x5728;
0x00002aec blx 0x1388 | printf_chk ()
0x00002af0 b 0x24a6 | goto label_6;
| }
; 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-monitor @ 0x2c3c */
| #include <stdint.h>
|
; (fcn) sym.print_message () | void print_message (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_0h;
| int32_t var_4h;
| int32_t var_4h_2;
| int16_t var_14h;
| int16_t var_4ch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x00002c3c push.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x00002c40 mov r8, r2 | r8 = r2;
0x00002c42 ldr r2, [pc, 0x1c8] |
0x00002c44 mov sl, r3 | sl = r3;
0x00002c46 sub sp, 0x50 |
0x00002c48 mov r4, r0 | r4 = r0;
0x00002c4a ldr r3, [pc, 0x1c4] | r3 = *(0x2e12);
0x00002c4c mov r6, r1 | r6 = r1;
0x00002c4e add r2, pc | r2 = 0x5a60;
0x00002c50 ldr.w sb, [pc, 0x1c0] | sb = *(0x00002e14);
0x00002c54 ldr r3, [r2, r3] |
0x00002c56 add sb, pc | sb += pc;
0x00002c58 ldr r3, [r3] | r3 = *(0x5a60);
0x00002c5a str r3, [sp, 0x4c] | var_4ch = r3;
0x00002c5c mov.w r3, 0 | r3 = 0;
0x00002c60 blx 0x15b4 | r0 = fcn_000015b4 ();
0x00002c64 mov r5, r0 | r5 = r0;
0x00002c66 mov r0, r4 | r0 = r4;
0x00002c68 blx 0x1358 | r0 = dbus_message_get_sender ();
0x00002c6c mov r7, r0 | r7 = r0;
0x00002c6e mov r0, r4 | r0 = r4;
0x00002c70 blx 0x15e4 | fcn_000015e4 ();
| if (r6 == 0) {
0x00002c74 cbnz r6, 0x2cbe |
0x00002c76 orrs.w r3, r8, sl | r3 = r8 | sl;
0x00002c7a add.w r5, r5, -1 | r5 += -1;
| if (r3 == r8) {
0x00002c7e beq 0x2cf8 | goto label_8;
| }
0x00002c80 cmp r5, 3 |
| if (r5 > 3) {
0x00002c82 bhi.w 0x2e02 | goto label_9;
| }
| /* switch table (4 cases) at 0x2c8a */
0x00002c86 tbb [pc, r5] | __asm ("tbb [0x00002c8c]");
| }
| label_7:
0x00002cbe mov r0, r4 | r0 = r4;
0x00002cc0 add r4, sp, 0x14 | r4 += var_14h;
0x00002cc2 mov r1, r4 | r1 = r4;
0x00002cc4 blx 0x13b0 | fcn_000013b0 ();
0x00002cc8 movs r2, 1 | r2 = 1;
0x00002cca mov r0, r4 | r0 = r4;
0x00002ccc mov r1, r6 | r1 = r6;
0x00002cce bl 0x2144 | fcn_00002144 (r0, r1, r2);
0x00002cd2 ldr r3, [pc, 0x148] | r3 = *(0x2e1e);
0x00002cd4 ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x00002cd8 ldr r0, [r3] | r0 = *(0x2e1e);
0x00002cda blx 0x1440 | fcn_00001440 ();
0x00002cde ldr r2, [pc, 0x140] |
0x00002ce0 ldr r3, [pc, 0x12c] | r3 = *(0x2e10);
0x00002ce2 add r2, pc | r2 = 0x5b08;
0x00002ce4 ldr r3, [r2, r3] | r3 = *(0x5b08);
0x00002ce6 ldr r2, [r3] | r2 = *(0x5b08);
0x00002ce8 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00002cea eors r2, r3 | r2 ^= r3;
0x00002cec mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00002cf0 bne 0x2dec | goto label_10;
| }
0x00002cf2 add sp, 0x50 |
0x00002cf4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc} |
| label_8:
0x00002cf8 cmp r5, 3 |
| if (r5 > 3) {
0x00002cfa bhi 0x2df8 | goto label_11;
| }
| /* switch table (4 cases) at 0x2d00 */
0x00002cfc tbb [pc, r5] | __asm ("tbb [0x00002d04]");
0x00002d04 ldr r2, [pc, 0x11c] |
0x00002d06 add r2, pc | r2 = 0x5b2e;
0x00002d08 cmp r7, 0 |
0x00002d0a beq 0x2d80 |
| while (1) {
| label_0:
0x00002d0c cmp r0, 0 |
| if (r0 == 0) {
0x00002d0e beq 0x2de6 | goto label_12;
| }
| label_6:
0x00002d10 ldr r1, [pc, 0x114] |
0x00002d12 mov r3, r8 | r3 = r8;
0x00002d14 strd r7, r0, [sp, 4] | __asm ("strd r7, r0, [var_4h]");
0x00002d16 strb r1, [r0] | *(r0) = r1;
0x00002d18 movs r0, 1 | r0 = 1;
0x00002d1a str.w sl, [sp] | __asm ("str.w sl, [sp]");
0x00002d1e add r1, pc | r1 = 0x5b4a;
0x00002d20 blx 0x1388 | printf_chk ()
| label_2:
0x00002d24 cmp r5, 3 |
| if (r5 > 3) {
0x00002d26 bhi 0x2df0 | goto label_13;
| }
0x00002d28 adr r3, 8 | r3 = 8;
0x00002d2a ldr.w r5, [r3, r5, lsl 2] | offset_0 = r5 << 2;
| r5 = *((r3 + offset_0));
0x00002d2e add r3, r5 | r3 += r5;
| /* switch table (4 cases) at 0x2d34 */
0x00002d30 bx r3 | return uint32_t (*r3)() ();
| label_1:
0x00002d80 ldr r7, [pc, 0xb0] |
0x00002d82 add r7, pc | r7 = 0x5bba;
0x00002d84 b 0x2d0c |
| }
0x00002d86 ldr r2, [pc, 0xb0] |
0x00002d88 add r2, pc | r2 = 0x5bc6;
0x00002d8a cmp r7, 0 |
| if (r7 != 0) {
0x00002d8c bne 0x2d0c | goto label_0;
| }
0x00002d8e b 0x2d80 | goto label_1;
0x00002d90 ldr r2, [pc, 0xa8] |
0x00002d92 add r2, pc | r2 = 0x5bd2;
0x00002d94 cbz r7, 0x2da8 |
| if (r0 == 0) {
| while (1) {
| label_3:
0x00002d96 cbz r0, 0x2de0 | goto label_14;
| }
| label_5:
0x00002d98 ldr r1, [pc, 0xa4] |
0x00002d9a mov r3, r7 | r3 = r7;
0x00002d9c str r0, [sp] | *(sp) = r0;
0x00002d9e movs r0, 1 | r0 = 1;
0x00002da0 add r1, pc | r1 = 0x5be4;
0x00002da2 blx 0x1388 | printf_chk ()
0x00002da6 b 0x2d24 | goto label_2;
| label_4:
0x00002da8 ldr r7, [pc, 0x98] |
0x00002daa add r7, pc | r7 = 0x5bf2;
0x00002dac b 0x2d96 |
| }
0x00002dae ldr r2, [pc, 0x98] |
0x00002db0 add r2, pc | r2 = 0x5bfe;
0x00002db2 cmp r7, 0 |
| if (r7 != 0) {
0x00002db4 bne 0x2d96 | goto label_3;
| }
0x00002db6 b 0x2da8 | goto label_4;
0x00002db8 ldr r2, [pc, 0x90] |
0x00002dba add r2, pc | r2 = 0x5c0a;
0x00002dbc cmp r7, 0 |
| if (r7 != 0) {
0x00002dbe bne 0x2d96 | goto label_3;
| }
0x00002dc0 b 0x2da8 | goto label_4;
0x00002dc2 ldr r2, [pc, 0x8c] |
0x00002dc4 add r2, pc | r2 = 0x5c1a;
0x00002dc6 cmp r7, 0 |
| if (r7 != 0) {
0x00002dc8 bne 0x2d96 | goto label_3;
| }
0x00002dca b 0x2da8 | goto label_4;
0x00002dcc ldr r2, [pc, 0x84] |
0x00002dce add r2, pc | r2 = 0x5c26;
0x00002dd0 cmp r7, 0 |
| if (r7 != 0) {
0x00002dd2 bne 0x2d0c | goto label_0;
| }
0x00002dd4 b 0x2d80 | goto label_1;
0x00002dd6 ldr r2, [pc, 0x80] |
0x00002dd8 add r2, pc | r2 = 0x5c36;
0x00002dda cmp r7, 0 |
| if (r7 != 0) {
0x00002ddc bne 0x2d0c | goto label_0;
| }
0x00002dde b 0x2d80 | goto label_1;
| label_14:
0x00002de0 ldr r0, [pc, 0x78] |
0x00002de2 add r0, pc | r0 = 0x5c42;
0x00002de4 b 0x2d98 | goto label_5;
| label_12:
0x00002de6 ldr r0, [pc, 0x78] |
0x00002de8 add r0, pc | r0 = 0x5c4e;
0x00002dea b 0x2d10 | goto label_6;
| label_10:
0x00002dec blx 0x1554 | fcn_00001554 ();
| label_13:
0x00002df0 movs r0, 0xa | r0 = 0xa;
0x00002df2 blx 0x1398 | fcn_00001398 ();
0x00002df6 b 0x2cbe | goto label_7;
| label_11:
0x00002df8 ldr r2, [pc, 0x68] |
0x00002dfa add r2, pc | r2 = 0x5c62;
0x00002dfc cmp r7, 0 |
| if (r7 != 0) {
0x00002dfe bne 0x2d96 | goto label_3;
| }
0x00002e00 b 0x2da8 | goto label_4;
| label_9:
0x00002e02 ldr r2, [pc, 0x64] |
0x00002e04 add r2, pc | r2 = 0x5c72;
0x00002e06 cmp r7, 0 |
| if (r7 != 0) {
0x00002e08 bne 0x2d0c | goto label_0;
| }
0x00002e0a b 0x2d80 | goto label_1;
| }
[*] Function printf used 67 times dbus-monitor