[*] Binary protection state of libaxpackage.so.1.0

  
  	Full RELRO     Canary found      NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of libaxpackage.so.1.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/libaxpackage.so.1.0 @ 0x9a0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) entry.init1 ()                                   | void entry_init1 () {
                                                             |     int16_t var_4h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
    0x00000694 asrs r5, r2, 0x14                             |     r5 = r2 >> 0x14;
    0x00000696 movs r0, r0                                   |     
    0x00000698 lsrs r0, r7, 0x1f                             |     r0 = r7 >> 0x1f;
    0x0000069a movs r1, r0                                   |     r1 = r0;
    0x0000069c subs r5, r2, 0                                |     r5 = r2 - 0;
    0x0000069e movs r0, r0                                   |     
    0x000006a0 lsrs r4, r7, 0x1f                             |     r4 = r7 >> 0x1f;
    0x000006a2 movs r1, r0                                   |     r1 = r0;
    0x000006a4 movs r0, 0x15                                 |     r0 = 0x15;
    0x000006a6 movs r0, r0                                   |     
                                                             |     /* [08] -r-- section size 200 named .rel.plt */
    0x000006a8 lsrs r4, r7, 0x1d                             |     r4 = r7 >> 0x1d;
    0x000006aa movs r1, r0                                   |     r1 = r0;
    0x000006ac lsls r6, r2, 0xc                              |     r6 = r2 << 0xc;
    0x000006ae movs r0, r0                                   |     
    0x000006b0 lsrs r0, r0, 0x1e                             |     r0 >>= 0x1e;
    0x000006b2 movs r1, r0                                   |     r1 = r0;
    0x000006b4 lsls r6, r2, 0x10                             |     r6 = r2 << 0x10;
    0x000006b6 movs r0, r0                                   |     
    0x000006b8 lsrs r4, r0, 0x1e                             |     r4 = r0 >> 0x1e;
    0x000006ba movs r1, r0                                   |     r1 = r0;
    0x000006bc lsls r6, r2, 0x14                             |     r6 = r2 << 0x14;
    0x000006be movs r0, r0                                   |     
    0x000006c0 lsrs r0, r1, 0x1e                             |     r0 = r1 >> 0x1e;
    0x000006c2 movs r1, r0                                   |     r1 = r0;
    0x000006c4 lsls r6, r2, 0x1c                             |     r6 = r2 << 0x1c;
    0x000006c6 movs r0, r0                                   |     
    0x000006c8 lsrs r4, r1, 0x1e                             |     r4 = r1 >> 0x1e;
    0x000006ca movs r1, r0                                   |     r1 = r0;
    0x000006cc lsrs r6, r2, 0x20                             |     r6 = r2 >> 0x20;
    0x000006ce movs r0, r0                                   |     
    0x000006d0 lsrs r0, r2, 0x1e                             |     r0 = r2 >> 0x1e;
    0x000006d2 movs r1, r0                                   |     r1 = r0;
    0x000006d4 lsrs r6, r2, 4                                |     r6 = r2 >> 4;
    0x000006d6 movs r0, r0                                   |     
    0x000006d8 lsrs r4, r2, 0x1e                             |     r4 = r2 >> 0x1e;
    0x000006da movs r1, r0                                   |     r1 = r0;
    0x000006dc lsrs r6, r2, 8                                |     r6 = r2 >> 8;
    0x000006de movs r0, r0                                   |     
    0x000006e0 lsrs r0, r3, 0x1e                             |     r0 = r3 >> 0x1e;
    0x000006e2 movs r1, r0                                   |     r1 = r0;
    0x000006e4 lsrs r6, r2, 0xc                              |     r6 = r2 >> 0xc;
    0x000006e6 movs r0, r0                                   |     
    0x000006e8 lsrs r4, r3, 0x1e                             |     r4 = r3 >> 0x1e;
    0x000006ea movs r1, r0                                   |     r1 = r0;
    0x000006ec lsrs r6, r2, 0x10                             |     r6 = r2 >> 0x10;
    0x000006ee movs r0, r0                                   |     
    0x000006f0 lsrs r0, r4, 0x1e                             |     r0 = r4 >> 0x1e;
    0x000006f2 movs r1, r0                                   |     r1 = r0;
    0x000006f4 lsrs r6, r2, 0x18                             |     r6 = r2 >> 0x18;
    0x000006f6 movs r0, r0                                   |     
    0x000006f8 lsrs r4, r4, 0x1e                             |     r4 >>= 0x1e;
    0x000006fa movs r1, r0                                   |     r1 = r0;
    0x000006fc asrs r6, r2, 0x20                             |     r6 = r2 >> 0x20;
    0x000006fe movs r0, r0                                   |     
    0x00000700 lsrs r0, r5, 0x1e                             |     r0 = r5 >> 0x1e;
    0x00000702 movs r1, r0                                   |     r1 = r0;
    0x00000704 asrs r6, r2, 4                                |     r6 = r2 >> 4;
    0x00000706 movs r0, r0                                   |     
    0x00000708 lsrs r4, r5, 0x1e                             |     r4 = r5 >> 0x1e;
    0x0000070a movs r1, r0                                   |     r1 = r0;
    0x0000070c asrs r6, r2, 8                                |     r6 = r2 >> 8;
    0x0000070e movs r0, r0                                   |     
    0x00000710 lsrs r0, r6, 0x1e                             |     r0 = r6 >> 0x1e;
    0x00000712 movs r1, r0                                   |     r1 = r0;
    0x00000714 asrs r6, r2, 0xc                              |     r6 = r2 >> 0xc;
    0x00000716 movs r0, r0                                   |     
    0x00000718 lsrs r4, r6, 0x1e                             |     r4 = r6 >> 0x1e;
    0x0000071a movs r1, r0                                   |     r1 = r0;
    0x0000071c asrs r6, r2, 0x10                             |     r6 = r2 >> 0x10;
    0x0000071e movs r0, r0                                   |     
    0x00000720 lsrs r0, r7, 0x1e                             |     r0 = r7 >> 0x1e;
    0x00000722 movs r1, r0                                   |     r1 = r0;
    0x00000724 asrs r6, r2, 0x18                             |     r6 = r2 >> 0x18;
    0x00000726 movs r0, r0                                   |     
    0x00000728 lsrs r4, r7, 0x1e                             |     r4 = r7 >> 0x1e;
    0x0000072a movs r1, r0                                   |     r1 = r0;
    0x0000072c asrs r6, r2, 0x1c                             |     r6 = r2 >> 0x1c;
    0x0000072e movs r0, r0                                   |     
    0x00000730 lsrs r0, r0, 0x1f                             |     r0 >>= 0x1f;
    0x00000732 movs r1, r0                                   |     r1 = r0;
    0x00000734 adds r6, r2, r0                               |     r6 = r2 + r0;
    0x00000736 movs r0, r0                                   |     
    0x00000738 lsrs r4, r0, 0x1f                             |     r4 = r0 >> 0x1f;
    0x0000073a movs r1, r0                                   |     r1 = r0;
    0x0000073c adds r6, r2, r4                               |     r6 = r2 + r4;
    0x0000073e movs r0, r0                                   |     
    0x00000740 lsrs r0, r1, 0x1f                             |     r0 = r1 >> 0x1f;
    0x00000742 movs r1, r0                                   |     r1 = r0;
    0x00000744 subs r6, r2, r0                               |     r6 = r2 - r0;
    0x00000746 movs r0, r0                                   |     
    0x00000748 lsrs r4, r1, 0x1f                             |     r4 = r1 >> 0x1f;
    0x0000074a movs r1, r0                                   |     r1 = r0;
    0x0000074c subs r6, r2, r4                               |     r6 = r2 - r4;
    0x0000074e movs r0, r0                                   |     
    0x00000750 lsrs r0, r2, 0x1f                             |     r0 = r2 >> 0x1f;
    0x00000752 movs r1, r0                                   |     r1 = r0;
    0x00000754 adds r6, r2, 0                                |     r6 = r2 + 0;
    0x00000756 movs r0, r0                                   |     
    0x00000758 lsrs r4, r2, 0x1f                             |     r4 = r2 >> 0x1f;
    0x0000075a movs r1, r0                                   |     r1 = r0;
    0x0000075c adds r6, r2, 4                                |     r6 = r2 + 4;
    0x0000075e movs r0, r0                                   |     
    0x00000760 lsrs r0, r3, 0x1f                             |     r0 = r3 >> 0x1f;
    0x00000762 movs r1, r0                                   |     r1 = r0;
    0x00000764 subs r6, r2, 4                                |     r6 = r2 - 4;
    0x00000766 movs r0, r0                                   |     
    0x00000768 lsrs r4, r3, 0x1f                             |     r4 = r3 >> 0x1f;
    0x0000076a movs r1, r0                                   |     r1 = r0;
    0x0000076c movs r0, 0x16                                 |     r0 = 0x16;
    0x0000076e movs r0, r0                                   |     
                                                             |     /* [09] -r-x section size 12 named .init */
    0x00000770 ands r0, r1                                   |     r0 &= r1;
    0x00000774 bl 0xb50                                      |     void (*0xb50)() ();
    0x00000778 pop {r3, pc}                                  |     
    0x000009a0 blmi 0x17d3320                                |     __asm ("blmi 0x17d3320");
    0x000009a4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}   |     
    0x000009a8 sub sp, 0x24                                  |     
    0x000009aa add r2, pc                                    |     r2 += pc;
    0x000009ac ldr r4, [pc, 0x174]                           |     
    0x000009ae movs r5, 0                                    |     r5 = 0;
    0x000009b0 add r0, sp, 0x14                              |     r0 += var_14h;
    0x000009b2 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x000009b4 add r4, pc                                    |     r4 = 0x14dc;
    0x000009b6 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000009b8 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x000009ba mov.w r3, 0                                   |     r3 = 0;
    0x000009be str r5, [sp, 0x14]                            |     var_14h = r5;
    0x000009c0 bl 0x8d4                                      |     r0 = fcn_000008d4 (r0);
                                                             |     if (r0 == 0) {
    0x000009c4 cbnz r0, 0x9ea                                |         
                                                             | label_2:
    0x000009c6 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
                                                             |         if (r0 != 0) {
    0x000009c8 cbz r0, 0x9ce                                 |             
    0x000009ca blx 0x790                                     |             g_free ();
                                                             |         }
    0x000009ce ldr r2, [pc, 0x158]                           |         
    0x000009d0 ldr r3, [pc, 0x14c]                           |         r3 = *(0xb20);
    0x000009d2 add r2, pc                                    |         r2 = 0x1500;
    0x000009d4 ldr r3, [r2, r3]                              |         r3 = *(0x1500);
    0x000009d6 ldr r2, [r3]                                  |         r2 = *(0x1500);
    0x000009d8 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x000009da eors r2, r3                                   |         r2 ^= r3;
    0x000009dc mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x000009e0 bne.w 0xb18                                   |             goto label_4;
                                                             |         }
    0x000009e4 add sp, 0x24                                  |         
    0x000009e6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             |     }
    0x000009ea ldr r0, [pc, 0x140]                           |     
    0x000009ec ldr r1, [sp, 0x14]                            |     r1 = var_14h;
    0x000009ee add r0, pc                                    |     r0 = 0x1520;
    0x000009f0 blx 0x808                                     |     g_strdup_printf ()
    0x000009f4 movs r1, 1                                    |     r1 = 1;
    0x000009f6 mov r7, r0                                    |     r7 = r0;
    0x000009f8 blx 0x8a4                                     |     r0 = g_file_test ();
    0x000009fc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000009fe beq 0xad6                                     |         goto label_5;
                                                             |     }
    0x00000a00 mov r0, r7                                    |     r0 = r7;
    0x00000a02 blx 0x898                                     |     g_file_new_for_path ();
    0x00000a06 mov r2, r5                                    |     r2 = r5;
    0x00000a08 mov r1, r5                                    |     r1 = r5;
    0x00000a0a str r0, [sp, 0xc]                             |     var_ch = r0;
    0x00000a0c blx 0x79c                                     |     r0 = g_file_read ();
    0x00000a10 mov sb, r0                                    |     sb = r0;
    0x00000a12 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000a14 beq 0xace                                     |         goto label_6;
                                                             |     }
    0x00000a16 blx 0x7fc                                     |     r0 = g_data_input_stream_new ();
    0x00000a1a mov r8, r0                                    |     r8 = r0;
    0x00000a1c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000a1e beq 0xabe                                     |         goto label_7;
                                                             |     }
    0x00000a20 ldr r2, [pc, 0x10c]                           |     r2 = *(0xb30);
    0x00000a22 add.w sl, sp, 0x18                            |     sl += var_18h;
    0x00000a26 ldr r3, [pc, 0x10c]                           |     r3 = *(0xb36);
    0x00000a28 ldr r1, [r4, r2]                              |     r1 = *((r4 + r2));
    0x00000a2a ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x00000a2c ldr r2, [pc, 0x108]                           |     r2 = *(0xb38);
    0x00000a2e ldr r0, [r4, r2]                              |     r0 = *((r4 + r2));
    0x00000a30 mov r2, r3                                    |     r2 = r3;
    0x00000a32 blx 0x814                                     |     g_hash_table_new_full ();
    0x00000a36 ldr r3, [pc, 0x104]                           |     
    0x00000a38 strd r7, sb, [sp, 4]                          |     __asm ("strd r7, sb, [sp, 4]");
    0x00000a3c add r3, pc                                    |     r3 = 0x157e;
    0x00000a3e str r0, [r3]                                  |     *(r3) = r0;
    0x00000a40 ldr r3, [pc, 0xfc]                            |     
    0x00000a42 add r3, pc                                    |     r3 = 0x1586;
    0x00000a44 mov fp, r3                                    |     
                                                             | label_3:
    0x00000a46 movs r3, 0                                    |     r3 = 0;
    0x00000a48 mov r1, sl                                    |     r1 = sl;
    0x00000a4a mov r2, r3                                    |     r2 = r3;
    0x00000a4c mov r0, r8                                    |     r0 = r8;
    0x00000a4e blx 0x838                                     |     r0 = g_data_input_stream_read_line ();
    0x00000a52 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 == 0) {
    0x00000a54 cbz r0, 0xaaa                                 |         goto label_8;
                                                             |     }
    0x00000a56 movs r2, 2                                    |     r2 = 2;
    0x00000a58 mov r1, fp                                    |     r1 = fp;
    0x00000a5a blx 0x85c                                     |     r0 = g_strsplit ();
    0x00000a5e mov r5, r0                                    |     r5 = r0;
    0x00000a60 ldr r0, [r0, 4]                               |     r0 = *((r0 + 4));
    0x00000a62 blx 0x844                                     |     r0 = strdup (r0);
    0x00000a66 mov r6, r0                                    |     r6 = r0;
    0x00000a68 mov ip, r0                                    |     
                                                             |     do {
    0x00000a6a ldr r3, [pc, 0xd8]                            |         
    0x00000a6c mov sb, ip                                    |         sb = ip;
    0x00000a6e ldrb r2, [ip], 1                              |         r2 = *(ip);
                                                             |         ip++;
    0x00000a72 movs r7, 0x22                                 |         r7 = 0x22;
    0x00000a74 add r3, pc                                    |         r3 = 0x15be;
                                                             | label_0:
    0x00000a76 cmp r7, r2                                    |         
    0x00000a78 beq 0xa6a                                     |         
                                                             |     } while (r7 == r2);
    0x00000a7a ldrb r7, [r3, 1]!                             |     r7 = *((r3 += 1));
    0x00000a7e cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00000a80 bne 0xa76                                     |         goto label_0;
                                                             |     }
    0x00000a82 mov r0, sb                                    |     r0 = sb;
    0x00000a84 blx 0x82c                                     |     strlen (r0);
    0x00000a88 mov r3, r7                                    |     r3 = r7;
    0x00000a8a add.w ip, sb, r0                              |     
                                                             | label_1:
    0x00000a8e ldr r1, [pc, 0xb8]                            |     
    0x00000a90 movs r2, 0x22                                 |     r2 = 0x22;
    0x00000a92 ldrb r0, [ip, -0x1]!                          |     r0 = *((ip -= 0x1));
    0x00000a96 add r1, pc                                    |     r1 = 0x15e4;
    0x00000a98 b 0xaa0                                       |     
                                                             |     while (r0 != r2) {
    0x00000a9a ldrb r2, [r1, 1]!                             |         r2 = *((r1 += 1));
                                                             |         if (r2 == 0) {
    0x00000a9e cbz r2, 0xae4                                 |             goto label_9;
                                                             |         }
    0x00000aa0 cmp r0, r2                                    |         
    0x00000aa2 bne 0xa9a                                     |         
                                                             |     }
    0x00000aa4 strb.w r3, [ip]                               |     *(ip) = r3;
    0x00000aa8 b 0xa8e                                       |     goto label_1;
                                                             | label_8:
    0x00000aaa mov r2, r0                                    |     r2 = r0;
    0x00000aac mov r1, r0                                    |     r1 = r0;
    0x00000aae mov r0, r8                                    |     r0 = r8;
    0x00000ab0 ldrd r7, sb, [sp, 4]                          |     __asm ("ldrd r7, sb, [var_4h]");
    0x00000ab4 blx 0x820                                     |     g_input_stream_close ();
    0x00000ab8 mov r0, r8                                    |     r0 = r8;
    0x00000aba blx 0x7cc                                     |     g_object_unref ();
                                                             | label_7:
    0x00000abe movs r2, 0                                    |     r2 = 0;
    0x00000ac0 mov r0, sb                                    |     r0 = sb;
    0x00000ac2 mov r1, r2                                    |     r1 = r2;
    0x00000ac4 blx 0x820                                     |     g_input_stream_close ();
    0x00000ac8 mov r0, sb                                    |     r0 = sb;
    0x00000aca blx 0x7cc                                     |     g_object_unref ();
                                                             | label_6:
    0x00000ace ldr r0, [sp, 0xc]                             |     r0 = var_ch;
                                                             |     if (r0 != 0) {
    0x00000ad0 cbz r0, 0xad6                                 |         
    0x00000ad2 blx 0x7cc                                     |         g_object_unref ();
                                                             |     }
                                                             | label_5:
    0x00000ad6 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00000ad8 beq.w 0x9c6                                   |         goto label_2;
                                                             |     }
    0x00000adc mov r0, r7                                    |     r0 = r7;
    0x00000ade blx 0x790                                     |     g_free ();
    0x00000ae2 b 0x9c6                                       |     goto label_2;
                                                             | label_9:
    0x00000ae4 mov r0, sb                                    |     r0 = sb;
    0x00000ae6 blx 0x7d8                                     |     r0 = g_strdup ();
    0x00000aea mov r2, r0                                    |     r2 = r0;
    0x00000aec mov r0, r6                                    |     r0 = r6;
    0x00000aee mov r6, r2                                    |     r6 = r2;
    0x00000af0 blx 0x790                                     |     g_free ();
    0x00000af4 ldr r3, [pc, 0x54]                            |     
    0x00000af6 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00000af8 add r3, pc                                    |     r3 = 0x1648;
    0x00000afa ldr r7, [r3]                                  |     r7 = *(0x1648);
    0x00000afc blx 0x7d8                                     |     g_strdup ();
    0x00000b00 mov r2, r6                                    |     r2 = r6;
    0x00000b02 mov r1, r0                                    |     r1 = r0;
    0x00000b04 mov r0, r7                                    |     r0 = r7;
    0x00000b06 blx 0x7e4                                     |     g_hash_table_insert ();
    0x00000b0a mov r0, r5                                    |     r0 = r5;
    0x00000b0c blx 0x88c                                     |     g_strfreev ();
    0x00000b10 mov r0, r4                                    |     r0 = r4;
    0x00000b12 blx 0x790                                     |     g_free ();
    0x00000b16 b 0xa46                                       |     goto label_3;
                                                             | label_4:
    0x00000b18 blx 0x850                                     |     r0 = stack_chk_fail ();
    0x00000b1c lsls r2, r0, 0x17                             |     r2 = r0 << 0x17;
    0x00000b1e movs r1, r0                                   |     r1 = r0;
    0x00000b20 lsls r4, r0, 2                                |     r4 = r0 << 2;
    0x00000b22 movs r0, r0                                   |     
    0x00000b24 lsls r0, r7, 0x16                             |     r0 = r7 << 0x16;
    0x00000b26 movs r1, r0                                   |     r1 = r0;
    0x00000b28 lsls r2, r3, 0x16                             |     r2 = r3 << 0x16;
    0x00000b2a movs r1, r0                                   |     r1 = r0;
    0x00000b2c lsls r2, r7, 0xb                              |     r2 = r7 << 0xb;
    0x00000b2e movs r0, r0                                   |     
    0x00000b30 lsls r0, r1, 2                                |     r0 = r1 << 2;
    0x00000b32 movs r0, r0                                   |     
    0x00000b34 lsls r0, r6, 1                                |     r0 = r6 << 1;
    0x00000b36 movs r0, r0                                   |     
    0x00000b38 lsls r4, r6, 1                                |     r4 = r6 << 1;
    0x00000b3a movs r0, r0                                   |     
    0x00000b3c lsls r0, r1, 0x17                             |     r0 = r1 << 0x17;
    0x00000b3e movs r1, r0                                   |     r1 = r0;
    0x00000b40 lsls r2, r1, 0xb                              |     r2 = r1 << 0xb;
    0x00000b42 movs r0, r0                                   |     
    0x00000b44 lsls r0, r6, 9                                |     r0 = r6 << 9;
    0x00000b46 movs r0, r0                                   |     
    0x00000b48 lsls r6, r1, 9                                |     r6 = r1 << 9;
    0x00000b4a movs r0, r0                                   |     
    0x00000b4c lsls r4, r1, 0x14                             |     r4 = r1 << 0x14;
    0x00000b4e movs r1, r0                                   |     r1 = r0;
    0x00000b50 adds r0, 0x14                                 |     r0 += 0x14;
                                                             | }

[*] Function printf used 2 times libaxpackage.so.1.0