Function at 0x14009d9e0
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x288]
sub rsp, 0x388
mov rax, qword [0x140241cc0]
xor rax, rsp
mov qword [rbp + 0x270], rax
mov r12, qword [rbp + 0x2d0]
mov r14, qword [rbp + 0x2d8]
mov rax, qword [rbp + 0x2e0]
mov qword [rsp + 0x30], rax
movzx r15d, byte [rbp + 0x2e8]
xor r13d, r13d
mov dword [rbp - 0x10], r13d
test r15b, r15b
je 0x14009da7e
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
mov esi, 1
mov r8d, esi
lea rdx, [0x14020552c]
lea rcx, [rsp + 0x70]
call fcn.140025740
lea rbx, [rsp + 0x70]
jmp 0x14009da92
mov rdx, r14
lea rcx, [rbp - 0x70]
call fcn.140025a50
mov rbx, rax
mov esi, 2
mov dword [rbp - 0x10], esi
mov r8d, 0x5c
mov rdx, r12
lea rcx, [rbp - 0x30]
call fcn.140050670
nop
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 7
jbe 0x14009dab6
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140023930
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 8], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 8], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 7
mov word [rax], r13w
or esi, 4
lea rcx, [rbp - 0x30]
call fcn.140025f00
nop
test sil, 2
je 0x14009db0f
and esi, 0xfffffffd
lea rcx, [rbp - 0x70]
call fcn.140025f00
nop
test sil, 1
je 0x14009db22
and esi, 0xfffffffe
lea rcx, [rsp + 0x70]
call fcn.140025f00
lea rdx, [rsp + 0x60]
call fcn.1400a5420
or esi, 0x10
mov dword [rbp - 0x10], esi
mov rcx, qword [rsp + 0x60]
cmp dword [rcx + 4], 6
jne 0x14009dc0b
cmp dword [rcx + 8], 1
jne 0x14009dc13
mov dil, 1
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x14009db98
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14009db95
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x1400cd6b1.0]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14009db95
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x1400cd6b1.0]
mov esi, dword [rbp - 0x10]
movzx edx, dil
lea rcx, [rbp - 8]
cmp qword [rbp + 0x10], 7
cmova rcx, qword [rbp - 8]
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
xor r9d, r9d
lea r8, [rbp + 0x20]
call qword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov rbx, rax
mov qword [rbp - 0x10], rax
cmp rax, 0xffffffffffffffff
jne 0x14009dc25
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
cmp eax, 2
jne 0x14009ddd3
lea rcx, [rbp - 8]
call fcn.140025f00
mov rcx, qword [rbp + 0x270]
xor rcx, rsp
call fcn.140144310
add rsp, 0x388
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
ja 0x14009db4b
jne 0x14009dc1d
cmp dword [rcx + 8], 2
jae 0x14009db4b
xor dil, dil
jmp 0x14009db4e
movzx r13d, byte [rbp + 0x2f0]
nop dword [rax]
mov edi, dword [rbp + 0x20]
shr edi, 4
and dil, 1
je 0x14009dc6d
movzx ecx, word [rbp + 0x4c]
movzx eax, word [rbp + 0x4e]
cmp cx, 0x2e
jne 0x14009dc68
test ax, ax
je 0x14009dd65
cmp cx, cx
jne 0x14009dc68
cmp ax, cx
jne 0x14009dc68
cmp word [rbp + 0x50], 0
je 0x14009dd65
test r13b, r13b
jne 0x14009dcbc
test r15b, r15b
je 0x14009dc8d
mov rdx, r14
cmp qword [r14 + 0x18], 7
jbe 0x14009dc7f
mov rdx, qword [r14]
lea rcx, [rbp + 0x4c]
call qword [sym.imp.SHLWAPI.dll_PathMatchSpecW]
test eax, eax
je 0x14009dcb3
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x14009ddcd
mov rax, qword [rcx]
lea r8, [rbp + 0x20]
mov rdx, r12
mov rax, qword [rax + 0x10]
call qword [case.0x1400cd6b1.0]
test dil, dil
je 0x14009dd65
test r15b, r15b
je 0x14009dd65
mov r8d, 0x5c
mov rdx, r12
lea rcx, [rbp - 0x50]
call fcn.140050670
nop
lea rcx, [rbp + 0x4c]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rcx + r8*2], 0
jne 0x14009dce3
lea rdx, [rbp + 0x4c]
mov rcx, rax
call fcn.140023930
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xor ecx, ecx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rcx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 7
mov word [rax], cx
or esi, 8
mov byte [rsp + 0x28], cl
mov byte [rsp + 0x20], r13b
movzx r9d, r15b
mov r8, qword [rsp + 0x30]
mov rdx, r14
lea rcx, [rsp + 0x40]
call fcn.14009d9e0
nop
lea rcx, [rsp + 0x40]
call fcn.140025f00
nop
lea rcx, [rbp - 0x50]
call fcn.140025f00
lea rdx, [rbp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14009dc30
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
cmp eax, 0x12
jne 0x14009dd95
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x14009dbdf
lea rax, str.Unable_to_enumerate_directory__
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0x23
lea r9, [rbp - 8]
lea r8, [rsp + 0x30]
lea rcx, [rbp - 0x50]
call fcn.14002a040
lea rdx, [0x14023da00]
lea rcx, [rbp - 0x50]
call fcn.14015a550
int3
call fcn.140140fc4
int3
lea rax, str.Unable_to_enumerate_directory__
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0x23
lea r9, [rbp - 8]
lea r8, [rsp + 0x30]
lea rcx, [rbp - 0x70]
call fcn.14002a040
lea rdx, [0x14023da00]
lea rcx, [rbp - 0x70]
call fcn.14015a550
int3