[*] Binary protection state of libxt_connbytes.so
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libxt_connbytes.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/libxt_connbytes.so @ 0xa98 */
| #include <stdint.h>
|
; (fcn) fcn.00000a98 () | void fcn_00000a98 (int32_t arg1, int32_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x00000a98 push {r4, r5, r6, r7, r8, lr} |
0x00000a9c ldrd r2, r3, [r0] | __asm ("ldrd r2, r3, [r0]");
0x00000aa0 ldrd r4, r5, [r0, 8] | __asm ("ldrd r4, r5, [r0, 8]");
0x00000aa4 mov r7, r1 | r7 = r1;
0x00000aa8 ldr r1, [pc, 0x74] | r1 = *(0xb20);
0x00000aac cmp r3, r5 |
0x00000ab0 cmpeq r2, r4 | __asm ("cmpeq r2, r4");
0x00000ab4 add r1, pc, r1 | r1 = pc + r1;
| if (r3 >= r5) {
0x00000ab8 bls 0xae0 |
0x00000abc ldr r3, [pc, 0x64] | r3 = *(0xb24);
0x00000ac0 mov r6, r0 | r6 = r0;
0x00000ac4 ldr r3, [r1, r3] | r3 = *((r1 + r3));
0x00000ac8 ldr r0, [pc, 0x5c] | r0 = *(0xb28);
0x00000acc ldr r1, [r3] | r1 = *(0xb24);
0x00000ad0 add r0, pc, r0 | r0 = pc + r0;
0x00000ad4 bl 0x568 | fputs (r0, r1);
0x00000ad8 ldrd r2, r3, [r6, 8] | __asm ("ldrd r2, r3, [r6, 8]");
0x00000adc ldrd r4, r5, [r6] | __asm ("ldrd r4, r5, [r6]");
| }
0x00000ae0 ldr r0, [pc, 0x48] | r0 = "ITM_deregisterTMCloneTable";
0x00000ae4 mov r1, r7 | r1 = r7;
0x00000ae8 add r0, pc, r0 | r0 = pc + r0;
0x00000aec bl 0x508 | printf ("ITM_deregisterTMCloneTable", r1, r2, r3, r4)
0x00000af0 subs r0, r4, 1 | r0 = r4 - 1;
0x00000af4 sbc r1, r5, 0 | __asm ("sbc r1, r5, 0");
0x00000af8 mvn r3, 0 | r3 = ~0;
0x00000afc mvn r2, 2 | r2 = ~2;
0x00000b00 cmp r1, r3 |
0x00000b04 cmpeq r0, r2 | __asm ("cmpeq r0, r2");
| if (r1 <= r3) {
0x00000b08 pophi {r4, r5, r6, r7, r8, pc} |
| }
0x00000b0c ldr r0, [pc, 0x20] | r0 = *(0xb30);
0x00000b10 mov r2, r4 | r2 = r4;
0x00000b14 mov r3, r5 | r3 = r5;
0x00000b18 add r0, pc, r0 | r0 = pc + r0;
0x00000b1c pop {r4, r5, r6, r7, r8, lr} |
0x00000b20 b 0x508 | return void (*0x508)() ();
| }
[*] Function printf used 2 times libxt_connbytes.so