Function at 0x1401e7770
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x328]
sub rsp, 0x400
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x1404779b8]
xor rax, rsp
mov qword [rbp + 0x2d0], rax
mov r12, rcx
mov qword [rbp - 0x10], rcx
xor r14d, r14d
mov dword [rsp + 0x20], r14d
xor dil, dil
mov rdx, rcx
lea rcx, [rbp - 0x70]
call fcn.1400f4280
mov rbx, rax
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x1401e77dd
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1401e7f2e
test al, 0x10
je 0x1401e7f2e
mov rcx, rbx
call fcn.14011ed90
mov rax, qword [r12 + 0x10]
cmp rax, 3
jbe 0x1401e7f37
mov rcx, r12
mov rdx, qword [r12 + 0x18]
cmp rdx, 8
jb 0x1401e781d
mov rcx, qword [r12]
cmp word [rcx + rax*2 - 2], 0x5c
jne 0x1401e7840
lea rcx, [rax - 1]
mov qword [r12 + 0x10], rcx
mov rax, r12
cmp rdx, 8
jb 0x1401e783b
mov rax, qword [r12]
mov word [rax + rcx*2], r14w
mov rdx, r12
lea rcx, [rbp - 0x50]
call fcn.1400f4280
mov rsi, rax
mov qword [rsp + 0x60], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov rbx, r14
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x20], 1
lea r8, [0x140360818]
mov rdx, rax
lea rcx, [rbp + 0x38]
call fcn.1401e4ff0
nop
lea rcx, [rbp + 0x38]
cmp qword [rbp + 0x50], 8
cmovae rcx, qword [rbp + 0x38]
lea rdx, [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
mov r15, qword [rsp + 0x30]
cmp rax, 0xffffffffffffffff
je 0x1401e7996
nop
cmp r15, rbx
je 0x1401e7956
mov rcx, r15
lea rax, [rbp + 0x80]
mov edx, 4
nop dword [rax + rax]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rdx, 1
jne 0x1401e78d0
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
add r15, 0x250
mov qword [rsp + 0x30], r15
jmp 0x1401e7974
lea r8, [rbp + 0x80]
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.1401e5150
mov rbx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
lea rdx, [rbp + 0x80]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1401e78b0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
mov rdx, qword [rbp + 0x50]
cmp rdx, 8
jb 0x1401e79d6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e79d1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7f83
call fcn.14021ecec
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x50], 7
mov word [rbp + 0x38], r14w
mov rcx, rsi
call fcn.14011ed90
mov r13, qword [rsp + 0x28]
cmp r13, r15
je 0x1401e7ebe
nop dword [rax]
mov qword [rbp + 0x18], r14
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], 7
mov word [rbp + 0x18], r14w
lea rdx, [r13 + 0x2c]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], 0
jne 0x1401e7a20
lea rcx, [rbp + 0x18]
call fcn.140101ff0
nop
mov qword [rbp - 8], r14
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], 7
mov word [rbp - 8], r14w
xor r8d, r8d
lea rdx, [0x14034c7a8]
lea rcx, [rbp - 8]
call fcn.140101ff0
nop
lea r8, [rbp + 0x18]
mov rbx, qword [rbp + 0x18]
mov rdi, qword [rbp + 0x30]
cmp rdi, 8
cmovae r8, rbx
mov rsi, qword [rbp + 0x28]
cmp rsi, 1
jne 0x1401e7aa6
mov rdx, rsi
lea rax, [0x14034f38c]
mov rcx, rax
sub r8, rax
nop dword [rax]
movzx eax, word [rcx]
cmp word [r8 + rcx], ax
jne 0x1401e7aa6
add rcx, 2
sub rdx, 1
jne 0x1401e7a90
jmp 0x1401e7ae8
lea r8, [rbp + 0x18]
cmp rdi, 8
cmovae r8, rbx
cmp rsi, 2
jne 0x1401e7b6d
mov rdx, rsi
lea rax, [0x14036082c]
mov rcx, rax
sub r8, rax
nop dword [rax]
movzx eax, word [rcx]
cmp word [r8 + rcx], ax
jne 0x1401e7b6d
add rcx, 2
sub rdx, 1
jne 0x1401e7ad0
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x1401e7b29
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e7b23
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7fa1
call fcn.14021ecec
nop
cmp rdi, 8
jb 0x1401e7ea4
lea rdx, [rdi*2 + 2]
mov rax, rbx
cmp rdx, 0x1000
jb 0x1401e7b60
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7fa7
mov rcx, rbx
call fcn.14021ecec
jmp 0x1401e7ea4
lea r8, [0x14034efb0]
mov rdx, r12
lea rcx, [rbp + 0x58]
call fcn.1401e4ff0
nop
lea rdx, [rbp + 0x18]
cmp rdi, 8
cmovae rdx, rbx
mov r8, rsi
mov rcx, rax
call fcn.140167730
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
or dword [rsp + 0x20], 2
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x1401e7bf4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e7bef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7f8f
call fcn.14021ecec
movups xmmword [rbp - 8], xmm6
movups xmmword [rbp + 8], xmm7
mov rdx, qword [rbp + 0x70]
cmp rdx, 8
jb 0x1401e7c3c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e7c37
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7f95
call fcn.14021ecec
mov word [rbp + 0x58], r14w
mov rbx, qword [rbp - 8]
mov rsi, qword [rbp + 0x10]
mov rdi, qword [rbp + 8]
test byte [r13], 0x10
je 0x1401e7d15
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x80], r14
lea r14, [rbp - 8]
cmp rsi, 8
cmovae r14, rbx
cmp rdi, 8
jae 0x1401e7c9d
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], 7
lea rcx, [rsp + 0x68]
call fcn.1401e7770
jmp 0x1401e7e25
or rdi, 7
movabs rax, 0x7ffffffffffffffe
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x1401e7f9b
lfence
add rcx, rcx
call fcn.1400eb1a0
mov qword [rsp + 0x68], rax
mov rbx, qword [rbp + 8]
lea r8, [rbx*2 + 2]
mov rdx, r14
mov rcx, rax
call fcn.140253310
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x80], rdi
mov r15, qword [rsp + 0x30]
mov rsi, qword [rbp + 0x10]
mov rbx, qword [rbp - 8]
lea rcx, [rsp + 0x68]
call fcn.1401e7770
jmp 0x1401e7e25
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r14
lea r14, [rbp - 8]
cmp rsi, 8
cmovae r14, rbx
cmp rdi, 8
jae 0x1401e7d4f
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 7
jmp 0x1401e7db9
or rdi, 7
movabs rax, 0x7ffffffffffffffe
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x1401e7f7d
lfence
add rcx, rcx
call fcn.1400eb1a0
mov qword [rsp + 0x40], rax
mov rbx, qword [rbp + 8]
lea r8, [rbx*2 + 2]
mov rdx, r14
mov rcx, rax
call fcn.140253310
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdi
mov r15, qword [rsp + 0x30]
mov rsi, qword [rbp + 0x10]
mov rbx, qword [rbp - 8]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x30]
call fcn.1400f4280
mov rdi, rax
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x1401e7de1
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1401e7e11
test al, 0x10
jne 0x1401e7e11
mov rcx, rdi
call fcn.14011ed90
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 8
cmovae rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x1401e7e1a
mov rcx, rdi
call fcn.14011ed90
nop
lea rcx, [rsp + 0x40]
call fcn.14011ed90
nop
cmp rsi, 8
jb 0x1401e7e61
lea rdx, [rsi*2 + 2]
mov rax, rbx
cmp rdx, 0x1000
jb 0x1401e7e58
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7fa1
mov rcx, rbx
call fcn.14021ecec
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x1401e7ea1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e7e9c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7fa7
call fcn.14021ecec
xor r14d, r14d
add r13, 0x250
cmp r13, r15
jne 0x1401e7a00
mov rbx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x28]
mov rcx, r12
cmp qword [r12 + 0x18], 8
jb 0x1401e7ecd
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
setne dil
test r13, r13
je 0x1401e7f37
sub rbx, r13
movabs rax, 0x3759f22983759f23
imul rbx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x250
mov rax, r13
cmp rdx, 0x1000
jb 0x1401e7f24
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e7f89
mov rcx, r13
call fcn.14021ecec
jmp 0x1401e7f37
mov rcx, rbx
call fcn.14011ed90
nop
mov rcx, r12
call fcn.14011ed90
movzx eax, dil
mov rcx, qword [rbp + 0x2d0]
xor rcx, rsp
call fcn.14021f250
lea r11, [rsp + 0x400]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1401018e0
nop
call fcn.140260f54
nop
call fcn.140260f54
nop
call fcn.140260f54
nop
call fcn.140260f54
int3
call fcn.1401018e0
nop
call fcn.140260f54
nop
call fcn.140260f54
int3