[*] Binary protection state of libaxact.so.0.0
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libaxact.so.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libaxact.so.0.0 @ 0xd07c */
| #include <stdint.h>
|
; (fcn) fcn.0000d07c () | void fcn_0000d07c (int16_t arg_40h, int16_t arg_a0h, int16_t arg_110h, int16_t arg_1c0h, int16_t arg_1c8h, int16_t arg_1e8h, int16_t arg_270h, int16_t arg_290h, int16_t arg_348h, int16_t arg_388h, int16_t arg_3e8h, uint32_t arg1, int16_t arg3, int16_t arg4) {
| int16_t var_0h_2;
| r0 = arg1;
| r2 = arg3;
| r3 = arg4;
| label_2:
0x00008430 invalid | void (*0x8434)() ();
0x0000d07c push.w {r4, r5, r6, r7, r8, lr} |
0x0000d080 sub sp, 8 |
0x0000d082 cmp r0, 0 |
| if (var_0h_2 == ) {
0x0000d084 beq 0xd110 | goto label_3;
| }
0x0000d086 mov r6, r3 | r6 = r3;
0x0000d088 mov r7, r2 | r7 = r2;
0x0000d08a orrs.w r3, r2, r6 | r3 = r2 | r6;
| if (r3 == r2) {
0x0000d08e beq 0xd0f8 | goto label_4;
| }
0x0000d090 mov r5, r0 | r5 = r0;
0x0000d092 ldr r0, [r0, 0x10] | r0 = *(var_0h_2x10);
0x0000d094 blx 0x8390 | r0 = g_strdup_printf ()
0x0000d098 mov r4, r0 | r4 = r0;
0x0000d09a cmp r0, 0 |
| if (r0 == 0) {
0x0000d09c beq 0xd126 | goto label_5;
| }
0x0000d09e mov.w ip, 0 |
0x0000d0a2 mov r1, ip | r1 = ip;
| label_0:
0x0000d0a4 mov.w r8, 0 | r8 = 0;
0x0000d0a8 b 0xd0ce |
| while (r0 != 0) {
0x0000d0aa ldr r1, [r0] | r1 = *(r0);
0x0000d0ac ldr r0, [r5] | r0 = *(r5);
0x0000d0ae blx 0x8ba0 | g_hash_table_contains ();
0x0000d0b2 mov r0, r4 | r0 = r4;
0x0000d0b4 str.w r8, [r4] | __asm ("str.w r8, [r4]");
0x0000d0b8 blx 0x883c | fcn_0000883c ();
0x0000d0bc ldr r0, [r5, 0x10] | r0 = *((r5 + 0x10));
0x0000d0be blx 0x8390 | g_strdup_printf ()
0x0000d0c2 mov.w ip, 0 |
0x0000d0c6 mov r4, r0 | r4 = r0;
0x0000d0c8 mov r1, ip | r1 = ip;
0x0000d0ca cmp r0, 0 |
| if (r0 == 0) {
0x0000d0cc beq 0xd154 | goto label_6;
| }
| label_1:
0x0000d0ce cmp r1, r6 |
0x0000d0d0 it eq |
| if (r1 == r6) {
0x0000d0d2 cmpeq ip, r7 | __asm ("cmpeq ip, r7");
| }
| if (r1 != r6) {
0x0000d0d4 bne 0xd14e | goto label_7;
| }
0x0000d0d6 ldr r0, [r5, 0x10] | r0 = *((r5 + 0x10));
0x0000d0d8 blx 0x8a74 | r0 = g_bytes_unref ();
0x0000d0dc mov r4, r0 | r4 = r0;
0x0000d0de cmp r0, 0 |
0x0000d0e0 bne 0xd0aa |
| }
0x0000d0e2 ldr r3, [pc, 0x98] |
0x0000d0e4 movs r2, 0xd9 | r2 = 0xd9;
0x0000d0e6 ldr r4, [pc, 0x98] |
0x0000d0e8 ldr r1, [pc, 0x98] |
0x0000d0ea add r3, pc | r3 = 0x1a26c;
0x0000d0ec add r4, pc | r4 = 0x1a272;
0x0000d0ee adds r3, 0x24 | r3 += 0x24;
0x0000d0f0 add r1, pc | r1 = 0x1a278;
0x0000d0f2 str r4, [sp] | *(sp) = r4;
0x0000d0f4 blx 0x8db0 | g_ascii_strtoll ();
| label_4:
0x0000d0f8 ldr r3, [pc, 0x8c] |
0x0000d0fa movs r2, 0xcd | r2 = 0xcd;
0x0000d0fc ldr r4, [pc, 0x8c] |
0x0000d0fe movs r0, 0 | r0 = 0;
0x0000d100 ldr r1, [pc, 0x8c] |
0x0000d102 add r3, pc | r3 = 0x1a28e;
0x0000d104 add r4, pc | r4 = 0x1a294;
0x0000d106 adds r3, 0x24 | r3 += 0x24;
0x0000d108 add r1, pc | r1 = 0x1a29c;
0x0000d10a str r4, [sp] | *(sp) = r4;
0x0000d10c blx 0x8db0 | g_ascii_strtoll ();
| label_3:
0x0000d110 ldr r3, [pc, 0x80] |
0x0000d112 movs r2, 0xcc | r2 = 0xcc;
0x0000d114 ldr r4, [pc, 0x80] |
0x0000d116 ldr r1, [pc, 0x84] |
0x0000d118 add r3, pc | r3 = 0x1a2b0;
0x0000d11a add r4, pc | r4 = 0x1a2b6;
0x0000d11c adds r3, 0x24 | r3 += 0x24;
0x0000d11e add r1, pc | r1 = 0x1a2c0;
0x0000d120 str r4, [sp] | *(sp) = r4;
0x0000d122 blx 0x8db0 | g_ascii_strtoll ();
| label_5:
0x0000d126 mov r0, r5 | r0 = r5;
0x0000d128 bl 0xcff0 | r0 = fcn_0000cff0 (r0, r1, r2, r3, r4, r5, r6);
0x0000d12c cmp r0, r7 |
0x0000d12e mov ip, r0 |
0x0000d130 sbcs.w r3, r1, r6 | __asm ("sbcs.w r3, r1, r6");
| if (r0 >= r7) {
0x0000d134 bhs 0xd0a4 | goto label_0;
| }
0x0000d136 ldr r3, [pc, 0x68] |
0x0000d138 movs r2, 0xd3 | r2 = 0xd3;
0x0000d13a ldr r5, [pc, 0x68] |
0x0000d13c mov r0, r4 | r0 = r4;
0x0000d13e ldr r1, [pc, 0x68] |
0x0000d140 add r3, pc | r3 = 0x1a2e6;
0x0000d142 add r5, pc | r5 = 0x1a2ec;
0x0000d144 adds r3, 0x24 | r3 += 0x24;
0x0000d146 add r1, pc | r1 = 0x1a2f4;
0x0000d148 str r5, [sp] | *(sp) = r5;
0x0000d14a blx 0x8db0 | g_ascii_strtoll ();
| label_7:
0x0000d14e add sp, 8 |
0x0000d150 pop.w {r4, r5, r6, r7, r8, pc} |
| label_6:
0x0000d154 mov r0, r5 | r0 = r5;
0x0000d156 bl 0xcff0 | r0 = fcn_0000cff0 (r0, r1, r2, r3, r4, r5, r6);
0x0000d15a cmp r0, r7 |
0x0000d15c mov ip, r0 |
0x0000d15e sbcs.w r3, r1, r6 | __asm ("sbcs.w r3, r1, r6");
| if (r0 >= r7) {
0x0000d162 bhs 0xd0ce | goto label_1;
| }
0x0000d164 ldr r3, [pc, 0x44] |
0x0000d166 movs r2, 0xe8 | r2 = 0xe8;
0x0000d168 ldr r5, [pc, 0x44] |
0x0000d16a mov r0, r4 | r0 = r4;
0x0000d16c ldr r1, [pc, 0x44] |
0x0000d16e add r3, pc | r3 = 0x1a31e;
0x0000d170 add r5, pc | r5 = 0x1a324;
0x0000d172 adds r3, 0x24 | r3 += 0x24;
0x0000d174 add r1, pc | r1 = 0x1a32c;
0x0000d176 str r5, [sp] | *(sp) = r5;
0x0000d178 blx 0x8db0 | g_ascii_strtoll ();
0x0000d17c adr r0, 0x198 | r0 = 0x198;
0x0000d17e movs r0, r0 |
0x0000d180 ldr r4, [sp, 0x1c0] | r4 = *(arg_1c0h);
0x0000d182 movs r0, r0 |
0x0000d184 ldr r4, [sp, 0xa0] | r4 = *(arg_a0h);
0x0000d186 movs r0, r0 |
0x0000d188 adr r0, 0x138 | r0 = 0x138;
0x0000d18a movs r0, r0 |
0x0000d18c ldr r4, [sp, 0x270] | r4 = *(arg_270h);
0x0000d18e movs r0, r0 |
0x0000d190 ldr r4, [sp, 0x40] | r4 = *(arg_40h);
0x0000d192 movs r0, r0 |
0x0000d194 adr r0, 0xe0 | r0 = 0xe0;
0x0000d196 movs r0, r0 |
0x0000d198 ldr r4, [sp, 0x1e8] | r4 = *(arg_1e8h);
0x0000d19a movs r0, r0 |
0x0000d19c ldr r3, [sp, 0x3e8] | r3 = *(arg_3e8h);
0x0000d19e movs r0, r0 |
0x0000d1a0 adr r0, 0x40 | r0 = 0x40;
0x0000d1a2 movs r0, r0 |
0x0000d1a4 ldr r4, [sp, 0x1c8] | r4 = *(arg_1c8h);
0x0000d1a6 movs r0, r0 |
0x0000d1a8 ldr r3, [sp, 0x348] | r3 = *(arg_348h);
0x0000d1aa movs r0, r0 |
0x0000d1ac ldr r7, [sp, 0x388] | r7 = *(arg_388h);
0x0000d1ae movs r0, r0 |
0x0000d1b0 ldr r4, [sp, 0x110] | r4 = *(arg_110h);
0x0000d1b2 movs r0, r0 |
0x0000d1b4 ldr r3, [sp, 0x290] | r3 = *(arg_290h);
0x0000d1b6 movs r0, r0 |
0x0000d1b8 b.w 0x8430 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libaxact.so.0.0 @ 0x12710 */
| #include <stdint.h>
|
; (fcn) fcn.00012710 () | void fcn_00012710 (int16_t arg1, int16_t arg2) {
| int16_t var_0h_2;
| int16_t var_4h;
| r0 = arg1;
| r1 = arg2;
0x00012710 push {r4, r5, r6, r7, lr} |
0x00012712 sub sp, 0xc |
0x00012714 ldr r7, [r0, 0xc] | r7 = *((r0 + 0xc));
| if (r7 != 0) {
0x00012716 cbz r7, 0x12730 |
0x00012718 ldr r4, [pc, 0x5c] |
0x0001271a mov.w r2, 0x1be | r2 = 0x1be;
0x0001271e ldr r3, [pc, 0x5c] |
0x00012720 movs r0, 0 | r0 = 0;
0x00012722 ldr r1, [pc, 0x5c] |
0x00012724 add r4, pc | r4 = 0x24ea0;
0x00012726 add r3, pc | r3 = 0x24ea8;
0x00012728 str r4, [sp] | *(sp) = r4;
0x0001272a add r1, pc | r1 = 0x24eb0;
0x0001272c blx 0x8db0 | r0 = g_ascii_strtoll ();
| }
0x00012730 mov r4, r0 | r4 = r0;
0x00012732 ldr r0, [r0, 0x2c] | r0 = *((r0 + 0x2c));
0x00012734 mov r6, r1 | r6 = r1;
0x00012736 blx 0x8390 | r0 = g_strdup_printf ()
0x0001273a mov r5, r0 | r5 = r0;
| if (r0 == 0) {
0x0001273c cbnz r0, 0x12760 |
0x0001273e ldr r0, [r4, 0x2c] | r0 = *((r4 + 0x2c));
0x00012740 blx 0x87c4 | fcn_000087c4 ();
0x00012744 mov r2, r5 | r2 = r5;
0x00012746 ldr r5, [pc, 0x3c] |
0x00012748 movs r3, 1 | r3 = 1;
0x0001274a mov r1, r0 | r1 = r0;
0x0001274c str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x0001274e mov r0, r6 | r0 = r6;
0x00012750 add r5, pc | r5 = 0x24eda;
0x00012752 str r4, [sp, 4] | var_4h = r4;
0x00012754 ldr r3, [r4, 0x28] | r3 = *((r4 + 0x28));
0x00012756 str r5, [sp] | *(sp) = r5;
0x00012758 blx 0x8d58 | fcn_00008d58 ();
0x0001275c add sp, 0xc |
0x0001275e pop {r4, r5, r6, r7, pc} |
| }
0x00012760 ldr r4, [pc, 0x24] |
0x00012762 movw r2, 0x1bf | r2 = 0x1bf;
0x00012766 ldr r3, [pc, 0x24] |
0x00012768 mov r0, r7 | r0 = r7;
0x0001276a ldr r1, [pc, 0x24] |
0x0001276c add r4, pc | r4 = 0x24ef8;
0x0001276e add r3, pc | r3 = 0x24f00;
0x00012770 str r4, [sp] | *(sp) = r4;
0x00012772 add r1, pc | r1 = 0x24f08;
0x00012774 blx 0x8db0 | g_ascii_strtoll ();
0x00012778 str r4, [r4, 0x40] | *((r4 + 0x40)) = r4;
0x0001277a movs r0, r0 |
0x0001277c ldr r2, [r1, 0x18] | r2 = *(0x24f20);
0x0001277e movs r0, r0 |
0x00012780 str r6, [r0, 0x40] | *((r0 + 0x40)) = r6;
0x00012782 movs r0, r0 |
0x00012784 lsrs r1, r4, 0xe | r1 = r4 >> 0xe;
0x00012786 movs r0, r0 |
0x00012788 str r4, [r5, 0x3c] | *((r5 + 0x3c)) = r4;
0x0001278a movs r0, r0 |
0x0001278c ldr r2, [r0, 0x14] | r2 = *((r0 + 0x14));
0x0001278e movs r0, r0 |
0x00012790 str r6, [r7, 0x38] | *((r7 + 0x38)) = r6;
0x00012792 movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libaxact.so.0.0 @ 0x13848 */
| #include <stdint.h>
|
; (fcn) sym.msg_if_gio_send_bytes () | void msg_if_gio_send_bytes (uint32_t arg1, uint32_t arg2, uint32_t arg3) {
| int16_t var_0h;
| int16_t var_0h_3;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| label_0:
0x000080a0 invalid | void (*0x80a4)() ();
0x00013848 push {r4, r5, lr} |
0x0001384a sub sp, 0xc |
0x0001384c cmp r0, 0 |
| if (r0 == 0) {
0x0001384e beq 0x138d0 | goto label_1;
| }
0x00013850 mov r4, r1 | r4 = r1;
0x00013852 cmp r1, 0 |
| if (r1 == 0) {
0x00013854 beq 0x138ea | goto label_2;
| }
0x00013856 mov r5, r2 | r5 = r2;
0x00013858 cmp r2, 0 |
| if (r2 == 0) {
0x0001385a beq 0x13906 | goto label_3;
| }
0x0001385c mov r0, r1 | r0 = r1;
0x0001385e blx 0x862c | fcn_0000862c ();
0x00013862 ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
| if (r3 == 0) {
0x00013864 cbnz r3, 0x13878 |
0x00013866 ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x00013868 cmp r3, 4 |
| if (r3 > 4) {
0x0001386a bhi.w 0x13990 | goto label_4;
| }
| /* switch table (5 cases) at 0x13872 */
0x0001386e tbb [pc, r3] | __asm ("tbb [0x00013874]");
| }
0x00013878 ldr r3, [pc, 0x118] |
0x0001387a mov.w r2, 0x330 | r2 = 0x330;
0x0001387e ldr r4, [pc, 0x118] |
0x00013880 movs r0, 0 | r0 = 0;
0x00013882 ldr r1, [pc, 0x118] |
0x00013884 add r3, pc |
0x00013886 add r4, pc | r4 = 0x27224;
0x00013888 add.w r3, r3, 0x1ac | r3 = 0x273c8;
0x0001388c add r1, pc | r1 = 0x2722e;
0x0001388e str r4, [sp] | *(sp) = r4;
0x00013890 blx 0x8db0 | g_ascii_strtoll ();
0x00013894 ldr r3, [pc, 0x108] |
0x00013896 movs r1, 4 | r1 = 4;
0x00013898 ldr r2, [pc, 0x108] |
0x0001389a movs r0, 0 | r0 = 0;
0x0001389c add r3, pc | r3 = 0x27240;
0x0001389e add r2, pc | r2 = 0x27246;
0x000138a0 blx 0x80d8 | g_main_loop_quit ();
| while (1);
0x000138a4 b 0x138a4 |
0x000138a6 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x000138a8 ldr r0, [r4, 0x2c] | r0 = *((r4 + 0x2c));
0x000138aa cmp r3, 0 |
| if (r3 == 0) {
0x000138ac bne 0x13922 |
0x000138ae blx 0x8390 | r0 = g_strdup_printf ()
0x000138b2 cmp r0, 0 |
| if (r0 != 0) {
0x000138b4 bne 0x13952 | goto label_5;
| }
0x000138b6 ldr r3, [pc, 0xf0] |
0x000138b8 movw r2, 0x33d | r2 = 0x33d;
0x000138bc ldr r4, [pc, 0xec] |
0x000138be ldr r1, [pc, 0xf0] |
0x000138c0 add r3, pc |
0x000138c2 add r4, pc | r4 = 0x27272;
0x000138c4 add.w r3, r3, 0x1ac | r3 = 0x2741a;
0x000138c8 add r1, pc | r1 = 0x2727e;
0x000138ca str r4, [sp] | *(sp) = r4;
0x000138cc blx 0x8db0 | g_ascii_strtoll ();
| label_1:
0x000138d0 ldr r3, [pc, 0xe0] |
0x000138d2 movw r2, 0x329 | r2 = 0x329;
0x000138d6 ldr r4, [pc, 0xe0] |
0x000138d8 ldr r1, [pc, 0xe0] |
0x000138da add r3, pc |
0x000138dc add r4, pc | r4 = 0x2729a;
0x000138de add.w r3, r3, 0x1ac | r3 = 0x2743e;
0x000138e2 add r1, pc | r1 = 0x272a2;
0x000138e4 str r4, [sp] | *(sp) = r4;
0x000138e6 blx 0x8db0 | g_ascii_strtoll ();
| label_2:
0x000138ea ldr r3, [pc, 0xd4] |
0x000138ec movw r2, 0x32a | r2 = 0x32a;
0x000138f0 ldr r5, [pc, 0xd0] |
0x000138f2 mov r0, r4 | r0 = r4;
0x000138f4 ldr r1, [pc, 0xd0] |
0x000138f6 add r3, pc |
0x000138f8 add r5, pc | r5 = 0x272c0;
0x000138fa add.w r3, r3, 0x1ac | r3 = 0x27468;
0x000138fe add r1, pc | r1 = 0x272ca;
0x00013900 str r5, [sp] | *(sp) = r5;
0x00013902 blx 0x8db0 | g_ascii_strtoll ();
| label_3:
0x00013906 ldr r3, [pc, 0xc4] |
0x00013908 movw r2, 0x32b | r2 = 0x32b;
0x0001390c ldr r4, [pc, 0xc0] |
0x0001390e mov r0, r5 | r0 = r5;
0x00013910 ldr r1, [pc, 0xc0] |
0x00013912 add r3, pc |
0x00013914 add r4, pc | r4 = 0x272e8;
0x00013916 add.w r3, r3, 0x1ac | r3 = 0x27490;
0x0001391a add r1, pc | r1 = 0x272f2;
0x0001391c str r4, [sp] | *(sp) = r4;
0x0001391e blx 0x8db0 | g_ascii_strtoll ();
| }
0x00013922 blx 0x8390 | r0 = g_strdup_printf ()
| if (r0 != 0) {
0x00013926 cbz r0, 0x13944 |
0x00013928 ldr r3, [pc, 0xac] |
0x0001392a mov.w r2, 0x348 | r2 = 0x348;
0x0001392e ldr r4, [pc, 0xac] |
0x00013930 movs r0, 0 | r0 = 0;
0x00013932 ldr r1, [pc, 0xac] |
0x00013934 add r3, pc |
0x00013936 add r4, pc | r4 = 0x27318;
0x00013938 add.w r3, r3, 0x1ac | r3 = 0x274bc;
0x0001393c add r1, pc | r1 = 0x27322;
0x0001393e str r4, [sp] | *(sp) = r4;
0x00013940 blx 0x8db0 | g_ascii_strtoll ();
| }
0x00013944 ldr r0, [r4, 0x2c] | r0 = *((r4 + 0x2c));
0x00013946 mov r1, r5 | r1 = r5;
0x00013948 add sp, 0xc |
0x0001394a pop.w {r4, r5, lr} |
0x0001394e b.w 0x80a0 | goto label_0;
| label_5:
0x00013952 mov r1, r5 | r1 = r5;
0x00013954 ldr r0, [r4, 0x2c] | r0 = *((r4 + 0x2c));
0x00013956 blx 0x80a4 | fcn_000080a4 ();
0x0001395a blx 0x8a50 | r0 = strlen (r0);
0x0001395e mov r1, r0 | r1 = r0;
0x00013960 ldr r0, [r4, 0x1c] | r0 = *((r4 + 0x1c));
0x00013962 blx 0x8044 | fcn_00008044 ();
0x00013966 blx 0x8bd4 | r0 = fcn_00008bd4 ();
0x0001396a mov r1, r0 | r1 = r0;
0x0001396c mov r0, r4 | r0 = r4;
0x0001396e add sp, 0xc |
0x00013970 pop.w {r4, r5, lr} |
0x00013974 b.w 0x12710 | void (*0x12710)() ();
0x00013978 ldr r3, [pc, 0x68] |
0x0001397a movs r0, 0 | r0 = 0;
0x0001397c ldr r1, [pc, 0x68] |
0x0001397e movw r2, 0x336 | r2 = 0x336;
0x00013982 str r0, [sp] | *(sp) = r0;
0x00013984 add r3, pc |
0x00013986 add r1, pc | r1 = 0x27372;
0x00013988 add.w r3, r3, 0x1ac | r3 = 0x27518;
0x0001398c blx 0x8db0 | g_ascii_strtoll ();
| label_4:
0x00013990 add sp, 0xc |
0x00013992 pop {r4, r5, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libaxact.so.0.0 @ 0x11d38 */
| #include <stdint.h>
|
; (fcn) sym.msg_if_recv_bytes () | void msg_if_recv_bytes (int16_t arg1, int16_t arg3) {
| int16_t var_0h;
| int32_t var_0h_2;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| r0 = arg1;
| r2 = arg3;
0x00011d38 invalid |
0x00011d3c ldr r0, [pc, 0x188] |
0x00011d3e sub sp, 0x24 |
0x00011d40 movs r5, 0 | r5 = 0;
0x00011d42 mov r7, r2 | r7 = r2;
0x00011d44 ldr r3, [pc, 0x184] | r3 = *(0x11ecc);
0x00011d46 add r0, pc | r0 = 0x23c12;
0x00011d48 ldr r3, [r0, r3] |
0x00011d4a ldr r0, [r4, 0x20] | r0 = *((r4 + 0x20));
0x00011d4c ldr r3, [r3] | r3 = *(0x23c12);
0x00011d4e str r3, [sp, 0x1c] | var_1ch = r3;
0x00011d50 mov.w r3, 0 | r3 = 0;
0x00011d54 str r5, [sp, 0xc] | var_ch = r5;
0x00011d56 cmp r0, 0 |
| if (r0 == 0) {
0x00011d58 beq 0x11dfa | goto label_3;
| }
0x00011d5a add r6, sp, 0xc | r6 += var_ch;
0x00011d5c add r3, sp, 0x10 | r3 += var_10h;
0x00011d5e str r6, [sp] | *(sp) = r6;
0x00011d60 strd r5, r5, [sp, 0x10] | __asm ("strd r5, r5, [var_10h]");
0x00011d64 blx 0x8e48 | fcn_00008e48 ();
0x00011d68 ldr r3, [sp, 0x10] | r3 = var_10h;
0x00011d6a mov r1, r0 | r1 = r0;
0x00011d6c cmp r3, r7 |
| if (r3 == r7) {
0x00011d6e beq 0x11d8a | goto label_4;
| }
0x00011d70 ldr r4, [sp, 0xc] | r4 = var_ch;
0x00011d72 mov r0, r5 | r0 = r5;
0x00011d74 ldr r3, [pc, 0x158] |
0x00011d76 ldr r2, [pc, 0x15c] |
0x00011d78 ldr r4, [r4, 8] | r4 = *((r4 + 8));
0x00011d7a add r3, pc | r3 = 0x23c4e;
0x00011d7c add r2, pc | r2 = 0x23c56;
0x00011d7e strd r1, r4, [sp] | __asm ("strd r1, r4, [sp]");
0x00011d82 movs r1, 4 | r1 = 4;
0x00011d84 blx 0x80d8 | g_main_loop_quit ();
| while (1);
0x00011d88 b 0x11d88 |
| label_4:
0x00011d8a mov r1, r6 | r1 = r6;
0x00011d8c mov r0, r4 | r0 = r4;
0x00011d8e bl 0x114dc | fcn_000114dc (r0, r1);
0x00011d92 ldr r5, [sp, 0xc] | r5 = var_ch;
0x00011d94 cmp r5, 0 |
| if (r5 == 0) {
0x00011d96 beq 0x11e76 | goto label_5;
| }
| do {
| label_0:
0x00011d98 ldr r0, [pc, 0x13c] |
0x00011d9a add r0, pc | r0 = 0x23c76;
0x00011d9c blx 0x8a04 | fcn_00008a04 ();
0x00011da0 movs r2, 1 | r2 = 1;
0x00011da2 mov r1, r0 | r1 = r0;
0x00011da4 mov r0, r5 | r0 = r5;
0x00011da6 blx 0x85b0 | r0 = fcn_000085b0 ();
0x00011daa cmp r0, 0 |
| if (r0 != 0) {
0x00011dac bne.w 0x11eb6 | goto label_6;
| }
0x00011db0 ldr r3, [sp, 0xc] | r3 = var_ch;
| if (r3 != 0) {
0x00011db2 cbz r3, 0x11ddc |
0x00011db4 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00011db6 movs r1, 0x10 | r1 = 0x10;
0x00011db8 ldr r3, [pc, 0x120] |
0x00011dba str r2, [sp] | *(sp) = r2;
0x00011dbc ldr r2, [pc, 0x120] |
0x00011dbe add r3, pc | r3 = 0x23c9e;
0x00011dc0 add r2, pc | r2 = 0x23ca4;
0x00011dc2 blx 0x80d8 | g_main_loop_quit ();
0x00011dc6 ldr r2, [r4, 0x14] | r2 = *((r4 + 0x14));
0x00011dc8 ldrd r0, r1, [r4] | __asm ("ldrd r0, r1, [r4]");
0x00011dcc ldr r5, [r4, 0xc] | r5 = *((r4 + 0xc));
0x00011dce ldr r3, [sp, 0xc] | r3 = var_ch;
0x00011dd0 blx r5 | uint32_t (*r5)(uint32_t, uint32_t, uint32_t) (r0, r2, r3);
0x00011dd2 ldrd r0, r1, [r4] | __asm ("ldrd r0, r1, [r4]");
0x00011dd6 mov r2, r6 | r2 = r6;
0x00011dd8 blx 0x8fb8 | fcn_00008fb8 ();
| }
| label_2:
0x00011ddc mov r0, r6 | r0 = r6;
0x00011dde blx 0x8a5c | g_source_set_callback ();
0x00011de2 ldr r2, [pc, 0x100] |
0x00011de4 ldr r3, [pc, 0xe4] | r3 = *(0x11ecc);
0x00011de6 add r2, pc | r2 = 0x23cd0;
0x00011de8 ldr r3, [r2, r3] | r3 = *(0x23cd0);
0x00011dea ldr r2, [r3] | r2 = *(0x23cd0);
0x00011dec ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00011dee eors r2, r3 | r2 ^= r3;
0x00011df0 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00011df4 bne 0x11ec2 | goto label_7;
| }
0x00011df6 add sp, 0x24 |
0x00011df8 pop {r4, r5, r6, r7, pc} |
| label_3:
0x00011dfa add r6, sp, 0xc | r6 += var_ch;
0x00011dfc ldr r0, [r4, 0x28] | r0 = *((r4 + 0x28));
0x00011dfe mov r3, r6 | r3 = r6;
0x00011e00 bl 0x10c50 | fcn_00010c50 (r0, r1, r2, r3);
0x00011e04 ldr r5, [sp, 0xc] | r5 = var_ch;
0x00011e06 cmp r5, 0 |
0x00011e08 bne 0x11d98 |
| } while (r5 != 0);
0x00011e0a ldrd r0, r1, [r4] | __asm ("ldrd r0, r1, [r4]");
0x00011e0e mov r3, r6 | r3 = r6;
0x00011e10 mov r2, r7 | r2 = r7;
0x00011e12 bl 0x10d64 | fcn_00010d64 (r0, r1, r2);
| label_1:
0x00011e16 ldr r5, [sp, 0xc] | r5 = var_ch;
0x00011e18 cmp r5, 0 |
| if (r5 != 0) {
0x00011e1a bne 0x11d98 | goto label_0;
| }
0x00011e1c ldr r5, [r4, 0x28] | r5 = *((r4 + 0x28));
| if (r5 != 0) {
0x00011e1e cbnz r5, 0x11e68 | goto label_8;
| }
0x00011e20 b 0x11d98 | goto label_0;
| do {
0x00011e22 ldr r0, [r4, 0x28] | r0 = *((r4 + 0x28));
0x00011e24 blx 0x87c4 | fcn_000087c4 ();
0x00011e28 ldrd r2, r3, [r0, 4] | __asm ("ldrd r2, r3, [r0, 4]");
0x00011e2c adds r3, 4 | r3 += 4;
0x00011e2e cmp r3, r2 |
| if (r3 != r2) {
0x00011e30 bne 0x11e72 | goto label_9;
| }
0x00011e32 ldr r0, [r4, 0x28] | r0 = *((r4 + 0x28));
0x00011e34 blx 0x8a74 | g_bytes_unref ();
0x00011e38 ldr r2, [r0, 4] | r2 = *((r0 + 4));
0x00011e3a mov r5, r0 | r5 = r0;
0x00011e3c mov r3, r6 | r3 = r6;
0x00011e3e ldrd r0, r1, [r4] | __asm ("ldrd r0, r1, [r4]");
0x00011e42 rsbs r2, r2, 0 | r2 -= ;
0x00011e44 bl 0x10d64 | fcn_00010d64 (r0, r1, r2);
0x00011e48 ldr r2, [r5, 8] | r2 = *((r5 + 8));
0x00011e4a ldr r3, [r5] | r3 = *(r5);
0x00011e4c str r2, [sp] | *(sp) = r2;
0x00011e4e ldrd r0, r1, [r4] | __asm ("ldrd r0, r1, [r4]");
0x00011e52 ldrd r7, r2, [r4, 0x10] | __asm ("ldrd r7, r2, [r4, 0x10]");
0x00011e56 blx r7 | uint32_t (*r7)(uint32_t, uint32_t, uint32_t) (r0, r2, r3);
0x00011e58 ldr r0, [r5] | r0 = *(r5);
0x00011e5a blx 0x883c | fcn_0000883c ();
0x00011e5e mov r0, r5 | r0 = r5;
0x00011e60 blx 0x883c | fcn_0000883c ();
0x00011e64 ldr r5, [r4, 0x28] | r5 = *((r4 + 0x28));
| if (r5 == 0) {
0x00011e66 cbz r5, 0x11e72 | goto label_9;
| }
| label_8:
0x00011e68 mov r0, r5 | r0 = r5;
0x00011e6a blx 0x8390 | r0 = g_strdup_printf ()
0x00011e6e cmp r0, 0 |
0x00011e70 beq 0x11e22 |
| } while (r0 == 0);
| label_9:
0x00011e72 ldr r5, [sp, 0xc] | r5 = var_ch;
0x00011e74 b 0x11d98 | goto label_0;
| label_5:
0x00011e76 ldr r0, [r4, 0x20] | r0 = *((r4 + 0x20));
0x00011e78 mov r3, r6 | r3 = r6;
0x00011e7a add r2, sp, 0x14 | r2 += var_14h;
0x00011e7c add r1, sp, 0x18 | r1 += var_18h;
0x00011e7e str r5, [sp, 0x18] | var_18h = r5;
0x00011e80 blx 0x84e0 | g_variant_ref_sink ();
0x00011e84 ldr r5, [sp, 0xc] | r5 = var_ch;
0x00011e86 cmp r5, 0 |
| if (r5 != 0) {
0x00011e88 bne 0x11d98 | goto label_0;
| }
0x00011e8a ldr r2, [sp, 0x14] | r2 = var_14h;
0x00011e8c cmp r2, 0 |
| if (r2 == 0) {
0x00011e8e beq 0x11d98 | goto label_0;
| }
0x00011e90 ldr r1, [sp, 0x18] | r1 = var_18h;
0x00011e92 mov r3, r6 | r3 = r6;
0x00011e94 ldr r0, [r4, 0x28] | r0 = *((r4 + 0x28));
0x00011e96 bl 0x10c50 | fcn_00010c50 (r0, r1, r2, r3);
0x00011e9a ldr r0, [sp, 0x18] | r0 = var_18h;
0x00011e9c blx 0x883c | fcn_0000883c ();
0x00011ea0 ldr r5, [sp, 0xc] | r5 = var_ch;
0x00011ea2 cmp r5, 0 |
| if (r5 != 0) {
0x00011ea4 bne.w 0x11d98 | goto label_0;
| }
0x00011ea8 ldr r2, [sp, 0x14] | r2 = var_14h;
0x00011eaa mov r3, r6 | r3 = r6;
0x00011eac ldrd r0, r1, [r4] | __asm ("ldrd r0, r1, [r4]");
0x00011eb0 bl 0x10d64 | fcn_00010d64 (r0, r1, r2);
0x00011eb4 b 0x11e16 | goto label_1;
| label_6:
0x00011eb6 ldr r2, [sp, 0xc] | r2 = var_ch;
0x00011eb8 ldrd r0, r1, [r4] | __asm ("ldrd r0, r1, [r4]");
0x00011ebc bl 0x11450 | fcn_00011450 (r0, r1, r2);
0x00011ec0 b 0x11ddc | goto label_2;
| label_7:
0x00011ec2 blx 0x8790 | fcn_00008790 ();
0x00011ec6 nop |
0x00011ec8 ldrb r6, [r1, 0x11] | r6 = *((r1 + 0x11));
0x00011eca movs r1, r0 | r1 = r0;
0x00011ecc lsls r4, r4, 0x18 | r4 <<= 0x18;
0x00011ece movs r0, r0 |
0x00011ed0 ldr r1, [pc, 0xd8] | r1 = *(0x11fac);
0x00011ed2 movs r0, r0 |
0x00011ed4 ldr r4, [r6, 0x18] | r4 = *((r6 + 0x18));
0x00011ed6 movs r0, r0 |
0x00011ed8 str r6, [r1, 0x58] | *((r1 + 0x58)) = r6;
0x00011eda movs r0, r0 |
0x00011edc ldr r0, [pc, 0x3c8] | r0 = *(0x122a8);
0x00011ede movs r0, r0 |
0x00011ee0 ldr r4, [r5, 0x18] | r4 = *((r5 + 0x18));
0x00011ee2 movs r0, r0 |
0x00011ee4 ldrb r6, [r5, 0xe] | r6 = *((r5 + 0xe));
0x00011ee6 movs r1, r0 | r1 = r0;
| }
[*] Function printf used 7 times libaxact.so.0.0