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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x288
mov rsi, rcx
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14026feaa
test eax, 0x400
jne 0x14027008a
mov rdi, qword [rsi]
test al, 0x10
jne 0x14026fddd
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, eax
mov al, 1
test ecx, ecx
je 0x14026fff3
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x14026fec4
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsi + 8]
mov ebx, 0x7fff
mov edx, 0x7fff
sub rdx, rax
lea rcx, [rdi + rax*2]
lea r8, [0x140495be8]
lea r9, [0x1404960c8]
call fcn.1400143a0
mov word [rdi + 0xfffe], 0
test eax, eax
js 0x14026fe9f
movsxd rdi, eax
sub rbx, qword [rsi + 8]
cmp rbx, rdi
jl 0x14026fe9f
lea rcx, [0x1404960c8]
mov edx, 0x8000
call fcn.1402c12a0
cmp rax, rdi
jne 0x14026fe9f
add qword [rsi + 8], rdi
mov rcx, qword [rsi]
lea rdx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x14026feaa
mov rdi, rax
mov rax, qword [rsi]
mov rdx, qword [rsi + 8]
shl rdx, 0x20
movabs rcx, 0xffffffff00000000
mov qword [rsp + 0x28], rdx
add rcx, rdx
mov r13, rcx
sar r13, 0x20
mov qword [rsi + 8], r13
sar rcx, 0x1f
mov word [rax + rcx], 0
lea rbx, [rsp + 0x5c]
lea r14, [0x1404960c4]
lea r15, [rsp + 0x30]
mov r12, qword [sym.imp.KERNEL32.dll_FindNextFileW]
jmp 0x14026feff
mov ecx, reloc.WS2_32.dll_WSAGetLastError
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
je 0x14026fdc9
call fcn.14029fd30
int3
mov rcx, rsi
call fcn.14026fd50
test al, al
je 0x14027004a
nop word [rax + rax]
mov qword [rsi + 8], r13
mov rax, qword [rsi]
mov word [rax + r13*2], 0
mov rcx, rdi
mov rdx, r15
call r12
test eax, eax
je 0x14027004a
mov rcx, rbx
mov rdx, r14
call fcn.1402c5714
test eax, eax
je 0x14026fee0
mov rcx, rbx
lea rdx, [0x1404960c2]
call fcn.1402c5714
test eax, eax
je 0x14026fee0
mov rbp, qword [rsi]
mov rax, qword [rsi + 8]
mov edx, 0x7fff
sub rdx, rax
lea rcx, [rax*2]
add rcx, rbp
lea r8, [0x140495be8]
mov r9, rbx
call fcn.1400143a0
mov word [rbp + 0xfffe], 0
test eax, eax
js 0x14027003f
movsxd rbp, eax
mov eax, 0x7fff
sub rax, qword [rsi + 8]
cmp rax, rbp
jl 0x14027003f
mov edx, 0x8000
mov rcx, rbx
call fcn.1402c12a0
cmp rax, rbp
jne 0x14027003f
add qword [rsi + 8], rbp
test byte [rsp + 0x30], 0x10
jne 0x14026feca
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14026fee0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x14027004a
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14027004a
mov ecx, eax
and ecx, 1
je 0x14027004a
and eax, 0xfffffffe
mov rcx, qword [rsi]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x14027004a
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14026fee0
jmp 0x14027004a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x14026feaa
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
sete cl
test al, 1
sete dl
or dl, cl
jne 0x14026feaa
and eax, 0xfffffffe
mov rcx, qword [rsi]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x14026feaa
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x140270093
mov ecx, reloc.WS2_32.dll_WSAGetLastError
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
cmp ebx, 0x12
jne 0x1402700b5
movabs rax, 0xfffffffe00000000
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
sar rax, 0x20
mov qword [rsi + 8], rax
mov rax, qword [rsi]
sar rcx, 0x1f
mov word [rax + rcx], 0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
setne al
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x14026fec4
jmp 0x14026fdc9
mov ecx, ebx
jmp 0x14026fea4