[*] Binary protection state of libipcdataconversion.so.0.2.3

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


[*] Function printf tear down of libipcdataconversion.so.0.2.3

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libipcdataconversion.so.0.2.3 @ 0x1f18 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00001f18 ()                  | void fcn_00001f18 (int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     if (? >= ?) {
    0x00001f18 ldrlt r6, [r8, -0x80a]!       |         r6 = *((r8 -= 0x80a));
                                             |     }
    0x00001f1c mov r3, r1                    |     r3 = r1;
    0x00001f1e mov r4, r0                    |     r4 = r0;
    0x00001f20 cmp r2, 5                     |     
                                             |     if (r2 != 5) {
    0x00001f22 beq 0x1f34                    |         
    0x00001f24 cmp r2, 6                     |         
                                             |         if (r2 > 6) {
    0x00001f26 bhi 0x1f4c                    |             goto label_0;
                                             |         }
                                             |         /* switch table (7 cases) at 0x1f2c */
    0x00001f28 tbb [pc, r2]                  |         __asm ("tbb [0x00001f30]");
                                             |     }
    0x00001f34 ldr r0, [r3, 8]               |     r0 = *((r3 + 8));
    0x00001f36 mov r2, r4                    |     r2 = r4;
    0x00001f38 ldr r3, [r4, 4]               |     r3 = *((r4 + 4));
    0x00001f3a ldr r1, [pc, 0xcc]            |     
    0x00001f3c adds r3, 1                    |     r3++;
    0x00001f3e str r3, [r4, 4]               |     *((r4 + 4)) = r3;
    0x00001f40 add r1, pc                    |     r1 = 0x3f4e;
    0x00001f42 blx 0x121c                    |     fcn_0000121c ();
    0x00001f46 ldr r3, [r4, 4]               |     r3 = *((r4 + 4));
    0x00001f48 subs r3, 1                    |     r3--;
    0x00001f4a str r3, [r4, 4]               |     *((r4 + 4)) = r3;
                                             | label_0:
    0x00001f4c pop {r3, r4, r5, pc}          |     
    0x00001f4e ldr r1, [pc, 0xbc]            |     
    0x00001f50 ldr r0, [r0]                  |     r0 = *(r0);
    0x00001f52 add r1, pc                    |     r1 = 0x3f64;
    0x00001f54 blx 0x14e0                    |     fcn_000014e0 ();
    0x00001f58 ldr r1, [pc, 0xb4]            |     
    0x00001f5a ldr r0, [r4]                  |     r0 = *(r4);
    0x00001f5c pop.w {r3, r4, r5, lr}        |     
    0x00001f60 add r1, pc                    |     r1 = 0x3f74;
    0x00001f62 b.w 0x14dc                    |     void (*0x14dc)() ();
    0x00001f66 ldr r1, [pc, 0xac]            |     
    0x00001f68 ldr r0, [r0]                  |     r0 = *(r0);
    0x00001f6a ldr r2, [r3, 8]               |     r2 = *((r3 + 8));
    0x00001f6c add r1, pc                    |     r1 = 0x3f86;
    0x00001f6e blx 0x14fc                    |     fcn_000014fc ();
    0x00001f72 ldr r1, [pc, 0xa4]            |     
    0x00001f74 ldr r0, [r4]                  |     r0 = *(r4);
    0x00001f76 pop.w {r3, r4, r5, lr}        |     
    0x00001f7a add r1, pc                    |     r1 = 0x3f98;
    0x00001f7c b.w 0x14dc                    |     void (*0x14dc)() ();
    0x00001f80 ldr r1, [pc, 0x98]            |     
    0x00001f82 ldr r0, [r0]                  |     r0 = *(r0);
    0x00001f84 ldrd r2, r3, [r3, 8]          |     __asm ("ldrd r2, r3, [r3, 8]");
    0x00001f88 add r1, pc                    |     r1 = 0x3fa8;
    0x00001f8a blx 0x14fc                    |     fcn_000014fc ();
    0x00001f8e ldr r1, [pc, 0x90]            |     
    0x00001f90 ldr r0, [r4]                  |     r0 = *(r4);
    0x00001f92 pop.w {r3, r4, r5, lr}        |     
    0x00001f96 add r1, pc                    |     r1 = 0x3fbc;
    0x00001f98 b.w 0x14dc                    |     void (*0x14dc)() ();
    0x00001f9c ldr r3, [r3, 8]               |     r3 = *((r3 + 8));
    0x00001f9e ldr r0, [r0]                  |     r0 = *(r0);
                                             |     if (r3 == 0) {
    0x00001fa0 cbz r3, 0x2000                |         goto label_1;
                                             |     }
    0x00001fa2 ldr r2, [pc, 0x80]            |     
    0x00001fa4 add r2, pc                    |     r2 = 0x3fce;
                                             |     do {
    0x00001fa6 ldr r1, [pc, 0x80]            |         
    0x00001fa8 add r1, pc                    |         r1 = 0x3fd6;
    0x00001faa blx 0x14fc                    |         fcn_000014fc ();
    0x00001fae ldr r1, [pc, 0x7c]            |         
    0x00001fb0 ldr r0, [r4]                  |         r0 = *(r4);
    0x00001fb2 pop.w {r3, r4, r5, lr}        |         
    0x00001fb6 add r1, pc                    |         r1 = 0x3fe8;
    0x00001fb8 b.w 0x14dc                    |         void (*0x14dc)() ();
    0x00001fbc ldr r0, [r3, 8]               |         r0 = *((r3 + 8));
    0x00001fbe movs r1, 0                    |         r1 = 0;
    0x00001fc0 blx 0x14ac                    |         json_builder_begin_array ();
    0x00001fc4 ldr r1, [pc, 0x68]            |         
    0x00001fc6 mov r5, r0                    |         r5 = r0;
    0x00001fc8 mov r2, r0                    |         r2 = r0;
    0x00001fca ldr r0, [r4]                  |         r0 = *(r4);
    0x00001fcc add r1, pc                    |         r1 = .data;
    0x00001fce blx 0x14fc                    |         fcn_000014fc ();
    0x00001fd2 mov r0, r5                    |         r0 = r5;
    0x00001fd4 blx 0x1238                    |         fcn_00001238 ();
    0x00001fd8 ldr r1, [pc, 0x58]            |         
    0x00001fda ldr r0, [r4]                  |         r0 = *(r4);
    0x00001fdc pop.w {r3, r4, r5, lr}        |         
    0x00001fe0 add r1, pc                    |         r1 = 0x4018;
    0x00001fe2 b.w 0x14dc                    |         void (*0x14dc)() ();
    0x00001fe6 ldr r5, [r0, 4]               |         r5 = *((r0 + 4));
    0x00001fe8 mov r2, r4                    |         r2 = r4;
    0x00001fea ldr r1, [pc, 0x4c]            |         
    0x00001fec ldr r0, [r3, 8]               |         r0 = *((r3 + 8));
    0x00001fee adds r5, 1                    |         r5++;
    0x00001ff0 add r1, pc                    |         r1 = 0x402e;
    0x00001ff2 str r5, [r4, 4]               |         *((r4 + 4)) = r5;
    0x00001ff4 blx 0x12e0                    |         fcn_000012e0 ();
    0x00001ff8 ldr r3, [r4, 4]               |         r3 = *((r4 + 4));
    0x00001ffa subs r3, 1                    |         r3--;
    0x00001ffc str r3, [r4, 4]               |         *((r4 + 4)) = r3;
    0x00001ffe pop {r3, r4, r5, pc}          |         
                                             | label_1:
    0x00002000 ldr r2, [pc, 0x38]            |         
    0x00002002 add r2, pc                    |         r2 = 0x4042;
    0x00002004 b 0x1fa6                      |         
                                             |     } while (1);
                                             | }

[*] Function printf used 1 times libipcdataconversion.so.0.2.3