[*] 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