[*] Binary protection state of cifs.ko
No RELRO No Canary found NX disabled REL No RPATH No RUNPATH Symbols
[*] Function sprintf tear down of cifs.ko
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/fs/cifs/cifs.ko @ 0x80321b8 */
| #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;
0x080321b8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x080321bc ldr ip, [r2, 0x74] | ip = *((r2 + 0x74));
0x080321c0 sub sp, sp, 0x5c |
0x080321c4 ldr sb, [ip, 0x1c] | sb = *((ip + 0x1c));
0x080321c8 ldr r3, [sp, 0x88] | r3 = *(arg_88h);
0x080321cc ldr r8, [sp, 0x8c] | r8 = *(arg_8ch);
0x080321d0 ldr lr, [sb, 0x5f8] |
0x080321d4 ldr r4, [sp, 0x90] | r4 = *(arg_90h);
0x080321d8 ldr ip, [sp, 0x94] | ip = *(arg_94h);
0x080321dc tst lr, 0x8000000 |
| if ((lr & loc.imp.posix_test_lock) == 0) {
0x080321e0 beq 0x80322c4 | goto label_0;
| }
0x080321e4 str r4, [sp, 0x48] | var_48h = r4;
0x080321e8 adds r4, r3, r4 | r4 = r3 + r4;
0x080321ec str r3, [sp, 0x50] | var_50h = r3;
0x080321f0 mov r5, r2 | r5 = r2;
0x080321f4 ldr r3, [r2, 0x70] | r3 = *((r2 + 0x70));
0x080321f8 mov r6, r0 | r6 = r0;
0x080321fc str r8, [sp, 0x54] | var_54h = r8;
0x08032200 adc r8, r8, ip | __asm ("adc r8, r8, ip");
0x08032204 ldrd sl, fp, [sp, 0x80] | __asm ("ldrd sl, fp, [arg_80h]");
0x08032208 strd sl, fp, [sp, 0x40] | __asm ("strd sl, fp, [var_0hx40]");
0x0803220c ldr r7, [r3, 0x28] | r7 = *((r3 + 0x28));
0x08032210 ldrd sl, fp, [r1, 0x30] | __asm ("ldrd sl, fp, [r1, 0x30]");
0x08032214 strd sl, fp, [sp, 0x38] | __asm ("strd sl, fp, [var_0hx38]");
0x08032218 ldr r3, [r7, 0x30] | r3 = *((r7 + 0x30));
0x0803221c ldrd sl, fp, [r1, 0x28] | __asm ("ldrd sl, fp, [r1, 0x28]");
0x08032220 cmp r3, r4 |
0x08032224 ldr r3, [r7, 0x34] | r3 = *((r7 + 0x34));
0x08032228 str ip, [sp, 0x4c] | var_4ch = ip;
0x0803222c sbcs r3, r3, r8 | __asm ("sbcs r3, r3, r8");
0x08032230 strd sl, fp, [sp, 0x30] | __asm ("strd sl, fp, [var_0hx30]");
| if (r3 < r4) {
0x08032234 bhs 0x8032264 |
0x08032238 mov r3, 0 | r3 = 0;
0x0803223c mov r1, sb | r1 = sb;
0x08032240 stm sp, {r4, r8} | *(sp) = r4;
| *((sp + 4)) = r8;
0x08032244 str r3, [sp, 8] | var_8h = r3;
0x08032248 bl 0x8031cd0 | r0 = smb2_set_file_size ();
0x0803224c cmp r0, 0 |
| if (r0 != 0) {
0x08032250 bne 0x80322bc | goto label_1;
| }
0x08032254 mov r2, r4 | r2 = r4;
0x08032258 mov r3, r8 | r3 = r8;
0x0803225c mov r0, r7 | r0 = r7;
0x08032260 stmdaeq r2, {r3, r6, r7, r8, sb, sl, fp} | __asm ("stmdaeq r2, {r3, r6, r7, r8, sb, sl, fp}");
| }
0x08032264 stmdaeq r6, {r2, r3, r4, r5, r6, sb, sl, sp, pc} | __asm ("stmdaeq r6, {r2, r3, r4, r5, r6, sb, sl, sp, pc}");
0x08032268 stmdaeq r6, {r2, r3, r4, r5, r6, sb, sl, sp, pc} | __asm ("stmdaeq r6, {r2, r3, r4, r5, r6, sb, sl, sp, pc}");
0x0803226c add r2, sp, 0x2c | r2 += var_2ch;
0x08032270 str r2, [sp, 0x20] | var_20h = r2;
0x08032274 mov r1, sb | r1 = sb;
0x08032278 mov r0, r6 | r0 = r6;
0x0803227c ldr r2, [r3] | r2 = *(r3);
0x08032280 mov r3, 0 | r3 = 0;
0x08032284 strd r2, r3, [sp, 0x18] | __asm ("strd r2, r3, [var_18h]");
0x08032288 add r3, sp, 0x30 | r3 += var_30h;
0x0803228c mov r2, 0x28 | r2 = 0x28;
0x08032290 str r3, [sp, 0x10] | var_10h = r3;
0x08032294 str r2, [sp, 0x14] | var_14h = r2;
0x08032298 movw r3, 0x8344 |
0x0803229c movt r3, 9 | r3 = 0x98344;
0x080322a0 mov r2, 1 | r2 = 1;
0x080322a4 str r3, [sp, 8] | var_8h = r3;
0x080322a8 str r2, [sp, 0xc] | var_ch = r2;
0x080322ac ldrd r2, r3, [r5, 0x30] | __asm ("ldrd r2, r3, [r5, 0x30]");
0x080322b0 strd r2, r3, [sp] | __asm ("strd r2, r3, [sp]");
0x080322b4 ldrd r2, r3, [r5, 0x28] | __asm ("ldrd r2, r3, [r5, 0x28]");
0x080322b8 stmdaeq r3, {r2, r3, r4, r7, sb, fp, sp, lr, pc} | __asm ("stmdaeq r3, {r2, r3, r4, r7, sb, fp, sp, lr, pc}");
| do {
| label_1:
0x080322bc add sp, sp, 0x5c |
0x080322c0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_0:
0x080322c4 mvn r0, 0x5e | r0 = ~0x5e;
0x080322c8 b 0x80322bc |
| } while (1);
| }
[*] Function sprintf used 1 times cifs.ko