Function at 0x140008a60
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 [0x1400470b0]
xor rax, rsp
mov qword [rsp + 0x6a0], rax
mov byte [rsp + 0x20], 1
mov qword [rsp + 0x28], 0xffffffffffffffff
lea r8, [0x14003431c]
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 0x140008ad7
mov byte [rsp + 0x20], 0
jmp 0x140008cff
mov r8, qword [rsp + 0x6c0]
mov edx, 0x104
lea rcx, [rsp + 0x280]
call fcn.14001a614
lea rcx, [rsp + 0x280]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea r8, [rsp + 0x280]
mov edx, 0x104
lea rcx, [rsp + 0x490]
call fcn.14001a614
mov byte [rsp + 0x21], 1
movzx eax, byte [rsp + 0x21]
test eax, eax
je 0x140008cb8
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x140008c8f
mov eax, 2
imul rax, rax, 0
movzx eax, word [rsp + rax + 0x5c]
cmp eax, 0x2e
jne 0x140008b8f
mov eax, 2
imul rax, rax, 1
movzx eax, word [rsp + rax + 0x5c]
test eax, eax
je 0x140008b8d
mov eax, 2
imul rax, rax, 1
movzx eax, word [rsp + rax + 0x5c]
cmp eax, 0x2e
jne 0x140008b8f
mov eax, 2
imul rax, rax, 2
movzx eax, word [rsp + rax + 0x5c]
test eax, eax
jne 0x140008b8f
jmp 0x140008b1e
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 0x140008c07
mov dl, 1
lea rcx, [rsp + 0x280]
call fcn.140008a60
movzx eax, al
test eax, eax
jne 0x140008bda
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov byte [rsp + 0x20], 0
jmp 0x140008cb8
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea r8, [rsp + 0x490]
mov edx, 0x104
lea rcx, [rsp + 0x280]
call fcn.14001a614
jmp 0x140008c8d
mov eax, dword [rsp + 0x30]
and eax, 1
test eax, eax
je 0x140008c4d
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0xffffffff
je 0x140008c4d
mov eax, dword [rsp + 0x24]
and eax, 1
test eax, eax
je 0x140008c4d
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 0x140008c73
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov byte [rsp + 0x20], 0
jmp 0x140008cb8
lea r8, [rsp + 0x490]
mov edx, 0x104
lea rcx, [rsp + 0x280]
call fcn.14001a614
jmp 0x140008cb3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x140008ca1
mov byte [rsp + 0x21], 0
jmp 0x140008cb3
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov byte [rsp + 0x20], 0
jmp 0x140008cb8
jmp 0x140008b1e
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindClose]
movzx eax, byte [rsp + 0x6c8]
test eax, eax
jne 0x140008cff
movzx eax, byte [rsp + 0x20]
test eax, eax
je 0x140008cff
mov rcx, qword [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x140008cf1
mov byte [rsp + 0x22], 1
jmp 0x140008cf6
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.140019e10
add rsp, 0x6b8
ret