Function at 0x1400e5550
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get 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 [0x14039de68]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400e568d
test eax, 0x400
jne 0x1400e57c0
test al, 0x10
jne 0x1400e55c4
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140259980
mov rcx, rsi
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x1400e5800
mov rbx, qword [rsi]
mov rax, qword [rsi + 8]
mov edi, 0x7fff
mov edx, 0x7fff
sub rdx, rax
lea rcx, [rbx + rax*2]
lea r8, [0x14029c682]
lea r9, [0x1402c5c28]
call fcn.140016cb0
mov word [rbx + 0xfffe], 0
test eax, eax
js 0x1400e5694
movsxd rbx, eax
sub rdi, qword [rsi + 8]
cmp rdi, rbx
jl 0x1400e5694
lea rcx, [0x1402c5c28]
mov edx, 0x8000
call fcn.14026e268
cmp rax, rbx
jne 0x1400e5694
add qword [rsi + 8], rbx
mov rcx, qword [rsi]
lea rdx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x1400e568d
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, [0x1402c5c32]
lea r15, [rsp + 0x30]
mov rbp, qword [sym.imp.KERNEL32.dll_FindNextFileW]
jmp 0x1400e56de
xor esi, esi
jmp 0x1400e57cf
mov ecx, reloc.WS2_32.dll_WSAGetLastError
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
jmp 0x1400e57cf
mov rcx, rsi
call 0x1400e5800
test al, al
je 0x1400e5780
nop word cs:[rax + rax]
mov qword [rsi + 8], r13
mov rax, qword [rsi]
mov word [rax + r13*2], 0
mov rcx, rdi
mov rdx, r15
call rbp
test eax, eax
je 0x1400e5780
mov rcx, rbx
mov rdx, r14
call fcn.14027886c
test eax, eax
je 0x1400e56c0
mov rcx, rbx
lea rdx, [0x1402c5c36]
call fcn.14027886c
test eax, eax
je 0x1400e56c0
mov r12, qword [rsi]
mov rax, qword [rsi + 8]
mov edx, 0x7fff
sub rdx, rax
lea rcx, [r12 + rax*2]
lea r8, [0x14029c682]
mov r9, rbx
call fcn.140016cb0
mov word [r12 + 0xfffe], 0
test eax, eax
js 0x1400e5775
movsxd r12, eax
mov eax, 0x7fff
sub rax, qword [rsi + 8]
cmp rax, r12
jl 0x1400e5775
mov edx, 0x8000
mov rcx, rbx
call fcn.14026e268
cmp rax, r12
jne 0x1400e5775
add qword [rsi + 8], r12
test byte [rsp + 0x30], 0x10
je 0x1400e56a6
mov rcx, rsi
call fcn.1400e5550
test al, al
jne 0x1400e56c0
jmp 0x1400e5780
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 0x1400e57f5
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 sil
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140259980
mov eax, esi
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, ebx
jmp 0x1400e5699
push rsi
sub rsp, 0x20
mov rsi, rcx
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, eax
mov al, 1
test ecx, ecx
jne 0x1400e585f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x1400e585d
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edx, eax
xor eax, eax
cmp edx, 0xffffffff
je 0x1400e585f
mov ecx, edx
and ecx, 1
je 0x1400e585f
and edx, 0xfffffffe
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x1400e585d
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
setne al
jmp 0x1400e585f
xor eax, eax
add rsp, 0x20
pop rsi
ret