[*] Binary protection state of cifs.ko
No RELRO No Canary found NX disabled REL No RPATH No RUNPATH Symbols
[*] Function strcpy tear down of cifs.ko
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis9/kernel/fs/cifs/cifs.ko @ 0x80319dc */
| #include <stdint.h>
|
; (fcn) sym.smb2_duplicate_extents () | void smb2_duplicate_extents (int32_t arg_80h, int32_t arg_88h, int32_t arg_8ch, int32_t arg_90h, int32_t arg_94h, int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_0h_2;
| int32_t var_8h;
| int32_t var_ch;
| int32_t var_10h;
| int32_t var_14h;
| int32_t var_18h;
| int32_t var_18h_2;
| int32_t var_20h;
| int32_t var_2ch;
| int32_t var_30h;
| int32_t var_30h_2;
| int32_t var_38h;
| int32_t var_38h_2;
| int32_t var_40h;
| int32_t var_40h_2;
| int32_t var_48h;
| int32_t var_4ch;
| int32_t var_50h;
| int32_t var_54h;
| int32_t var_5ch;
| r0 = arg1;
| r1 = arg2;
0x080319dc push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x080319e0 ldr ip, [r2, 0x74] | ip = *((r2 + 0x74));
0x080319e4 sub sp, sp, 0x5c |
0x080319e8 ldr sb, [ip, 0x1c] | sb = *((ip + 0x1c));
0x080319ec ldr r3, [sp, 0x88] | r3 = *(arg_88h);
0x080319f0 ldr r8, [sp, 0x8c] | r8 = *(arg_8ch);
0x080319f4 ldr lr, [sb, 0x5f8] |
0x080319f8 ldr r4, [sp, 0x90] | r4 = *(arg_90h);
0x080319fc ldr ip, [sp, 0x94] | ip = *(arg_94h);
0x08031a00 tst lr, 0x8000000 |
| if ((lr & loc.imp.posix_test_lock) == 0) {
0x08031a04 beq 0x8031ae8 | goto label_0;
| }
0x08031a08 str r4, [sp, 0x48] | var_48h = r4;
0x08031a0c adds r4, r3, r4 | r4 = r3 + r4;
0x08031a10 str r3, [sp, 0x50] | var_50h = r3;
0x08031a14 mov r5, r2 | r5 = r2;
0x08031a18 ldr r3, [r2, 0x70] | r3 = *((r2 + 0x70));
0x08031a1c mov r6, r0 | r6 = r0;
0x08031a20 str r8, [sp, 0x54] | var_54h = r8;
0x08031a24 adc r8, r8, ip | __asm ("adc r8, r8, ip");
0x08031a28 ldrd sl, fp, [sp, 0x80] | __asm ("ldrd sl, fp, [arg_80h]");
0x08031a2c strd sl, fp, [sp, 0x40] | __asm ("strd sl, fp, [var_0hx40]");
0x08031a30 ldr r7, [r3, 0x28] | r7 = *((r3 + 0x28));
0x08031a34 ldrd sl, fp, [r1, 0x30] | __asm ("ldrd sl, fp, [r1, 0x30]");
0x08031a38 strd sl, fp, [sp, 0x38] | __asm ("strd sl, fp, [var_0hx38]");
0x08031a3c ldr r3, [r7, 0x38] | r3 = *((r7 + 0x38));
0x08031a40 ldrd sl, fp, [r1, 0x28] | __asm ("ldrd sl, fp, [r1, 0x28]");
0x08031a44 cmp r3, r4 |
0x08031a48 ldr r3, [r7, 0x3c] | r3 = *((r7 + 0x3c));
0x08031a4c str ip, [sp, 0x4c] | var_4ch = ip;
0x08031a50 sbcs r3, r3, r8 | __asm ("sbcs r3, r3, r8");
0x08031a54 strd sl, fp, [sp, 0x30] | __asm ("strd sl, fp, [var_0hx30]");
| if (r3 < r4) {
0x08031a58 bhs 0x8031a88 |
0x08031a5c mov r3, 0 | r3 = 0;
0x08031a60 mov r1, sb | r1 = sb;
0x08031a64 stm sp, {r4, r8} | *(sp) = r4;
| *((sp + 4)) = r8;
0x08031a68 str r3, [sp, 8] | var_8h = r3;
0x08031a6c bl 0x80314ec | r0 = smb2_set_file_size ();
0x08031a70 cmp r0, 0 |
| if (r0 != 0) {
0x08031a74 bne 0x8031ae0 | goto label_1;
| }
0x08031a78 mov r2, r4 | r2 = r4;
0x08031a7c mov r3, r8 | r3 = r8;
0x08031a80 mov r0, r7 | r0 = r7;
0x08031a84 stmdaeq r2, {r3, r4, r8, sb, sl, fp} | __asm ("stmdaeq r2, {r3, r4, r8, sb, sl, fp}");
| }
0x08031a88 stmdaeq r6, {r7, sb, sl, fp, ip, pc} | __asm ("stmdaeq r6, {r7, sb, sl, fp, ip, pc}");
0x08031a8c stmdaeq r6, {r7, sb, sl, fp, ip, pc} | __asm ("stmdaeq r6, {r7, sb, sl, fp, ip, pc}");
0x08031a90 add r2, sp, 0x2c | r2 += var_2ch;
0x08031a94 str r2, [sp, 0x20] | var_20h = r2;
0x08031a98 mov r1, sb | r1 = sb;
0x08031a9c mov r0, r6 | r0 = r6;
0x08031aa0 ldr r2, [r3] | r2 = *(r3);
0x08031aa4 mov r3, 0 | r3 = 0;
0x08031aa8 strd r2, r3, [sp, 0x18] | __asm ("strd r2, r3, [var_18h]");
0x08031aac add r3, sp, 0x30 | r3 += var_30h;
0x08031ab0 mov r2, 0x28 | r2 = 0x28;
0x08031ab4 str r3, [sp, 0x10] | var_10h = r3;
0x08031ab8 str r2, [sp, 0x14] | var_14h = r2;
0x08031abc movw r3, 0x8344 |
0x08031ac0 movt r3, 9 | r3 = 0x98344;
0x08031ac4 mov r2, 1 | r2 = 1;
0x08031ac8 str r3, [sp, 8] | var_8h = r3;
0x08031acc str r2, [sp, 0xc] | var_ch = r2;
0x08031ad0 ldrd r2, r3, [r5, 0x30] | __asm ("ldrd r2, r3, [r5, 0x30]");
0x08031ad4 strd r2, r3, [sp] | __asm ("strd r2, r3, [sp]");
0x08031ad8 ldrd r2, r3, [r5, 0x28] | __asm ("ldrd r2, r3, [r5, 0x28]");
0x08031adc stmdaeq r3, {r4, r6, r7, sl, sp, lr, pc} | __asm ("stmdaeq r3, {r4, r6, r7, sl, sp, lr, pc}");
| do {
| label_1:
0x08031ae0 add sp, sp, 0x5c |
0x08031ae4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_0:
0x08031ae8 mvn r0, 0x5e | r0 = ~0x5e;
0x08031aec b 0x8031ae0 |
| } while (1);
| }
[*] Function strcpy used 1 times cifs.ko