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

Disassembly:
mov byte [rsp + 0x10], dl
mov qword [rsp + 8], rcx
sub rsp, 0x6b8
mov rax, qword [0x14005bd60]
xor rax, rsp
mov qword [rsp + Ordinal_1701], rax
mov byte [rsp + 0x20], 1
mov qword [rsp + 0x28], 0xffffffffffffffff
lea r8, [0x14003c824]
mov rdx, qword [rsp + 0x6c0]
lea rcx, [rsp + 0x490]
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x490]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0xffffffffffffffff
jne 0x140008887
mov byte [rsp + 0x20], 0
jmp 0x140008ab3
mov r8, qword [rsp + 0x6c0]
mov edx, 0x104
lea rcx, [rsp + 0x280]
call qword [sym.imp.MSVCR120.dll_wcscpy_s]
lea rcx, [rsp + 0x280]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea r8, [rsp + 0x280]
mov edx, 0x104
lea rcx, [rsp + 0x490]
call qword [sym.imp.MSVCR120.dll_wcscpy_s]
mov byte [rsp + 0x21], 1
movzx eax, byte [rsp + 0x21]
test eax, eax
je 0x140008a6c
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x140008a43
mov eax, 2
imul rax, rax, 0
movzx eax, word [rsp + rax + 0x5c]
cmp eax, 0x2e
jne 0x140008941
mov eax, 2
imul rax, rax, 1
movzx eax, word [rsp + rax + 0x5c]
test eax, eax
je 0x14000893f
mov eax, 2
imul rax, rax, 1
movzx eax, word [rsp + rax + 0x5c]
cmp eax, 0x2e
jne 0x140008941
mov eax, 2
imul rax, rax, 2
movzx eax, word [rsp + rax + 0x5c]
test eax, eax
jne 0x140008941
jmp 0x1400088d0
lea rdx, [rsp + 0x5c]
lea rcx, [rsp + 0x280]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [rsp + 0x30]
and eax, 0x10
test eax, eax
je 0x1400089ba
mov dl, 1
lea rcx, [rsp + 0x280]
call fcn.140008810
movzx eax, al
test eax, eax
jne 0x14000898c
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov byte [rsp + 0x20], 0
jmp 0x140008a6c
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea r8, [rsp + 0x490]
mov edx, 0x104
lea rcx, [rsp + 0x280]
call qword [sym.imp.MSVCR120.dll_wcscpy_s]
jmp 0x140008a41
mov eax, dword [rsp + 0x30]
and eax, 1
test eax, eax
je 0x140008a00
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0xffffffff
je 0x140008a00
mov eax, dword [rsp + 0x24]
and eax, 1
test eax, eax
je 0x140008a00
mov eax, dword [rsp + 0x24]
and eax, 0xfffffffe
mov edx, eax
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x140008a26
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov byte [rsp + 0x20], 0
jmp 0x140008a6c
lea r8, [rsp + 0x490]
mov edx, 0x104
lea rcx, [rsp + 0x280]
call qword [sym.imp.MSVCR120.dll_wcscpy_s]
jmp 0x140008a67
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x140008a55
mov byte [rsp + 0x21], 0
jmp 0x140008a67
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov byte [rsp + 0x20], 0
jmp 0x140008a6c
jmp 0x1400088d0
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
movzx eax, byte [rsp + 0x6c8]
test eax, eax
jne 0x140008ab3
movzx eax, byte [rsp + 0x20]
test eax, eax
je 0x140008ab3
mov rcx, qword [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x140008aa5
mov byte [rsp + 0x22], 1
jmp 0x140008aaa
mov byte [rsp + 0x22], 0
movzx eax, byte [rsp + 0x22]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x20]
mov rcx, qword [rsp + 0x6a0]
xor rcx, rsp
call fcn.140029b50
add rsp, 0x6b8
ret