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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x2a0
mov rax, qword [0x14003e060]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov rbx, rcx
mov qword [rsp + 0x38], rcx
xor ebp, ebp
xor ecx, ecx
or rsi, 0xffffffffffffffff
mov edi, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rbx, rbx
jne 0x14001634e
lea edi, [rbx + 0x57]
jmp 0x14001652e
or rbp, 0xffffffffffffffff
xor eax, eax
inc rbp
cmp word [rbx + rbp*2], ax
jne 0x140016354
lea eax, [rbp + 3]
mov dword [rsp + 0x30], eax
lea rbx, [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r9, qword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
lea r8, [0x140009008]
mov rcx, rax
mov rbx, rax
call fcn.140011a88
test eax, eax
js 0x1400164f7
lea rdx, [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400163d0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp eax, 2
jne 0x140016506
xor eax, eax
mov edi, eax
jmp 0x1400164de
movzx ecx, word [rsp + 0x6c]
movzx eax, word [rsp + 0x6e]
cmp cx, word [0x140009014]
jne 0x1400163f0
cmp ax, word [0x140009016]
je 0x1400164b9
cmp cx, word [0x140009018]
jne 0x140016414
cmp ax, word [0x14000901a]
jne 0x140016414
movzx eax, word [rsp + 0x70]
cmp ax, word [0x14000901c]
je 0x1400164b9
or rax, 0xffffffffffffffff
lea rdx, [rsp + 0x6c]
xor ecx, ecx
inc rax
cmp word [rdx + rax*2], cx
jne 0x14001641f
mov ecx, dword [rsp + 0x30]
add eax, 2
add eax, ebp
mov dword [rsp + 0x34], eax
cmp ecx, eax
jae 0x140016474
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsp + 0x34]
lea rbx, [rax + rax]
mov dword [rsp + 0x30], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [rsp + 0x30]
mov rbx, rax
mov r9, qword [rsp + 0x38]
lea rax, [rsp + 0x6c]
mov edx, ecx
lea r8, [0x140009020]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140011a88
test eax, eax
js 0x1400164f7
test byte [rsp + 0x40], 0x10
mov rcx, rbx
je 0x1400164af
call fcn.140016300
mov edi, eax
test eax, eax
jne 0x140016506
jmp 0x1400164b9
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x1400164ed
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
xor ecx, ecx
test eax, eax
jne 0x1400163d0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
or rsi, 0xffffffffffffffff
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x140016506
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x140016506
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test eax, eax
jne 0x140016506
lea edi, [rax + 1]
test rbx, rbx
je 0x14001651f
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp rsi, 0xffffffffffffffff
je 0x14001652e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.140028130
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret