Function at 0x140009f9c
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov dword [rax + 0x20], r9d
mov dword [rax + 0x18], r8d
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x2a0
xor ebp, ebp
mov ebx, r9d
mov rsi, rdx
mov dword [rsp + 0x40], ebp
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000a254
test al, 0x10
je 0x14000a254
cmp dword [rsp + 0x2e0], ebp
je 0x14000a024
test ebx, ebx
jne 0x14000a024
lea r8, [0x1400e17cc]
lea rcx, str._sDirectory__s
mov r9, rdi
xor edx, edx
call fcn.14000c030
test rsi, rsi
je 0x14000a018
lea rcx, [0x1400eaa38]
mov rdx, rsi
call fcn.14000c030
lea rcx, reloc.Cabinet.dll_FCICreate
call fcn.14000c030
mov edx, 0x208
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x14000a254
mov r8, rdi
mov edx, 0x104
mov rcx, rax
call fcn.1400c94c4
test eax, eax
jne 0x14000a24b
lea r8, [0x1400eaa44]
mov edx, 0x104
mov rcx, rbx
call fcn.1400c9428
test eax, eax
jne 0x14000a24b
lea r8, [0x1400eaa48]
test rsi, rsi
mov edx, 0x104
cmovne r8, rsi
mov rcx, rbx
call fcn.1400c9428
test eax, eax
jne 0x14000a24b
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x14000a247
lea rdx, [0x1400eaa4c]
lea rcx, [rsp + 0x7c]
call qword [sym.imp.ntdll.dll__wcsicmp]
test eax, eax
je 0x14000a228
lea rdx, [0x1400eaa50]
lea rcx, [rsp + 0x7c]
call qword [sym.imp.ntdll.dll__wcsicmp]
test eax, eax
je 0x14000a228
mov r8, rdi
mov edx, 0x104
mov rcx, rbx
call fcn.1400c94c4
test eax, eax
jne 0x14000a228
lea r8, [0x1400eaa44]
mov edx, 0x104
mov rcx, rbx
call fcn.1400c9428
test eax, eax
jne 0x14000a228
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbx
repne scasw ax, word [rdi]
lea r8, [rsp + 0x7c]
mov edx, 0x104
not rcx
dec rcx
mov qword [rsp + 0x48], rcx
mov rcx, rbx
call fcn.1400c9428
test eax, eax
jne 0x14000a220
mov eax, dword [rsp + 0x2e0]
mov edi, dword [rsp + 0x2d8]
test eax, eax
je 0x14000a19a
mov eax, dword [rsp + 0x50]
lea rcx, [rsp + 0x7c]
lea edx, [rdi + rdi]
shr eax, 3
mov qword [rsp + 0x28], rcx
lea r8, [0x1400e17cc]
not eax
lea rcx, str._s_3u__c_s_n
mov r9d, edi
and eax, 2
or eax, 0x44
mov dword [rsp + 0x20], eax
call fcn.14000c030
mov eax, dword [rsp + 0x2e0]
cmp dword [rsp + 0x2e8], 0
jne 0x14000a1ef
test byte [rsp + 0x50], 0x10
je 0x14000a1ef
cmp dword [rsp + 0x2d0], 0
je 0x14000a220
mov rcx, qword [rsp + 0x2f8]
lea r9d, [rdi + 1]
mov rdi, qword [rsp + 0x2f0]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rdi
and dword [rsp + 0x28], 0
mov rcx, rbx
mov r8d, 1
mov rdx, rsi
mov dword [rsp + 0x20], eax
call fcn.140009f9c
jmp 0x14000a218
mov rdi, qword [rsp + 0x2f0]
test rdi, rdi
je 0x14000a220
mov eax, dword [rsp + 0x48]
mov r9, qword [rsp + 0x2f8]
mov ecx, dword [rsp + 0x2d8]
lea r8, [rbx + rax*2]
mov rdx, rbx
call rdi
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x14000a23e
mov rdi, qword [rsp + 0x2c0]
lea rdx, [rsp + 0x50]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14000a0b2
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindClose]
mov ebp, dword [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, ebp
mov rbx, qword [rsp + 0x2c8]
add rsp, 0x2a0
pop rdi
pop rsi
pop rbp
ret