[*] Binary protection state of ntpconfd
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of ntpconfd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x2198 */
| #include <stdint.h>
|
; (fcn) fcn.00002198 () | void fcn_00002198 (int16_t arg1) {
| r0 = arg1;
| if (r0 == 0) {
0x00002198 cbz r0, 0x21d6 | goto label_0;
| }
0x0000219a ldr r1, [pc, 0x58] |
0x0000219c movs r2, 0 | r2 = 0;
0x0000219e push {r4, r5, r6, lr} |
0x000021a0 add r1, pc | r1 = 0x439a;
0x000021a2 blx 0x1c64 | r0 = g_variant_ref_sink ();
0x000021a6 mov r6, r0 | r6 = r0;
| if (r0 == 0) {
0x000021a8 cbz r0, 0x21dc | goto label_1;
| }
0x000021aa ldr r3, [r0] | r3 = *(r0);
0x000021ac mov r5, r0 | r5 = r0;
0x000021ae movs r4, 0 | r4 = 0;
| if (r3 == 0) {
0x000021b0 cbz r3, 0x21dc | goto label_1;
| }
| do {
0x000021b2 mov r0, r3 | r0 = r3;
0x000021b4 blx 0x1be0 | r0 = g_strdup_printf ()
0x000021b8 mov r1, r0 | r1 = r0;
0x000021ba mov r0, r4 | r0 = r4;
0x000021bc blx 0x1b44 | g_variant_new_int32 ();
0x000021c0 ldr r3, [r5, 4]! | r3 = *((r5 += 4));
0x000021c4 mov r4, r0 | r4 = r0;
0x000021c6 cmp r3, 0 |
0x000021c8 bne 0x21b2 |
| } while (r3 != 0);
0x000021ca mov r0, r6 | r0 = r6;
0x000021cc blx 0x1cdc | g_list_free_full ();
| if (r4 != 0) {
0x000021d0 cbz r4, 0x21e0 |
0x000021d2 mov r0, r4 | r0 = r4;
0x000021d4 pop {r4, r5, r6, pc} |
| label_0:
0x000021d6 mov r1, r0 | r1 = r0;
0x000021d8 b.w 0x1b40 | void (*0x1b40)() ();
| label_1:
0x000021dc blx 0x1cdc | g_list_free_full ();
| }
0x000021e0 ldr r0, [pc, 0x14] |
0x000021e2 add r0, pc | r0 = 0x43de;
0x000021e4 blx 0x1be0 | g_strdup_printf ()
0x000021e8 pop.w {r4, r5, r6, lr} |
0x000021ec mov r1, r0 | r1 = r0;
0x000021ee movs r0, 0 | r0 = 0;
0x000021f0 b.w 0x1b40 | return void (*0x1b40)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x2a00 */
| #include <stdint.h>
|
; (fcn) fcn.00002a00 () | void fcn_00002a00 (uint32_t arg1, uint32_t arg2, uint32_t arg3, int16_t arg4) {
| int16_t var_0h_2;
| int16_t var_0h;
| int16_t var_8h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x00002a00 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00002a04 sub sp, 0xc |
0x00002a06 ldrd fp, sl, [sp, 0x30] | __asm ("ldrd fp, sl, [var_0h]");
0x00002a0a ldr.w sb, [sp, 0x38] | sb = var_8h;
0x00002a0e cmp r0, 0 |
| if (r0 == 0) {
0x00002a10 beq 0x2a96 | goto label_0;
| }
0x00002a12 mov r5, r1 | r5 = r1;
0x00002a14 cmp r1, 0 |
| if (r1 == 0) {
0x00002a16 beq 0x2aae | goto label_1;
| }
0x00002a18 mov r6, r2 | r6 = r2;
0x00002a1a cmp r2, 0 |
| if (r2 == 0) {
0x00002a1c beq 0x2ac8 | goto label_2;
| }
0x00002a1e mov r8, r3 | r8 = r3;
0x00002a20 cmp r3, 0 |
| if (r3 == 0) {
0x00002a22 beq 0x2ae2 | goto label_3;
| }
0x00002a24 mov r7, r0 | r7 = r0;
0x00002a26 movs r0, 0x1c | r0 = 0x1c;
0x00002a28 blx 0x1ea8 | r0 = fcn_00001ea8 ();
0x00002a2c mov r4, r0 | r4 = r0;
0x00002a2e mov r0, r7 | r0 = r7;
0x00002a30 blx 0x1be0 | g_strdup_printf ()
0x00002a34 str r0, [r4] | *(r4) = r0;
0x00002a36 mov r0, r5 | r0 = r5;
0x00002a38 blx 0x1be0 | g_strdup_printf ()
0x00002a3c str r0, [r4, 4] | *((r4 + 4)) = r0;
0x00002a3e mov r0, r6 | r0 = r6;
0x00002a40 blx 0x1be0 | g_strdup_printf ()
0x00002a44 str r0, [r4, 8] | *((r4 + 8)) = r0;
0x00002a46 mov r0, r8 | r0 = r8;
0x00002a48 blx 0x1be0 | g_strdup_printf ()
0x00002a4c str r0, [r4, 0xc] | *((r4 + 0xc)) = r0;
0x00002a4e cmp.w fp, 0 |
| if (fp == 0) {
0x00002a52 beq 0x2a74 | goto label_4;
| }
0x00002a54 mov r0, fp | r0 = fp;
0x00002a56 blx 0x1c88 | g_dbus_connection_signal_subscribe ();
0x00002a5a ldr r3, [pc, 0xa0] |
0x00002a5c strd r0, sl, [r4, 0x10] | __asm ("strd r0, sl, [r4, 0x10]");
0x00002a60 str.w sb, [r4, 0x18] | __asm ("str.w sb, [r4, 0x18]");
0x00002a62 str r0, [sp, 0x60] | *((sp + 0x60)) = r0;
0x00002a64 add r3, pc |
0x00002a66 ldr r3, [r3, 0x10] | r3 = *(0x5576);
| if (r3 == 0) {
0x00002a68 cbz r3, 0x2a82 | goto label_5;
| }
| do {
0x00002a6a mov r0, r4 | r0 = r4;
0x00002a6c add sp, 0xc |
0x00002a6e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00002a72 b 0x24ac | void (*0x24ac)() ();
| label_4:
0x00002a74 ldr r3, [pc, 0x88] |
0x00002a76 strd sl, sb, [r4, 0x14] | __asm ("strd sl, sb, [r4, 0x14]");
0x00002a7a add r3, pc |
0x00002a7c ldr r3, [r3, 0x10] | r3 = *(0x558e);
0x00002a7e cmp r3, 0 |
0x00002a80 bne 0x2a6a |
| } while (r3 != 0);
| label_5:
0x00002a82 ldr r5, [pc, 0x80] |
0x00002a84 mov r1, r4 | r1 = r4;
0x00002a86 add r5, pc | r5 = 0x5590;
0x00002a88 ldr r0, [r5, 0x28] | r0 = *(0x55b8);
0x00002a8a blx 0x1b44 | g_variant_new_int32 ();
0x00002a8e str r0, [r5, 0x28] | *((r5 + 0x28)) = r0;
0x00002a90 add sp, 0xc |
0x00002a92 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_0:
0x00002a96 ldr r3, [pc, 0x70] |
0x00002a98 movw r2, 0x1b5 | r2 = 0x1b5;
0x00002a9c ldr r4, [pc, 0x6c] |
0x00002a9e ldr r1, [pc, 0x70] |
0x00002aa0 add r3, pc | r3 = 0x55ae;
0x00002aa2 add r4, pc | r4 = 0x55b2;
0x00002aa4 adds r3, 0x98 | r3 += 0x98;
0x00002aa6 add r1, pc | r1 = 0x55bc;
0x00002aa8 str r4, [sp] | *(sp) = r4;
0x00002aaa blx 0x1ed8 | fcn_00001ed8 ();
| label_1:
0x00002aae ldr r3, [pc, 0x64] |
0x00002ab0 mov.w r2, 0x1b6 | r2 = 0x1b6;
0x00002ab4 ldr r4, [pc, 0x60] |
0x00002ab6 mov r0, r5 | r0 = r5;
0x00002ab8 ldr r1, [pc, 0x60] |
0x00002aba add r3, pc | r3 = 0x55d4;
0x00002abc add r4, pc | r4 = 0x55d8;
0x00002abe adds r3, 0x98 | r3 += 0x98;
0x00002ac0 add r1, pc | r1 = 0x55e0;
0x00002ac2 str r4, [sp] | *(sp) = r4;
0x00002ac4 blx 0x1ed8 | fcn_00001ed8 ();
| label_2:
0x00002ac8 ldr r3, [pc, 0x54] |
0x00002aca movw r2, 0x1b7 | r2 = 0x1b7;
0x00002ace ldr r4, [pc, 0x54] |
0x00002ad0 mov r0, r6 | r0 = r6;
0x00002ad2 ldr r1, [pc, 0x54] |
0x00002ad4 add r3, pc | r3 = 0x55f8;
0x00002ad6 add r4, pc | r4 = 0x5600;
0x00002ad8 adds r3, 0x98 | r3 += 0x98;
0x00002ada add r1, pc | r1 = 0x5608;
0x00002adc str r4, [sp] | *(sp) = r4;
0x00002ade blx 0x1ed8 | fcn_00001ed8 ();
| label_3:
0x00002ae2 ldr r3, [pc, 0x48] |
0x00002ae4 mov.w r2, 0x1b8 | r2 = 0x1b8;
0x00002ae8 ldr r4, [pc, 0x44] |
0x00002aea mov r0, r8 | r0 = r8;
0x00002aec ldr r1, [pc, 0x44] |
0x00002aee add r3, pc | r3 = 0x5620;
0x00002af0 add r4, pc | r4 = 0x5624;
0x00002af2 adds r3, 0x98 | r3 += 0x98;
0x00002af4 add r1, pc | r1 = 0x562c;
0x00002af6 str r4, [sp] | *(sp) = r4;
0x00002af8 blx 0x1ed8 | fcn_00001ed8 ();
0x00002afc stm r5!, {r5, r6, r7} | *(r5!) = r5;
| *((r5! + 4)) = r6;
| *((r5! + 8)) = r7;
0x00002afe movs r0, r0 |
0x00002b00 stm r5!, {r1, r3, r6, r7} | *(r5!) = r1;
| *((r5! + 4)) = r3;
| *((r5! + 8)) = r6;
| *((r5! + 12)) = r7;
0x00002b02 movs r0, r0 |
0x00002b04 stm r5!, {r1, r2, r3, r4, r5, r7} | *(r5!) = r1;
| *((r5! + 4)) = r2;
| *((r5! + 8)) = r3;
| *((r5! + 12)) = r4;
| *((r5! + 16)) = r5;
| *((r5! + 20)) = r7;
0x00002b06 movs r0, r0 |
0x00002b08 ldrsh r0, [r1, r5] | r0 = *((r1 + r5));
0x00002b0a movs r0, r0 |
0x00002b0c ldrb r6, [r1, r3] | r6 = *((r1 + r3));
0x00002b0e movs r0, r0 |
0x00002b10 ldrh r6, [r5, r1] | r6 = *((r5 + r1));
0x00002b12 movs r0, r0 |
0x00002b14 ldrsh r6, [r5, r4] | r6 = *((r5 + r4));
0x00002b16 movs r0, r0 |
0x00002b18 ldrb r4, [r0, r3] | r4 = *((r0 + r3));
0x00002b1a movs r0, r0 |
0x00002b1c ldrh r4, [r2, r1] | r4 = *((r2 + r1));
0x00002b1e movs r0, r0 |
0x00002b20 ldrsh r4, [r2, r4] | r4 = *((r2 + r4));
0x00002b22 movs r0, r0 |
0x00002b24 ldrb r2, [r7, r2] | r2 = *((r7 + r2));
0x00002b26 movs r0, r0 |
0x00002b28 ldrh r2, [r7, r0] | r2 = *((r7 + r0));
0x00002b2a movs r0, r0 |
0x00002b2c ldrsh r2, [r7, r3] | r2 = *((r7 + r3));
0x00002b2e movs r0, r0 |
0x00002b30 ldrb r4, [r6, r2] | r4 = *((r6 + r2));
0x00002b32 movs r0, r0 |
0x00002b34 ldrh r0, [r4, r0] | r0 = *((r4 + r0));
0x00002b36 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/sbin/ntpconfd @ 0x3484 */
| #include <stdint.h>
|
; (fcn) fcn.00003484 () | void fcn_00003484 (int16_t arg_d8h, int16_t arg_1e0h, int16_t arg_3b0h) {
| int16_t var_0h_2;
| int16_t var_8h_2;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_8h_3;
| int16_t var_0h;
| int32_t var_38h;
| int16_t var_8h;
| int16_t var_ch_2;
| int16_t var_4ch_2;
| int16_t var_4ch;
| int16_t var_68h_2;
| int16_t var_4h;
| int16_t var_68h;
| int16_t var_6ch;
| int16_t var_78h;
| int16_t var_44h;
0x00003484 blmi 0x815d08 | __asm ("blmi aav.0x0000b970");
0x00003488 push {r4, r5, r6, lr} |
0x0000348a sub sp, 0x48 |
0x0000348c add r2, pc | r2 += pc;
0x0000348e ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00003490 ldr r3, [r3] | r3 = *(r3);
0x00003492 str r3, [sp, 0x44] | var_44h = r3;
0x00003494 mov.w r3, 0 | r3 = 0;
| if (r0 == 0) {
0x00003498 cbz r0, 0x34e6 | goto label_13;
| }
0x0000349a bl 0x7f40 | r0 = fcn_00007f40 ();
0x0000349e mov r4, r0 | r4 = r0;
| label_0:
0x000034a0 ldr r1, [pc, 0x68] |
0x000034a2 add r5, sp, 4 | r5 += var_4h;
0x000034a4 mov r0, r5 | r0 = r5;
0x000034a6 add r1, pc | r1 = 0x69b6;
0x000034a8 blx 0x1c70 | clock_gettime ();
| if (r4 == 0) {
0x000034ac cbz r4, 0x34ee | goto label_14;
| }
0x000034ae ldr r2, [r4] | r2 = *(r4);
| if (r2 == 0) {
0x000034b0 cbz r2, 0x34ee | goto label_14;
| }
0x000034b2 ldr r6, [pc, 0x5c] |
0x000034b4 add r6, pc | r6 = 0x69ca;
| do {
0x000034b6 mov r1, r6 | r1 = r6;
0x000034b8 mov r0, r5 | r0 = r5;
0x000034ba blx 0x1ee4 | fcn_00001ee4 ();
0x000034be ldr r4, [r4, 4] | r4 = *((r4 + 4));
| if (r4 == 0) {
0x000034c0 cbz r4, 0x34c8 | goto label_15;
| }
0x000034c2 ldr r2, [r4] | r2 = *(r4);
0x000034c4 cmp r2, 0 |
0x000034c6 bne 0x34b6 |
| } while (r2 != 0);
| do {
| label_15:
0x000034c8 mov r0, r5 | r0 = r5;
0x000034ca blx 0x1a90 | g_variant_builder_end ();
0x000034ce ldr r2, [pc, 0x44] |
0x000034d0 ldr r3, [pc, 0x34] | r3 = *(0x3508);
0x000034d2 add r2, pc | r2 = 0x69ec;
0x000034d4 ldr r3, [r2, r3] | r3 = *(0x69ec);
0x000034d6 ldr r2, [r3] | r2 = *(0x69ec);
0x000034d8 ldr r3, [sp, 0x44] | r3 = var_44h;
0x000034da eors r2, r3 | r2 ^= r3;
0x000034dc mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000034e0 bne 0x34fe | goto label_16;
| }
0x000034e2 add sp, 0x48 |
0x000034e4 pop {r4, r5, r6, pc} |
| label_13:
0x000034e6 bl 0x7f34 | r0 = fcn_00007f34 ();
0x000034ea mov r4, r0 | r4 = r0;
0x000034ec b 0x34a0 | goto label_0;
| label_14:
0x000034ee ldr r2, [pc, 0x28] |
0x000034f0 mov r0, r5 | r0 = r5;
0x000034f2 ldr r1, [pc, 0x28] |
0x000034f4 add r2, pc | r2 = 0x6a12;
0x000034f6 add r1, pc | r1 = 0x6a18;
0x000034f8 blx 0x1ee4 | fcn_00001ee4 ();
0x000034fc b 0x34c8 |
| } while (1);
| label_16:
0x000034fe blx 0x1d1c | fcn_00001d1c ();
0x00003502 nop |
| if (r0 == 0) {
0x00003504 cbnz r0, 0x3524 |
0x00003506 movs r0, r0 |
0x00003508 lsls r4, r3, 7 | r4 = r3 << 7;
0x0000350a movs r0, r0 |
0x0000350c strb r2, [r5, r1] | *((r5 + r1)) = r2;
0x0000350e movs r0, r0 |
0x00003510 adr r1, 0x1c0 | r1 = 0x1c0;
0x00003512 movs r0, r0 |
| if (r2 == 0) {
0x00003514 cbnz r2, 0x3522 |
0x00003516 movs r0, r0 |
0x00003518 ldr r7, [sp, 0x3b0] | r7 = *(arg_3b0h);
0x0000351a movs r0, r0 |
0x0000351c adr r1, 0xb8 | r1 = 0xb8;
0x0000351e movs r0, r0 |
0x00003520 ldr r1, [pc, 0x2dc] | r1 = *(0x3800);
| }
0x00003522 push.w {r4, r5, r6, r7, r8, lr} |
| }
0x00003524 rors r0, r6 | __asm ("rors r0, r6");
0x00003526 mov r5, r2 | r5 = r2;
0x00003528 ldr r2, [pc, 0x2d8] |
0x0000352a mov r4, r3 | r4 = r3;
0x0000352c add r1, pc | r1 += pc;
0x0000352e sub sp, 0x50 |
0x00003530 ldr r3, [pc, 0x2d4] | r3 = *(0x3808);
0x00003532 mov.w r8, 0 | r8 = 0;
0x00003536 add r2, pc | r2 = 0x6d3e;
0x00003538 ldr r0, [r1] | r0 = *(r1);
0x0000353a ldr r7, [sp, 0x68] | r7 = var_68h;
0x0000353c ldr r3, [r2, r3] |
0x0000353e ldr r6, [sp, 0x6c] | r6 = var_4h;
0x00003540 ldr r3, [r3] | r3 = *(0x6d3e);
0x00003542 str r3, [sp, 0x4c] | var_4ch = r3;
0x00003544 mov.w r3, 0 | r3 = 0;
0x00003548 str.w r8, [sp, 8] | __asm ("str.w r8, [var_8h]");
0x0000354c cmp r0, 0 |
| if (r0 == 0) {
0x0000354e beq 0x362e | goto label_17;
| }
0x00003550 ldr r1, [pc, 0x2b8] |
0x00003552 mov r0, r5 | r0 = r5;
0x00003554 add r1, pc | r1 = 0x6d64;
0x00003556 blx 0x1f5c | r0 = fcn_00001f5c ();
0x0000355a cmp r0, 0 |
| if (r0 != 0) {
0x0000355c bne.w 0x3674 | goto label_18;
| }
0x00003560 ldr r1, [pc, 0x2ac] |
0x00003562 mov r0, r4 | r0 = r4;
0x00003564 add r1, pc | r1 = 0x6d78;
0x00003566 blx 0x1f5c | r0 = fcn_00001f5c ();
0x0000356a cmp r0, 0 |
| if (r0 != 0) {
0x0000356c bne 0x35ec | goto label_19;
| }
0x0000356e ldr r1, [pc, 0x2a4] |
0x00003570 mov r0, r7 | r0 = r7;
0x00003572 add r1, pc | r1 = 0x6d8c;
0x00003574 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003578 cmp r0, 0 |
| if (r0 == 0) {
0x0000357a beq 0x3646 | goto label_20;
| }
0x0000357c ldr r1, [pc, 0x298] |
0x0000357e mov r0, r7 | r0 = r7;
0x00003580 add r1, pc | r1 = 0x6d9c;
0x00003582 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003586 cmp r0, 0 |
| if (r0 == 0) {
0x00003588 beq.w 0x36a0 | goto label_21;
| }
0x0000358c ldr r1, [pc, 0x28c] |
0x0000358e mov r0, r7 | r0 = r7;
0x00003590 add r1, pc | r1 = 0x6db0;
0x00003592 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003596 cmp r0, 0 |
| if (r0 == 0) {
0x00003598 beq.w 0x369e | goto label_22;
| }
0x0000359c ldr r1, [pc, 0x280] |
0x0000359e mov r0, r7 | r0 = r7;
0x000035a0 add r1, pc | r1 = 0x6dc4;
0x000035a2 blx 0x1f5c | r0 = fcn_00001f5c ();
0x000035a6 cmp r0, 0 |
| if (r0 != 0) {
0x000035a8 bne.w 0x3768 | goto label_23;
| }
0x000035ac bl 0x7f58 | r0 = fcn_00007f58 ();
0x000035b0 cmp r0, 0 |
| if (r0 == 0) {
0x000035b2 beq.w 0x3762 | goto label_7;
| }
0x000035b6 cmp r0, 1 |
| if (r0 == 1) {
0x000035b8 beq.w 0x3762 | goto label_7;
| }
0x000035bc ldr r0, [pc, 0x264] |
0x000035be add r0, pc | r0 = 0x6de6;
0x000035c0 blx 0x1be0 | g_strdup_printf ()
0x000035c4 str r0, [sp, 8] | var_8h = r0;
| do {
| label_4:
0x000035c6 blx 0x19c4 | g_dbus_error_quark ();
0x000035ca ldr r4, [sp, 8] | r4 = var_8h;
0x000035cc mov r1, r0 | r1 = r0;
0x000035ce cmp r4, 0 |
| if (r4 == 0) {
0x000035d0 beq.w 0x3722 | goto label_24;
| }
| label_3:
0x000035d4 ldr r3, [pc, 0x250] |
0x000035d6 mov r0, r6 | r0 = r6;
0x000035d8 movs r2, 0 | r2 = 0;
0x000035da str r4, [sp] | *(sp) = r4;
0x000035dc add r3, pc | r3 = 0x6e08;
0x000035de blx 0x1efc | fcn_00001efc ();
0x000035e2 ldr r0, [sp, 8] | r0 = var_8h;
0x000035e4 blx 0x1d44 | fcn_00001d44 ();
| label_2:
0x000035e8 movs r0, 0 | r0 = 0;
0x000035ea b 0x3612 | goto label_25;
| label_19:
0x000035ec ldr r1, [pc, 0x23c] |
0x000035ee mov r0, r4 | r0 = r4;
0x000035f0 add r1, pc | r1 = 0x6e20;
0x000035f2 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x000035f6 cbnz r0, 0x3650 | goto label_26;
| }
0x000035f8 ldr r1, [pc, 0x234] |
0x000035fa mov r0, r7 | r0 = r7;
0x000035fc add r1, pc | r1 = 0x6e30;
0x000035fe blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003602 cmp r0, 0 |
| if (r0 != 0) {
0x00003604 bne 0x36a6 | goto label_27;
| }
0x00003606 bl 0x7f10 | fcn_00007f10 ();
| label_5:
0x0000360a blx 0x1a78 | r0 = g_variant_new_boolean ();
| label_1:
0x0000360e cmp r0, 0 |
0x00003610 beq 0x35c6 |
| } while (r0 == 0);
| label_25:
0x00003612 ldr r2, [pc, 0x220] |
0x00003614 ldr r3, [pc, 0x1f0] | r3 = *(0x3808);
0x00003616 add r2, pc | r2 = 0x6e50;
0x00003618 ldr r3, [r2, r3] | r3 = *(0x6e50);
0x0000361a ldr r2, [r3] | r2 = *(0x6e50);
0x0000361c ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0000361e eors r2, r3 | r2 ^= r3;
0x00003620 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003624 bne.w 0x37fa | goto label_28;
| }
0x00003628 add sp, 0x50 |
0x0000362a pop.w {r4, r5, r6, r7, r8, pc} |
| label_17:
0x0000362e ldr r3, [pc, 0x208] |
0x00003630 movw r2, 0x25f | r2 = 0x25f;
0x00003634 ldr r4, [pc, 0x204] |
0x00003636 ldr r1, [pc, 0x208] |
0x00003638 add r3, pc | r3 = 0x6e76;
0x0000363a add r4, pc | r4 = 0x6e7a;
0x0000363c adds r3, 0x58 | r3 += 0x58;
0x0000363e add r1, pc | r1 = 0x6e84;
0x00003640 str r4, [sp] | *(sp) = r4;
0x00003642 blx 0x1ed8 | fcn_00001ed8 ();
| label_20:
0x00003646 bl 0x7f04 | fcn_00007f04 ();
0x0000364a blx 0x1a78 | g_variant_new_boolean ();
0x0000364e b 0x360e | goto label_1;
| label_26:
0x00003650 ldr r1, [pc, 0x1f0] |
0x00003652 mov r0, r4 | r0 = r4;
0x00003654 add r1, pc | r1 = 0x6e9c;
0x00003656 blx 0x1f5c | r0 = fcn_00001f5c ();
0x0000365a cmp r0, 0 |
| if (r0 != 0) {
0x0000365c bne 0x3728 | goto label_29;
| }
0x0000365e ldr r1, [pc, 0x1e8] |
0x00003660 mov r0, r7 | r0 = r7;
0x00003662 add r1, pc | r1 = 0x6eb0;
0x00003664 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 == 0) {
0x00003668 cbnz r0, 0x36cc |
0x0000366a bl 0x7f98 | fcn_00007f98 ();
0x0000366e blx 0x1a78 | g_variant_new_boolean ();
0x00003672 b 0x360e | goto label_1;
| label_18:
0x00003674 ldr r3, [pc, 0x1d4] |
0x00003676 mov r0, r8 | r0 = r8;
0x00003678 ldr r2, [pc, 0x1d4] |
0x0000367a mov.w r1, 0x100 | r1 = 0x100;
0x0000367e str r5, [sp] | *(sp) = r5;
0x00003680 add r3, pc | r3 = 0x6ed0;
0x00003682 add r2, pc | r2 = 0x6ed6;
0x00003684 blx 0x1b00 | fcn_00001b00 ();
0x00003688 blx 0x19c4 | g_dbus_error_quark ();
0x0000368c ldr r3, [pc, 0x1c4] |
0x0000368e mov r1, r0 | r1 = r0;
0x00003690 movs r2, 0x29 | r2 = 0x29;
0x00003692 mov r0, r6 | r0 = r6;
0x00003694 str r5, [sp] | *(sp) = r5;
0x00003696 add r3, pc | r3 = 0x6eee;
0x00003698 blx 0x1efc | fcn_00001efc ();
0x0000369c b 0x35e8 | goto label_2;
| label_22:
0x0000369e movs r0, 1 | r0 = 1;
| label_21:
0x000036a0 bl 0x3484 | fcn_00003484 (r0, r1, r2);
0x000036a4 b 0x360e | goto label_1;
| label_27:
0x000036a6 ldr r1, [pc, 0x1b0] |
0x000036a8 mov r0, r7 | r0 = r7;
0x000036aa add r1, pc | r1 = 0x6f08;
0x000036ac blx 0x1f5c | r0 = fcn_00001f5c ();
0x000036b0 cmp r0, 0 |
| if (r0 == 0) {
0x000036b2 beq 0x373e | goto label_30;
| }
0x000036b4 ldr r1, [pc, 0x1a4] |
0x000036b6 mov r0, r7 | r0 = r7;
0x000036b8 add r1, pc | r1 = 0x6f18;
0x000036ba blx 0x1f5c | r0 = fcn_00001f5c ();
0x000036be cmp r0, 0 |
| if (r0 != 0) {
0x000036c0 bne 0x3752 | goto label_31;
| }
0x000036c2 bl 0x7f70 | fcn_00007f70 ();
0x000036c6 blx 0x1a54 | g_variant_new_uint32 ();
0x000036ca b 0x360e | goto label_1;
| }
0x000036cc ldr r1, [pc, 0x190] |
0x000036ce mov r0, r7 | r0 = r7;
0x000036d0 add r1, pc | r1 = 0x6f34;
0x000036d2 blx 0x1f5c | r0 = fcn_00001f5c ();
0x000036d6 cmp r0, 0 |
| if (r0 == 0) {
0x000036d8 beq 0x3748 | goto label_32;
| }
0x000036da ldr r1, [pc, 0x188] |
0x000036dc mov r0, r7 | r0 = r7;
0x000036de add r1, pc | r1 = 0x6f48;
0x000036e0 blx 0x1f5c | r0 = fcn_00001f5c ();
0x000036e4 cmp r0, 0 |
| if (r0 != 0) {
0x000036e6 bne 0x37b4 | goto label_33;
| }
0x000036e8 bl 0x7f4c | fcn_00007f4c ();
0x000036ec ldr r1, [pc, 0x178] |
0x000036ee mov r4, r0 | r4 = r0;
0x000036f0 add r5, sp, 0xc | r5 += var_ch_2;
0x000036f2 mov r0, r5 | r0 = r5;
0x000036f4 add r1, pc | r1 = 0x6f60;
0x000036f6 blx 0x1c70 | clock_gettime ();
0x000036fa cmp r4, 0 |
| if (r4 == 0) {
0x000036fc beq 0x37a4 | goto label_34;
| }
0x000036fe ldr r2, [r4] | r2 = *(r4);
0x00003700 cmp r2, 0 |
| if (r2 == 0) {
0x00003702 beq 0x37a4 | goto label_34;
| }
0x00003704 ldr r7, [pc, 0x164] |
0x00003706 add r7, pc | r7 = 0x6f76;
| do {
0x00003708 mov r1, r7 | r1 = r7;
0x0000370a mov r0, r5 | r0 = r5;
0x0000370c blx 0x1ee4 | fcn_00001ee4 ();
0x00003710 ldr r4, [r4, 4] | r4 = *((r4 + 4));
| if (r4 == 0) {
0x00003712 cbz r4, 0x371a | goto label_6;
| }
0x00003714 ldr r2, [r4] | r2 = *(r4);
0x00003716 cmp r2, 0 |
0x00003718 bne 0x3708 |
| } while (r2 != 0);
| label_6:
0x0000371a mov r0, r5 | r0 = r5;
0x0000371c blx 0x1a90 | g_variant_builder_end ();
0x00003720 b 0x360e | goto label_1;
| label_24:
0x00003722 ldr r4, [pc, 0x14c] |
0x00003724 add r4, pc | r4 = 0x6f9a;
0x00003726 b 0x35d4 | goto label_3;
| label_29:
0x00003728 blx 0x19c4 | g_dbus_error_quark ();
0x0000372c ldr r3, [pc, 0x144] |
0x0000372e mov r1, r0 | r1 = r0;
0x00003730 movs r2, 0x2a | r2 = 0x2a;
0x00003732 mov r0, r6 | r0 = r6;
0x00003734 str r4, [sp] | *(sp) = r4;
0x00003736 add r3, pc | r3 = 0x6fae;
0x00003738 blx 0x1efc | fcn_00001efc ();
0x0000373c b 0x35c6 | goto label_4;
| label_30:
0x0000373e bl 0x7f64 | fcn_00007f64 ();
0x00003742 blx 0x1a78 | g_variant_new_boolean ();
0x00003746 b 0x360e | goto label_1;
| label_32:
0x00003748 bl 0x7f1c | fcn_00007f1c ();
0x0000374c blx 0x1a78 | g_variant_new_boolean ();
0x00003750 b 0x360e | goto label_1;
| label_31:
0x00003752 ldr r1, [pc, 0x124] |
0x00003754 mov r0, r7 | r0 = r7;
0x00003756 add r1, pc | r1 = 0x6fd4;
0x00003758 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x0000375c cbnz r0, 0x37c2 | goto label_35;
| }
0x0000375e bl 0x7f7c | fcn_00007f7c ();
| label_7:
0x00003762 blx 0x1a54 | g_variant_new_uint32 ();
0x00003766 b 0x360e | goto label_1;
| label_23:
0x00003768 ldr r1, [pc, 0x110] |
0x0000376a mov r0, r7 | r0 = r7;
0x0000376c add r1, pc | r1 = 0x6fec;
0x0000376e blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x00003772 cbnz r0, 0x3784 | goto label_36;
| }
0x00003774 add r0, sp, 8 | r0 += var_8h;
0x00003776 bl 0x7f88 | fcn_00007f88 ();
0x0000377a ldr r3, [sp, 8] | r3 = var_8h;
0x0000377c cmp r3, 0 |
| if (r3 != 0) {
0x0000377e bne.w 0x35c6 | goto label_4;
| }
0x00003782 b 0x360a | goto label_5;
| label_36:
0x00003784 ldr r1, [pc, 0xf8] |
0x00003786 mov r0, r7 | r0 = r7;
0x00003788 add r1, pc | r1 = 0x700c;
0x0000378a blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x0000378e cbnz r0, 0x37d0 | goto label_37;
| }
0x00003790 add r0, sp, 8 | r0 += var_8h;
0x00003792 bl 0x7f8c | fcn_00007f8c (r0);
0x00003796 ldr r3, [sp, 8] | r3 = var_8h;
0x00003798 cmp r3, 0 |
| if (r3 != 0) {
0x0000379a bne.w 0x35c6 | goto label_4;
| }
0x0000379e blx 0x1de8 | fcn_00001de8 ();
0x000037a2 b 0x360e | goto label_1;
| label_34:
0x000037a4 ldr r2, [pc, 0xdc] |
0x000037a6 mov r0, r5 | r0 = r5;
0x000037a8 ldr r1, [pc, 0xdc] |
0x000037aa add r2, pc | r2 = 0x7032;
0x000037ac add r1, pc | r1 = 0x7038;
0x000037ae blx 0x1ee4 | fcn_00001ee4 ();
0x000037b2 b 0x371a | goto label_6;
| label_33:
0x000037b4 ldr r0, [pc, 0xd4] |
0x000037b6 mov r1, r7 | r1 = r7;
0x000037b8 add r0, pc | r0 = 0x7048;
0x000037ba blx 0x1c04 | g_list_remove ();
0x000037be str r0, [sp, 8] | var_8h = r0;
0x000037c0 b 0x35c6 | goto label_4;
| label_35:
0x000037c2 ldr r0, [pc, 0xcc] |
0x000037c4 mov r1, r7 | r1 = r7;
0x000037c6 add r0, pc | r0 = 0x705c;
0x000037c8 blx 0x1c04 | g_list_remove ();
0x000037cc str r0, [sp, 8] | var_8h = r0;
0x000037ce b 0x35c6 | goto label_4;
| label_37:
0x000037d0 ldr r1, [pc, 0xc0] |
0x000037d2 mov r0, r7 | r0 = r7;
0x000037d4 add r1, pc | r1 = 0x706c;
0x000037d6 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x000037da cbnz r0, 0x37ec | goto label_38;
| }
0x000037dc add r0, sp, 8 | r0 += var_8h;
0x000037de bl 0x7f94 | fcn_00007f94 (r0);
0x000037e2 ldr r3, [sp, 8] | r3 = var_8h;
0x000037e4 cmp r3, 0 |
| if (r3 != 0) {
0x000037e6 bne.w 0x35c6 | goto label_4;
| }
0x000037ea b 0x3762 | goto label_7;
| label_38:
0x000037ec ldr r0, [pc, 0xa8] |
0x000037ee mov r1, r7 | r1 = r7;
0x000037f0 add r0, pc | r0 = 0x708c;
0x000037f2 blx 0x1c04 | g_list_remove ();
0x000037f6 str r0, [sp, 8] | var_8h = r0;
0x000037f8 b 0x35c6 | goto label_4;
| label_28:
0x000037fa blx 0x1d1c | fcn_00001d1c ();
0x000037fe nop |
| if (r4 == 0) {
0x00003800 cbnz r4, 0x3856 |
0x00003802 movs r0, r0 |
0x00003804 invalid |
| }
0x00003856 movs r0, r0 |
0x00003858 strb r2, [r0, r5] | *((r0 + r5)) = r2;
0x0000385a movs r0, r0 |
0x0000385c strb r4, [r1, r5] | *((r1 + r5)) = r4;
0x0000385e movs r0, r0 |
0x00003860 ldrsb r0, [r3, r1] | r0 = *((r3 + r1));
0x00003862 movs r0, r0 |
0x00003864 ldrsb r6, [r2, r1] | r6 = *((r2 + r1));
0x00003866 movs r0, r0 |
0x00003868 strh r4, [r3, r0] | *((r3 + r0)) = r4;
0x0000386a movs r0, r0 |
0x0000386c ldr r7, [sp, 0x78] | r7 = var_78h;
0x0000386e movs r0, r0 |
0x00003870 strb r0, [r5, r4] | *((r5 + r4)) = r0;
0x00003872 movs r0, r0 |
0x00003874 ldrsb r2, [r2, r0] | r2 = *((r2 + r0));
0x00003876 movs r0, r0 |
0x00003878 strb r6, [r0, r3] | *((r0 + r3)) = r6;
0x0000387a movs r0, r0 |
0x0000387c strb r4, [r2, r5] | *((r2 + r5)) = r4;
0x0000387e movs r0, r0 |
0x00003880 strb r0, [r0, r5] | *((r0 + r5)) = r0;
0x00003882 movs r0, r0 |
0x00003884 ldr r5, [sp, 0xd8] | r5 = *(arg_d8h);
0x00003886 movs r0, r0 |
0x00003888 ldr r6, [sp, 0x1e0] | r6 = *(arg_1e0h);
0x0000388a movs r0, r0 |
0x0000388c strb r4, [r5, r4] | *((r5 + r4)) = r4;
0x0000388e movs r0, r0 |
0x00003890 strb r6, [r3, r4] | *((r3 + r4)) = r6;
0x00003892 movs r0, r0 |
0x00003894 strb r0, [r0, r4] | *((r0 + r4)) = r0;
0x00003896 movs r0, r0 |
0x00003898 strb r4, [r6, r3] | *((r6 + r3)) = r4;
0x0000389a movs r0, r0 |
0x0000389c push.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x000038a0 mov r5, r2 | r5 = r2;
0x000038a2 ldr.w r2, [pc, 0x5a4] |
0x000038a6 mov r4, r3 | r4 = r3;
0x000038a8 sub sp, 0x18 |
0x000038aa ldr.w r3, [pc, 0x5a0] | r3 = *(0x3e4e);
0x000038ae add r2, pc | r2 = 0x76fc;
0x000038b0 ldrd r8, sl, [sp, 0x38] | __asm ("ldrd r8, sl, [var_0h]");
0x000038b4 ldr.w sb, [sp, 0x40] | sb = var_8h;
0x000038b8 ldr r3, [r2, r3] |
0x000038ba ldr r3, [r3] | r3 = *(0x76fc);
0x000038bc str r3, [sp, 0x14] | var_14h = r3;
0x000038be mov.w r3, 0 | r3 = 0;
0x000038c2 ldr.w r3, [pc, 0x58c] |
0x000038c6 add r3, pc | r3 = 0x771c;
0x000038c8 ldr r0, [r3] | r0 = *(0x771c);
0x000038ca cmp r0, 0 |
| if (r0 == 0) {
0x000038cc beq.w 0x3a20 | goto label_39;
| }
0x000038d0 mov r7, r1 | r7 = r1;
0x000038d2 ldr.w r1, [pc, 0x580] |
0x000038d6 mov r0, r5 | r0 = r5;
0x000038d8 add r1, pc | r1 = 0x7732;
0x000038da blx 0x1f5c | r0 = fcn_00001f5c ();
0x000038de mov r6, r0 | r6 = r0;
0x000038e0 cmp r0, 0 |
| if (r0 != 0) {
0x000038e2 bne 0x39d4 | goto label_40;
| }
0x000038e4 ldr.w r1, [pc, 0x570] |
0x000038e8 mov r0, r4 | r0 = r4;
0x000038ea add r1, pc | r1 = 0x7746;
0x000038ec blx 0x1f5c | r0 = fcn_00001f5c ();
0x000038f0 mov r5, r0 | r5 = r0;
0x000038f2 cmp r0, 0 |
| if (r0 != 0) {
0x000038f4 bne 0x397a | goto label_41;
| }
0x000038f6 mov r1, r4 | r1 = r4;
0x000038f8 mov r0, r7 | r0 = r7;
0x000038fa mov r2, r8 | r2 = r8;
0x000038fc bl 0x28e8 | r0 = fcn_000028e8 (r0, r1, r2, r3);
0x00003900 cmp r0, 0 |
| if (r0 == 0) {
0x00003902 beq.w 0x3ab4 | goto label_42;
| }
0x00003906 ldr.w r1, [pc, 0x554] |
0x0000390a mov r0, r8 | r0 = r8;
0x0000390c str r5, [sp, 8] | var_8h_2 = r5;
0x0000390e add r1, pc | r1 = 0x7770;
0x00003910 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003914 cmp r0, 0 |
| if (r0 != 0) {
0x00003916 bne.w 0x3aec | goto label_43;
| }
0x0000391a bl 0x7360 | fcn_00007360 ();
0x0000391e ldr r0, [sp, 8] | r0 = var_8h_2;
| label_9:
0x00003920 cmp r0, 0 |
| if (r0 == 0) {
0x00003922 beq.w 0x3ae2 | goto label_44;
| }
0x00003926 ldr.w r3, [pc, 0x538] |
0x0000392a movs r1, 0x10 | r1 = 0x10;
0x0000392c ldr.w r2, [pc, 0x534] |
0x00003930 str r0, [sp] | *(sp) = r0;
0x00003932 movs r0, 0 | r0 = 0;
0x00003934 add r3, pc | r3 = 0x779a;
0x00003936 add r2, pc | r2 = 0x779e;
0x00003938 blx 0x1b00 | fcn_00001b00 ();
0x0000393c blx 0x19c4 | g_dbus_error_quark ();
0x00003940 ldr.w r3, [pc, 0x524] |
0x00003944 mov r1, r0 | r1 = r0;
0x00003946 ldr r4, [sp, 8] | r4 = var_8h_2;
0x00003948 mov r0, sb | r0 = sb;
0x0000394a add r3, pc | r3 = 0x77b6;
| do {
0x0000394c movs r2, 0x10 | r2 = 0x10;
0x0000394e str r4, [sp] | *(sp) = r4;
0x00003950 blx 0x1da0 | fcn_00001da0 ();
0x00003954 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003956 blx 0x1d44 | fcn_00001d44 ();
| label_8:
0x0000395a ldr.w r2, [pc, 0x510] |
0x0000395e ldr.w r3, [pc, 0x4ec] | r3 = *(0x3e4e);
0x00003962 add r2, pc | r2 = 0x77d4;
0x00003964 ldr r3, [r2, r3] | r3 = *(0x77d4);
0x00003966 ldr r2, [r3] | r2 = *(0x77d4);
0x00003968 ldr r3, [sp, 0x14] | r3 = var_14h;
0x0000396a eors r2, r3 | r2 ^= r3;
0x0000396c mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003970 bne.w 0x3e2e | goto label_45;
| }
0x00003974 add sp, 0x18 |
0x00003976 pop.w {r4, r5, r6, r7, r8, sb, sl, pc} |
| label_41:
0x0000397a ldr.w r1, [pc, 0x4f4] |
0x0000397e mov r0, r4 | r0 = r4;
0x00003980 add r1, pc | r1 = 0x77f6;
0x00003982 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003986 mov r5, r0 | r5 = r0;
0x00003988 cmp r0, 0 |
| if (r0 != 0) {
0x0000398a bne 0x3a3e | goto label_46;
| }
0x0000398c ldr.w r1, [pc, 0x4e4] |
0x00003990 str r0, [sp, 8] | var_8h_2 = r0;
0x00003992 mov r0, r8 | r0 = r8;
0x00003994 add r1, pc | r1 = 0x780c;
0x00003996 blx 0x1f5c | r0 = fcn_00001f5c ();
0x0000399a cmp r0, 0 |
| if (r0 != 0) {
0x0000399c bne.w 0x3b62 | goto label_47;
| }
0x000039a0 bl 0x7e08 | fcn_00007e08 ();
0x000039a4 ldr r0, [sp, 8] | r0 = var_8h_2;
| label_10:
0x000039a6 cmp r0, 0 |
| if (r0 == 0) {
0x000039a8 beq.w 0x3ae2 | goto label_44;
| }
0x000039ac ldr.w r3, [pc, 0x4c8] |
0x000039b0 movs r1, 0x10 | r1 = 0x10;
0x000039b2 ldr.w r2, [pc, 0x4c8] |
0x000039b6 str r0, [sp] | *(sp) = r0;
0x000039b8 movs r0, 0 | r0 = 0;
0x000039ba add r3, pc | r3 = 0x7836;
0x000039bc add r2, pc | r2 = 0x783e;
0x000039be blx 0x1b00 | fcn_00001b00 ();
0x000039c2 blx 0x19c4 | g_dbus_error_quark ();
0x000039c6 ldr.w r3, [pc, 0x4b8] |
0x000039ca mov r1, r0 | r1 = r0;
0x000039cc ldr r4, [sp, 8] | r4 = var_8h_2;
0x000039ce mov r0, sb | r0 = sb;
0x000039d0 add r3, pc | r3 = 0x7856;
0x000039d2 b 0x394c |
| } while (1);
| label_40:
0x000039d4 ldr.w r3, [pc, 0x4ac] |
0x000039d8 mov.w r1, 0x100 | r1 = 0x100;
0x000039dc ldr.w r2, [pc, 0x4a8] |
0x000039e0 movs r0, 0 | r0 = 0;
0x000039e2 str r5, [sp] | *(sp) = r5;
0x000039e4 add r3, pc | r3 = 0x786c;
0x000039e6 add r2, pc | r2 = 0x7872;
0x000039e8 blx 0x1b00 | fcn_00001b00 ();
0x000039ec blx 0x19c4 | g_dbus_error_quark ();
0x000039f0 ldr.w r2, [pc, 0x498] |
0x000039f4 mov r1, r0 | r1 = r0;
0x000039f6 ldr.w r3, [pc, 0x454] | r3 = *(0x3e4e);
0x000039fa add r2, pc | r2 = 0x788a;
0x000039fc ldr r3, [r2, r3] | r3 = *(0x788a);
0x000039fe ldr r2, [r3] | r2 = *(0x788a);
0x00003a00 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00003a02 eors r2, r3 | r2 ^= r3;
0x00003a04 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003a08 bne.w 0x3e2e | goto label_45;
| }
0x00003a0c ldr.w r3, [pc, 0x480] |
0x00003a10 movs r2, 0x29 | r2 = 0x29;
0x00003a12 add r3, pc | r3 = 0x78a6;
| label_11:
0x00003a14 mov r0, sb | r0 = sb;
0x00003a16 add sp, 0x18 |
0x00003a18 pop.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x00003a1c b.w 0x1d9c | void (*0x1d9c)() ();
| label_39:
0x00003a20 ldr.w r3, [pc, 0x470] |
0x00003a24 movw r2, 0x187 | r2 = 0x187;
0x00003a28 ldr.w r4, [pc, 0x46c] |
0x00003a2c ldr.w r1, [pc, 0x46c] |
0x00003a30 add r3, pc | r3 = 0x78c8;
0x00003a32 add r4, pc | r4 = 0x78ce;
0x00003a34 adds r3, 0x74 | r3 += 0x74;
0x00003a36 add r1, pc | r1 = 0x78d6;
0x00003a38 str r4, [sp] | *(sp) = r4;
0x00003a3a blx 0x1ed8 | fcn_00001ed8 ();
| label_46:
0x00003a3e ldr.w r1, [pc, 0x460] |
0x00003a42 mov r0, r4 | r0 = r4;
0x00003a44 add r1, pc | r1 = 0x78ea;
0x00003a46 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003a4a mov r5, r0 | r5 = r0;
0x00003a4c cmp r0, 0 |
| if (r0 != 0) {
0x00003a4e bne.w 0x3b84 | goto label_48;
| }
0x00003a52 mov r1, r4 | r1 = r4;
0x00003a54 mov r0, r7 | r0 = r7;
0x00003a56 mov r2, r8 | r2 = r8;
0x00003a58 bl 0x28e8 | r0 = fcn_000028e8 (r0, r1, r2, r3);
0x00003a5c cmp r0, 0 |
| if (r0 == 0) {
0x00003a5e beq.w 0x3bcc | goto label_49;
| }
0x00003a62 ldr.w r1, [pc, 0x440] |
0x00003a66 mov r0, r8 | r0 = r8;
0x00003a68 str r5, [sp, 0xc] | var_ch = r5;
0x00003a6a add r1, pc | r1 = 0x7914;
0x00003a6c blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003a70 cmp r0, 0 |
| if (r0 != 0) {
0x00003a72 bne.w 0x3c3a | goto label_50;
| }
0x00003a76 bl 0x74e4 | fcn_000074e4 ();
| label_12:
0x00003a7a ldr r0, [sp, 0xc] | r0 = var_ch;
| if (r0 != 0) {
0x00003a7c cbz r0, 0x3ae2 |
0x00003a7e ldr.w r3, [pc, 0x428] |
0x00003a82 movs r1, 0x10 | r1 = 0x10;
0x00003a84 ldr.w r2, [pc, 0x424] |
0x00003a88 str r0, [sp] | *(sp) = r0;
0x00003a8a movs r0, 0 | r0 = 0;
0x00003a8c add r3, pc | r3 = 0x793a;
0x00003a8e add r2, pc | r2 = 0x793e;
0x00003a90 blx 0x1b00 | fcn_00001b00 ();
0x00003a94 blx 0x19c4 | g_dbus_error_quark ();
0x00003a98 ldr r4, [sp, 0xc] | r4 = var_ch;
0x00003a9a mov r1, r0 | r1 = r0;
0x00003a9c ldr.w r3, [pc, 0x410] |
0x00003aa0 mov r0, sb | r0 = sb;
0x00003aa2 movs r2, 0x10 | r2 = 0x10;
0x00003aa4 str r4, [sp] | *(sp) = r4;
0x00003aa6 add r3, pc | r3 = 0x795a;
0x00003aa8 blx 0x1da0 | fcn_00001da0 ();
0x00003aac ldr r0, [sp, 0xc] | r0 = var_ch;
0x00003aae blx 0x1d44 | fcn_00001d44 ();
0x00003ab2 b 0x395a | goto label_8;
| label_42:
0x00003ab4 blx 0x19c4 | g_dbus_error_quark ();
0x00003ab8 ldr r2, [pc, 0x3f8] |
0x00003aba mov r1, r0 | r1 = r0;
0x00003abc ldr r3, [pc, 0x38c] | r3 = *(0x3e4c);
0x00003abe add r2, pc | r2 = 0x7976;
0x00003ac0 ldr r3, [r2, r3] | r3 = *(0x7976);
0x00003ac2 ldr r2, [r3] | r2 = *(0x7976);
0x00003ac4 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00003ac6 eors r2, r3 | r2 ^= r3;
0x00003ac8 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003acc bne.w 0x3e2e | goto label_45;
| }
0x00003ad0 ldr r3, [pc, 0x3e4] |
0x00003ad2 movs r2, 9 | r2 = 9;
0x00003ad4 mov r0, sb | r0 = sb;
0x00003ad6 add r3, pc | r3 = 0x7992;
0x00003ad8 add sp, 0x18 |
0x00003ada pop.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x00003ade b.w 0x1d9c | void (*0x1d9c)() ();
| }
| label_44:
0x00003ae2 mov r1, r0 | r1 = r0;
0x00003ae4 mov r0, sb | r0 = sb;
0x00003ae6 blx 0x1d6c | g_dbus_method_invocation_return_error ();
0x00003aea b 0x395a | goto label_8;
| label_43:
0x00003aec ldr r1, [pc, 0x3cc] |
0x00003aee mov r0, r8 | r0 = r8;
0x00003af0 add r1, pc | r1 = 0x79b0;
0x00003af2 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003af6 cmp r0, 0 |
| if (r0 == 0) {
0x00003af8 beq 0x3bbc | goto label_51;
| }
0x00003afa ldr r1, [pc, 0x3c4] |
0x00003afc mov r0, r8 | r0 = r8;
0x00003afe add r1, pc | r1 = 0x79c4;
0x00003b00 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003b04 mov r6, r0 | r6 = r0;
0x00003b06 cmp r0, 0 |
| if (r0 != 0) {
0x00003b08 bne 0x3bf0 | goto label_52;
| }
0x00003b0a ldr r1, [pc, 0x3b8] |
0x00003b0c movs r2, 1 | r2 = 1;
0x00003b0e mov r0, sl | r0 = sl;
0x00003b10 add r1, pc | r1 = 0x79da;
0x00003b12 blx 0x1b68 | r0 = g_dbus_connection_new_for_address ();
0x00003b16 cmp r0, 0 |
| if (r0 == 0) {
0x00003b18 beq.w 0x3cdc | goto label_53;
| }
0x00003b1c ldr r2, [pc, 0x3a8] |
0x00003b1e add r3, sp, 0xc | r3 += var_ch;
0x00003b20 ldr r7, [pc, 0x3a8] |
0x00003b22 mov r0, sl | r0 = sl;
0x00003b24 mov r1, r6 | r1 = r6;
0x00003b26 str r6, [sp, 0xc] | var_ch = r6;
0x00003b28 add r2, pc | r2 = 0x79f4;
0x00003b2a mov r4, r6 | r4 = r6;
0x00003b2c blx 0x1b18 | fcn_00001b18 ();
0x00003b30 add r7, pc | r7 = 0x7a00;
0x00003b32 add r5, sp, 0x10 | r5 += var_10h;
0x00003b34 str r6, [sp, 0x10] | var_10h = r6;
0x00003b36 b 0x3b42 |
| while (r0 != 0) {
0x00003b38 mov r0, r4 | r0 = r4;
0x00003b3a ldr r1, [sp, 0x10] | r1 = var_10h;
0x00003b3c blx 0x1b44 | r0 = g_variant_new_int32 ();
0x00003b40 mov r4, r0 | r4 = r0;
0x00003b42 ldr r0, [sp, 0xc] | r0 = var_ch;
0x00003b44 mov r2, r5 | r2 = r5;
0x00003b46 mov r1, r7 | r1 = r7;
0x00003b48 blx 0x1ca0 | r0 = net_device_switching_get_active_devices ();
0x00003b4c cmp r0, 0 |
0x00003b4e bne 0x3b38 |
| }
0x00003b50 ldr r0, [sp, 0xc] | r0 = var_ch;
0x00003b52 blx 0x19dc | g_variant_iter_free ();
0x00003b56 add r1, sp, 8 | r1 += var_8h_2;
0x00003b58 mov r0, r4 | r0 = r4;
0x00003b5a bl 0x7784 | fcn_00007784 (r0, r1);
0x00003b5e ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003b60 b 0x3920 | goto label_9;
| label_47:
0x00003b62 ldr r1, [pc, 0x36c] |
0x00003b64 mov r0, r8 | r0 = r8;
0x00003b66 add r1, pc | r1 = 0x7a3c;
0x00003b68 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x00003b6c cbz r0, 0x3bc4 |
0x00003b6e ldr r1, [pc, 0x364] |
0x00003b70 mov r0, r8 | r0 = r8;
0x00003b72 add r1, pc | r1 = 0x7a4c;
0x00003b74 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003b78 cmp r0, 0 |
| if (r0 != 0) {
0x00003b7a bne 0x3c4c | goto label_54;
| }
0x00003b7c bl 0x75f4 | fcn_000075f4 ();
0x00003b80 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003b82 b 0x39a6 | goto label_10;
| label_48:
0x00003b84 ldr r3, [pc, 0x350] |
0x00003b86 mov.w r1, 0x100 | r1 = 0x100;
0x00003b8a ldr r2, [pc, 0x350] |
0x00003b8c mov r0, r6 | r0 = r6;
0x00003b8e str r4, [sp] | *(sp) = r4;
0x00003b90 add r3, pc | r3 = 0x7a6c;
0x00003b92 add r2, pc | r2 = 0x7a74;
0x00003b94 blx 0x1b00 | fcn_00001b00 ();
0x00003b98 blx 0x19c4 | g_dbus_error_quark ();
0x00003b9c ldr r2, [pc, 0x340] |
0x00003b9e mov r1, r0 | r1 = r0;
0x00003ba0 ldr r3, [pc, 0x2a8] | r3 = *(0x3e4c);
0x00003ba2 add r2, pc | r2 = 0x7a86;
0x00003ba4 ldr r3, [r2, r3] | r3 = *(0x7a86);
0x00003ba6 ldr r2, [r3] | r2 = *(0x7a86);
0x00003ba8 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00003baa eors r2, r3 | r2 ^= r3;
0x00003bac mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003bb0 bne.w 0x3e2e | goto label_45;
| }
0x00003bb4 ldr r3, [pc, 0x32c] |
0x00003bb6 movs r2, 0x2a | r2 = 0x2a;
0x00003bb8 add r3, pc | r3 = 0x7aa0;
0x00003bba b 0x3a14 | goto label_11;
| label_51:
0x00003bbc bl 0x7438 | fcn_00007438 ();
0x00003bc0 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003bc2 b 0x3920 | goto label_9;
| }
0x00003bc4 bl 0x7e88 | fcn_00007e88 ();
0x00003bc8 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003bca b 0x39a6 | goto label_10;
| label_49:
0x00003bcc blx 0x19c4 | g_dbus_error_quark ();
0x00003bd0 ldr r2, [pc, 0x314] |
0x00003bd2 mov r1, r0 | r1 = r0;
0x00003bd4 ldr r3, [pc, 0x274] | r3 = *(0x3e4c);
0x00003bd6 add r2, pc | r2 = 0x7ac2;
0x00003bd8 ldr r3, [r2, r3] | r3 = *(0x7ac2);
0x00003bda ldr r2, [r3] | r2 = *(0x7ac2);
0x00003bdc ldr r3, [sp, 0x14] | r3 = var_14h;
0x00003bde eors r2, r3 | r2 ^= r3;
0x00003be0 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00003be4 bne.w 0x3e2e | goto label_45;
| }
0x00003be8 ldr r3, [pc, 0x300] |
0x00003bea movs r2, 9 | r2 = 9;
0x00003bec add r3, pc | r3 = 0x7adc;
0x00003bee b 0x3a14 | goto label_11;
| label_52:
0x00003bf0 ldr r1, [pc, 0x2fc] |
0x00003bf2 mov r0, r8 | r0 = r8;
0x00003bf4 add r1, pc | r1 = 0x7ae8;
0x00003bf6 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003bfa mov r4, r0 | r4 = r0;
0x00003bfc cmp r0, 0 |
| if (r0 != 0) {
0x00003bfe bne 0x3cf0 | goto label_55;
| }
0x00003c00 ldr r1, [pc, 0x2f0] |
0x00003c02 movs r2, 1 | r2 = 1;
0x00003c04 mov r0, sl | r0 = sl;
0x00003c06 add r1, pc | r1 = 0x7afe;
0x00003c08 blx 0x1b68 | r0 = g_dbus_connection_new_for_address ();
0x00003c0c cmp r0, 0 |
| if (r0 == 0) {
0x00003c0e beq.w 0x3d2c | goto label_56;
| }
0x00003c12 ldr r2, [pc, 0x2e4] |
0x00003c14 mov r0, sl | r0 = sl;
0x00003c16 add r3, sp, 0x10 | r3 += var_10h;
0x00003c18 mov r1, r4 | r1 = r4;
0x00003c1a add r2, pc | r2 = 0x7b18;
0x00003c1c blx 0x1b18 | fcn_00001b18 ();
0x00003c20 ldr r0, [sp, 0x10] | r0 = var_10h;
0x00003c22 cmp r0, 0 |
| if (r0 == 0) {
0x00003c24 beq.w 0x3d40 | goto label_57;
| }
0x00003c28 cmp r0, 1 |
| if (r0 == 1) {
0x00003c2a beq.w 0x3d40 | goto label_57;
| }
0x00003c2e ldr r0, [pc, 0x2cc] |
0x00003c30 add r0, pc | r0 = 0x7b32;
0x00003c32 blx 0x1be0 | g_strdup_printf ()
0x00003c36 str r0, [sp, 8] | var_8h_2 = r0;
0x00003c38 b 0x3920 | goto label_9;
| label_50:
0x00003c3a ldr r1, [pc, 0x2c4] |
0x00003c3c mov r0, r8 | r0 = r8;
0x00003c3e add r1, pc | r1 = 0x7b44;
0x00003c40 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 == 0) {
0x00003c44 cbnz r0, 0x3c60 |
0x00003c46 bl 0x7570 | fcn_00007570 ();
0x00003c4a b 0x3a7a | goto label_12;
| label_54:
0x00003c4c ldr r1, [pc, 0x2b4] |
0x00003c4e mov r0, r8 | r0 = r8;
0x00003c50 add r1, pc | r1 = 0x7b58;
0x00003c52 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x00003c56 cbnz r0, 0x3c74 | goto label_58;
| }
0x00003c58 bl 0x7674 | fcn_00007674 ();
0x00003c5c ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003c5e b 0x39a6 | goto label_10;
| }
0x00003c60 ldr r1, [pc, 0x2a4] |
0x00003c62 mov r0, r8 | r0 = r8;
0x00003c64 add r1, pc | r1 = 0x7b70;
0x00003c66 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003c6a cmp r0, 0 |
| if (r0 != 0) {
0x00003c6c bne 0x3d1a | goto label_59;
| }
0x00003c6e bl 0x7bcc | fcn_00007bcc ();
0x00003c72 b 0x3a7a | goto label_12;
| label_58:
0x00003c74 ldr r1, [pc, 0x294] |
0x00003c76 mov r0, r8 | r0 = r8;
0x00003c78 add r1, pc | r1 = 0x7b88;
0x00003c7a blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003c7e cmp r0, 0 |
| if (r0 != 0) {
0x00003c80 bne 0x3d4a | goto label_60;
| }
0x00003c82 ldr r1, [pc, 0x28c] |
0x00003c84 movs r2, 1 | r2 = 1;
0x00003c86 mov r0, sl | r0 = sl;
0x00003c88 add r1, pc | r1 = 0x7b9e;
0x00003c8a blx 0x1b68 | r0 = g_dbus_connection_new_for_address ();
0x00003c8e cmp r0, 0 |
| if (r0 == 0) {
0x00003c90 beq.w 0x3da8 | goto label_61;
| }
0x00003c94 ldr r2, [pc, 0x27c] |
0x00003c96 movs r7, 0 | r7 = 0;
0x00003c98 ldr r6, [pc, 0x27c] |
0x00003c9a add r3, sp, 0xc | r3 += var_ch;
0x00003c9c mov r0, sl | r0 = sl;
0x00003c9e mov r1, r7 | r1 = r7;
0x00003ca0 add r2, pc | r2 = 0x7bb8;
0x00003ca2 str r7, [sp, 0xc] | var_ch = r7;
0x00003ca4 add r6, pc | r6 = 0x7bc0;
0x00003ca6 mov r4, r7 | r4 = r7;
0x00003ca8 blx 0x1b18 | fcn_00001b18 ();
0x00003cac add r5, sp, 0x10 | r5 += var_10h;
0x00003cae str r7, [sp, 0x10] | var_10h = r7;
0x00003cb0 b 0x3cbc |
| while (r0 != 0) {
0x00003cb2 mov r0, r4 | r0 = r4;
0x00003cb4 ldr r1, [sp, 0x10] | r1 = var_10h;
0x00003cb6 blx 0x1b44 | r0 = g_variant_new_int32 ();
0x00003cba mov r4, r0 | r4 = r0;
0x00003cbc ldr r0, [sp, 0xc] | r0 = var_ch;
0x00003cbe mov r2, r5 | r2 = r5;
0x00003cc0 mov r1, r6 | r1 = r6;
0x00003cc2 blx 0x1ca0 | r0 = net_device_switching_get_active_devices ();
0x00003cc6 cmp r0, 0 |
0x00003cc8 bne 0x3cb2 |
| }
0x00003cca ldr r0, [sp, 0xc] | r0 = var_ch;
0x00003ccc blx 0x19dc | g_variant_iter_free ();
0x00003cd0 add r1, sp, 8 | r1 += var_8h_2;
0x00003cd2 mov r0, r4 | r0 = r4;
0x00003cd4 bl 0x7950 | fcn_00007950 (r0, r1);
0x00003cd8 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003cda b 0x39a6 | goto label_10;
| label_53:
0x00003cdc mov r0, sl | r0 = sl;
0x00003cde blx 0x1aac | r0 = fcn_00001aac ();
0x00003ce2 mov r1, r0 | r1 = r0;
0x00003ce4 ldr r0, [pc, 0x234] |
0x00003ce6 add r0, pc | r0 = 0x7c06;
0x00003ce8 blx 0x1c04 | g_list_remove ();
0x00003cec str r0, [sp, 8] | var_8h_2 = r0;
0x00003cee b 0x3920 | goto label_9;
| label_55:
0x00003cf0 ldr r3, [pc, 0x22c] |
0x00003cf2 mov r0, r5 | r0 = r5;
0x00003cf4 ldr r2, [pc, 0x22c] |
0x00003cf6 mov.w r1, 0x100 | r1 = 0x100;
0x00003cfa str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x00003cfe add r3, pc | r3 = 0x7c22;
0x00003d00 add r2, pc | r2 = 0x7c28;
0x00003d02 blx 0x1b00 | fcn_00001b00 ();
0x00003d06 blx 0x19c4 | g_dbus_error_quark ();
0x00003d0a ldr r3, [pc, 0x21c] |
0x00003d0c mov r1, r0 | r1 = r0;
0x00003d0e movs r2, 0x13 | r2 = 0x13;
0x00003d10 mov r0, sb | r0 = sb;
0x00003d12 add r3, pc | r3 = 0x7c40;
0x00003d14 blx 0x1da0 | fcn_00001da0 ();
0x00003d16 strex r6, lr, [r4, 0x7c] | __asm ("strex r6, lr, [r4, 0x7c]");
| label_59:
0x00003d1a ldr r1, [pc, 0x210] |
0x00003d1c mov r0, r8 | r0 = r8;
0x00003d1e add r1, pc | r1 = 0x7c50;
0x00003d20 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 == 0) {
0x00003d24 cbnz r0, 0x3d74 |
0x00003d26 bl 0x7c48 | fcn_00007c48 ();
0x00003d2a b 0x3a7a | goto label_12;
| label_56:
0x00003d2c mov r0, sl | r0 = sl;
0x00003d2e blx 0x1aac | r0 = fcn_00001aac ();
0x00003d32 mov r1, r0 | r1 = r0;
0x00003d34 ldr r0, [pc, 0x1f8] |
0x00003d36 add r0, pc | r0 = 0x7c6a;
0x00003d38 blx 0x1c04 | g_list_remove ();
0x00003d3c str r0, [sp, 8] | var_8h_2 = r0;
0x00003d3e b 0x3920 | goto label_9;
| label_57:
0x00003d40 add r1, sp, 8 | r1 += var_8h_2;
0x00003d42 bl 0x7b00 | fcn_00007b00 (r0, r1);
0x00003d46 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00003d48 b 0x3920 | goto label_9;
| label_60:
0x00003d4a ldr r3, [pc, 0x1e8] |
0x00003d4c mov r0, r5 | r0 = r5;
0x00003d4e ldr r2, [pc, 0x1e8] |
0x00003d50 mov.w r1, 0x100 | r1 = 0x100;
0x00003d54 str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x00003d58 add r3, pc | r3 = 0x7c92;
0x00003d5a add r2, pc | r2 = 0x7c98;
0x00003d5c blx 0x1b00 | fcn_00001b00 ();
0x00003d60 blx 0x19c4 | g_dbus_error_quark ();
0x00003d64 ldr r3, [pc, 0x1d4] |
0x00003d66 mov r1, r0 | r1 = r0;
0x00003d68 movs r2, 0x13 | r2 = 0x13;
0x00003d6a mov r0, sb | r0 = sb;
0x00003d6c add r3, pc | r3 = 0x7cac;
0x00003d6e blx 0x1da0 | fcn_00001da0 ();
0x00003d72 b 0x395a | goto label_8;
| }
0x00003d74 ldr r1, [pc, 0x1c8] |
0x00003d76 mov r0, r8 | r0 = r8;
0x00003d78 add r1, pc | r1 = 0x7cbc;
0x00003d7a blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003d7e mov r4, r0 | r4 = r0;
| if (r0 == 0) {
0x00003d80 cbnz r0, 0x3dbc |
0x00003d82 ldr r1, [pc, 0x1c0] |
0x00003d84 movs r2, 1 | r2 = 1;
0x00003d86 mov r0, sl | r0 = sl;
0x00003d88 add r1, pc | r1 = 0x7cd2;
0x00003d8a blx 0x1b68 | r0 = g_dbus_connection_new_for_address ();
| if (r0 == 0) {
0x00003d8e cbz r0, 0x3df0 | goto label_62;
| }
0x00003d90 ldr r2, [pc, 0x1b4] |
0x00003d92 mov r1, r4 | r1 = r4;
0x00003d94 mov r0, sl | r0 = sl;
0x00003d96 add r3, sp, 0x10 | r3 += var_10h;
0x00003d98 add r2, pc | r2 = 0x7ce4;
0x00003d9a blx 0x1b18 | fcn_00001b18 ();
0x00003d9e ldr r0, [sp, 0x10] | r0 = var_10h;
0x00003da0 add r1, sp, 0xc | r1 += var_ch;
0x00003da2 bl 0x7cc0 | fcn_00007cc0 (r0, r1);
0x00003da6 b 0x3a7a | goto label_12;
| label_61:
0x00003da8 mov r0, sl | r0 = sl;
0x00003daa blx 0x1aac | r0 = fcn_00001aac ();
0x00003dae mov r1, r0 | r1 = r0;
0x00003db0 ldr r0, [pc, 0x198] |
0x00003db2 add r0, pc | r0 = 0x7d02;
0x00003db4 blx 0x1c04 | g_list_remove ();
0x00003db8 str r0, [sp, 8] | var_8h_2 = r0;
0x00003dba b 0x39a6 | goto label_10;
| }
0x00003dbc ldr r1, [pc, 0x190] |
0x00003dbe mov r0, r8 | r0 = r8;
0x00003dc0 add r1, pc | r1 = 0x7d14;
0x00003dc2 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00003dc6 mov r4, r0 | r4 = r0;
| if (r0 == 0) {
0x00003dc8 cbnz r0, 0x3e04 |
0x00003dca ldr r1, [pc, 0x188] |
0x00003dcc movs r2, 1 | r2 = 1;
0x00003dce mov r0, sl | r0 = sl;
0x00003dd0 add r1, pc | r1 = 0x7d2a;
0x00003dd2 blx 0x1b68 | r0 = g_dbus_connection_new_for_address ();
| if (r0 == 0) {
0x00003dd6 cbz r0, 0x3e32 | goto label_63;
| }
0x00003dd8 ldr r2, [pc, 0x17c] |
0x00003dda mov r1, r4 | r1 = r4;
0x00003ddc mov r0, sl | r0 = sl;
0x00003dde add r3, sp, 0x10 | r3 += var_10h;
0x00003de0 add r2, pc | r2 = 0x7d3c;
0x00003de2 blx 0x1b18 | fcn_00001b18 ();
0x00003de6 ldr r0, [sp, 0x10] | r0 = var_10h;
0x00003de8 add r1, sp, 0xc | r1 += var_ch;
0x00003dea bl 0x7d64 | fcn_00007d64 (r0, r1);
0x00003dee b 0x3a7a | goto label_12;
| label_62:
0x00003df0 mov r0, sl | r0 = sl;
0x00003df2 blx 0x1aac | r0 = fcn_00001aac ();
0x00003df6 mov r1, r0 | r1 = r0;
0x00003df8 ldr r0, [pc, 0x160] |
0x00003dfa add r0, pc | r0 = 0x7d5a;
0x00003dfc blx 0x1c04 | g_list_remove ();
0x00003e00 str r0, [sp, 0xc] | var_ch = r0;
0x00003e02 b 0x3a7a | goto label_12;
| }
0x00003e04 ldr r3, [pc, 0x158] |
0x00003e06 mov.w r1, 0x100 | r1 = 0x100;
0x00003e0a ldr r2, [pc, 0x158] |
0x00003e0c movs r0, 0 | r0 = 0;
0x00003e0e str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x00003e12 add r3, pc | r3 = 0x7d76;
0x00003e14 add r2, pc | r2 = 0x7d7e;
0x00003e16 blx 0x1b00 | fcn_00001b00 ();
0x00003e1a blx 0x19c4 | g_dbus_error_quark ();
0x00003e1e ldr r3, [pc, 0x148] |
0x00003e20 mov r1, r0 | r1 = r0;
0x00003e22 movs r2, 0x13 | r2 = 0x13;
0x00003e24 mov r0, sb | r0 = sb;
0x00003e26 add r3, pc | r3 = 0x7d94;
0x00003e28 blx 0x1da0 | fcn_00001da0 ();
0x00003e2c b 0x395a | goto label_8;
| label_45:
0x00003e2e blx 0x1d1c | fcn_00001d1c ();
| label_63:
0x00003e32 mov r0, sl | r0 = sl;
0x00003e34 blx 0x1aac | r0 = fcn_00001aac ();
0x00003e38 mov r1, r0 | r1 = r0;
0x00003e3a ldr r0, [pc, 0x130] |
0x00003e3c add r0, pc | r0 = 0x7dae;
0x00003e3e blx 0x1c04 | g_list_remove ();
0x00003e42 str r0, [sp, 0xc] | var_ch = r0;
0x00003e44 b 0x3a7a | goto label_12;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x401c */
| #include <stdint.h>
|
; (fcn) fcn.0000401c () | void fcn_0000401c (int16_t arg_58h, int16_t arg_80h, int16_t arg_d0h, int16_t arg_178h, int16_t arg_198h, int16_t arg_190h, int16_t arg_1b8h, int16_t arg_300h, int16_t arg_338h, int16_t arg_368h, int16_t arg_3a0h, int16_t arg_3f0h, int16_t arg_3e8h) {
| int16_t var_4h_2;
| int16_t var_8h_2;
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
0x0000401c push.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x00004020 movs r0, 0 | r0 = 0;
0x00004022 ldr r4, [pc, 0x1f0] |
0x00004024 sub sp, 0x10 |
0x00004026 ldr r2, [pc, 0x1f0] |
0x00004028 ldr r3, [pc, 0x1f0] | r3 = *(0x421c);
0x0000402a add r4, pc | r4 = 0x8244;
0x0000402c ldr r6, [r4] | r6 = *(0x8244);
0x0000402e add r2, pc | r2 = 0x824c;
0x00004030 ldr r3, [r2, r3] |
0x00004032 ldr r3, [r3] | r3 = *(0x824c);
0x00004034 str r3, [sp, 0xc] | var_ch = r3;
0x00004036 mov.w r3, 0 | r3 = 0;
0x0000403a str r0, [sp, 8] | var_8h = r0;
| if (r6 != 0) {
0x0000403c cbz r6, 0x4056 |
0x0000403e ldr r3, [pc, 0x1e0] |
0x00004040 mov.w r2, 0x348 | r2 = 0x348;
0x00004044 ldr r4, [pc, 0x1dc] |
0x00004046 ldr r1, [pc, 0x1e0] |
0x00004048 add r3, pc | r3 = 0x826e;
0x0000404a add r4, pc | r4 = 0x8272;
0x0000404c adds r3, 0x8c | r3 += 0x8c;
0x0000404e add r1, pc | r1 = 0x827c;
0x00004050 str r4, [sp] | *(sp) = r4;
0x00004052 blx 0x1ed8 | fcn_00001ed8 ();
| }
0x00004056 ldr.w r8, [pc, 0x1d4] |
0x0000405a movs r0, 0xc | r0 = 0xc;
0x0000405c add r7, sp, 8 | r7 += var_8h;
0x0000405e blx 0x1ea8 | fcn_00001ea8 ();
0x00004062 add r8, pc | r8 = 0x8294;
0x00004064 str r0, [r4] | *(r4) = r0;
0x00004066 mov r1, r7 | r1 = r7;
0x00004068 mov r0, r8 | r0 = r8;
0x0000406a blx 0x1e6c | r0 = fcn_00001e6c ();
0x0000406e mov r5, r0 | r5 = r0;
0x00004070 cmp r0, 0 |
| if (r0 == 0) {
0x00004072 beq.w 0x41ba | goto label_8;
| }
0x00004076 ldr.w sl, [r4] | sl = *(r4);
0x0000407a mov r1, r0 | r1 = r0;
0x0000407c ldr.w sb, [pc, 0x1b0] |
0x00004080 ldr.w r8, [pc, 0x1b0] |
0x00004084 ldr.w r0, [sl] | r0 = *(sl);
0x00004088 blx 0x1b44 | g_variant_new_int32 ();
0x0000408c ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x0000408e add sb, pc | sb = 0x82c2;
0x00004090 add r8, pc | r8 = 0x82c8;
0x00004092 str.w r0, [sl] | __asm ("str.w r0, [sl]");
0x00004096 mov r2, sb | r2 = sb;
0x00004098 mov r0, r8 | r0 = r8;
0x0000409a ldr r1, [r3] | r1 = *(r3);
0x0000409c strd r6, r6, [sp] | __asm ("strd r6, r6, [sp]");
0x000040a0 ldr r3, [r4] | r3 = *(r4);
0x000040a2 bl 0x27e8 | r0 = fcn_000027e8 (r0, r1, r2, r3, r4, r5);
0x000040a6 mov r1, r0 | r1 = r0;
0x000040a8 cmp r0, 0 |
| if (r0 != 0) {
0x000040aa beq 0x4172 |
0x000040ac ldr r5, [r4] | r5 = *(r4);
0x000040ae ldr.w sl, [pc, 0x188] |
0x000040b2 ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x000040b4 add sl, pc | sl = 0x82f2;
0x000040b6 blx 0x1b44 | g_variant_new_int32 ();
0x000040ba mov r1, r7 | r1 = r7;
0x000040bc str r0, [r5, 4] | *((r5 + 4)) = r0;
0x000040be mov r0, sl | r0 = sl;
0x000040c0 blx 0x1e6c | r0 = fcn_00001e6c ();
0x000040c4 mov r5, r0 | r5 = r0;
0x000040c6 cmp r0, 0 |
| if (r0 == 0) {
0x000040c8 beq.w 0x41e0 | goto label_9;
| }
0x000040cc ldr.w sl, [r4] | sl = *(r4);
0x000040d0 mov r1, r0 | r1 = r0;
0x000040d2 ldr.w r0, [sl] | r0 = *(sl);
0x000040d6 blx 0x1b44 | g_variant_new_int32 ();
0x000040da ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x000040dc mov r2, sb | r2 = sb;
0x000040de str.w r0, [sl] | __asm ("str.w r0, [sl]");
0x000040e2 mov r0, r8 | r0 = r8;
0x000040e4 ldr r1, [r3] | r1 = *(r3);
0x000040e6 strd r6, r6, [sp] | __asm ("strd r6, r6, [sp]");
0x000040ea ldr r3, [r4] | r3 = *(r4);
0x000040ec bl 0x27e8 | r0 = fcn_000027e8 (r0, r1, r2, r3, r4, r5);
0x000040f0 mov r1, r0 | r1 = r0;
0x000040f2 cmp r0, 0 |
| if (r0 == 0) {
0x000040f4 beq 0x4172 | goto label_10;
| }
0x000040f6 ldr r5, [r4] | r5 = *(r4);
0x000040f8 ldr.w sl, [pc, 0x140] |
0x000040fc ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x000040fe add sl, pc | sl = 0x833e;
0x00004100 blx 0x1b44 | g_variant_new_int32 ();
0x00004104 mov r1, r7 | r1 = r7;
0x00004106 str r0, [r5, 4] | *((r5 + 4)) = r0;
0x00004108 mov r0, sl | r0 = sl;
0x0000410a blx 0x1e6c | r0 = fcn_00001e6c ();
0x0000410e mov r5, r0 | r5 = r0;
0x00004110 cmp r0, 0 |
| if (r0 == 0) {
0x00004112 beq 0x41f2 | goto label_11;
| }
0x00004114 ldr r7, [r4] | r7 = *(r4);
0x00004116 mov r1, r0 | r1 = r0;
0x00004118 ldr r0, [r7] | r0 = *(r7);
0x0000411a blx 0x1b44 | g_variant_new_int32 ();
0x0000411e ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x00004120 mov r2, sb | r2 = sb;
0x00004122 str r0, [r7] | *(r7) = r0;
0x00004124 mov r0, r8 | r0 = r8;
0x00004126 ldr r1, [r3] | r1 = *(r3);
0x00004128 strd r6, r6, [sp] | __asm ("strd r6, r6, [sp]");
0x0000412c ldr r3, [r4] | r3 = *(r4);
0x0000412e bl 0x27e8 | r0 = fcn_000027e8 (r0, r1, r2, r3, r4, r5);
0x00004132 mov r1, r0 | r1 = r0;
0x00004134 cmp r0, 0 |
| if (r0 == 0) {
0x00004136 beq 0x41a4 | goto label_12;
| }
0x00004138 ldr r4, [r4] | r4 = *(r4);
0x0000413a ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x0000413c blx 0x1b44 | g_variant_new_int32 ();
0x00004140 ldr r3, [pc, 0xfc] |
0x00004142 str r0, [r4, 4] | *((r4 + 4)) = r0;
0x00004144 ldr r2, [pc, 0xfc] |
0x00004146 ldr r1, [pc, 0x100] |
0x00004148 add r3, pc | r3 = 0x838c;
0x0000414a ldr r0, [pc, 0x100] |
0x0000414c add r2, pc | r2 = 0x8394;
0x0000414e str r6, [sp] | *(sp) = r6;
0x00004150 add r1, pc | r1 = 0x839e;
0x00004152 add r0, pc | r0 = 0x83a4;
0x00004154 bl 0x2b38 | r0 = fcn_00002b38 (r0, r1, r2, r3);
0x00004158 mov r4, r0 | r4 = r0;
0x0000415a cmp r0, 0 |
| if (r0 == 0) {
0x0000415c beq 0x41fe | goto label_13;
| }
| label_2:
0x0000415e ldr r3, [pc, 0xf0] |
0x00004160 ldr r0, [pc, 0xf0] |
0x00004162 add r3, pc |
0x00004164 ldr r3, [r3] | r3 = *(0x83b8);
0x00004166 add r0, pc | r0 = 0x83be;
0x00004168 str r4, [r3, 8] | *((r3 + 8)) = r4;
0x0000416a bl 0x6eb8 | fcn_00006eb8 (r0);
0x0000416e movs r0, 1 | r0 = 1;
0x00004170 b 0x418a | goto label_14;
| }
| label_10:
0x00004172 ldr r3, [pc, 0xe4] |
0x00004174 mov.w r1, 0x100 | r1 = 0x100;
0x00004178 ldr r2, [pc, 0xe0] |
0x0000417a movs r0, 0 | r0 = 0;
0x0000417c add r3, pc | r3 = 0x83da;
0x0000417e add r2, pc | r2 = 0x83de;
0x00004180 blx 0x1b00 | fcn_00001b00 ();
0x00004184 bl 0x3f70 | fcn_00003f70 ();
| do {
| label_0:
0x00004188 movs r0, 0 | r0 = 0;
| label_14:
0x0000418a ldr r2, [pc, 0xd4] |
0x0000418c ldr r3, [pc, 0x8c] | r3 = *(0x421c);
0x0000418e add r2, pc | r2 = 0x83f4;
0x00004190 ldr r3, [r2, r3] | r3 = *(0x83f4);
0x00004192 ldr r2, [r3] | r2 = *(0x83f4);
0x00004194 ldr r3, [sp, 0xc] | r3 = var_ch;
0x00004196 eors r2, r3 | r2 ^= r3;
0x00004198 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000419c bne 0x4210 | goto label_15;
| }
0x0000419e add sp, 0x10 |
0x000041a0 pop.w {r4, r5, r6, r7, r8, sb, sl, pc} |
| label_12:
0x000041a4 ldr r3, [pc, 0xbc] |
0x000041a6 mov.w r1, 0x100 | r1 = 0x100;
0x000041aa ldr r2, [pc, 0xbc] |
0x000041ac add r3, pc | r3 = 0x8414;
0x000041ae add r2, pc | r2 = 0x841c;
0x000041b0 blx 0x1b00 | fcn_00001b00 ();
0x000041b4 bl 0x3f70 | fcn_00003f70 ();
0x000041b8 b 0x4188 |
| } while (1);
| label_8:
0x000041ba ldr r3, [pc, 0xb0] |
0x000041bc ldr r2, [pc, 0xb0] |
0x000041be ldr r1, [sp, 8] | r1 = var_8h;
0x000041c0 add r3, pc | r3 = 0x8432;
0x000041c2 add r2, pc | r2 = 0x8436;
0x000041c4 ldr r1, [r1, 8] | r1 = *((r1 + 8));
0x000041c6 str.w r8, [sp] | __asm ("str.w r8, [sp]");
| do {
0x000041ca str r1, [sp, 4] | var_4h = r1;
0x000041cc mov.w r1, 0x100 | r1 = 0x100;
0x000041d0 blx 0x1b00 | fcn_00001b00 ();
0x000041d4 ldr r0, [sp, 8] | r0 = var_8h;
0x000041d6 blx 0x1a60 | g_error_free ();
0x000041da bl 0x3f70 | fcn_00003f70 ();
0x000041de b 0x4188 | goto label_0;
| label_9:
0x000041e0 ldr r3, [pc, 0x90] |
0x000041e2 ldr r2, [pc, 0x94] |
0x000041e4 ldr r1, [sp, 8] | r1 = var_8h;
0x000041e6 add r3, pc | r3 = 0x845e;
0x000041e8 add r2, pc | r2 = 0x8466;
| label_1:
0x000041ea ldr r1, [r1, 8] | r1 = *((r1 + 8));
0x000041ec str.w sl, [sp] | __asm ("str.w sl, [sp]");
0x000041f0 b 0x41ca |
| } while (1);
| label_11:
0x000041f2 ldr r3, [pc, 0x88] |
0x000041f4 ldr r2, [pc, 0x88] |
0x000041f6 ldr r1, [sp, 8] | r1 = var_8h;
0x000041f8 add r3, pc | r3 = 0x847a;
0x000041fa add r2, pc | r2 = 0x847e;
0x000041fc b 0x41ea | goto label_1;
| label_13:
0x000041fe ldr r3, [pc, 0x84] |
0x00004200 mov.w r1, 0x100 | r1 = 0x100;
0x00004204 ldr r2, [pc, 0x80] |
0x00004206 add r3, pc | r3 = 0x8490;
0x00004208 add r2, pc | r2 = 0x8494;
0x0000420a blx 0x1b00 | fcn_00001b00 ();
0x0000420e b 0x415e | goto label_2;
| label_15:
0x00004210 blx 0x1d1c | fcn_00001d1c ();
0x00004214 add sp, 0x138 |
0x00004216 movs r0, r0 |
0x00004218 add r5, sp, 0x338 | r5 += arg_338h;
0x0000421a movs r0, r0 |
0x0000421c lsls r4, r3, 7 | r4 = r3 << 7;
0x0000421e movs r0, r0 |
0x00004220 ldrh r0, [r4] | r0 = *(r4);
0x00004222 movs r0, r0 |
0x00004224 str r2, [r7, 0x50] | *((r7 + 0x50)) = r2;
0x00004226 movs r0, r0 |
0x00004228 ldr r2, [pc, 0x3f8] | r2 = *(0x4624);
0x0000422a movs r0, r0 |
0x0000422c str r2, [r1, r0] | *((r1 + r0)) = r2;
0x0000422e movs r0, r0 |
0x00004230 add r3, sp, 0x338 | r3 += arg_338h;
0x00004232 movs r0, r0 |
0x00004234 ldr r3, [pc, 0xf0] | r3 = *(0x4328);
0x00004236 movs r0, r0 |
0x00004238 str r4, [r7, 0x50] | *((r7 + 0x50)) = r4;
0x0000423a movs r0, r0 |
0x0000423c strb r2, [r7, 0x13] | *((r7 + 0x13)) = r2;
0x0000423e movs r0, r0 |
0x00004240 bl 0x33a242 | void (*0x33a242)(uint32_t, uint32_t, uint32_t) (r0, r2, r3);
0x00004244 strh r0, [r4, 0x34] | *((r4 + 0x34)) = r0;
0x00004246 movs r0, r0 |
0x00004248 strh r4, [r6, 0x34] | *((r6 + 0x34)) = r4;
0x0000424a movs r0, r0 |
0x0000424c strh r6, [r7, 0x34] | *((r7 + 0x34)) = r6;
0x0000424e movs r0, r0 |
0x00004250 add r7, sp, 0x58 | r7 += arg_58h;
0x00004252 movs r0, r0 |
0x00004254 bl 0x12c256 | void (*0x12c256)(uint32_t) (r0);
0x00004258 str r3, [sp, 0x190] | *(arg_190h) = r3;
0x0000425a movs r0, r0 |
0x0000425c str r2, [r7, 0x40] | *((r7 + 0x40)) = r2;
0x0000425e movs r0, r0 |
0x00004260 add r4, sp, 0x1b8 | r4 += arg_1b8h;
0x00004262 movs r0, r0 |
0x00004264 str r3, [sp, 0xd0] | *(arg_d0h) = r3;
0x00004266 movs r0, r0 |
0x00004268 strh r2, [r0, 0x30] | *((r0 + 0x30)) = r2;
0x0000426a movs r0, r0 |
0x0000426c str r3, [sp, 0x80] | *(arg_80h) = r3;
0x0000426e movs r0, r0 |
0x00004270 str r2, [r2, 0x3c] | *((r2 + 0x3c)) = r2;
0x00004272 movs r0, r0 |
0x00004274 str r2, [sp, 0x3e8] | *(arg_3e8h) = r2;
0x00004276 movs r0, r0 |
0x00004278 str r4, [r5, 0x38] | *((r5 + 0x38)) = r4;
0x0000427a movs r0, r0 |
0x0000427c str r2, [sp, 0x3a0] | *(arg_3a0h) = r2;
0x0000427e movs r0, r0 |
0x00004280 str r2, [r3, 0x38] | *((r3 + 0x38)) = r2;
0x00004282 movs r0, r0 |
0x00004284 str r2, [sp, 0x368] | *(arg_368h) = r2;
0x00004286 movs r0, r0 |
0x00004288 strh r0, [r4, 0x30] | *((r4 + 0x30)) = r0;
0x0000428a movs r0, r0 |
0x0000428c ldr r2, [pc, 0x188] |
0x0000428e ldr r3, [pc, 0x18c] | r3 = *(0x441e);
0x00004290 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00004294 sub sp, 0x1c |
0x00004296 add r2, pc | r2 = 0x86b2;
0x00004298 ldr.w sb, [pc, 0x184] |
0x0000429c ldr r3, [r2, r3] |
0x0000429e add sb, pc | sb = 0x86c2;
0x000042a0 ldr r3, [r3] | r3 = *(0x86b2);
0x000042a2 str r3, [sp, 0x14] | var_14h = r3;
0x000042a4 mov.w r3, 0 | r3 = 0;
0x000042a8 cmp r0, 0 |
| if (r0 == 0) {
0x000042aa beq.w 0x43da | goto label_16;
| }
0x000042ac strh r6, [r2, 4] | *((r2 + 4)) = r6;
0x000042ae ldr.w r8, [pc, 0x174] |
0x000042b2 movs r7, 0 | r7 = 0;
0x000042b4 ldr.w fp, [pc, 0x170] |
0x000042b8 mov r4, r0 | r4 = r0;
0x000042ba ldr.w sl, [pc, 0x170] |
0x000042be mov r6, r7 | r6 = r7;
0x000042c0 add r8, pc | r8 = 0x86ea;
0x000042c2 add fp, pc | fp = 0x86ee;
0x000042c4 add sl, pc | sl = 0x86f6;
| do {
0x000042c6 ldr r3, [r4] | r3 = *(r4);
| if (r3 == 0) {
0x000042c8 cbz r3, 0x4310 | goto label_17;
| }
0x000042ca movs r5, 0 | r5 = 0;
0x000042cc mov r0, r4 | r0 = r4;
0x000042ce add r1, sp, 8 | r1 += var_8h_2;
0x000042d0 add r3, sp, 0x10 | r3 += var_10h;
0x000042d2 add r2, sp, 0xc | r2 += var_ch_2;
0x000042d4 str r5, [sp, 8] | var_8h_2 = r5;
0x000042d6 str r5, [sp, 0x10] | var_10h = r5;
0x000042d8 bl 0x2d04 | fcn_00002d04 (r0, r1, r2, r3);
0x000042dc ldr r0, [sp, 8] | r0 = var_8h_2;
0x000042de mov r1, r8 | r1 = r8;
0x000042e0 blx 0x1f5c | r0 = fcn_00001f5c ();
0x000042e4 cmp r0, 0 |
| if (r0 != 0) {
0x000042e6 bne 0x4362 | goto label_18;
| }
| if (r7 == 0) {
| label_3:
0x000042e8 cbnz r7, 0x430a |
0x000042ea bl 0x7f04 | r0 = fcn_00007f04 ();
0x000042ee cmp r0, 0 |
| if (r0 == 0) {
0x000042f0 beq 0x439c | goto label_19;
| }
0x000042f2 ldr r0, [pc, 0x13c] |
0x000042f4 add r0, pc | r0 = 0x872a;
0x000042f6 blx 0x1be0 | r0 = g_strdup_printf ()
0x000042fa mov r3, r0 | r3 = r0;
| label_5:
0x000042fc mov r0, r6 | r0 = r6;
0x000042fe movs r2, 4 | r2 = 4;
0x00004300 mov r1, sl | r1 = sl;
0x00004302 movs r7, 1 | r7 = 1;
0x00004304 bl 0x2cb4 | r0 = fcn_00002cb4 (r0, r1, r2, r3);
0x00004308 mov r6, r0 | r6 = r0;
| }
| label_4:
0x0000430a ldr r4, [r4, 4] | r4 = *((r4 + 4));
0x0000430c cmp r4, 0 |
0x0000430e bne 0x42c6 |
| } while (r4 != 0);
| label_17:
0x00004310 cmp r6, 0 |
| if (r6 == 0) {
0x00004312 beq 0x43da | goto label_16;
| }
0x00004314 ldr r3, [pc, 0x11c] |
0x00004316 movs r2, 1 | r2 = 1;
0x00004318 ldr r1, [pc, 0x11c] |
0x0000431a mov r0, r6 | r0 = r6;
0x0000431c mov r4, r6 | r4 = r6;
0x0000431e add r3, pc | r3 = 0x8756;
0x00004320 add r1, pc | r1 = 0x875c;
0x00004322 bl 0x2da0 | fcn_00002da0 (r0, r1, r2, r3);
0x00004326 b 0x4332 |
| while (r3 != 0) {
0x00004328 ldr r0, [r3, 8] | r0 = *((r3 + 8));
0x0000432a blx 0x1d44 | fcn_00001d44 ();
0x0000432e ldr r4, [r4, 4] | r4 = *((r4 + 4));
| if (r4 == 0) {
0x00004330 cbz r4, 0x4338 | goto label_6;
| }
0x00004332 ldr r3, [r4] | r3 = *(r4);
0x00004334 cmp r3, 0 |
0x00004336 bne 0x4328 |
| }
| label_6:
0x00004338 ldr r2, [pc, 0x100] |
0x0000433a ldr r3, [pc, 0xe0] | r3 = *(0x441e);
0x0000433c add r2, pc | r2 = 0x877c;
0x0000433e ldr r3, [r2, r3] | r3 = *(0x877c);
0x00004340 ldr r2, [r3] | r2 = *(0x877c);
0x00004342 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00004344 eors r2, r3 | r2 ^= r3;
0x00004346 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000434a bne 0x4412 | goto label_20;
| }
0x0000434c ldr r3, [pc, 0xf0] | r3 = *(0x4440);
0x0000434e mov r0, r6 | r0 = r6;
0x00004350 ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x00004354 mov r1, r3 | r1 = r3;
0x00004356 str r3, [sp, 4] | var_4h_2 = r3;
0x00004358 add sp, 0x1c |
0x0000435a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000435e b.w 0x1d00 | void (*0x1d00)() ();
| label_18:
0x00004362 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00004364 mov r1, fp | r1 = fp;
0x00004366 blx 0x1f5c | r0 = fcn_00001f5c ();
0x0000436a cmp r0, 0 |
| if (r0 == 0) {
0x0000436c beq 0x42e8 | goto label_3;
| }
0x0000436e ldr r1, [pc, 0xd4] |
0x00004370 ldr r0, [sp, 8] | r0 = var_8h_2;
0x00004372 add r1, pc | r1 = 0x87bc;
0x00004374 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x00004378 cbnz r0, 0x43b4 | goto label_21;
| }
0x0000437a bl 0x7f58 | r0 = fcn_00007f58 ();
0x0000437e cmp r0, 0 |
| if (r0 != 0) {
0x00004380 bne 0x4406 | goto label_22;
| }
0x00004382 ldr r0, [pc, 0xc4] |
0x00004384 add r0, pc | r0 = 0x87d2;
0x00004386 blx 0x1be0 | r0 = g_strdup_printf ()
0x0000438a mov r3, r0 | r3 = r0;
| label_7:
0x0000438c ldr r1, [pc, 0xbc] |
0x0000438e mov r0, r6 | r0 = r6;
0x00004390 movs r2, 4 | r2 = 4;
0x00004392 add r1, pc | r1 = 0x87e2;
0x00004394 bl 0x2cb4 | r0 = fcn_00002cb4 (r0, r1, r2, r3);
0x00004398 mov r6, r0 | r6 = r0;
0x0000439a b 0x430a | goto label_4;
| label_19:
0x0000439c bl 0x7f28 | r0 = fcn_00007f28 ();
| if (r0 == 0) {
0x000043a0 cbz r0, 0x43ae | goto label_23;
| }
0x000043a2 ldr r0, [pc, 0xac] |
0x000043a4 add r0, pc | r0 = 0x87fa;
| do {
0x000043a6 blx 0x1be0 | r0 = g_strdup_printf ()
0x000043aa mov r3, r0 | r3 = r0;
0x000043ac b 0x42fc | goto label_5;
| label_23:
0x000043ae ldr r0, [pc, 0xa4] |
0x000043b0 add r0, pc | r0 = 0x880a;
0x000043b2 b 0x43a6 |
| } while (1);
| label_21:
0x000043b4 ldr r1, [pc, 0xa0] |
0x000043b6 ldr r0, [sp, 8] | r0 = var_8h_2;
0x000043b8 add r1, pc | r1 = 0x8814;
0x000043ba blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 == 0) {
0x000043be cbnz r0, 0x43de |
0x000043c0 bl 0x7f40 | fcn_00007f40 ();
0x000043c4 bl 0x213c | fcn_0000213c (r0);
0x000043c8 ldr r1, [pc, 0x90] |
0x000043ca mov r3, r0 | r3 = r0;
0x000043cc movs r2, 4 | r2 = 4;
0x000043ce mov r0, r6 | r0 = r6;
0x000043d0 add r1, pc | r1 = 0x8830;
0x000043d2 bl 0x2cb4 | r0 = fcn_00002cb4 (r0, r1, r2, r3);
0x000043d6 mov r6, r0 | r6 = r0;
0x000043d8 b 0x430a | goto label_4;
| label_16:
0x000043da movs r6, 0 | r6 = 0;
0x000043dc b 0x4338 | goto label_6;
| }
0x000043de ldr r1, [pc, 0x80] |
0x000043e0 ldr r0, [sp, 8] | r0 = var_8h_2;
0x000043e2 add r1, pc | r1 = 0x8848;
0x000043e4 blx 0x1f5c | r0 = fcn_00001f5c ();
0x000043e8 cmp r0, 0 |
| if (r0 != 0) {
0x000043ea bne 0x430a | goto label_4;
| }
0x000043ec bl 0x7f34 | fcn_00007f34 ();
0x000043f0 bl 0x213c | fcn_0000213c (r0);
0x000043f4 ldr r1, [pc, 0x6c] |
0x000043f6 mov r3, r0 | r3 = r0;
0x000043f8 movs r2, 4 | r2 = 4;
0x000043fa mov r0, r6 | r0 = r6;
0x000043fc add r1, pc | r1 = 0x8864;
0x000043fe bl 0x2cb4 | r0 = fcn_00002cb4 (r0, r1, r2, r3);
0x00004402 mov r6, r0 | r6 = r0;
0x00004404 b 0x430a | goto label_4;
| label_22:
0x00004406 ldr r0, [pc, 0x60] |
0x00004408 add r0, pc | r0 = 0x8876;
0x0000440a blx 0x1be0 | r0 = g_strdup_printf ()
0x0000440e mov r3, r0 | r3 = r0;
0x00004410 b 0x438c | goto label_7;
| label_20:
0x00004412 blx 0x1d1c | fcn_00001d1c ();
0x00004416 nop |
0x00004418 add r3, sp, 0x198 | r3 += arg_198h;
0x0000441a movs r0, r0 |
0x0000441c lsls r4, r3, 7 | r4 = r3 << 7;
0x0000441e movs r0, r0 |
0x00004420 add r3, sp, 0x178 | r3 += arg_178h;
0x00004422 movs r0, r0 |
0x00004424 ldr r0, [pc, 0x1f0] | r0 = *(0x4618);
0x00004426 movs r0, r0 |
0x00004428 strh r2, [r2, 0x32] | *((r2 + 0x32)) = r2;
0x0000442a movs r0, r0 |
0x0000442c strh r0, [r2, 0x32] | *((r2 + 0x32)) = r0;
0x0000442e movs r0, r0 |
0x00004430 str r2, [sp, 0x3f0] | *(arg_3f0h) = r2;
0x00004432 movs r0, r0 |
0x00004434 strh r2, [r0, 0x32] | *((r0 + 0x32)) = r2;
0x00004436 movs r0, r0 |
0x00004438 strh r0, [r3, 0x32] | *((r3 + 0x32)) = r0;
0x0000443a movs r0, r0 |
0x0000443c add r2, sp, 0x300 | r2 += arg_300h;
0x0000443e movs r0, r0 |
0x00004440 lsls r0, r5, 7 | r0 = r5 << 7;
0x00004442 movs r0, r0 |
0x00004444 ldr r0, [pc, 0x98] | r0 = *(0x44e0);
0x00004446 movs r0, r0 |
0x00004448 strh r0, [r4, 0x2c] | *((r4 + 0x2c)) = r0;
0x0000444a movs r0, r0 |
0x0000444c strh r2, [r3, 0x2c] | *((r3 + 0x2c)) = r2;
0x0000444e movs r0, r0 |
0x00004450 strh r4, [r4, 0x2a] | *((r4 + 0x2a)) = r4;
0x00004452 movs r0, r0 |
0x00004454 strh r4, [r3, 0x2a] | *((r3 + 0x2a)) = r4;
0x00004456 movs r0, r0 |
0x00004458 ldr r0, [pc, 0] | r0 = *(0x445c);
0x0000445a movs r0, r0 |
0x0000445c strh r0, [r6, 0x2a] | *((r6 + 0x2a)) = r0;
0x0000445e movs r0, r0 |
0x00004460 invalid |
| }
r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x525c).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate
the needed data for the issue.
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x5538 */
| #include <stdint.h>
|
; (fcn) fcn.00005538 () | void fcn_00005538 (int16_t arg_288h, int16_t arg_308h, uint32_t arg1) {
| int16_t var_0h_3;
| int16_t var_44h;
| int16_t var_50h;
| int16_t var_58h;
| int16_t var_e0h;
| int16_t var_f8h;
| int16_t var_0h_5;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_18h;
| int16_t var_0h_4;
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h_2;
| int16_t var_1ch;
| int16_t var_28h;
| r0 = arg1;
0x00005538 mvnsmi lr, 0xb4000 | __asm ("mvnsmi lr, 0xb4000");
0x0000553c sub sp, 0xc |
0x0000553e cmp r0, 0 |
| if (var_0h_3 != ) {
0x00005540 beq 0x55ea |
0x00005542 mov r5, r0 | r5 = r0;
0x00005544 movs r0, 0x24 | r0 = 0x24;
0x00005546 ldr r6, [pc, 0xb8] |
0x00005548 blx 0x1ea8 | r0 = fcn_00001ea8 ();
0x0000554c mov r4, r0 | r4 = r0;
0x0000554e mov r0, r5 | r0 = r5;
0x00005550 blx 0x1be0 | g_strdup_printf ()
0x00005552 adc.w r4, r6, lr, ror 17 | __asm ("adc.w r4, r6, lr, ror 17");
0x00005554 add r6, pc | r6 = 0xab5a;
0x00005556 mov r3, r0 | r3 = r0;
0x00005558 str r3, [r4] | *(r4) = r3;
0x0000555a mov r0, r6 | r0 = r6;
0x0000555c blx 0x1be0 | r0 = g_strdup_printf ()
0x00005560 mov r3, r0 | r3 = r0;
0x00005562 ldr r7, [pc, 0xa0] |
0x00005564 str r3, [r4, 0x1c] | *((r4 + 0x1c)) = r3;
0x00005566 mov r0, r6 | r0 = r6;
0x00005568 blx 0x1be0 | g_strdup_printf ()
0x0000556c ldr r2, [r4] | r2 = *(r4);
0x0000556e add r7, pc | r7 = 0xab78;
0x00005570 str r4, [sp] | *(sp) = r4;
0x00005572 mov r3, r7 | r3 = r7;
0x00005574 str r0, [r4, 0x20] | *((r4 + 0x20)) = r0;
0x00005576 ldr r1, [pc, 0x90] |
0x00005578 ldr r0, [pc, 0x90] |
0x0000557a add r1, pc | r1 = 0xab88;
0x0000557c add r0, pc | r0 = 0xab8c;
0x0000557e bl 0x2b38 | fcn_00002b38 (r0, r1, r2, r3);
0x00005582 ldr r3, [pc, 0x8c] |
0x00005584 str r0, [r4, 8] | *((r4 + 8)) = r0;
0x00005586 add r3, pc |
0x00005588 ldr r3, [r3, 0xc] | r3 = *(0xaba8);
| if (r3 != 0) {
0x0000558a cbz r3, 0x55e2 |
0x0000558c ldr.w r8, [pc, 0x84] |
0x00005590 mov r3, r7 | r3 = r7;
0x00005592 ldr.w sb, [pc, 0x84] |
0x00005596 ldr r6, [pc, 0x84] |
0x00005598 ldr r5, [pc, 0x84] |
0x0000559a add r8, pc | r8 = 0xabb2;
0x0000559c add sb, pc | sb = 0xabba;
0x0000559e mov r1, r8 | r1 = r8;
0x000055a0 add r6, pc | r6 = 0xabc2;
0x000055a2 str r4, [sp] | *(sp) = r4;
0x000055a4 mov r0, sb | r0 = sb;
0x000055a6 ldr r2, [r4] | r2 = *(r4);
0x000055a8 bl 0x2b38 | fcn_00002b38 (r0, r1, r2, r3);
0x000055ac add r5, pc | r5 = 0xabd0;
0x000055ae str r0, [r4, 0xc] | *((r4 + 0xc)) = r0;
0x000055b0 mov r3, r7 | r3 = r7;
0x000055b2 mov r1, r6 | r1 = r6;
0x000055b4 str r4, [sp] | *(sp) = r4;
0x000055b6 mov r0, sb | r0 = sb;
0x000055b8 ldr r2, [r4] | r2 = *(r4);
0x000055ba bl 0x2b38 | fcn_00002b38 (r0, r1, r2, r3);
0x000055be mov r1, r8 | r1 = r8;
0x000055c0 str r0, [r4, 0x10] | *((r4 + 0x10)) = r0;
0x000055c2 mov r3, r7 | r3 = r7;
0x000055c4 str r4, [sp] | *(sp) = r4;
0x000055c6 mov r0, r5 | r0 = r5;
0x000055c8 ldr r2, [r4] | r2 = *(r4);
0x000055ca bl 0x2b38 | r0 = fcn_00002b38 (r0, r1, r2, r3);
0x000055ce mov r2, r0 | r2 = r0;
0x000055d0 str r4, [sp] | *(sp) = r4;
0x000055d2 mov r3, r7 | r3 = r7;
0x000055d4 str r2, [r4, 0x14] | *((r4 + 0x14)) = r2;
0x000055d6 mov r1, r6 | r1 = r6;
0x000055d8 ldr r2, [r4] | r2 = *(r4);
0x000055da mov r0, r5 | r0 = r5;
0x000055dc bl 0x2b38 | fcn_00002b38 (r0, r1, r2, r3);
0x000055e0 str r0, [r4, 0x18] | *((r4 + 0x18)) = r0;
| }
0x000055e2 mov r0, r4 | r0 = r4;
0x000055e4 add sp, 0xc |
0x000055e6 pop.w {r4, r5, r6, r7, r8, sb, pc} |
| }
0x000055ea ldr r3, [pc, 0x38] |
0x000055ec movs r2, 0x5a | r2 = 0x5a;
0x000055ee ldr r4, [pc, 0x38] |
0x000055f0 ldr r1, [pc, 0x38] |
0x000055f2 add r3, pc | r3 = 0xac1c;
0x000055f4 add r4, pc | r4 = 0xac22;
0x000055f6 adds r3, 0x14 | r3 += 0x14;
0x000055f8 add r1, pc | r1 = 0xac28;
0x000055fa str r4, [sp] | *(sp) = r4;
0x000055fc blx 0x1ed8 | fcn_00001ed8 ();
0x00005600 ldrb r4, [r1, 0x1e] | r4 = *((r1 + 0x1e));
0x00005602 movs r0, r0 |
0x00005604 lsls r7, r7, 2 | r7 <<= 2;
0x00005606 movs r0, r0 |
0x00005608 adds r2, 0xd6 | r2 += 0xd6;
0x0000560a movs r0, r0 |
0x0000560c adds r2, 0xb4 | r2 += 0xb4;
0x0000560e movs r0, r0 |
0x00005610 ldr r3, [sp, 0x58] | r3 = var_58h;
0x00005612 movs r0, r0 |
0x00005614 ldrb r6, [r4, 2] | r6 = *((r4 + 2));
0x00005616 movs r0, r0 |
0x00005618 strb r0, [r6, 0x1e] | *((r6 + 0x1e)) = r0;
0x0000561a movs r0, r0 |
0x0000561c ldrb r0, [r6, 2] | r0 = *((r6 + 2));
0x0000561e movs r0, r0 |
0x00005620 strb r4, [r7, 0x1e] | *((r7 + 0x1e)) = r4;
0x00005622 movs r0, r0 |
0x00005624 ldrb r2, [r5, 0xd] | r2 = *((r5 + 0xd));
0x00005626 movs r0, r0 |
0x00005628 ldrb r0, [r0, 1] | r0 = *((r0 + 1));
0x0000562a movs r0, r0 |
0x0000562c ldrb r0, [r0] | r0 = *(r0);
0x0000562e movs r0, r0 |
0x00005630 ldr r2, [pc, 0x214] |
0x00005632 ldr r3, [pc, 0x218] | r3 = *(0x584e);
0x00005634 push.w {r4, r5, r6, r7, r8, sb, lr} |
0x00005638 sub sp, 0x24 |
0x0000563a add r2, pc | r2 = 0xae86;
0x0000563c ldr r6, [sp, 0x40] | r6 = var_0h_3;
0x0000563e movs r4, 0 | r4 = 0;
0x00005640 ldr r1, [pc, 0x20c] |
0x00005642 ldr r3, [r2, r3] |
0x00005644 mov r0, r6 | r0 = r6;
0x00005646 ldrd r8, r7, [sp, 0x44] | __asm ("ldrd r8, r7, [var_44h]");
0x0000564a add r1, pc | r1 = 0xae9e;
0x0000564c ldr r3, [r3] | r3 = *(0xae86);
0x0000564e str r3, [sp, 0x1c] | var_1ch = r3;
0x00005650 mov.w r3, 0 | r3 = 0;
0x00005654 strd r4, r4, [sp, 0xc] | __asm ("strd r4, r4, [var_ch]");
0x00005656 add r3, r0 | r3 += r0;
0x00005658 strd r4, r4, [sp, 0x14] | __asm ("strd r4, r4, [var_18h]");
0x0000565c blx 0x1f5c | r0 = fcn_00001f5c ();
0x00005660 cmp r0, 0 |
| if (r0 != 0) {
0x00005662 bne 0x56cc | goto label_7;
| }
0x00005664 ldr r6, [pc, 0x1ec] |
0x00005666 mov r5, r0 | r5 = r0;
0x00005668 movs r2, 1 | r2 = 1;
0x0000566a mov r0, r8 | r0 = r8;
0x0000566c add r6, pc | r6 = 0xaec4;
0x0000566e mov r1, r6 | r1 = r6;
0x00005670 blx 0x1b68 | r0 = g_dbus_connection_new_for_address ();
0x00005674 mov r4, r0 | r4 = r0;
0x00005676 cmp r0, 0 |
| if (r0 == 0) {
0x00005678 beq 0x5700 | goto label_8;
| }
0x0000567a mov r1, r6 | r1 = r6;
0x0000567c mov r0, r8 | r0 = r8;
0x0000567e ldr r6, [pc, 0x1d8] |
0x00005680 add r3, sp, 0x18 | r3 += var_18h_2;
0x00005682 ldr.w r8, [pc, 0x1d8] |
0x00005686 add r2, sp, 0xc | r2 += var_ch_2;
0x00005688 str r5, [sp] | *(sp) = r5;
0x0000568a add r4, sp, 0x10 | r4 += var_10h;
0x0000568c add r6, pc | r6 = 0xaeea;
0x0000568e add r5, sp, 0x14 | r5 += var_14h;
0x00005690 add r8, pc | r8 = 0xaef2;
0x00005692 blx 0x1d10 | fcn_00001d10 ();
0x00005696 b 0x56a4 |
| while (r0 != 0) {
| label_0:
0x00005698 ldr r0, [sp, 0x10] | r0 = var_10h;
0x0000569a blx 0x1d44 | fcn_00001d44 ();
0x0000569e ldr r0, [sp, 0x14] | r0 = var_14h;
0x000056a0 blx 0x1d5c | fcn_00001d5c ();
0x000056a4 ldr r0, [sp, 0x18] | r0 = var_18h_2;
0x000056a6 mov r3, r5 | r3 = r5;
0x000056a8 mov r2, r4 | r2 = r4;
0x000056aa mov r1, r6 | r1 = r6;
0x000056ac blx 0x1ca0 | r0 = net_device_switching_get_active_devices ();
0x000056b0 cmp r0, 0 |
| if (r0 == 0) {
0x000056b2 beq 0x571c | goto label_9;
| }
0x000056b4 ldr r0, [sp, 0x10] | r0 = var_10h;
0x000056b6 mov r1, r8 | r1 = r8;
0x000056b8 blx 0x1f5c | r0 = fcn_00001f5c ();
0x000056bc cmp r0, 0 |
0x000056be bne 0x5698 |
| }
0x000056c0 ldr r2, [sp, 0xc] | r2 = var_ch_2;
0x000056c2 mov r1, r7 | r1 = r7;
0x000056c4 ldr r0, [sp, 0x14] | r0 = var_14h;
0x000056c6 bl 0x525c | fcn_0000525c (r0, r1, r2, r3, r4, r5, r6);
0x000056ca b 0x5698 | goto label_0;
| label_7:
0x000056cc ldr r1, [pc, 0x190] |
0x000056ce mov r0, r6 | r0 = r6;
0x000056d0 add r1, pc | r1 = 0xaf34;
0x000056d2 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x000056d6 cbnz r0, 0x572a | goto label_10;
| }
| label_2:
0x000056d8 ldr r3, [pc, 0x188] |
0x000056da add r3, pc | r3 = 0xaf42;
0x000056dc ldr r0, [r3, 0xc] | r0 = *(0xaf4e);
0x000056de cmp r0, 0 |
| if (r0 == 0) {
0x000056e0 beq 0x57a4 | goto label_11;
| }
0x000056e2 blx r0 | uint32_t (*r0)(uint32_t) (r0);
| do {
| label_1:
0x000056e4 ldr r2, [pc, 0x180] |
0x000056e6 ldr r3, [pc, 0x164] | r3 = *(0x584e);
0x000056e8 add r2, pc | r2 = 0xaf54;
0x000056ea ldr r3, [r2, r3] | r3 = *(0xaf54);
0x000056ec ldr r2, [r3] | r2 = *(0xaf54);
0x000056ee ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x000056f0 eors r2, r3 | r2 ^= r3;
0x000056f2 mov.w r3, 0 | r3 = 0;
0x000056f4 lsls r0, r0, 0xc | r0 <<= 0xc;
| if (r0 != r0) {
0x000056f6 bne.w 0x5844 | goto label_12;
| }
0x000056fa add sp, 0x24 |
0x000056fc pop.w {r4, r5, r6, r7, r8, sb, pc} |
| label_8:
0x00005700 mov r0, r8 | r0 = r8;
0x00005702 blx 0x1aac | fcn_00001aac ();
0x00005706 ldr r3, [pc, 0x164] |
0x00005708 mov r5, r0 | r5 = r0;
0x0000570a ldr r2, [pc, 0x164] |
0x0000570c movs r1, 0x10 | r1 = 0x10;
0x0000570e mov r0, r4 | r0 = r4;
0x00005710 str r5, [sp] | *(sp) = r5;
0x00005712 add r3, pc | r3 = 0xaf84;
0x00005714 add r2, pc | r2 = 0xaf8a;
0x00005716 blx 0x1b00 | fcn_00001b00 ();
0x0000571a b 0x56e4 |
| } while (1);
| label_9:
0x0000571c ldr r0, [sp, 0xc] | r0 = var_ch_2;
0x0000571e blx 0x1d44 | fcn_00001d44 ();
0x00005722 ldr r0, [sp, 0x18] | r0 = var_18h_2;
0x00005724 blx 0x19dc | g_variant_iter_free ();
0x00005728 b 0x56e4 | goto label_1;
| label_10:
0x0000572a ldr r1, [pc, 0x148] |
0x0000572c mov r0, r6 | r0 = r6;
0x0000572e add r1, pc | r1 = 0xafa8;
0x00005730 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00005734 cmp r0, 0 |
| if (r0 == 0) {
0x00005736 beq 0x56d8 | goto label_2;
| }
0x00005738 ldr r1, [pc, 0x13c] |
0x0000573a movs r2, 1 | r2 = 1;
0x0000573c mov r0, r8 | r0 = r8;
0x0000573e add r1, pc | r1 = 0xafba;
0x00005740 blx 0x1b68 | r0 = g_dbus_connection_new_for_address ();
0x00005744 mov r5, r0 | r5 = r0;
0x00005746 cmp r0, 0 |
| if (r0 == 0) {
0x00005748 beq 0x57b6 | goto label_13;
| }
0x0000574a mov r1, r4 | r1 = r4;
0x0000574c mov r0, r8 | r0 = r8;
0x0000574e blx 0x1a48 | g_variant_get_child_value ();
0x00005752 mov r1, r4 | r1 = r4;
0x00005754 mov sb, r0 | sb = r0;
0x00005756 blx 0x1e90 | fcn_00001e90 ();
0x0000575a ldr r3, [pc, 0x120] |
0x0000575c mov r7, r0 | r7 = r0;
0x0000575e add r3, pc | r3 = 0xafe0;
0x00005760 ldr r4, [r3] | r4 = *(0xafe0);
| if (r4 != 0) {
0x00005762 cbnz r4, 0x576c | goto label_14;
| }
0x00005764 b 0x581a | goto label_15;
| do {
0x00005766 ldr r4, [r4, 4] | r4 = *((r4 + 4));
0x00005768 cmp r4, 0 |
| if (r4 == 0) {
0x0000576a beq 0x57d2 | goto label_16;
| }
| label_14:
0x0000576c ldr r5, [r4] | r5 = *(r4);
0x0000576e mov r1, r7 | r1 = r7;
0x00005770 ldr r0, [r5] | r0 = *(r5);
0x00005772 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00005776 cmp r0, 0 |
0x00005778 bne 0x5766 |
| } while (r0 != 0);
0x0000577a ldr r1, [pc, 0x104] |
0x0000577c mov r0, r6 | r0 = r6;
0x0000577e add r1, pc | r1 = 0xb004;
0x00005780 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00005784 cmp r0, 0 |
| if (r0 != 0) {
0x00005786 bne 0x5838 | goto label_17;
| }
0x00005788 ldr r4, [pc, 0xf8] |
0x0000578a mov r0, r5 | r0 = r5;
0x0000578c bl 0x54cc | void (*0x54cc)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3, r4, r5, r6);
0x00005790 mov r1, r5 | r1 = r5;
0x00005792 add r4, pc | r4 = 0xb01a;
0x00005794 ldr r0, [r4] | r0 = *(0xb01a);
0x00005796 blx 0x1c28 | g_file_set_contents ();
0x0000579a str r0, [r4] | *(r4) = r0;
| do {
| label_3:
0x0000579c mov r0, sb | r0 = sb;
0x0000579e blx 0x1d5c | fcn_00001d5c ();
0x000057a2 b 0x56e4 | goto label_1;
| label_11:
0x000057a4 ldr r3, [pc, 0xe0] |
0x000057a6 movs r1, 0x10 | r1 = 0x10;
0x000057a8 ldr r2, [pc, 0xe0] |
0x000057aa str r6, [sp] | *(sp) = r6;
0x000057ac add r3, pc | r3 = 0xb038;
0x000057ae add r2, pc | r2 = 0xb03e;
0x000057b0 blx 0x1b00 | fcn_00001b00 ();
0x000057b4 b 0x56e4 | goto label_1;
| label_13:
0x000057b6 mov r0, r8 | r0 = r8;
0x000057b8 blx 0x1aac | fcn_00001aac ();
0x000057bc ldr r3, [pc, 0xd0] |
0x000057be mov r4, r0 | r4 = r0;
0x000057c0 ldr r2, [pc, 0xd0] |
0x000057c2 movs r1, 0x10 | r1 = 0x10;
0x000057c4 mov r0, r5 | r0 = r5;
0x000057c6 str r4, [sp] | *(sp) = r4;
0x000057c8 add r3, pc | r3 = 0xb05c;
0x000057ca add r2, pc | r2 = 0xb062;
0x000057cc blx 0x1b00 | fcn_00001b00 ();
0x000057d0 b 0x56e4 | goto label_1;
| label_16:
0x000057d2 ldr r1, [pc, 0xc4] |
0x000057d4 mov r0, r6 | r0 = r6;
0x000057d6 add r1, pc | r1 = 0xb074;
0x000057d8 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x000057dc cbnz r0, 0x5828 | goto label_18;
| }
| label_4:
0x000057de ldr r1, [pc, 0xbc] |
0x000057e0 mov r0, r6 | r0 = r6;
0x000057e2 add r1, pc | r1 = 0xb084;
0x000057e4 blx 0x1f5c | r0 = fcn_00001f5c ();
0x000057e8 cmp r0, 0 |
0x000057ea bne 0x579c |
| } while (r0 != 0);
| label_5:
0x000057ec mov r0, r7 | r0 = r7;
0x000057ee ldr r5, [pc, 0xb0] |
0x000057f0 bl 0x5538 | fcn_00005538 (r0, r1, r2);
0x000057f4 movs r1, 1 | r1 = 1;
0x000057f6 mov r4, r0 | r4 = r0;
0x000057f8 mov r0, r8 | r0 = r8;
0x000057fa add r5, pc | r5 = 0xb0a0;
0x000057fc blx 0x1a48 | g_variant_get_child_value ();
0x00005800 ldr r2, [pc, 0xa0] |
0x00005802 adds r3, r4, 4 | r3 = r4 + 4;
0x00005804 ldr r1, [pc, 0xa0] |
0x00005806 add r2, pc | r2 = 0xb0ae;
0x00005808 add r1, pc | r1 = 0xb0b4;
0x0000580a blx 0x1d50 | fcn_00001d50 ();
0x0000580c invalid |
0x00005810 mov r1, r4 | r1 = r4;
0x00005812 blx 0x1b44 | g_variant_new_int32 ();
0x00005816 str r0, [r5] | *(r5) = r0;
0x00005818 b 0x579c | goto label_3;
| label_15:
0x0000581a ldr r1, [pc, 0x90] |
0x0000581c mov r0, r6 | r0 = r6;
0x0000581e add r1, pc | r1 = 0xb0d0;
0x00005820 blx 0x1f5c | r0 = fcn_00001f5c ();
0x00005824 cmp r0, 0 |
| if (r0 == 0) {
0x00005826 beq 0x57de | goto label_4;
| }
| label_18:
0x00005828 ldr r1, [pc, 0x84] |
0x0000582a mov r0, r6 | r0 = r6;
0x0000582c add r1, pc | r1 = 0xb0e0;
0x0000582e blx 0x1f5c | r0 = fcn_00001f5c ();
0x00005832 cmp r0, 0 |
| if (r0 != 0) {
0x00005834 bne 0x579c | goto label_3;
| }
0x00005836 b 0x57ec | goto label_5;
| label_17:
0x00005838 ldr r1, [pc, 0x78] |
0x0000583a mov r0, r6 | r0 = r6;
0x0000583c add r1, pc | r1 = 0xb0f4;
0x0000583e blx 0x1f5c | fcn_00001f5c ();
0x00005842 b 0x579c | goto label_3;
| label_12:
0x00005844 blx 0x1d1c | fcn_00001d1c ();
0x00005848 str r7, [sp, 0x308] | *(arg_308h) = r7;
0x0000584a movs r0, r0 |
0x0000584c lsls r4, r3, 7 | r4 = r3 << 7;
0x0000584e movs r0, r0 |
0x00005850 adds r2, 6 | r2 += 6;
0x00005852 movs r0, r0 |
0x00005854 adds r2, 0x3c | r2 += 0x3c;
0x00005856 movs r0, r0 |
0x00005858 adds r2, 0xb0 | r2 += 0xb0;
0x0000585a movs r0, r0 |
0x0000585c ldrb r4, [r0] | r4 = *(r0);
0x0000585e movs r0, r0 |
0x00005860 strb r0, [r6, 0x1d] | *((r6 + 0x1d)) = r0;
0x00005862 movs r0, r0 |
0x00005864 ldr r1, [sp, 0x308] | r1 = *(arg_308h);
0x00005866 movs r0, r0 |
0x00005868 str r7, [sp, 0x50] | var_50h = r7;
0x0000586a movs r0, r0 |
0x0000586c ldrb r6, [r1, 0x17] | r6 = *((r1 + 0x17));
0x0000586e movs r0, r0 |
0x00005870 strb r4, [r1, 0x1d] | *((r1 + 0x1d)) = r4;
0x00005872 movs r0, r0 |
0x00005874 strb r2, [r4, 0x1c] | *((r4 + 0x1c)) = r2;
0x00005876 movs r0, r0 |
0x00005878 strb r2, [r3, 0x1e] | *((r3 + 0x1e)) = r2;
0x0000587a movs r0, r0 |
0x0000587c ldr r1, [sp, 0xf8] | r1 = var_f8h;
0x0000587e movs r0, r0 |
0x00005880 strb r2, [r4, 0x1e] | *((r4 + 0x1e)) = r2;
0x00005882 movs r0, r0 |
0x00005884 ldr r1, [sp, 0x28] | r1 = var_0h_4;
0x00005886 movs r0, r0 |
0x00005888 ldrb r4, [r6, 0x14] | r4 = *((r6 + 0x14));
0x0000588a movs r0, r0 |
0x0000588c strb r6, [r6, 0x1b] | *((r6 + 0x1b)) = r6;
0x0000588e movs r0, r0 |
0x00005890 ldrb r0, [r3, 0x14] | r0 = *((r3 + 0x14));
0x00005892 movs r0, r0 |
0x00005894 strb r2, [r3, 0x1c] | *((r3 + 0x1c)) = r2;
0x00005896 movs r0, r0 |
0x00005898 strb r2, [r1, 0x1d] | *((r1 + 0x1d)) = r2;
0x0000589a movs r0, r0 |
0x0000589c strb r6, [r1, 0x1d] | *((r1 + 0x1d)) = r6;
0x0000589e movs r0, r0 |
0x000058a0 ldr r0, [sp, 0x288] | r0 = *(arg_288h);
0x000058a2 movs r0, r0 |
0x000058a4 ldrb r6, [r3, 0x18] | r6 = *((r3 + 0x18));
0x000058a6 movs r0, r0 |
0x000058a8 strb r4, [r6, 0x1c] | *((r6 + 0x1c)) = r4;
0x000058aa movs r0, r0 |
0x000058ac strb r2, [r0, 0x1c] | *((r0 + 0x1c)) = r2;
0x000058ae movs r0, r0 |
0x000058b0 strb r4, [r0, 0x1c] | *((r0 + 0x1c)) = r4;
0x000058b2 movs r0, r0 |
0x000058b4 strb r4, [r6, 0x1b] | *((r6 + 0x1b)) = r4;
0x000058b6 movs r0, r0 |
0x000058b8 push {r4, r5, r6, r7, lr} |
0x000058ba mov r5, r2 | r5 = r2;
0x000058bc ldr r2, [pc, 0xa4] |
0x000058be sub sp, 0x14 |
0x000058c0 movs r6, 0 | r6 = 0;
0x000058c2 ldr r3, [pc, 0xa4] | r3 = *(0x596a);
0x000058c4 add r2, pc | r2 = 0xb22c;
0x000058c6 ldr r3, [r2, r3] |
0x000058c8 ldr r3, [r3] | r3 = *(0xb22c);
0x000058ca str r3, [sp, 0xc] | var_ch = r3;
0x000058cc mov.w r3, 0 | r3 = 0;
0x000058d0 str r6, [sp, 8] | var_8h = r6;
| if (r1 == 0) {
0x000058d2 cbz r1, 0x590a | goto label_19;
| }
0x000058d4 mov r4, r1 | r4 = r1;
0x000058d6 ldr r3, [pc, 0x94] |
0x000058d8 ldr r1, [r1, 8] | r1 = *((r1 + 8));
0x000058da mov r0, r6 | r0 = r6;
0x000058dc ldr r2, [pc, 0x90] |
0x000058de add r3, pc | r3 = 0xb250;
0x000058e0 str r1, [sp] | *(sp) = r1;
0x000058e2 mov.w r1, 0x100 | r1 = 0x100;
0x000058e4 strb r0, [r0, 6] | *((r0 + 6)) = r0;
0x000058e6 add r2, pc | r2 = 0xb25a;
0x000058e8 blx 0x1b00 | fcn_00001b00 ();
0x000058ec mov r0, r4 | r0 = r4;
0x000058ee blx 0x1a60 | g_error_free ();
| do {
0x000058f2 ldr r2, [pc, 0x80] |
0x000058f4 ldr r3, [pc, 0x70] | r3 = *(0x5968);
0x000058f6 add r2, pc | r2 = 0xb270;
0x000058f8 ldr r3, [r2, r3] | r3 = *(0xb270);
0x000058fa ldr r2, [r3] | r2 = *(0xb270);
0x000058fc ldr r3, [sp, 0xc] | r3 = var_ch;
0x000058fe eors r2, r3 | r2 ^= r3;
0x00005900 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00005904 bne 0x5960 | goto label_20;
| }
0x00005906 add sp, 0x14 |
0x00005908 pop {r4, r5, r6, r7, pc} |
| label_19:
0x0000590a ldr r6, [pc, 0x6c] |
0x0000590c movs r2, 1 | r2 = 1;
0x0000590e mov r7, r0 | r7 = r0;
0x00005910 add r6, pc | r6 = 0xb28e;
0x00005912 mov r1, r6 | r1 = r6;
0x00005914 blx 0x1b68 | g_dbus_connection_new_for_address ();
0x00005916 stmdb r8!, {r2, sb, sl, lr} | __asm ("stmdb r8!, {r2, sb, sl, lr}");
| if (r0 == 0) {
0x0000591a cbz r0, 0x5944 | goto label_21;
| }
0x0000591c add r2, sp, 8 | r2 += var_8h;
0x0000591e mov r1, r6 | r1 = r6;
0x00005920 mov r0, r7 | r0 = r7;
0x00005922 blx 0x1d10 | fcn_00001d10 ();
0x00005926 ldr r0, [sp, 8] | r0 = var_8h;
0x00005928 ldrd r1, r2, [r5] | __asm ("ldrd r1, r2, [r5]");
0x0000592c bl 0x525c | fcn_0000525c (r0, r1, r2, r3, r4, r5, r6);
0x00005930 ldr r0, [sp, 8] | r0 = var_8h;
0x00005932 blx 0x1d5c | fcn_00001d5c ();
| label_6:
0x00005936 mov r0, r5 | r0 = r5;
0x00005938 blx 0x1d44 | fcn_00001d44 ();
0x0000593a and.w r6, r4, r8, ror 16 | r6 = r4 & (r8 >>> 16);
0x0000593e blx 0x1d5c | fcn_00001d5c ();
0x00005942 b 0x58f2 |
| } while (1);
| label_21:
0x00005944 mov r0, r7 | r0 = r7;
0x00005946 blx 0x1aac | r0 = fcn_00001aac ();
0x0000594a mov r2, r0 | r2 = r0;
0x0000594c ldr r3, [pc, 0x2c] |
0x0000594e str r2, [sp] | *(sp) = r2;
0x00005950 mov r0, r4 | r0 = r4;
0x00005952 ldr r2, [pc, 0x2c] |
0x00005954 movs r1, 0x10 | r1 = 0x10;
0x00005956 add r3, pc | r3 = 0xb2d6;
0x00005958 add r2, pc | r2 = 0xb2de;
0x0000595a blx 0x1b00 | fcn_00001b00 ();
0x0000595e b 0x5936 | goto label_6;
| label_20:
0x00005960 blx 0x1d1c | fcn_00001d1c ();
0x00005964 str r5, [sp, 0xe0] | var_e0h = r5;
0x00005966 movs r0, r0 |
0x00005968 lsls r4, r3, 7 | r4 = r3 << 7;
0x0000596a movs r0, r0 |
0x0000596c ldrb r2, [r0, 0x10] | r2 = *((r0 + 0x10));
0x0000596e movs r0, r0 |
0x00005970 strb r6, [r3, 0x19] | *((r3 + 0x19)) = r6;
0x00005972 movs r0, r0 |
0x00005974 str r5, [sp, 0x18] | var_18h = r5;
0x00005976 movs r0, r0 |
0x00005978 strb r0, [r3, 0x19] | *((r3 + 0x19)) = r0;
0x0000597a movs r0, r0 |
0x0000597c ldrb r2, [r1, 0xe] | r2 = *((r1 + 0xe));
0x0000597e movs r0, r0 |
0x00005980 strb r4, [r2, 0x18] | *((r2 + 0x18)) = r4;
0x00005982 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/sbin/ntpconfd @ 0x63e0 */
| #include <stdint.h>
|
; (fcn) fcn.000063e0 () | void fcn_000063e0 (int16_t arg1) {
| int16_t var_0h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| r0 = arg1;
0x000063e0 blmi 0xfe618e44 | __asm ("blmi aav.0x00008a12");
0x000063e4 push.w {r4, r5, r6, r7, r8, lr} |
0x000063e8 mov r5, r0 | r5 = r0;
0x000063ea add r2, pc | r2 += pc;
0x000063ec ldr r0, [pc, 0x258] |
0x000063ee sub sp, 0x18 |
0x000063f0 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000063f2 add r0, pc | r0 = 0xca3e;
0x000063f4 ldr r3, [r3] | r3 = *(r3);
0x000063f6 str r3, [sp, 0x14] | var_14h = r3;
0x000063f8 mov.w r3, 0 | r3 = 0;
0x000063fc blx 0x1be0 | g_strdup_printf ()
0x00006400 ldr r3, [pc, 0x248] |
0x00006402 mov r4, r0 | r4 = r0;
0x00006404 add r3, pc |
0x00006406 ldr r3, [r3] | r3 = *(0xca54);
0x00006408 cmp r3, 0 |
| if (r3 != 0) {
0x0000640a bne 0x649a | goto label_10;
| }
0x0000640c ldr r3, [pc, 0x240] |
0x0000640e add r3, pc |
0x00006410 ldr r3, [r3, 0x14] | r3 = *(0xca76);
0x00006412 cmp r3, 0 |
| if (r3 == 0) {
0x00006414 beq.w 0x65e4 | goto label_11;
| }
| label_4:
0x00006418 movs r6, 0 | r6 = 0;
| label_6:
0x0000641a cmp r5, 0 |
| if (r5 != 0) {
0x0000641c bne.w 0x657e | goto label_12;
| }
| label_2:
0x00006420 ldr r1, [pc, 0x230] |
0x00006422 movs r7, 0 | r7 = 0;
0x00006424 add r1, pc | r1 = 0xca7c;
| label_1:
0x00006426 ldr r0, [pc, 0x230] |
0x00006428 add r0, pc | r0 = 0xca86;
0x0000642a blx 0x1c04 | r0 = g_list_remove ();
0x0000642e mov r5, r0 | r5 = r0;
0x00006430 mov r0, r7 | r0 = r7;
0x00006432 blx 0x1d44 | fcn_00001d44 ();
0x00006436 orrs.w r3, r5, r6 | r3 = r5 | r6;
| if (r3 == r5) {
0x0000643a beq.w 0x65e4 | goto label_11;
| }
0x0000643e mov r7, r6 | r7 = r6;
0x00006440 cmp r6, 0 |
| if (r6 == 0) {
0x00006442 beq.w 0x6598 | goto label_13;
| }
| label_3:
0x00006446 mov r8, r5 | r8 = r5;
0x00006448 cmp r5, 0 |
0x0000644a beq.w 0x6554 |
| while (1) {
0x0000644e ldr r0, [pc, 0x20c] |
0x00006450 mov r3, r5 | r3 = r5;
0x00006452 mov r2, r7 | r2 = r7;
0x00006454 mov r1, r4 | r1 = r4;
0x00006456 add r0, pc | r0 = 0xcab8;
0x00006458 blx 0x1c04 | r0 = g_list_remove ();
0x0000645c mov r5, r0 | r5 = r0;
0x0000645e bl 0x8238 | fcn_00008238 (r0);
0x00006462 mov r0, r5 | r0 = r5;
0x00006464 movs r5, 1 | r5 = 1;
0x00006466 blx 0x1d44 | fcn_00001d44 ();
| label_5:
0x0000646a mov r0, r4 | r0 = r4;
0x0000646c blx 0x1d44 | fcn_00001d44 ();
0x00006470 mov r0, r6 | r0 = r6;
0x00006472 blx 0x1d44 | fcn_00001d44 ();
0x00006474 stcl p6, c4, [r8], -0x100 | __asm ("stcl p6, c4, [r8], -0x100");
0x00006478 blx 0x1d44 | fcn_00001d44 ();
0x0000647c ldr r2, [pc, 0x1e0] |
0x0000647e ldr r3, [pc, 0x1c4] | r3 = *(0x6646);
0x00006480 add r2, pc | r2 = 0xcae4;
0x00006482 ldr r3, [r2, r3] | r3 = *(0xcae4);
0x00006484 ldr r2, [r3] | r2 = *(0xcae4);
0x00006486 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00006488 eors r2, r3 | r2 ^= r3;
0x0000648a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000648e bne.w 0x663a | goto label_14;
| }
0x00006492 mov r0, r5 | r0 = r5;
0x00006494 add sp, 0x18 |
0x00006496 pop.w {r4, r5, r6, r7, r8, pc} |
| label_10:
0x0000649a ldr r6, [pc, 0x1c8] |
0x0000649c add r6, pc | r6 = 0xcb06;
0x0000649e ldr r3, [r6, 8] | r3 = *(0xcb0e);
0x000064a0 cmp r3, 0 |
| if (r3 == 0) {
0x000064a2 beq 0x655e | goto label_15;
| }
0x000064a4 blx 0x1dd0 | fcn_00001dd0 ();
0x000064a8 movs r1, 1 | r1 = 1;
0x000064aa mov r3, r0 | r3 = r0;
0x000064ac ldr r0, [r6, 4] | r0 = *((r6 + 4));
0x000064ae mov r6, r3 | r6 = r3;
0x000064b0 bl 0x6350 | r0 = fcn_00006350 (r0, r1);
0x000064b4 mov r7, r0 | r7 = r0;
0x000064b6 cmp r0, 0 |
| if (r0 == 0) {
0x000064b8 beq.w 0x6622 | goto label_16;
| }
0x000064bc mov r2, r0 | r2 = r0;
0x000064be ldr r0, [pc, 0x1a8] |
0x000064c0 mov r1, r6 | r1 = r6;
0x000064c2 add r0, pc | r0 = 0xcb30;
0x000064c4 blx 0x1c04 | r0 = g_list_remove ();
0x000064c8 mov r6, r0 | r6 = r0;
0x000064ca mov r0, r7 | r0 = r7;
0x000064cc blx 0x1d44 | fcn_00001d44 ();
| label_0:
0x000064d0 cmp r6, 0 |
| if (r6 == 0) {
0x000064d2 beq.w 0x6636 | goto label_17;
| }
0x000064d6 mov.w r8, 0 | r8 = 0;
0x000064da str.w r8, [sp, 0xc] | __asm ("str.w r8, [var_ch]");
0x000064de blx 0x1ab8 | r0 = fcn_00001ab8 ();
0x000064e2 mov r7, r0 | r7 = r0;
0x000064e4 cmp r0, 0 |
| if (r0 != 0) {
0x000064e6 bne.w 0x65f2 | goto label_18;
| }
0x000064ea add r0, sp, 0xc | r0 += var_ch;
0x000064ec blx 0x1cc4 | r0 = g_strv_length ();
0x000064f0 mov r8, r0 | r8 = r0;
0x000064f2 cmp r0, 0 |
| if (r0 != 0) {
0x000064f4 bne.w 0x6606 | goto label_19;
| }
0x000064f6 strh r7, [r0, 4] | *((r0 + 4)) = r7;
0x000064f8 ldr r3, [sp, 0xc] | r3 = var_ch;
0x000064fa cmp r3, 0 |
| if (r3 == 0) {
0x000064fc beq 0x65b0 | goto label_20;
| }
0x000064fe ldr r0, [r3] | r0 = *(r3);
0x00006500 cmp r0, 0 |
| if (r0 == 0) {
0x00006502 beq 0x65b0 | goto label_20;
| }
0x00006504 add r1, sp, 0x10 | r1 += var_10h;
0x00006506 blx 0x1b50 | r0 = g_variant_check_format_string ();
0x0000650a mov r3, r0 | r3 = r0;
0x0000650c cmp r0, 0 |
| if (r0 != 0) {
0x0000650e bne 0x659e | goto label_21;
| }
0x00006510 ldr r0, [sp, 0x10] | r0 = var_10h;
0x00006512 blx 0x1be0 | r0 = g_strdup_printf ()
0x00006516 mov r8, r0 | r8 = r0;
0x00006518 blx 0x1ddc | fcn_00001ddc ();
0x0000651c ldr r0, [sp, 0xc] | r0 = var_ch;
| if (r0 != 0) {
0x0000651e cbz r0, 0x6524 |
0x00006520 blx 0x19e8 | net_device_array_free ();
| }
0x00006524 cmp.w r8, 0 |
| if (r8 == 0) {
0x00006528 beq 0x65bc | goto label_7;
| }
0x0000652a ldr r0, [pc, 0x140] |
0x0000652c mov r2, r6 | r2 = r6;
0x0000652e mov r1, r8 | r1 = r8;
0x00006530 add r0, pc | r0 = 0xcba2;
0x00006532 blx 0x1c04 | r0 = g_list_remove ();
0x00006536 mov r7, r0 | r7 = r0;
0x00006538 mov r0, r8 | r0 = r8;
0x0000653a blx 0x1d44 | fcn_00001d44 ();
0x0000653c invalid |
0x00006540 blx 0x1d44 | fcn_00001d44 ();
0x00006544 ldr r3, [pc, 0x128] |
0x00006546 add r3, pc |
0x00006548 ldr r3, [r3, 0x14] | r3 = *(0xcbce);
0x0000654a cmp r3, 0 |
| if (r3 != 0) {
0x0000654c bne 0x65ee | goto label_22;
| }
0x0000654e cmp r7, 0 |
| if (r7 == 0) {
0x00006550 beq 0x65e4 | goto label_11;
| }
0x00006552 mov r6, r7 | r6 = r7;
0x00006554 ldr r5, [pc, 0x11c] |
0x00006556 mov.w r8, 0 | r8 = 0;
0x0000655a add r5, pc | r5 = 0xcbd2;
0x0000655c b 0x644e |
| }
| label_15:
0x0000655e ldr r3, [r6, 0x10] | r3 = *((r6 + 0x10));
0x00006560 ldr r0, [r6] | r0 = *(r6);
| if (r3 == 0) {
0x00006562 cbnz r3, 0x6574 |
0x00006564 ldr r3, [r6, 0x20] | r3 = *((r6 + 0x20));
| if (r3 == 0) {
0x00006566 cbz r3, 0x6574 | goto label_23;
| }
0x00006568 ldr r2, [r3] | r2 = *(r3);
| if (r2 == 0) {
0x0000656a cbz r2, 0x6574 | goto label_23;
| }
0x0000656c ldrb r2, [r2] | r2 = *(r2);
0x0000656e cmp r2, 0 |
0x00006570 it ne |
| if (r2 != 0) {
0x00006572 movne r0, r3 | r0 = r3;
| goto label_23;
| }
| }
| label_23:
0x00006574 movs r1, 0 | r1 = 0;
0x00006576 bl 0x6350 | r0 = fcn_00006350 (r0, r1);
0x0000657a mov r6, r0 | r6 = r0;
0x0000657c b 0x64d0 | goto label_0;
| label_12:
0x0000657e ldr r3, [pc, 0xf8] |
0x00006580 ldr r0, [pc, 0xf8] |
0x00006582 add r3, pc | r3 = 0xcc00;
0x00006584 ldr r1, [r3, 8] | r1 = *(0xcc08);
0x00006586 add r0, pc | r0 = 0xcc06;
0x00006588 blx 0x1c04 | r0 = g_list_remove ();
0x0000658c mov r1, r0 | r1 = r0;
0x0000658e mov r7, r0 | r7 = r0;
0x00006590 cmp r0, 0 |
| if (r0 != 0) {
0x00006592 bne.w 0x6426 | goto label_1;
| }
0x00006596 b 0x6420 | goto label_2;
| label_13:
0x00006598 ldr r7, [pc, 0xe4] |
0x0000659a add r7, pc | r7 = 0xcc1e;
0x0000659c b 0x6446 | goto label_3;
| label_21:
0x0000659e ldr r2, [pc, 0xe4] |
0x000065a0 mov r0, r8 | r0 = r8;
0x000065a2 str r3, [sp] | *(sp) = r3;
0x000065a4 movs r1, 0x10 | r1 = 0x10;
0x000065a6 ldr r3, [pc, 0xe0] |
0x000065a8 add r2, pc | r2 = 0xcc32;
0x000065aa add r3, pc | r3 = 0xcc38;
0x000065ac blx 0x1b00 | fcn_00001b00 ();
| label_20:
0x000065b0 blx 0x1ddc | fcn_00001ddc ();
0x000065b4 ldr r0, [sp, 0xc] | r0 = var_ch;
| if (r0 != 0) {
0x000065b6 cbz r0, 0x65bc |
| label_8:
0x000065b8 blx 0x19e8 | net_device_array_free ();
| }
| label_7:
0x000065bc ldr r3, [pc, 0xcc] |
0x000065be movs r1, 0x40 | r1 = 0x40;
0x000065c0 ldr r2, [pc, 0xcc] |
0x000065c2 movs r0, 0 | r0 = 0;
0x000065c4 add r3, pc | r3 = 0xcc54;
0x000065c6 add r2, pc | r2 = 0xcc5a;
0x000065c8 blx 0x1b00 | fcn_00001b00 ();
| label_9:
0x000065cc movs r0, 0 | r0 = 0;
0x000065ce blx 0x1d44 | fcn_00001d44 ();
0x000065d2 mov r0, r6 | r0 = r6;
0x000065d4 blx 0x1d44 | fcn_00001d44 ();
0x000065d8 ldr r3, [pc, 0xb8] |
0x000065da add r3, pc |
0x000065dc ldr r3, [r3, 0x14] | r3 = *(0xcc86);
0x000065de cmp r3, 0 |
| if (r3 != 0) {
0x000065e0 bne.w 0x6418 | goto label_4;
| }
| label_11:
0x000065e4 mov.w r8, 0 | r8 = 0;
0x000065e8 mov r6, r8 | r6 = r8;
0x000065ea mov r5, r8 | r5 = r8;
0x000065ec b 0x646a | goto label_5;
| label_22:
0x000065ee mov r6, r7 | r6 = r7;
0x000065f0 b 0x641a | goto label_6;
| label_18:
0x000065f2 ldr r3, [pc, 0xa4] |
0x000065f4 mov r0, r8 | r0 = r8;
0x000065f6 ldr r2, [pc, 0xa4] |
0x000065f8 movs r1, 0x10 | r1 = 0x10;
0x000065fa str r7, [sp] | *(sp) = r7;
0x000065fc add r3, pc | r3 = 0xcc9a;
0x000065fe add r2, pc | r2 = 0xcca0;
0x00006600 blx 0x1b00 | fcn_00001b00 ();
0x00006604 b 0x65bc | goto label_7;
| label_19:
0x00006606 ldr r3, [pc, 0x98] |
0x00006608 mov r0, r7 | r0 = r7;
0x0000660a ldr r2, [pc, 0x98] |
0x0000660c movs r1, 0x40 | r1 = 0x40;
0x0000660e add r3, pc | r3 = 0xccb4;
0x00006610 add r2, pc | r2 = 0xccba;
0x00006612 blx 0x1b00 | fcn_00001b00 ();
0x00006616 blx 0x1ddc | fcn_00001ddc ();
0x0000661a ldr r0, [sp, 0xc] | r0 = var_ch;
0x0000661c cmp r0, 0 |
| if (r0 != 0) {
0x0000661e bne 0x65b8 | goto label_8;
| }
0x00006620 b 0x65bc | goto label_7;
| label_16:
0x00006622 ldr r3, [pc, 0x84] |
0x00006624 movs r1, 0x40 | r1 = 0x40;
0x00006626 ldr r2, [pc, 0x84] |
0x00006628 add r3, pc | r3 = 0xccd6;
0x0000662a add r2, pc | r2 = 0xccdc;
0x0000662c blx 0x1b00 | fcn_00001b00 ();
0x00006630 mov r0, r7 | r0 = r7;
0x00006632 blx 0x1d44 | fcn_00001d44 ();
| label_17:
0x00006636 movs r6, 0 | r6 = 0;
0x00006638 b 0x65cc | goto label_9;
| label_14:
0x0000663a blx 0x1d1c | fcn_00001d1c ();
0x0000663e nop |
0x00006640 ldrh r2, [r2, 0x10] | r2 = *((r2 + 0x10));
0x00006642 movs r0, r0 |
0x00006644 lsls r4, r3, 7 | r4 = r3 << 7;
0x00006646 movs r0, r0 |
0x00006648 ldr r6, [r6, 0x78] | r6 = *((r6 + 0x78));
0x0000664a movs r0, r0 |
0x0000664c ldrh r0, [r0, 0x20] | r0 = *((r0 + 0x20));
0x0000664e movs r0, r0 |
0x00006650 ldrh r6, [r4, 0x24] | r6 = *((r4 + 0x24));
0x00006652 movs r0, r0 |
0x00006654 strb r4, [r7, 2] | *((r7 + 2)) = r4;
0x00006656 movs r0, r0 |
0x00006658 strb r0, [r6, 2] | *((r6 + 2)) = r0;
0x0000665a movs r0, r0 |
0x0000665c strb r6, [r1, 2] | *((r1 + 2)) = r6;
0x0000665e movs r0, r0 |
0x00006660 ldrh r4, [r7, 0xa] | r4 = *((r7 + 0xa));
0x00006662 movs r0, r0 |
0x00006664 ldrh r0, [r3, 0x20] | r0 = *((r3 + 0x20));
0x00006666 movs r0, r0 |
0x00006668 ldr r2, [r7, 0x70] | r2 = *((r7 + 0x70));
0x0000666a movs r0, r0 |
0x0000666c ldr r0, [r0, 0x78] | r0 = *((r0 + 0x78));
0x0000666e movs r0, r0 |
0x00006670 ldrh r6, [r5, 0x1a] | r6 = *((r5 + 0x1a));
0x00006672 movs r0, r0 |
0x00006674 ldr r6, [r0, 0x78] | r6 = *((r0 + 0x78));
0x00006676 movs r0, r0 |
0x00006678 ldrh r2, [r0, 0x14] | r2 = *((r0 + 0x14));
0x0000667a movs r0, r0 |
0x0000667c ldr r6, [r7, 0x70] | r6 = *((r7 + 0x70));
0x0000667e movs r0, r0 |
0x00006680 ldr r6, [r0, 0x74] | r6 = *((r0 + 0x74));
0x00006682 movs r0, r0 |
0x00006684 ldr r0, [r5, 0x68] | r0 = *((r5 + 0x68));
0x00006686 movs r0, r0 |
0x00006688 ldr r6, [r6, 0x70] | r6 = *((r6 + 0x70));
0x0000668a movs r0, r0 |
0x0000668c ldr r4, [r3, 0x70] | r4 = *((r3 + 0x70));
0x0000668e movs r0, r0 |
0x00006690 ldr r6, [r6, 0x68] | r6 = *((r6 + 0x68));
0x00006692 movs r0, r0 |
0x00006694 ldrh r2, [r3, 0x16] | r2 = *((r3 + 0x16));
0x00006696 movs r0, r0 |
0x00006698 ldr r4, [r4, 0x6c] | r4 = *((r4 + 0x6c));
0x0000669a movs r0, r0 |
0x0000669c ldr r6, [r1, 0x2c] | r6 = *((r1 + 0x2c));
0x0000669e movs r0, r0 |
0x000066a0 ldr r2, [r2, 0x6c] | r2 = *((r2 + 0x6c));
0x000066a2 movs r0, r0 |
0x000066a4 ldr r4, [r4, 0x60] | r4 = *((r4 + 0x60));
0x000066a6 movs r0, r0 |
0x000066a8 ldr r0, [r7, 0x68] | r0 = *((r7 + 0x68));
0x000066aa movs r0, r0 |
0x000066ac ldr r6, [r6, 0x58] | r6 = *((r6 + 0x58));
0x000066ae 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/sbin/ntpconfd @ 0x7784 */
| #include <stdint.h>
|
; (fcn) fcn.00007784 () | void fcn_00007784 (int16_t arg1, int16_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x00007784 invalid |
0x00007788 mov r4, r0 | r4 = r0;
0x0000778a ldr r7, [pc, 0x184] |
0x0000778c mov r5, r1 | r5 = r1;
0x0000778e blx 0x1af0 | r0 = g_log ();
0x00007792 cmp r0, 5 |
0x00007794 add r7, pc | r7 = 0xf0aa;
| if (r0 > 5) {
0x00007796 bhi 0x7860 | goto label_4;
| }
| if (r4 == 0) {
0x00007798 cbz r4, 0x77da | goto label_5;
| }
0x0000779a ldr r0, [r4] | r0 = *(r4);
| if (r0 == 0) {
0x0000779c cbz r0, 0x77da | goto label_5;
| }
0x0000779e ldrb r3, [r0] | r3 = *(r0);
| if (r3 == 0) {
0x000077a0 cbz r3, 0x77da | goto label_5;
| }
0x000077a2 ldr r1, [pc, 0x170] |
0x000077a4 mov r6, r4 | r6 = r4;
0x000077a6 add r1, pc | r1 = 0xf0c0;
0x000077a8 blx 0x1f5c | r0 = fcn_00001f5c ();
| if (r0 != 0) {
0x000077ac cbnz r0, 0x77b8 | goto label_6;
| }
0x000077ae b 0x77da | goto label_5;
| do {
0x000077b0 ldr r6, [r6, 4] | r6 = *((r6 + 4));
0x000077b2 cmp r6, 0 |
| if (r6 == 0) {
0x000077b4 beq.w 0x78fe | goto label_7;
| }
| label_6:
0x000077b8 ldr r0, [r6] | r0 = *(r6);
0x000077ba bl 0x2290 | fcn_00002290 (r0);
0x000077bc stc2l p8, c2, [sb, -0]! | __asm ("stc2l p8, c2, [sb, -0]!");
0x000077c0 bne 0x77b0 |
| } while (r6 != 0);
0x000077c2 cmp r5, 0 |
| if (r5 == 0) {
0x000077c4 beq 0x786c | goto label_8;
| }
0x000077c6 ldr r1, [r6] | r1 = *(r6);
0x000077c8 cmp r1, 0 |
| if (r1 == 0) {
0x000077ca beq.w 0x7904 | goto label_9;
| }
| label_2:
0x000077ce ldr r0, [pc, 0x148] |
0x000077d0 add r0, pc | r0 = 0xf0ee;
0x000077d2 blx 0x1c04 | g_list_remove ();
0x000077d6 str r0, [r5] | *(r5) = r0;
0x000077d8 b 0x786c | goto label_8;
| label_5:
0x000077da mov r0, r4 | r0 = r4;
0x000077dc blx 0x1af0 | r0 = g_log ();
0x000077e0 cmp r0, 1 |
0x000077e2 bhi 0x784e |
| while (1) {
0x000077e4 ldr r3, [pc, 0x134] | r3 = *(0x791c);
0x000077e6 mov r0, r4 | r0 = r4;
0x000077e8 ldr r7, [r7, r3] | r7 = *((r7 + r3));
0x000077ea mov r1, r7 | r1 = r7;
0x000077ec blx 0x1d04 | fcn_00001d04 ();
0x000077f0 movs r1, 0 | r1 = 0;
0x000077f2 mov r0, r1 | r0 = r1;
0x000077f4 blx 0x1b44 | r0 = g_variant_new_int32 ();
0x000077f8 mov r4, r0 | r4 = r0;
| label_1:
0x000077fa ldr.w r8, [pc, 0x124] |
0x000077fe mov r0, r4 | r0 = r4;
0x00007800 movs r6, 1 | r6 = 1;
0x00007802 add r8, pc | r8 = 0xf128;
0x00007804 ldr.w r1, [r8] | r1 = imp.__stack_chk_guard;
0x00007808 bl 0x21fc | r0 = fcn_000021fc (r0, r1, r2);
| if (r0 != 0) {
0x0000780c cbz r0, 0x781c |
| label_0:
0x0000780e mov r0, r4 | r0 = r4;
0x00007810 mov r1, r7 | r1 = r7;
0x00007812 blx 0x1d04 | fcn_00001d04 ();
0x00007816 mov r0, r6 | r0 = r6;
0x00007818 pop.w {r3, r4, r5, r6, r7, r8, sb, pc} |
| }
0x0000781c ldr.w sb, [r8] | sb = *(r8);
0x00007820 str.w r4, [r8] | __asm ("str.w r4, [r8]");
0x00007824 bl 0x6178 | r0 = fcn_00006178 ();
0x00007828 mov r6, r0 | r6 = r0;
| if (r0 != 0) {
0x0000782a cbnz r0, 0x7874 | goto label_10;
| }
| if (r5 != 0) {
0x0000782c cbz r5, 0x7838 |
0x0000782e ldr r0, [pc, 0xf4] |
0x00007830 add r0, pc | r0 = 0xf15a;
0x00007832 blx 0x1c04 | g_list_remove ();
0x00007836 str r0, [r5] | *(r5) = r0;
| }
0x00007838 ldr r3, [pc, 0xec] |
0x0000783a mov r0, r4 | r0 = r4;
0x0000783c mov r1, r7 | r1 = r7;
0x0000783e add r3, pc | r3 = 0xf16a;
0x00007840 str.w sb, [r3] | __asm ("str.w sb, [r3]");
0x00007844 blx 0x1d04 | fcn_00001d04 ();
0x00007848 mov r0, r6 | r0 = r6;
0x0000784a pop.w {r3, r4, r5, r6, r7, r8, sb, pc} |
0x0000784e ldr r3, [pc, 0xdc] |
0x00007850 movs r1, 0x10 | r1 = 0x10;
0x00007852 ldr r2, [pc, 0xdc] |
0x00007854 movs r0, 0 | r0 = 0;
0x00007856 add r3, pc | r3 = 0xf188;
0x00007858 add r2, pc | r2 = 0xf18e;
0x0000785a blx 0x1b00 | fcn_00001b00 ();
0x0000785e b 0x77e4 |
| }
| if (r5 != 0) {
| label_4:
0x00007860 cbz r5, 0x786c |
0x00007862 ldr r0, [pc, 0xd0] |
0x00007864 add r0, pc | r0 = 0xf19e;
0x00007866 blx 0x1be0 | g_strdup_printf ()
0x0000786a str r0, [r5] | *(r5) = r0;
| }
| label_8:
0x0000786c ldr r3, [pc, 0xac] | r3 = *(0x791c);
0x0000786e movs r6, 0 | r6 = 0;
0x00007870 ldr r7, [r7, r3] | r7 = *((r7 + r3));
0x00007872 b 0x780e | goto label_0;
| label_10:
0x00007874 mov r1, r7 | r1 = r7;
0x00007876 mov r0, sb | r0 = sb;
0x00007878 blx 0x1d04 | fcn_00001d04 ();
0x0000787c ldr r3, [pc, 0xb8] |
0x0000787e add r3, pc |
0x00007880 ldr r3, [r3] | r3 = imp.__stack_chk_guard;
| if (r3 != 0) {
0x00007882 cbz r3, 0x78bc |
0x00007884 ldr.w r3, [r8, 8] | r3 = *((r8 + 8));
| if (r3 != 0) {
0x00007888 cbnz r3, 0x78bc | goto label_3;
| }
0x0000788a ldr.w r3, [r8, 0x10] | r3 = *((r8 + 0x10));
0x0000788e cmp r3, 1 |
| if (r3 != 1) {
0x00007890 beq 0x78a0 |
0x00007892 ldr.w r3, [r8, 0x20] | r3 = *((r8 + 0x20));
| if (r3 == 0) {
0x00007896 cbz r3, 0x78a0 | goto label_11;
| }
0x00007898 ldr r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x0000789a cbz r3, 0x78a0 | goto label_11;
| }
0x0000789c ldrb r3, [r3] | r3 = *(r3);
| if (r3 != 0) {
0x0000789e cbnz r3, 0x78bc | goto label_3;
| }
| }
| label_11:
0x000078a0 ldr r3, [pc, 0x98] |
0x000078a2 add r3, pc |
0x000078a4 ldr r3, [r3] | r3 = imp.__stack_chk_guard;
| if (r3 != 0) {
0x000078a6 cbz r3, 0x78b0 |
0x000078a8 ldr r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x000078aa cbz r3, 0x78b0 | goto label_12;
| }
0x000078ac ldrb r3, [r3] | r3 = *(r3);
| if (r3 != 0) {
0x000078ae cbnz r3, 0x78b8 | goto label_13;
| }
| }
| label_12:
0x000078b0 ldr r3, [pc, 0x8c] |
0x000078b2 add r3, pc |
0x000078b4 ldr r3, [r3, 0x14] | r3 = imp.__stack_chk_guard;
| if (r3 == 0) {
0x000078b6 cbz r3, 0x790a | goto label_14;
| }
| label_13:
0x000078b8 bl 0x6988 | fcn_00006988 ();
| }
| label_3:
0x000078bc ldr r4, [pc, 0x84] |
0x000078be movs r2, 5 | r2 = 5;
0x000078c0 ldr r1, [pc, 0x84] |
0x000078c2 movs r0, 0 | r0 = 0;
0x000078c4 add r4, pc |
0x000078c6 ldr r3, [r4] | r3 = imp.__stack_chk_guard;
0x000078c8 add r1, pc | r1 = 0xf214;
0x000078ca bl 0x2cb4 | fcn_00002cb4 (r0, r1, r2, r3);
0x000078ce ldr r4, [r4, 0x3c] | r4 = imp.__stack_chk_guard;
0x000078d0 mov r5, r0 | r5 = r0;
| if (r4 != 0) {
0x000078d2 cbnz r4, 0x78dc | goto label_15;
| }
0x000078d4 b 0x78e4 | goto label_16;
| do {
0x000078d6 blx r3 | uint32_t (*r3)() ();
0x000078d8 ldr r4, [r4, 4] | r4 = *((r4 + 4));
| if (r4 == 0) {
0x000078da cbz r4, 0x78e4 | goto label_16;
| }
| label_15:
0x000078dc ldr r3, [r4] | r3 = *(r4);
0x000078de mov r0, r5 | r0 = r5;
0x000078e0 cmp r3, 0 |
0x000078e2 bne 0x78d6 |
| } while (r3 != 0);
| label_16:
0x000078e4 mov r1, r7 | r1 = r7;
0x000078e6 mov r0, r5 | r0 = r5;
0x000078e8 movs r4, 0 | r4 = 0;
0x000078ea movs r6, 1 | r6 = 1;
0x000078ec blx 0x1d04 | fcn_00001d04 ();
0x000078f0 mov r0, r4 | r0 = r4;
0x000078f2 mov r1, r7 | r1 = r7;
0x000078f4 blx 0x1d04 | fcn_00001d04 ();
0x000078f8 mov r0, r6 | r0 = r6;
0x000078fa pop.w {r3, r4, r5, r6, r7, r8, sb, pc} |
| label_7:
0x000078fe ldr r3, [pc, 0x1c] | r3 = *(0x791e);
0x00007900 ldr r7, [r7, r3] | r7 = *((r7 + r3));
0x00007902 b 0x77fa | goto label_1;
| label_9:
0x00007904 ldr r1, [pc, 0x44] |
0x00007906 add r1, pc | r1 = 0xf256;
0x00007908 b 0x77ce | goto label_2;
| label_14:
0x0000790a bl 0x6754 | fcn_00006754 ();
0x0000790e b 0x78bc | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x7950 */
| #include <stdint.h>
|
; (fcn) fcn.00007950 () | void fcn_00007950 (int16_t arg1, int16_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x00007950 push.w {r3, r4, r5, r6, r7, r8, sb, lr} |
0x00007954 mov r4, r0 | r4 = r0;
0x00007956 ldr r7, [pc, 0x16c] |
0x00007958 mov r5, r1 | r5 = r1;
0x0000795a blx 0x1af0 | r0 = g_log ();
0x0000795e cmp r0, 5 |
0x00007960 add r7, pc | r7 = 0xf42a;
| if (r0 > 5) {
0x00007962 bhi 0x7a2c | goto label_4;
| }
| if (r4 == 0) {
0x00007964 cbz r4, 0x79a6 | goto label_5;
| }
0x00007966 ldr r0, [r4] | r0 = *(r4);
| if (r0 == 0) {
0x00007968 cbz r0, 0x79a6 | goto label_5;
| }
0x0000796a ldrb r3, [r0] | r3 = *(r0);
| if (r3 == 0) {
0x0000796c cbz r3, 0x79a6 | goto label_5;
| }
0x0000796e ldr r1, [pc, 0x158] |
0x00007970 mov r6, r4 | r6 = r4;
0x00007972 add r1, pc | r1 = 0xf440;
0x00007974 blx 0x1f5c | fcn_00001f5c ();
0x00007976 invalid |
0x0000797a b 0x79a6 | goto label_5;
| do {
0x0000797c ldr r6, [r6, 4] | r6 = *((r6 + 4));
0x0000797e cmp r6, 0 |
| if (r6 == 0) {
0x00007980 beq.w 0x7ab2 | goto label_6;
| }
0x00007984 ldr r0, [r6] | r0 = *(r6);
0x00007986 bl 0x2290 | r0 = fcn_00002290 (r0);
0x0000798a cmp r0, 0 |
0x0000798c bne 0x797c |
| } while (r0 != 0);
0x0000798e cmp r5, 0 |
| if (r5 == 0) {
0x00007990 beq 0x7a38 | goto label_7;
| }
0x00007992 ldr r1, [r6] | r1 = *(r6);
0x00007994 cmp r1, 0 |
| if (r1 == 0) {
0x00007996 beq.w 0x7abe | goto label_8;
| }
| label_3:
0x0000799a ldr r0, [pc, 0x130] |
0x0000799c add r0, pc | r0 = 0xf46e;
0x0000799e blx 0x1c04 | g_list_remove ();
0x000079a2 str r0, [r5] | *(r5) = r0;
0x000079a4 b 0x7a38 | goto label_7;
| label_5:
0x000079a6 mov r0, r4 | r0 = r4;
0x000079a8 blx 0x1af0 | r0 = g_log ();
0x000079ac cmp r0, 1 |
0x000079ae bhi 0x7a1a |
| while (1) {
0x000079b0 ldr r3, [pc, 0x11c] | r3 = *(0x7ad0);
0x000079b2 mov r0, r4 | r0 = r4;
0x000079b4 ldr r7, [r7, r3] | r7 = *((r7 + r3));
0x000079b6 mov r1, r7 | r1 = r7;
0x000079b8 blx 0x1d04 | fcn_00001d04 ();
0x000079bc movs r1, 0 | r1 = 0;
0x000079be mov r0, r1 | r0 = r1;
0x000079c0 blx 0x1b44 | r0 = g_variant_new_int32 ();
0x000079c4 mov r4, r0 | r4 = r0;
| label_1:
0x000079c6 ldr.w r8, [pc, 0x10c] |
0x000079ca mov r0, r4 | r0 = r4;
0x000079cc movs r6, 1 | r6 = 1;
0x000079ce add r8, pc | r8 = 0xf4a8;
0x000079d0 ldr.w r1, [r8, 4] | r1 = *(0xf4ac);
0x000079d4 bl 0x21fc | r0 = fcn_000021fc (r0, r1, r2);
| if (r0 != 0) {
0x000079d8 cbz r0, 0x79e8 |
| label_0:
0x000079da mov r0, r4 | r0 = r4;
0x000079dc mov r1, r7 | r1 = r7;
0x000079de blx 0x1d04 | fcn_00001d04 ();
0x000079e2 mov r0, r6 | r0 = r6;
0x000079e4 pop.w {r3, r4, r5, r6, r7, r8, sb, pc} |
| }
0x000079e8 ldr.w sb, [r8, 4] | sb = *((r8 + 4));
0x000079ec str.w r4, [r8, 4] | __asm ("str.w r4, [r8, 4]");
0x000079f0 bl 0x6178 | fcn_00006178 ();
0x000079f2 smlal r4, r6, r2, r6 | __asm ("smlal r4, r6, r2, r6");
| if (r0 != 0) {
0x000079f6 cbnz r0, 0x7a40 | goto label_9;
| }
| if (r5 != 0) {
0x000079f8 cbz r5, 0x7a04 |
0x000079fa ldr r0, [pc, 0xdc] |
0x000079fc add r0, pc | r0 = 0xf4da;
0x000079fe blx 0x1c04 | g_list_remove ();
0x00007a02 str r0, [r5] | *(r5) = r0;
| }
0x00007a04 ldr r3, [pc, 0xd4] |
0x00007a06 mov r0, r4 | r0 = r4;
0x00007a08 mov r1, r7 | r1 = r7;
0x00007a0a add r3, pc | r3 = 0xf4ea;
0x00007a0c str.w sb, [r3, 4] | __asm ("str.w sb, [r3, 4]");
0x00007a10 blx 0x1d04 | fcn_00001d04 ();
0x00007a14 mov r0, r6 | r0 = r6;
0x00007a16 pop.w {r3, r4, r5, r6, r7, r8, sb, pc} |
0x00007a1a ldr r3, [pc, 0xc4] |
0x00007a1c movs r1, 0x10 | r1 = 0x10;
0x00007a1e ldr r2, [pc, 0xc4] |
0x00007a20 movs r0, 0 | r0 = 0;
0x00007a22 add r3, pc | r3 = 0xf508;
0x00007a24 add r2, pc | r2 = 0xf50e;
0x00007a26 blx 0x1b00 | fcn_00001b00 ();
0x00007a2a b 0x79b0 |
| }
| if (r5 != 0) {
| label_4:
0x00007a2c cbz r5, 0x7a38 |
0x00007a2e ldr r0, [pc, 0xb8] |
0x00007a30 add r0, pc | r0 = 0xf51e;
0x00007a32 blx 0x1be0 | g_strdup_printf ()
0x00007a36 str r0, [r5] | *(r5) = r0;
| }
| label_7:
0x00007a38 ldr r3, [pc, 0x94] | r3 = *(0x7ad0);
0x00007a3a movs r6, 0 | r6 = 0;
0x00007a3c ldr r7, [r7, r3] | r7 = *((r7 + r3));
0x00007a3e b 0x79da | goto label_0;
| label_9:
0x00007a40 mov r1, r7 | r1 = r7;
0x00007a42 mov r0, sb | r0 = sb;
0x00007a44 blx 0x1d04 | fcn_00001d04 ();
0x00007a48 ldr r3, [pc, 0xa0] |
0x00007a4a add r3, pc |
0x00007a4c ldr r3, [r3] | r3 = *(0xf53a);
| if (r3 != 0) {
0x00007a4e cbz r3, 0x7a70 |
0x00007a50 ldr.w r3, [r8, 8] | r3 = *((r8 + 8));
| if (r3 == 0) {
0x00007a54 cbz r3, 0x7a70 | goto label_2;
| }
0x00007a56 ldr.w r3, [r8, 4] | r3 = *((r8 + 4));
| if (r3 != 0) {
0x00007a5a cbz r3, 0x7a64 |
0x00007a5c ldr r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x00007a5e cbz r3, 0x7a64 | goto label_10;
| }
0x00007a60 ldrb r3, [r3] | r3 = *(r3);
| if (r3 != 0) {
0x00007a62 cbnz r3, 0x7a6c | goto label_11;
| }
| }
| label_10:
0x00007a64 ldr r3, [pc, 0x88] |
0x00007a66 add r3, pc |
0x00007a68 ldr r3, [r3, 0x14] | r3 = *(0xf56e);
| if (r3 == 0) {
0x00007a6a cbz r3, 0x7ab8 | goto label_12;
| }
| label_11:
0x00007a6c bl 0x6988 | fcn_00006988 ();
| }
| label_2:
0x00007a70 ldr r4, [pc, 0x80] |
0x00007a72 movs r2, 5 | r2 = 5;
0x00007a74 ldr r1, [pc, 0x80] |
0x00007a76 movs r0, 0 | r0 = 0;
0x00007a78 add r4, pc |
0x00007a7a ldr r3, [r4, 4] | r3 = *(0xf574);
0x00007a7c add r1, pc | r1 = 0xf578;
0x00007a7e bl 0x2cb4 | fcn_00002cb4 (r0, r1, r2, r3);
0x00007a82 ldr r4, [r4, 0x3c] | r4 = *(0xf5ac);
0x00007a84 mov r5, r0 | r5 = r0;
| if (r4 != 0) {
0x00007a86 cbnz r4, 0x7a90 | goto label_13;
| }
0x00007a88 b 0x7a98 | goto label_14;
| do {
0x00007a8a blx r3 | uint32_t (*r3)() ();
0x00007a8c ldr r4, [r4, 4] | r4 = *((r4 + 4));
| if (r4 == 0) {
0x00007a8e cbz r4, 0x7a98 | goto label_14;
| }
| label_13:
0x00007a90 ldr r3, [r4] | r3 = *(r4);
0x00007a92 mov r0, r5 | r0 = r5;
0x00007a94 cmp r3, 0 |
0x00007a96 bne 0x7a8a |
| } while (r3 != 0);
| label_14:
0x00007a98 mov r1, r7 | r1 = r7;
0x00007a9a mov r0, r5 | r0 = r5;
0x00007a9c movs r4, 0 | r4 = 0;
0x00007a9e movs r6, 1 | r6 = 1;
0x00007aa0 blx 0x1d04 | fcn_00001d04 ();
0x00007aa4 mov r0, r4 | r0 = r4;
0x00007aa6 mov r1, r7 | r1 = r7;
0x00007aa8 blx 0x1d04 | fcn_00001d04 ();
0x00007aac mov r0, r6 | r0 = r6;
0x00007aae pop.w {r3, r4, r5, r6, r7, r8, sb, pc} |
| label_6:
0x00007ab2 ldr r3, [pc, 0x1c] | r3 = *(0x7ad2);
0x00007ab4 ldr r7, [r7, r3] | r7 = *((r7 + r3));
0x00007ab6 b 0x79c6 | goto label_1;
| label_12:
0x00007ab8 bl 0x6754 | fcn_00006754 ();
0x00007abc b 0x7a70 | goto label_2;
| label_8:
0x00007abe ldr r1, [pc, 0x3c] |
0x00007ac0 add r1, pc | r1 = 0xf5c2;
0x00007ac2 b 0x799a | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x7b00 */
| #include <stdint.h>
|
; (fcn) fcn.00007b00 () | void fcn_00007b00 (uint32_t arg1, int16_t arg2) {
| int16_t var_4h;
| r0 = arg1;
| r1 = arg2;
0x00007b00 push {r4, r5, r6, lr} |
0x00007b02 cmp r0, 1 |
0x00007b04 ldr r6, [pc, 0xa4] |
0x00007b06 sub sp, 8 |
0x00007b08 add r6, pc | r6 = 0xf6b8;
| if (r0 > 1) {
0x00007b0a bhi 0x7b92 | goto label_1;
| }
0x00007b0c ldr r4, [pc, 0xa0] |
0x00007b0e add r4, pc | r4 = 0xf6c2;
0x00007b10 ldr r3, [r4, 0x10] | r3 = *(0xf6d2);
0x00007b12 cmp r3, r0 |
| if (r3 == r0) {
0x00007b14 bne 0x7b1c |
| label_0:
0x00007b16 movs r0, 1 | r0 = 1;
0x00007b18 add sp, 8 |
0x00007b1a pop {r4, r5, r6, pc} |
| }
0x00007b1c ldr r1, [pc, 0x94] |
0x00007b1e mov r3, r4 | r3 = r4;
0x00007b20 str r0, [r3, 0x10]! | *((r3 += 0x10)) = r0;
0x00007b24 movs r2, 1 | r2 = 1;
0x00007b26 movs r0, 0 | r0 = 0;
0x00007b28 add r1, pc | r1 = 0xf6e0;
0x00007b2a bl 0x2cb4 | r0 = fcn_00002cb4 (r0, r1, r2, r3);
0x00007b2e mov r5, r0 | r5 = r0;
0x00007b30 bl 0x6178 | fcn_00006178 ();
0x00007b34 ldr r4, [r4, 0x3c] | r4 = *((r4 + 0x3c));
| if (r4 != 0) {
0x00007b36 cbnz r4, 0x7b40 | goto label_2;
| }
0x00007b38 b 0x7b48 | goto label_3;
| do {
0x00007b3a blx r3 | uint32_t (*r3)() ();
0x00007b3c ldr r4, [r4, 4] | r4 = *((r4 + 4));
| if (r4 == 0) {
0x00007b3e cbz r4, 0x7b48 | goto label_3;
| }
| label_2:
0x00007b40 ldr r3, [r4] | r3 = *(r4);
0x00007b42 mov r0, r5 | r0 = r5;
0x00007b44 cmp r3, 0 |
0x00007b46 bne 0x7b3a |
| } while (r3 != 0);
| label_3:
0x00007b48 ldr r3, [pc, 0x6c] |
0x00007b4a add r3, pc |
0x00007b4c ldr r3, [r3] | r3 = *(0xf706);
| if (r3 == 0) {
0x00007b4e cbz r3, 0x7b82 | goto label_4;
| }
0x00007b50 ldr r3, [pc, 0x68] |
0x00007b52 add r3, pc | r3 = 0xf712;
0x00007b54 ldr r2, [r3, 8] | r2 = *(0xf71a);
| if (r2 != 0) {
0x00007b56 cbnz r2, 0x7b82 | goto label_4;
| }
0x00007b58 ldr r2, [r3, 0x20] | r2 = *((r3 + 0x20));
| if (r2 == 0) {
0x00007b5a cbz r2, 0x7b82 | goto label_4;
| }
0x00007b5c ldr r2, [r2] | r2 = *(r2);
| if (r2 == 0) {
0x00007b5e cbz r2, 0x7b82 | goto label_4;
| }
0x00007b60 ldrb r2, [r2] | r2 = *(r2);
| if (r2 == 0) {
0x00007b62 cbz r2, 0x7b82 | goto label_4;
| }
0x00007b64 ldr r2, [r3, 0x10] | r2 = *((r3 + 0x10));
0x00007b66 cmp r2, 1 |
| if (r2 == 1) {
0x00007b68 bne 0x7b7e |
0x00007b6a ldr r3, [r3] | r3 = *(r3);
| if (r3 != 0) {
0x00007b6c cbz r3, 0x7b76 |
0x00007b6e ldr r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x00007b70 cbz r3, 0x7b76 | goto label_5;
| }
0x00007b72 ldrb r3, [r3] | r3 = *(r3);
| if (r3 != 0) {
0x00007b74 cbnz r3, 0x7b7e | goto label_6;
| }
| }
| label_5:
0x00007b76 ldr r3, [pc, 0x48] |
0x00007b78 add r3, pc |
0x00007b7a ldr r3, [r3, 0x14] | r3 = *(0xf752);
| if (r3 == 0) {
0x00007b7c cbz r3, 0x7ba6 | goto label_7;
| }
| }
| label_6:
0x00007b7e bl 0x6988 | fcn_00006988 ();
| do {
| label_4:
0x00007b82 ldr r3, [pc, 0x40] | r3 = *(0x7bc6);
0x00007b84 mov r0, r5 | r0 = r5;
0x00007b86 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00007b88 mov r1, r3 | r1 = r3;
0x00007b8a str r3, [sp, 4] | var_4h = r3;
0x00007b8c blx 0x1d04 | fcn_00001d04 ();
0x00007b90 b 0x7b16 | goto label_0;
| label_1:
0x00007b92 mov r4, r1 | r4 = r1;
| if (r1 != 0) {
0x00007b94 cbz r1, 0x7ba0 |
0x00007b96 ldr r0, [pc, 0x30] |
0x00007b98 add r0, pc | r0 = 0xf766;
0x00007b9a blx 0x1be0 | g_strdup_printf ()
0x00007b9e str r0, [r4] | *(r4) = r0;
| }
0x00007ba0 movs r0, 0 | r0 = 0;
0x00007ba2 add sp, 8 |
0x00007ba4 pop {r4, r5, r6, pc} |
| label_7:
0x00007ba6 bl 0x6754 | fcn_00006754 ();
0x00007baa b 0x7b82 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/ntpconfd @ 0x8110 */
| #include <stdint.h>
|
; (fcn) fcn.00008110 () | void fcn_00008110 () {
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
0x00008110 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00008114 movs r5, 0 | r5 = 0;
0x00008116 ldr r6, [pc, 0xf4] |
0x00008118 sub sp, 0x1c |
0x0000811a add r3, sp, 0x10 | r3 += var_10h;
0x0000811c mov r2, r5 | r2 = r5;
0x0000811e ldr r4, [pc, 0xf0] | r4 = *(0x8212);
0x00008120 add r1, sp, 0xc | r1 += var_ch_2;
0x00008122 add r6, pc | r6 = 0x10334;
0x00008124 ldr r0, [pc, 0xec] |
0x00008126 ldr r4, [r6, r4] |
0x00008128 add r0, pc | r0 = 0x10340;
0x0000812a ldr r4, [r4] | r4 = *(0x10334);
0x0000812c str r4, [sp, 0x14] | var_14h = r4;
0x0000812e mov.w r4, 0 | r4 = 0;
0x00008132 strd r5, r5, [sp, 0xc] | __asm ("strd r5, r5, [sp, 0xc]");
0x00008136 blx 0x1cd0 | r0 = g_dbus_connection_emit_signal ();
0x0000813a cmp r0, 0 |
| if (r0 == 0) {
0x0000813c beq 0x81fe | goto label_3;
| }
0x0000813e ldr r1, [pc, 0xd8] |
0x00008140 mov r2, r5 | r2 = r5;
0x00008142 ldr r0, [sp, 0xc] | r0 = var_ch_2;
0x00008144 add r1, pc | r1 = 0x10362;
0x00008146 blx 0x1c64 | r0 = g_variant_ref_sink ();
0x0000814a mov r7, r0 | r7 = r0;
0x0000814c cmp r0, 0 |
| if (r0 == 0) {
0x0000814e beq 0x81fe | goto label_3;
| }
0x00008150 ldr.w fp, [r0] | fp = *(r0);
0x00008154 cmp.w fp, 0 |
| if (fp == 0) {
0x00008158 beq 0x8204 | goto label_4;
| }
0x0000815a ldr.w sl, [pc, 0xc0] |
0x0000815e mov r6, r0 | r6 = r0;
0x00008160 ldr.w sb, [pc, 0xbc] |
0x00008164 ldr.w r8, [pc, 0xbc] |
0x00008168 add sl, pc | sl = 0x1038a;
0x0000816a add sb, pc | sb = 0x1038e;
0x0000816c add r8, pc | r8 = 0x10394;
0x0000816e b 0x81a0 | goto label_1;
| label_0:
0x00008170 movs r3, 0 | r3 = 0;
0x00008172 mov r0, fp | r0 = fp;
0x00008174 strb r3, [r4], 1 | *(r4) = r3;
| r4++;
0x00008178 blx 0x1be0 | r0 = g_strdup_printf ()
0x0000817c mov r1, r0 | r1 = r0;
0x0000817e mov r0, r5 | r0 = r5;
0x00008180 blx 0x1b44 | r0 = g_variant_new_int32 ();
0x00008184 mov r5, r0 | r5 = r0;
0x00008186 mov r0, r4 | r0 = r4;
0x00008188 blx 0x1be0 | r0 = g_strdup_printf ()
0x0000818c mov r1, r0 | r1 = r0;
0x0000818e mov r0, r5 | r0 = r5;
0x00008190 blx 0x1b44 | r0 = g_variant_new_int32 ();
0x00008194 mov r5, r0 | r5 = r0;
| do {
0x00008196 ldr fp, [r6, 4]! | fp = *((r6 += 4));
0x0000819a cmp.w fp, 0 |
| if (fp == 0) {
0x0000819e beq 0x81ce | goto label_2;
| }
| label_1:
0x000081a0 ldrb.w r3, [fp] | r3 = *(fp);
0x000081a4 cmp r3, 0 |
0x000081a6 beq 0x8196 |
| } while (r3 == 0);
0x000081a8 movs r1, 0x20 | r1 = 0x20;
0x000081aa mov r0, fp | r0 = fp;
0x000081ac blx 0x1f2c | r0 = fcn_00001f2c ();
0x000081b0 mov r4, r0 | r4 = r0;
0x000081b2 cmp r0, 0 |
| if (r0 != 0) {
0x000081b4 bne 0x8170 | goto label_0;
| }
0x000081b6 strd fp, r8, [sp] | __asm ("strd fp, r8, [sp]");
0x000081ba mov r3, sl | r3 = sl;
0x000081bc mov r2, sb | r2 = sb;
0x000081be movs r1, 0x10 | r1 = 0x10;
0x000081c0 blx 0x1b00 | fcn_00001b00 ();
0x000081c4 ldr fp, [r6, 4]! | fp = *((r6 += 4));
0x000081c8 cmp.w fp, 0 |
| if (fp != 0) {
0x000081cc bne 0x81a0 | goto label_1;
| }
| do {
| label_2:
0x000081ce ldr r0, [sp, 0xc] | r0 = var_ch_2;
0x000081d0 blx 0x1d44 | fcn_00001d44 ();
0x000081d4 mov r0, r7 | r0 = r7;
0x000081d6 blx 0x1cdc | g_list_free_full ();
0x000081da ldr r0, [sp, 0x10] | r0 = var_10h;
| if (r0 != 0) {
0x000081dc cbz r0, 0x81e2 |
0x000081de blx 0x1a60 | g_error_free ();
| }
0x000081e2 ldr r2, [pc, 0x44] |
0x000081e4 ldr r3, [pc, 0x28] | r3 = *(0x8210);
0x000081e6 add r2, pc | r2 = 0x10414;
0x000081e8 ldr r3, [r2, r3] | r3 = *(0x10414);
0x000081ea ldr r2, [r3] | r2 = *(0x10414);
0x000081ec ldr r3, [sp, 0x14] | r3 = var_14h;
0x000081ee eors r2, r3 | r2 ^= r3;
0x000081f0 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000081f4 bne 0x8208 | goto label_5;
| }
0x000081f6 mov r0, r5 | r0 = r5;
0x000081f8 add sp, 0x1c |
0x000081fa pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_3:
0x000081fe movs r5, 0 | r5 = 0;
0x00008200 mov r7, r5 | r7 = r5;
0x00008202 b 0x81ce |
| } while (1);
| label_4:
0x00008204 mov r5, fp | r5 = fp;
0x00008206 b 0x81ce | goto label_2;
| label_5:
0x00008208 blx 0x1d1c | fcn_00001d1c ();
0x0000820c ldr r2, [r3, 0x4c] | r2 = *((r3 + 0x4c));
0x0000820e movs r0, r0 |
0x00008210 lsls r4, r3, 7 | r4 = r3 << 7;
0x00008212 movs r0, r0 |
0x00008214 ldr r4, [r3, r3] | r4 = *((r3 + r3));
0x00008216 movs r0, r0 |
0x00008218 strh r0, [r4, r1] | *((r4 + r1)) = r0;
0x0000821a movs r0, r0 |
0x0000821c strh r0, [r7, r5] | *((r7 + r5)) = r0;
0x0000821e movs r0, r0 |
0x00008220 ldr r6, [r6, r2] | r6 = *((r6 + r2));
0x00008222 movs r0, r0 |
0x00008224 ldr r0, [r3, r2] | r0 = *((r3 + r2));
0x00008226 movs r0, r0 |
0x00008228 ldr r6, [r2, 0x40] | r6 = *((r2 + 0x40));
0x0000822a movs r0, r0 |
| }
[*] Function printf used 23 times ntpconfd