[*] Binary protection state of cifsiostat
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of cifsiostat
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/cifsiostat @ 0x333c */
| #include <stdint.h>
|
; (fcn) fcn.0000333c () | void fcn_0000333c (int16_t arg1) {
| int32_t var_0h;
| int32_t var_0h_2;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_1ch;
| int16_t var_4h;
| r0 = arg1;
0x0000333c push {r1, r2, r3} |
0x0000333e mov.w r3, 0x400 | r3 = 0x400;
0x00003342 ldr r1, [pc, 0x74] |
0x00003344 ldr.w ip, [pc, 0x74] | ip = *(0x000033bc);
0x00003348 add r1, pc | r1 = 0x6706;
0x0000334a push {r4, r5, lr} |
0x0000334c mov r5, r0 | r5 = r0;
0x0000334e addw r0, r1, 0x40c | __asm ("addw r0, r1, 0x40c");
0x00003352 sub sp, 0x10 |
0x00003354 add ip, pc |
0x00003356 ldr r1, [pc, 0x68] |
0x00003358 add r2, sp, 0x1c | r2 += var_1ch;
0x0000335a ldr r4, [r2], 4 | r4 = *(r2);
| r2 += 4;
0x0000335e ldr.w r1, [ip, r1] | r1 = *((ip + r1));
0x00003362 ldr r1, [r1] | r1 = *(0x33c2);
0x00003364 str r1, [sp, 0xc] | var_ch = r1;
0x00003366 mov.w r1, 0 | r1 = 0;
0x0000336a strd r4, r2, [sp] | __asm ("strd r4, r2, [sp]");
0x0000336e str r2, [sp, 8] | var_8h = r2;
0x00003370 mov r1, r3 | r1 = r3;
0x00003372 movs r2, 1 | r2 = 1;
0x00003374 blx 0xd9c | vsnprintf_chk ()
0x00003378 cmp r5, 0 |
| if (r5 <= 0) {
0x0000337a ble 0x338a | goto label_0;
| }
0x0000337c movs r4, 0 | r4 = 0;
| do {
0x0000337e movs r0, 9 | r0 = 9;
0x00003380 adds r4, 1 | r4++;
0x00003382 blx 0xf24 | fcn_00000f24 ();
0x00003386 cmp r5, r4 |
0x00003388 bne 0x337e |
| } while (r5 != r4);
| label_0:
0x0000338a ldr r0, [pc, 0x38] |
0x0000338c add r0, pc | r0 = 0x6756;
0x0000338e addw r0, r0, 0x40c | __asm ("addw r0, r0, 0x40c");
0x00003392 blx 0xe60 | fcn_00000e60 ();
0x00003396 ldr r2, [pc, 0x30] |
0x00003398 ldr r3, [pc, 0x24] | r3 = *(0x33c0);
0x0000339a add r2, pc | r2 = 0x6768;
0x0000339c ldr r3, [r2, r3] | r3 = *(0x6768);
0x0000339e ldr r2, [r3] | r2 = *(0x6768);
0x000033a0 ldr r3, [sp, 0xc] | r3 = var_ch;
0x000033a2 eors r2, r3 | r2 ^= r3;
0x000033a4 mov.w r3, 0 | r3 = 0;
| if (r2 == r3) {
0x000033a8 bne 0x33b4 |
0x000033aa add sp, 0x10 |
0x000033ac pop.w {r4, r5, lr} |
0x000033b0 add sp, 0xc |
0x000033b2 bx lr | return;
| }
0x000033b4 blx 0xdcc | stack_chk_fail ();
0x000033b8 subs r6, 0x44 | r6 -= 0x44;
0x000033ba movs r1, r0 | r1 = r0;
0x000033bc subs r3, 0x70 | r3 -= 0x70;
0x000033be movs r1, r0 | r1 = r0;
0x000033c0 lsls r0, r3, 4 | r0 = r3 << 4;
0x000033c2 movs r0, r0 |
0x000033c4 subs r6, 0 |
0x000033c6 movs r1, r0 | r1 = r0;
0x000033c8 subs r3, 0x2a | r3 -= 0x2a;
0x000033ca movs r1, r0 | r1 = r0;
| }
[*] Function printf used 2 times cifsiostat