Function at 0x140064610
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 - 0x298]
sub rsp, 0x398
mov rax, qword [0x140117240]
xor rax, rsp
mov qword [rbp + 0x280], rax
mov r14, qword [rbp + 0x2e0]
mov r15, qword [rbp + 0x2e8]
mov rax, qword [rbp + 0x2f0]
mov qword [rsp + 0x40], rax
movzx r12d, byte [rbp + 0x2f8]
xor r13d, r13d
mov dword [rbp + 8], r13d
test r12b, r12b
je 0x1400646ab
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x50], xmm1
lea r8d, [r13 + 1]
lea rdx, [0x1400f3e78]
lea rcx, [rbp - 0x60]
call fcn.140007750
lea rbx, [rbp - 0x60]
lea esi, [r13 + 1]
jmp 0x1400646bf
mov rdx, r15
lea rcx, [rbp - 0x80]
call fcn.1400081a0
mov rbx, rax
mov esi, 2
mov dword [rbp + 8], esi
mov eax, 0x5c
mov word [rbp], ax
mov rax, qword [r14 + 0x10]
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
je 0x140064a4f
mov r9, r14
cmp qword [r14 + 0x18], 7
jbe 0x1400646ef
mov r9, qword [r14]
mov qword [rsp + 0x30], 1
lea rcx, [rbp]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x40]
call fcn.140006510
or esi, 4
mov dword [rbp + 8], esi
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 7
jbe 0x140064723
mov rbx, qword [rbx]
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.140008660
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x20], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x10], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x20], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 7
mov word [rax], r13w
or esi, 8
lea rcx, [rbp - 0x40]
call fcn.140008760
nop
test sil, 2
je 0x14006477d
and esi, 0xfffffffd
lea rcx, [rbp - 0x80]
call fcn.140008760
nop
test sil, 1
je 0x14006478f
and esi, 0xfffffffe
lea rcx, [rbp - 0x60]
call fcn.140008760
lea rdx, [rsp + 0x70]
call fcn.14006f450
or esi, 0x40
mov dword [rbp + 8], esi
mov rcx, qword [rsp + 0x70]
cmp dword [rcx + 4], 6
jne 0x140064878
cmp dword [rcx + 8], 1
jne 0x140064880
mov dil, 1
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140064805
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140064802
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x14006e76f.0]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140064802
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x14006e76f.0]
mov esi, dword [rbp + 8]
movzx edx, dil
lea rcx, [rbp + 0x10]
cmp qword [rbp + 0x28], 7
cmova rcx, qword [rbp + 0x10]
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
xor r9d, r9d
lea r8, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov rbx, rax
mov qword [rbp + 8], rax
cmp rax, 0xffffffffffffffff
jne 0x140064892
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
cmp eax, 2
jne 0x140064a55
lea rcx, [rbp + 0x10]
call fcn.140008760
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.1400827b0
add rsp, 0x398
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
ja 0x1400647b8
jne 0x14006488a
cmp dword [rcx + 8], 2
jae 0x1400647b8
xor dil, dil
jmp 0x1400647bb
movzx r13d, byte [rbp + 0x300]
nop word [rax + rax]
mov edi, dword [rbp + 0x30]
shr edi, 4
and dil, 1
je 0x1400648dd
movzx ecx, word [rbp + 0x5c]
movzx eax, word [rbp + 0x5e]
cmp cx, 0x2e
jne 0x1400648d8
test ax, ax
je 0x140064a13
cmp cx, cx
jne 0x1400648d8
cmp ax, cx
jne 0x1400648d8
cmp word [rbp + 0x60], 0
je 0x140064a13
test r13b, r13b
jne 0x14006492c
test r12b, r12b
je 0x1400648fd
mov rdx, r15
cmp qword [r15 + 0x18], 7
jbe 0x1400648ef
mov rdx, qword [r15]
lea rcx, [rbp + 0x5c]
call qword [sym.imp.SHLWAPI.dll_PathMatchSpecW]
test eax, eax
je 0x140064923
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x140064a49
mov rax, qword [rcx]
lea r8, [rbp + 0x30]
mov rdx, r14
mov rax, qword [rax + 0x10]
call qword [case.0x14006e76f.0]
test dil, dil
je 0x140064a13
test r12b, r12b
je 0x140064a13
mov eax, 0x5c
mov word [rbp], ax
mov rax, qword [r14 + 0x10]
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
je 0x140064a43
mov r9, r14
cmp qword [r14 + 0x18], 7
jbe 0x140064962
mov r9, qword [r14]
mov qword [rsp + 0x30], 1
lea rcx, [rbp]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x20]
call fcn.140006510
or esi, 0x10
lea rax, [rbp + 0x5c]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x140064990
lea rdx, [rbp + 0x5c]
lea rcx, [rbp - 0x20]
call fcn.140008660
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xor ecx, ecx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rcx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x60], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 7
mov word [rax], cx
or esi, 0x20
mov byte [rsp + 0x28], cl
mov byte [rsp + 0x20], r13b
movzx r9d, r12b
mov r8, qword [rsp + 0x40]
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.140064610
nop
lea rcx, [rsp + 0x50]
call fcn.140008760
nop
lea rcx, [rbp - 0x20]
call fcn.140008760
lea rdx, [rbp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1400648a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
cmp eax, 0x12
jne 0x140064a8d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x14006484c
call fcn.1400082a0
int3
call fcn.14007f594
nop
call fcn.1400082a0
nop
lea rax, str.Unable_to_enumerate_directory__
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0x23
lea r9, [rbp + 0x10]
lea r8, [rsp + 0x40]
lea rcx, [rbp - 0x80]
call fcn.14002efd0
lea rdx, [0x140114310]
lea rcx, [rbp - 0x80]
call fcn.1400850a4
int3
lea rax, str.Unable_to_enumerate_directory__
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0x23
lea r9, [rbp + 0x10]
lea r8, [rsp + 0x40]
lea rcx, [rbp - 0x80]
call fcn.14002efd0
lea rdx, [0x140114310]
lea rcx, [rbp - 0x80]
call fcn.1400850a4
int3