[*] Binary protection state of libapac.so.0.0.1

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


[*] Function sprintf tear down of libapac.so.0.0.1

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libapac.so.0.0.1 @ 0x13a4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.apac_get_user_name_from_sender ()    | void apac_get_user_name_from_sender (uint32_t arg1, int16_t arg2) {
                                                     |     int16_t var_14h;
                                                     |     int16_t var_33ch;
                                                     |     int16_t var_0h;
                                                     |     int16_t var_4h;
                                                     |     int16_t var_ch;
                                                     |     int16_t var_10h;
                                                     |     int16_t var_1ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x000013a4 blmi 0x1353cdc                        |     __asm ("blmi 0x1353cdc");
    0x000013a8 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x000013ac sub sp, 0x20                          |     
    0x000013ae add r2, pc                            |     r2 += pc;
    0x000013b0 ldr r7, [pc, 0x12c]                   |     
    0x000013b2 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x000013b4 add r7, pc                            |     r7 = 0x2898;
    0x000013b6 ldr r3, [r3]                          |     r3 = *(r3);
    0x000013b8 str r3, [sp, 0x1c]                    |     var_1ch = r3;
    0x000013ba mov.w r3, 0                           |     r3 = 0;
    0x000013be ldr r3, [r7]                          |     r3 = *(0x2898);
    0x000013c0 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x000013c2 beq 0x1442                            |         goto label_2;
                                                     |     }
    0x000013c4 mov r4, r0                            |     r4 = r0;
    0x000013c6 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x000013c8 beq 0x1452                            |         goto label_3;
                                                     |     }
    0x000013ca add.w r8, sp, 0xc                     |     r8 += var_ch;
    0x000013ce mov r6, r1                            |     r6 = r1;
    0x000013d0 mov r0, r8                            |     r0 = r8;
    0x000013d2 blx 0xbec                             |     fcn_00000bec ();
    0x000013d6 ldr r3, [r7]                          |     r3 = *(r7);
    0x000013d8 mov r2, r8                            |     r2 = r8;
    0x000013da mov r1, r4                            |     r1 = r4;
    0x000013dc ldr r0, [r3, 4]                       |     r0 = *((r3 + 4));
    0x000013de blx 0xc1c                             |     r0 = fcn_00000c1c ();
    0x000013e2 adds r3, r0, 1                        |     r3 = r0 + 1;
    0x000013e4 mov r5, r0                            |     r5 = r0;
                                                     |     if (r3 == r0) {
    0x000013e6 beq 0x146e                            |         goto label_4;
                                                     |     }
    0x000013e8 blx 0xc7c                             |     fcn_00000c7c ();
    0x000013ec movs r3, 0                            |     r3 = 0;
    0x000013ee mov r4, r0                            |     r4 = r0;
    0x000013f0 str r3, [r0]                          |     *(r0) = r3;
    0x000013f2 mov r0, r5                            |     r0 = r5;
    0x000013f4 blx 0xb50                             |     r0 = fcn_00000b50 ();
    0x000013f8 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x000013fa beq 0x1498                            |         goto label_5;
                                                     |     }
    0x000013fc ldr r0, [r0]                          |     r0 = *(r0);
                                                     |     if (r0 == 0) {
    0x000013fe cbz r0, 0x1422                        |         goto label_6;
                                                     |     }
    0x00001400 ldrb r3, [r0]                         |     r3 = *(r0);
                                                     |     if (r3 == 0) {
    0x00001402 cbz r3, 0x1422                        |         goto label_6;
                                                     |     }
    0x00001404 blx 0xabc                             |     g_strdup ();
                                                     |     do {
    0x00001408 ldr r2, [pc, 0xd8]                    |         
    0x0000140a ldr r3, [pc, 0xd0]                    |         r3 = *(0x14de);
    0x0000140c add r2, pc                            |         r2 = 0x28f4;
    0x0000140e ldr r3, [r2, r3]                      |         r3 = *(0x28f4);
    0x00001410 ldr r2, [r3]                          |         r2 = *(0x28f4);
    0x00001412 ldr r3, [sp, 0x1c]                    |         r3 = var_1ch;
    0x00001414 eors r2, r3                           |         r2 ^= r3;
    0x00001416 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0000141a bne 0x14d2                            |             goto label_7;
                                                     |         }
    0x0000141c add sp, 0x20                          |         
    0x0000141e pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_6:
    0x00001422 ldr r4, [pc, 0xc4]                    |         
    0x00001424 add r4, pc                            |         r4 = 0x2912;
    0x00001426 ldr r1, [r4, 4]                       |         r1 = *(0x2916);
                                                     |         if (r1 == 0) {
    0x00001428 cbz r1, 0x1460                        |             goto label_8;
                                                     |         }
                                                     | label_1:
    0x0000142a ldr r2, [pc, 0xc0]                    |         
    0x0000142c mov r0, r6                            |         r0 = r6;
    0x0000142e ldr r3, [pc, 0xc0]                    |         
    0x00001430 add r2, pc                            |         r2 = 0x2922;
    0x00001432 strd r5, r2, [sp]                     |         __asm ("strd r5, r2, [sp]");
    0x00001436 add r3, pc                            |         r3 = 0x292c;
    0x00001438 movs r2, 3                            |         r2 = 3;
    0x0000143a blx 0xb74                             |         fcn_00000b74 ();
                                                     | label_0:
    0x0000143e movs r0, 0                            |         r0 = 0;
    0x00001440 b 0x1408                              |         
                                                     |     } while (1);
                                                     | label_2:
    0x00001442 ldr r2, [pc, 0xb0]                    |     
    0x00001444 mov r0, r3                            |     r0 = r3;
    0x00001446 ldr r1, [pc, 0xb0]                    |     
    0x00001448 add r2, pc                            |     r2 = 0x2942;
    0x0000144a add r1, pc                            |     r1 = 0x2948;
    0x0000144c blx 0xb5c                             |     fcn_00000b5c ();
    0x00001450 b 0x143e                              |     goto label_0;
                                                     | label_3:
    0x00001452 ldr r2, [pc, 0xa8]                    |     
    0x00001454 ldr r1, [pc, 0xa8]                    |     
    0x00001456 add r2, pc                            |     r2 = 0x2958;
    0x00001458 add r1, pc                            |     r1 = 0x295c;
    0x0000145a blx 0xb5c                             |     fcn_00000b5c ();
    0x0000145e b 0x143e                              |     goto label_0;
                                                     | label_8:
    0x00001460 ldr r0, [pc, 0xa0]                    |     
    0x00001462 add r0, pc                            |     r0 = 0x296a;
    0x00001464 blx 0xb80                             |     r0 = fcn_00000b80 ();
    0x00001468 mov r1, r0                            |     r1 = r0;
    0x0000146a str r0, [r4, 4]                       |     *((r4 + 4)) = r0;
    0x0000146c b 0x142a                              |     goto label_1;
                                                     | label_4:
    0x0000146e ldr r1, [r7, 4]                       |     r1 = *((r7 + 4));
                                                     |     if (r1 == 0) {
    0x00001470 cbnz r1, 0x147e                       |         
    0x00001472 ldr r0, [pc, 0x94]                    |         
    0x00001474 add r0, pc                            |         r0 = 0x2982;
    0x00001476 blx 0xb80                             |         r0 = fcn_00000b80 ();
    0x0000147a mov r1, r0                            |         r1 = r0;
    0x0000147c str r0, [r7, 4]                       |         *((r7 + 4)) = r0;
                                                     |     }
    0x0000147e ldr r2, [sp, 0x10]                    |     r2 = var_10h;
    0x00001480 mov r0, r6                            |     r0 = r6;
    0x00001482 ldr r3, [pc, 0x88]                    |     
    0x00001484 str r4, [sp]                          |     *(sp) = r4;
    0x00001486 str r2, [sp, 4]                       |     var_4h = r2;
    0x00001488 movs r2, 3                            |     r2 = 3;
    0x0000148a add r3, pc                            |     r3 = 0x299c;
    0x0000148c blx 0xb74                             |     fcn_00000b74 ();
    0x00001490 mov r0, r8                            |     r0 = r8;
    0x00001492 blx 0xc4c                             |     fcn_00000c4c ();
    0x00001496 b 0x143e                              |     goto label_0;
                                                     | label_5:
    0x00001498 ldr.w r8, [r7, 4]                     |     r8 = *((r7 + 4));
    0x0000149c cmp.w r8, 0                           |     
                                                     |     if (r8 == 0) {
    0x000014a0 bne 0x14ae                            |         
    0x000014a2 ldr r0, [pc, 0x6c]                    |         
    0x000014a4 add r0, pc                            |         r0 = 0x29ba;
    0x000014a6 blx 0xb80                             |         r0 = fcn_00000b80 ();
    0x000014aa mov r8, r0                            |         r8 = r0;
    0x000014ac str r0, [r7, 4]                       |         *((r7 + 4)) = r0;
                                                     |     }
    0x000014ae ldr r0, [r4]                          |     r0 = *(r4);
                                                     |     if (r0 == 0) {
    0x000014b0 cbz r0, 0x14cc                        |         goto label_9;
                                                     |     }
    0x000014b2 blx 0xc04                             |     r0 = fcn_00000c04 ();
    0x000014b6 mov r2, r0                            |     r2 = r0;
                                                     |     do {
    0x000014b8 ldr r3, [pc, 0x58]                    |         
    0x000014ba mov r1, r8                            |         r1 = r8;
    0x000014bc strd r5, r2, [sp]                     |         __asm ("strd r5, r2, [sp]");
    0x000014c0 mov r0, r6                            |         r0 = r6;
    0x000014c2 movs r2, 3                            |         r2 = 3;
    0x000014c4 add r3, pc                            |         r3 = 0x29dc;
    0x000014c6 blx 0xb74                             |         fcn_00000b74 ();
    0x000014ca b 0x143e                              |         goto label_0;
                                                     | label_9:
    0x000014cc ldr r2, [pc, 0x48]                    |         
    0x000014ce add r2, pc                            |         r2 = 0x29ea;
    0x000014d0 b 0x14b8                              |         
                                                     |     } while (1);
                                                     | label_7:
    0x000014d2 blx 0xbe0                             |     fcn_00000be0 ();
    0x000014d6 nop                                   |     
    0x000014d8 cmp r3, 0x82                          |     
    0x000014da movs r0, r0                           |     
    0x000014dc lsls r4, r0, 3                        |     r4 = r0 << 3;
    0x000014de movs r0, r0                           |     
    0x000014e0 cmp r4, 0x50                          |     
    0x000014e2 movs r0, r0                           |     
    0x000014e4 cmp r3, 0x24                          |     
    0x000014e6 movs r0, r0                           |     
    0x000014e8 cmp r3, 0xe0                          |     
    0x000014ea movs r0, r0                           |     
    0x000014ec lsrs r0, r5, 0xe                      |     r0 = r5 >> 0xe;
    0x000014ee movs r0, r0                           |     
    0x000014f0 lsrs r6, r7, 0xd                      |     r6 = r7 >> 0xd;
    0x000014f2 movs r0, r0                           |     
    0x000014f4 lsrs r4, r3, 0xc                      |     r4 = r3 >> 0xc;
    0x000014f6 movs r0, r0                           |     
    0x000014f8 lsrs r2, r2, 0x19                     |     r2 >>= 0x19;
    0x000014fa movs r0, r0                           |     
    0x000014fc lsrs r6, r3, 0xc                      |     r6 = r3 >> 0xc;
    0x000014fe movs r0, r0                           |     
    0x00001500 lsrs r4, r0, 0x19                     |     r4 = r0 >> 0x19;
    0x00001502 movs r0, r0                           |     
    0x00001504 lsrs r2, r4, 0xc                      |     r2 = r4 >> 0xc;
    0x00001506 movs r0, r0                           |     
    0x00001508 lsrs r0, r2, 0xc                      |     r0 = r2 >> 0xc;
    0x0000150a movs r0, r0                           |     
    0x0000150c lsrs r2, r0, 0xc                      |     r2 = r0 >> 0xc;
    0x0000150e movs r0, r0                           |     
    0x00001510 lsrs r0, r4, 0xb                      |     r0 = r4 >> 0xb;
    0x00001512 movs r0, r0                           |     
    0x00001514 lsrs r0, r6, 0xb                      |     r0 = r6 >> 0xb;
    0x00001516 movs r0, r0                           |     
    0x00001518 lsrs r6, r0, 0xa                      |     r6 = r0 >> 0xa;
    0x0000151a movs r0, r0                           |     
                                                     | }

[*] Function sprintf used 1 times libapac.so.0.0.1