[*] 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-80367616.squashfs_v4_le_extract/usr/lib/libaxpackage.so.1.0 @ 0xa50 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) entry.init1 ()                                   | void entry_init1 () {
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
    0x0000074c movs r2, 0x15                                 |     r2 = 0x15;
    0x0000074e movs r0, r0                                   |     
                                                             |     /* [08] -r-- section size 200 named .rel.plt */
    0x00000750 subs r4, r7, 5                                |     r4 = r7 - 5;
    0x00000752 movs r0, r0                                   |     
    0x00000754 lsls r6, r2, 0xc                              |     r6 = r2 << 0xc;
    0x00000756 movs r0, r0                                   |     
    0x00000758 subs r0, r0, 6                                |     r0 -= 6;
    0x0000075a movs r0, r0                                   |     
    0x0000075c lsls r6, r2, 0x10                             |     r6 = r2 << 0x10;
    0x0000075e movs r0, r0                                   |     
    0x00000760 subs r4, r0, 6                                |     r4 = r0 - 6;
    0x00000762 movs r0, r0                                   |     
    0x00000764 lsls r6, r2, 0x14                             |     r6 = r2 << 0x14;
    0x00000766 movs r0, r0                                   |     
    0x00000768 subs r0, r1, 6                                |     r0 = r1 - 6;
    0x0000076a movs r0, r0                                   |     
    0x0000076c lsrs r6, r2, 0x20                             |     r6 = r2 >> 0x20;
    0x0000076e movs r0, r0                                   |     
    0x00000770 subs r4, r1, 6                                |     r4 = r1 - 6;
    0x00000772 movs r0, r0                                   |     
    0x00000774 lsrs r6, r2, 4                                |     r6 = r2 >> 4;
    0x00000776 movs r0, r0                                   |     
    0x00000778 subs r0, r2, 6                                |     r0 = r2 - 6;
    0x0000077a movs r0, r0                                   |     
    0x0000077c lsrs r6, r2, 8                                |     r6 = r2 >> 8;
    0x0000077e movs r0, r0                                   |     
    0x00000780 subs r4, r2, 6                                |     r4 = r2 - 6;
    0x00000782 movs r0, r0                                   |     
    0x00000784 lsrs r6, r2, 0xc                              |     r6 = r2 >> 0xc;
    0x00000786 movs r0, r0                                   |     
    0x00000788 subs r0, r3, 6                                |     r0 = r3 - 6;
    0x0000078a movs r0, r0                                   |     
    0x0000078c lsrs r6, r2, 0x10                             |     r6 = r2 >> 0x10;
    0x0000078e movs r0, r0                                   |     
    0x00000790 subs r4, r3, 6                                |     r4 = r3 - 6;
    0x00000792 movs r0, r0                                   |     
    0x00000794 lsrs r6, r2, 0x14                             |     r6 = r2 >> 0x14;
    0x00000796 movs r0, r0                                   |     
    0x00000798 subs r0, r4, 6                                |     r0 = r4 - 6;
    0x0000079a movs r0, r0                                   |     
    0x0000079c lsrs r6, r2, 0x1c                             |     r6 = r2 >> 0x1c;
    0x0000079e movs r0, r0                                   |     
    0x000007a0 subs r4, r4, 6                                |     r4 -= 6;
    0x000007a2 movs r0, r0                                   |     
    0x000007a4 asrs r6, r2, 4                                |     r6 = r2 >> 4;
    0x000007a6 movs r0, r0                                   |     
    0x000007a8 subs r0, r5, 6                                |     r0 = r5 - 6;
    0x000007aa movs r0, r0                                   |     
    0x000007ac asrs r6, r2, 8                                |     r6 = r2 >> 8;
    0x000007ae movs r0, r0                                   |     
    0x000007b0 subs r4, r5, 6                                |     r4 = r5 - 6;
    0x000007b2 movs r0, r0                                   |     
    0x000007b4 asrs r6, r2, 0xc                              |     r6 = r2 >> 0xc;
    0x000007b6 movs r0, r0                                   |     
    0x000007b8 subs r0, r6, 6                                |     r0 = r6 - 6;
    0x000007ba movs r0, r0                                   |     
    0x000007bc asrs r6, r2, 0x10                             |     r6 = r2 >> 0x10;
    0x000007be movs r0, r0                                   |     
    0x000007c0 subs r4, r6, 6                                |     r4 = r6 - 6;
    0x000007c2 movs r0, r0                                   |     
    0x000007c4 asrs r6, r2, 0x14                             |     r6 = r2 >> 0x14;
    0x000007c6 movs r0, r0                                   |     
    0x000007c8 subs r0, r7, 6                                |     r0 = r7 - 6;
    0x000007ca movs r0, r0                                   |     
    0x000007cc asrs r6, r2, 0x1c                             |     r6 = r2 >> 0x1c;
    0x000007ce movs r0, r0                                   |     
    0x000007d0 subs r4, r7, 6                                |     r4 = r7 - 6;
    0x000007d2 movs r0, r0                                   |     
    0x000007d4 adds r6, r2, r0                               |     r6 = r2 + r0;
    0x000007d6 movs r0, r0                                   |     
    0x000007d8 subs r0, r0, 7                                |     r0 -= 7;
    0x000007da movs r0, r0                                   |     
    0x000007dc adds r6, r2, r4                               |     r6 = r2 + r4;
    0x000007de movs r0, r0                                   |     
    0x000007e0 subs r4, r0, 7                                |     r4 = r0 - 7;
    0x000007e2 movs r0, r0                                   |     
    0x000007e4 subs r6, r2, r0                               |     r6 = r2 - r0;
    0x000007e6 movs r0, r0                                   |     
    0x000007e8 subs r0, r1, 7                                |     r0 = r1 - 7;
    0x000007ea movs r0, r0                                   |     
    0x000007ec subs r6, r2, r4                               |     r6 = r2 - r4;
    0x000007ee movs r0, r0                                   |     
    0x000007f0 subs r4, r1, 7                                |     r4 = r1 - 7;
    0x000007f2 movs r0, r0                                   |     
    0x000007f4 adds r6, r2, 0                                |     r6 = r2 + 0;
    0x000007f6 movs r0, r0                                   |     
    0x000007f8 subs r0, r2, 7                                |     r0 = r2 - 7;
    0x000007fa movs r0, r0                                   |     
    0x000007fc adds r6, r2, 4                                |     r6 = r2 + 4;
    0x000007fe movs r0, r0                                   |     
    0x00000800 subs r4, r2, 7                                |     r4 = r2 - 7;
    0x00000802 movs r0, r0                                   |     
    0x00000804 subs r6, r2, 0                                |     r6 = r2 - 0;
    0x00000806 movs r0, r0                                   |     
    0x00000808 subs r0, r3, 7                                |     r0 = r3 - 7;
    0x0000080a movs r0, r0                                   |     
    0x0000080c movs r1, 0x16                                 |     r1 = 0x16;
    0x0000080e movs r0, r0                                   |     
    0x00000810 subs r4, r3, 7                                |     r4 = r3 - 7;
    0x00000812 movs r0, r0                                   |     
    0x00000814 movs r2, 0x16                                 |     r2 = 0x16;
    0x00000816 movs r0, r0                                   |     
                                                             |     /* [09] -r-x section size 12 named .init */
    0x00000818 ands r0, r1                                   |     r0 &= r1;
    0x0000081c bl 0xc08                                      |     void (*0xc08)() ();
    0x00000820 pop {r3, pc}                                  |     
    0x00000a50 blmi 0x18533d8                                |     __asm ("blmi 0x18533d8");
    0x00000a54 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}   |     
    0x00000a58 sub sp, 0x24                                  |     
    0x00000a5a add r2, pc                                    |     r2 += pc;
    0x00000a5c ldr r4, [pc, 0x17c]                           |     
    0x00000a5e movs r5, 0                                    |     r5 = 0;
    0x00000a60 add r0, sp, 0x14                              |     r0 += var_14h;
    0x00000a62 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00000a64 add r4, pc                                    |     r4 = 0x1644;
    0x00000a66 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00000a68 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00000a6a mov.w r3, 0                                   |     r3 = 0;
    0x00000a6e str r5, [sp, 0x14]                            |     var_14h = r5;
    0x00000a70 bl 0x97c                                      |     r0 = fcn_0000097c (r0);
                                                             |     if (r0 == 0) {
    0x00000a74 cbnz r0, 0xa9a                                |         
                                                             | label_2:
    0x00000a76 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
                                                             |         if (r0 != 0) {
    0x00000a78 cbz r0, 0xa7e                                 |             
    0x00000a7a blx 0x838                                     |             g_free ();
                                                             |         }
    0x00000a7e ldr r2, [pc, 0x160]                           |         
    0x00000a80 ldr r3, [pc, 0x154]                           |         r3 = *(0xbd8);
    0x00000a82 add r2, pc                                    |         r2 = 0x1668;
    0x00000a84 ldr r3, [r2, r3]                              |         r3 = *(0x1668);
    0x00000a86 ldr r2, [r3]                                  |         r2 = *(0x1668);
    0x00000a88 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00000a8a eors r2, r3                                   |         r2 ^= r3;
    0x00000a8c mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00000a90 bne.w 0xbce                                   |             goto label_4;
                                                             |         }
    0x00000a94 add sp, 0x24                                  |         
    0x00000a96 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             |     }
    0x00000a9a ldr r0, [pc, 0x148]                           |     
    0x00000a9c ldr r1, [sp, 0x14]                            |     r1 = var_14h;
    0x00000a9e add r0, pc                                    |     r0 = 0x1688;
    0x00000aa0 blx 0x8b0                                     |     g_strdup_printf ()
    0x00000aa4 movs r1, 1                                    |     r1 = 1;
    0x00000aa6 mov r7, r0                                    |     r7 = r0;
    0x00000aa8 blx 0x94c                                     |     r0 = g_file_test ();
    0x00000aac cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000aae beq 0xb8e                                     |         goto label_5;
                                                             |     }
    0x00000ab0 mov r0, r7                                    |     r0 = r7;
    0x00000ab2 blx 0x940                                     |     g_file_new_for_path ();
    0x00000ab6 mov r2, r5                                    |     r2 = r5;
    0x00000ab8 mov r1, r5                                    |     r1 = r5;
    0x00000aba mov r6, r0                                    |     r6 = r0;
    0x00000abc blx 0x844                                     |     r0 = g_file_read ();
    0x00000ac0 mov sb, r0                                    |     sb = r0;
    0x00000ac2 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000ac4 beq 0xb86                                     |         goto label_6;
                                                             |     }
    0x00000ac6 blx 0x8a4                                     |     r0 = g_data_input_stream_new ();
    0x00000aca mov r8, r0                                    |     r8 = r0;
    0x00000acc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000ace beq 0xb76                                     |         goto label_7;
                                                             |     }
    0x00000ad0 ldr r3, [pc, 0x114]                           |     r3 = *(0xbe8);
    0x00000ad2 ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x00000ad4 str r3, [sp, 4]                               |     var_4h = r3;
    0x00000ad6 ldr r3, [pc, 0x114]                           |     r3 = *(0xbee);
    0x00000ad8 ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x00000ada str r3, [sp, 8]                               |     var_8h = r3;
    0x00000adc mov r1, r3                                    |     r1 = r3;
    0x00000ade ldr r3, [pc, 0x110]                           |     r3 = *(0xbf2);
    0x00000ae0 ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x00000ae2 mov r0, r3                                    |     r0 = r3;
    0x00000ae4 str r3, [sp, 8]                               |     var_8h = r3;
    0x00000ae6 ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00000ae8 mov r2, r3                                    |     r2 = r3;
    0x00000aea blx 0x8bc                                     |     g_hash_table_new_full ();
    0x00000aee ldr r3, [pc, 0x104]                           |     
    0x00000af0 strd r7, r6, [sp, 8]                          |     __asm ("strd r7, r6, [sp, 8]");
    0x00000af4 add r3, pc                                    |     r3 = 0x16ee;
    0x00000af6 str r0, [r3]                                  |     *(r3) = r0;
    0x00000af8 add r3, sp, 0x18                              |     r3 += var_18h;
    0x00000afa str r3, [sp, 4]                               |     var_4h = r3;
    0x00000afc ldr r3, [pc, 0xf8]                            |     
    0x00000afe add r3, pc                                    |     r3 = 0x16fa;
    0x00000b00 mov fp, r3                                    |     
                                                             | label_3:
    0x00000b02 movs r3, 0                                    |     r3 = 0;
    0x00000b04 ldr r1, [sp, 4]                               |     r1 = var_4h;
    0x00000b06 mov r2, r3                                    |     r2 = r3;
    0x00000b08 mov r0, r8                                    |     r0 = r8;
    0x00000b0a blx 0x8e0                                     |     r0 = g_data_input_stream_read_line ();
    0x00000b0e mov sl, r0                                    |     sl = r0;
                                                             |     if (r0 == 0) {
    0x00000b10 cbz r0, 0xb62                                 |         goto label_8;
                                                             |     }
    0x00000b12 movs r2, 2                                    |     r2 = 2;
    0x00000b14 mov r1, fp                                    |     r1 = fp;
    0x00000b16 blx 0x904                                     |     r0 = g_strsplit ();
    0x00000b1a mov r4, r0                                    |     r4 = r0;
    0x00000b1c ldr r0, [r0, 4]                               |     r0 = *((r0 + 4));
    0x00000b1e blx 0x8ec                                     |     r0 = strdup (r0);
    0x00000b22 mov r5, r0                                    |     r5 = r0;
    0x00000b24 mov ip, r0                                    |     
                                                             |     do {
    0x00000b26 ldr r3, [pc, 0xd4]                            |         
    0x00000b28 mov r6, ip                                    |         r6 = ip;
    0x00000b2a ldrb r2, [ip], 1                              |         r2 = *(ip);
                                                             |         ip++;
    0x00000b2e movs r7, 0x22                                 |         r7 = 0x22;
    0x00000b30 add r3, pc                                    |         r3 = 0x1732;
                                                             | label_0:
    0x00000b32 cmp r2, r7                                    |         
    0x00000b34 beq 0xb26                                     |         
                                                             |     } while (r2 == r7);
    0x00000b36 ldrb r7, [r3, 1]!                             |     r7 = *((r3 += 1));
    0x00000b3a cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00000b3c bne 0xb32                                     |         goto label_0;
                                                             |     }
    0x00000b3e mov r0, r6                                    |     r0 = r6;
    0x00000b40 blx 0x8d4                                     |     strlen (r0);
    0x00000b44 mov r3, r7                                    |     r3 = r7;
    0x00000b46 add r0, r6                                    |     r0 += r6;
                                                             | label_1:
    0x00000b48 ldr r1, [pc, 0xb4]                            |     
    0x00000b4a movs r2, 0x22                                 |     r2 = 0x22;
    0x00000b4c ldrb r7, [r0, -0x1]!                          |     r7 = *((r0 -= 0x1));
    0x00000b50 add r1, pc                                    |     r1 = 0x1754;
    0x00000b52 b 0xb5a                                       |     
                                                             |     while (r7 != r2) {
    0x00000b54 ldrb r2, [r1, 1]!                             |         r2 = *((r1 += 1));
                                                             |         if (r2 == 0) {
    0x00000b58 cbz r2, 0xb9c                                 |             goto label_9;
                                                             |         }
    0x00000b5a cmp r7, r2                                    |         
    0x00000b5c bne 0xb54                                     |         
                                                             |     }
    0x00000b5e strb r3, [r0]                                 |     *(r0) = r3;
    0x00000b60 b 0xb48                                       |     goto label_1;
                                                             | label_8:
    0x00000b62 mov r2, r0                                    |     r2 = r0;
    0x00000b64 mov r1, r0                                    |     r1 = r0;
    0x00000b66 mov r0, r8                                    |     r0 = r8;
    0x00000b68 ldrd r7, r6, [sp, 8]                          |     __asm ("ldrd r7, r6, [var_8h]");
    0x00000b6c blx 0x8c8                                     |     g_input_stream_close ();
    0x00000b70 mov r0, r8                                    |     r0 = r8;
    0x00000b72 blx 0x874                                     |     g_object_unref ();
                                                             | label_7:
    0x00000b76 movs r2, 0                                    |     r2 = 0;
    0x00000b78 mov r0, sb                                    |     r0 = sb;
    0x00000b7a mov r1, r2                                    |     r1 = r2;
    0x00000b7c blx 0x8c8                                     |     g_input_stream_close ();
    0x00000b80 mov r0, sb                                    |     r0 = sb;
    0x00000b82 blx 0x874                                     |     g_object_unref ();
                                                             |     if (r6 != 0) {
                                                             | label_6:
    0x00000b86 cbz r6, 0xb8e                                 |         
    0x00000b88 mov r0, r6                                    |         r0 = r6;
    0x00000b8a blx 0x874                                     |         g_object_unref ();
                                                             |     }
                                                             | label_5:
    0x00000b8e cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00000b90 beq.w 0xa76                                   |         goto label_2;
                                                             |     }
    0x00000b94 mov r0, r7                                    |     r0 = r7;
    0x00000b96 blx 0x838                                     |     g_free ();
    0x00000b9a b 0xa76                                       |     goto label_2;
                                                             | label_9:
    0x00000b9c mov r0, r6                                    |     r0 = r6;
    0x00000b9e blx 0x880                                     |     r0 = g_strdup ();
    0x00000ba2 mov r6, r0                                    |     r6 = r0;
    0x00000ba4 mov r0, r5                                    |     r0 = r5;
    0x00000ba6 blx 0x838                                     |     g_free ();
    0x00000baa ldr r3, [pc, 0x58]                            |     
    0x00000bac ldr r0, [r4]                                  |     r0 = *(r4);
    0x00000bae add r3, pc                                    |     r3 = 0x17b8;
    0x00000bb0 ldr r5, [r3]                                  |     r5 = *(0x17b8);
    0x00000bb2 blx 0x880                                     |     g_strdup ();
    0x00000bb6 mov r2, r6                                    |     r2 = r6;
    0x00000bb8 mov r1, r0                                    |     r1 = r0;
    0x00000bba mov r0, r5                                    |     r0 = r5;
    0x00000bbc blx 0x88c                                     |     g_hash_table_insert ();
    0x00000bc0 mov r0, r4                                    |     r0 = r4;
    0x00000bc2 blx 0x934                                     |     g_strfreev ();
    0x00000bc6 mov r0, sl                                    |     r0 = sl;
    0x00000bc8 blx 0x838                                     |     g_free ();
    0x00000bcc b 0xb02                                       |     goto label_3;
                                                             | label_4:
    0x00000bce blx 0x8f8                                     |     stack_chk_fail ();
    0x00000bd2 nop                                           |     
    0x00000bd4 asrs r2, r2, 0x14                             |     r2 >>= 0x14;
    0x00000bd6 movs r0, r0                                   |     
    0x00000bd8 lsls r4, r0, 2                                |     r4 = r0 << 2;
    0x00000bda movs r0, r0                                   |     
    0x00000bdc asrs r0, r1, 0x14                             |     r0 = r1 >> 0x14;
    0x00000bde movs r0, r0                                   |     
    0x00000be0 asrs r2, r5, 0x13                             |     r2 = r5 >> 0x13;
    0x00000be2 movs r0, r0                                   |     
    0x00000be4 lsls r6, r0, 0xc                              |     r6 = r0 << 0xc;
    0x00000be6 movs r0, r0                                   |     
    0x00000be8 lsls r0, r6, 1                                |     r0 = r6 << 1;
    0x00000bea movs r0, r0                                   |     
    0x00000bec lsls r0, r1, 2                                |     r0 = r1 << 2;
    0x00000bee movs r0, r0                                   |     
    0x00000bf0 lsls r4, r6, 1                                |     r4 = r6 << 1;
    0x00000bf2 movs r0, r0                                   |     
    0x00000bf4 asrs r0, r2, 0x14                             |     r0 = r2 >> 0x14;
    0x00000bf6 movs r0, r0                                   |     
    0x00000bf8 lsls r2, r1, 0xb                              |     r2 = r1 << 0xb;
    0x00000bfa movs r0, r0                                   |     
    0x00000bfc lsls r0, r6, 9                                |     r0 = r6 << 9;
    0x00000bfe movs r0, r0                                   |     
    0x00000c00 lsls r0, r2, 9                                |     r0 = r2 << 9;
    0x00000c02 movs r0, r0                                   |     
    0x00000c04 asrs r6, r2, 0x11                             |     r6 = r2 >> 0x11;
    0x00000c06 movs r0, r0                                   |     
    0x00000c08 adds r0, 0x14                                 |     r0 += 0x14;
                                                             | }

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