[*] 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