[*] Binary protection state of libserved-api-common.so.1.0.35

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


[*] Function printf tear down of libserved-api-common.so.1.0.35

    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libserved-api-common.so.1.0.35 @ 0xa0dc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.resource_get_default_interface ()        | void resource_get_default_interface (int16_t arg_358h, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h_2;
                                                         |     int16_t var_ch_2;
                                                         |     int16_t var_0h;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_60h;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x0000a0dc mvnsmi lr, sp, lsr 18                     |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0000a0e0 mov r4, r1                                |     r4 = r1;
    0x0000a0e2 ldr r5, [pc, 0xe8]                        |     
    0x0000a0e4 mov r1, r2                                |     r1 = r2;
    0x0000a0e6 mov r2, r4                                |     r2 = r4;
    0x0000a0e8 sub sp, 0x10                              |     
    0x0000a0ea ldr r4, [pc, 0xe4]                        |     r4 = *(0xa1d2);
    0x0000a0ec add r5, pc                                |     r5 = 0x142be;
    0x0000a0ee ldr.w r8, [sp, 0x28]                      |     r8 = var_0h;
    0x0000a0f2 ldr r7, [pc, 0xe0]                        |     
    0x0000a0f4 ldr r4, [r5, r4]                          |     
    0x0000a0f6 add r7, pc                                |     r7 = 0x142d0;
    0x0000a0f8 ldr r4, [r4]                              |     r4 = imp.g_str_hash;
    0x0000a0fa str r4, [sp, 0xc]                         |     var_ch_2 = r4;
    0x0000a0fc mov.w r4, 0                               |     r4 = 0;
    0x0000a100 blx 0x6208                                |     r0 = fcn_00006208 ();
    0x0000a104 mov r6, r0                                |     r6 = r0;
    0x0000a106 blx 0x5ef4                                |     r0 = g_strdup_printf ()
    0x0000a10a cmp r0, 1                                 |     
                                                         |     if (r0 == 1) {
    0x0000a10c bne 0xa146                                |         
    0x0000a10e movs r1, 0                                |         r1 = 0;
    0x0000a110 mov r0, r6                                |         r0 = r6;
    0x0000a112 blx 0x65ac                                |         fcn_000065ac ();
    0x0000a116 blx 0x5f04                                |         r0 = fcn_00005f04 ();
    0x0000a11a mov r4, r0                                |         r4 = r0;
                                                         | label_0:
    0x0000a11c ldr r3, [pc, 0xb8]                        |         r3 = *(0xa1d8);
    0x0000a11e mov r0, r6                                |         r0 = r6;
    0x0000a120 ldr r3, [r7, r3]                          |         r3 = *((r7 + r3));
    0x0000a122 mov r1, r3                                |         r1 = r3;
    0x0000a124 str r3, [sp, 4]                           |         var_4h = r3;
    0x0000a126 blx 0x5d00                                |         fcn_00005d00 ();
    0x0000a12a ldr r2, [pc, 0xb0]                        |         
    0x0000a12c ldr r3, [pc, 0xa0]                        |         r3 = *(0xa1d0);
    0x0000a12e add r2, pc                                |         r2 = 0x14310;
    0x0000a130 ldr r3, [r2, r3]                          |         r3 = imp.g_str_hash;
    0x0000a132 ldr r2, [r3]                              |         r2 = imp.g_str_hash;
    0x0000a134 ldr r3, [sp, 0xc]                         |         r3 = var_ch_2;
    0x0000a136 eors r2, r3                               |         r2 ^= r3;
    0x0000a138 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0000a13c bne 0xa1c8                                |             goto label_2;
                                                         |         }
    0x0000a13e mov r0, r4                                |         r0 = r4;
    0x0000a140 add sp, 0x10                              |         
    0x0000a142 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         |     }
    0x0000a146 mov r0, r6                                |     r0 = r6;
    0x0000a148 blx 0x5ef4                                |     r0 = g_strdup_printf ()
    0x0000a14c cmp r0, 1                                 |     
                                                         |     if (r0 < 1) {
    0x0000a14e bls 0xa1b4                                |         goto label_3;
                                                         |     }
    0x0000a150 blx 0x5da8                                |     fcn_00005da8 ();
    0x0000a154 str r0, [sp, 8]                           |     var_8h_2 = r0;
    0x0000a156 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0000a158 beq 0xa1c4                                |         goto label_4;
                                                         |     }
    0x0000a15a mov r5, r6                                |     r5 = r6;
    0x0000a15c movs r4, 0                                |     r4 = 0;
                                                         |     do {
    0x0000a15e ldr r0, [r5]                              |         r0 = *(r5);
    0x0000a160 blx 0x65dc                                |         r0 = fcn_000065dc ();
    0x0000a164 mov r1, r0                                |         r1 = r0;
    0x0000a166 mov r0, r4                                |         r0 = r4;
    0x0000a168 blx 0x64fc                                |         fcn_000064fc ();
    0x0000a16c ldr r5, [r5, 4]                           |         r5 = *((r5 + 4));
    0x0000a16e mov r4, r0                                |         r4 = r0;
    0x0000a170 cmp r5, 0                                 |         
    0x0000a172 bne 0xa15e                                |         
                                                         |     } while (r5 != 0);
    0x0000a174 ldr r0, [sp, 8]                           |     r0 = var_8h_2;
                                                         | label_1:
    0x0000a176 ldr r1, [pc, 0x68]                        |     
    0x0000a178 mov r2, r4                                |     r2 = r4;
    0x0000a17a add r1, pc                                |     r1 = 0x14360;
    0x0000a17c blx 0x60dc                                |     fcn_000060dc ();
    0x0000a180 mov r0, r4                                |     r0 = r4;
    0x0000a182 blx 0x5ca4                                |     fcn_00005ca4 ();
    0x0000a186 ldr r2, [pc, 0x5c]                        |     
    0x0000a188 ldr r1, [pc, 0x5c]                        |     
    0x0000a18a ldr r0, [sp, 8]                           |     r0 = var_8h_2;
    0x0000a18c add r2, pc                                |     r2 = 0x14376;
    0x0000a18e add r1, pc                                |     r1 = 0x1437a;
    0x0000a190 blx 0x59a0                                |     fcn_000059a0 ();
    0x0000a194 ldr r1, [sp, 8]                           |     r1 = var_8h_2;
    0x0000a196 mov.w r0, 0x12c                           |     r0 = 0x12c;
    0x0000a19a blx 0x60c0                                |     r0 = fcn_000060c0 ();
    0x0000a19e mov r4, r0                                |     r4 = r0;
    0x0000a1a0 add r0, sp, 8                             |     r0 += var_8h_2;
    0x0000a1a2 blx 0x61f0                                |     fcn_000061f0 ();
                                                         |     do {
                                                         |         if (r4 != 0) {
    0x0000a1a6 cbz r4, 0xa1b0                            |             
    0x0000a1a8 mov r1, r4                                |             r1 = r4;
    0x0000a1aa mov r0, r8                                |             r0 = r8;
    0x0000a1ac blx 0x60b4                                |             fcn_000060b4 ();
                                                         |         }
    0x0000a1b0 movs r4, 0                                |         r4 = 0;
    0x0000a1b2 b 0xa11c                                  |         goto label_0;
                                                         | label_3:
    0x0000a1b4 ldr r1, [pc, 0x34]                        |         
    0x0000a1b6 mov.w r0, 0x194                           |         r0 = 0x194;
    0x0000a1ba add r1, pc                                |         r1 = 0x143aa;
    0x0000a1bc blx 0x5b50                                |         r0 = fcn_00005b50 ();
    0x0000a1c0 mov r4, r0                                |         r4 = r0;
    0x0000a1c2 b 0xa1a6                                  |         
                                                         |     } while (1);
                                                         | label_4:
    0x0000a1c4 mov r4, r6                                |     r4 = r6;
    0x0000a1c6 b 0xa176                                  |     goto label_1;
                                                         | label_2:
    0x0000a1c8 blx 0x63b4                                |     fcn_000063b4 ();
    0x0000a1cc ldr r2, [sp, 0x60]                        |     r2 = var_60h;
    0x0000a1ce movs r0, r0                               |     
    0x0000a1d0 lsls r0, r5, 0x13                         |     r0 = r5 << 0x13;
    0x0000a1d2 movs r0, r0                               |     
    0x0000a1d4 ldr r2, [sp, 0x38]                        |     r2 = var_10h;
    0x0000a1d6 movs r0, r0                               |     
    0x0000a1d8 lsls r4, r2, 0x13                         |     r4 = r2 << 0x13;
    0x0000a1da movs r0, r0                               |     
    0x0000a1dc ldr r1, [sp, 0x358]                       |     r1 = *(arg_358h);
    0x0000a1de movs r0, r0                               |     
    0x0000a1e0 str r6, [r7, 0x78]                        |     *((r7 + 0x78)) = r6;
    0x0000a1e2 movs r0, r0                               |     
    0x0000a1e4 str r4, [r6, 0x78]                        |     *((r6 + 0x78)) = r4;
    0x0000a1e6 movs r0, r0                               |     
    0x0000a1e8 str r6, [r5, 0x7c]                        |     *((r5 + 0x7c)) = r6;
    0x0000a1ea movs r0, r0                               |     
    0x0000a1ec str r2, [r1, 0x7c]                        |     *((r1 + 0x7c)) = r2;
    0x0000a1ee movs r0, r0                               |     
                                                         | }

[*] Function printf used 3 times libserved-api-common.so.1.0.35