[*] Binary protection state of libip6t_mh.so
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libip6t_mh.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/xtables/libip6t_mh.so @ 0x99c */
| #include <stdint.h>
|
; (fcn) fcn.0000099c () | void fcn_0000099c (int32_t arg1, uint32_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x0000099c cmp r1, 0 |
| if (r1 != 0) {
0x000009a0 bne 0x9c8 | goto label_0;
| }
0x000009a4 ldr r3, [pc, 0x48] | r3 = *(0x9f0);
0x000009a8 add r3, pc, r3 | r3 = pc + r3;
| do {
0x000009ac add r2, r3, r1, lsl 3 | r2 = r3 + (r1 << 3);
0x000009b0 ldrb r2, [r2, 4] | r2 = *((r2 + 4));
0x000009b4 cmp r2, r0 |
| if (r2 == r0) {
0x000009b8 bne 0x9d8 |
0x000009bc ldr r1, [r3, r1, lsl 3] | offset_0 = r1 << 3;
| r1 = *((r3 + offset_0));
0x000009c0 cmp r1, 0 |
| if (r1 != 0) {
0x000009c4 bne 0x9e8 | goto label_2;
| }
| label_0:
0x000009c8 mov r1, r0 | r1 = r0;
0x000009cc ldr r0, [pc, 0x24] | r0 = *(0x9f4);
0x000009d0 add r0, pc, r0 | r0 = pc + r0;
| label_1:
0x000009d4 b 0x628 | void (*0x628)() ();
| }
0x000009d8 add r1, r1, 1 | r1++;
0x000009dc cmp r1, 0x10 |
0x000009e0 bne 0x9ac |
| } while (r1 != 0x10);
0x000009e4 b 0x9c8 | goto label_0;
| label_2:
0x000009e8 ldr r0, [pc, 0xc] | r0 = *(0x9f8);
0x000009ec add r0, pc, r0 | r0 = pc + r0;
0x000009f0 b 0x9d4 | goto label_1;
| }
[*] Function printf used 1 times libip6t_mh.so