Function at 0x180051310
Capabilities:
Enumerate files on windows

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x258]
sub rsp, 0x350
mov qword [rbp - 0x58], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1801610c0]
xor rax, rsp
mov qword [rbp + 0x240], rax
mov rdi, rcx
call fcn.18004da50
test al, al
je 0x1800515ae
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x18005139d
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x180051397
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1800515d8
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
call fcn.180039cb0
mov rcx, rax
test rax, rax
je 0x1800515f0
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea rsi, [0x1800fe3d8]
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.180039fa0
or rbx, 0xffffffffffffffff
test al, al
jne 0x180051401
mov rax, rbx
inc rax
cmp word [rsi + rax*2], 0
jne 0x1800513e6
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.18003a350
nop
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x78]
call fcn.18003f420
nop
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18005143d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp - 0x10]
call fcn.1800b2150
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x78]
call fcn.180052d30
nop
lea rdx, [rbp - 0x10]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x18005149c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp rdi, 0xffffffffffffffff
je 0x18005160b
nop word [rax + rax]
lea rdx, [rbp + 0x1c]
lea rcx, [0x180117f4c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1800514da
lea rdx, [rbp + 0x1c]
lea rcx, [0x1800fe35c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x1800514fc
lea rdx, [rbp - 0x10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1800514b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x180051611
jmp 0x180051557
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
je 0x180051623
mov qword [rsp + 0x38], rbx
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rax, [rbp - 0x60]
mov qword [rsp + 0x70], rax
mov rax, qword [rbp - 0x60]
lea rdx, [rax - 0x18]
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x180051548
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor al, al
jmp 0x1800515b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
je 0x18005167b
mov qword [rsp + 0x38], rbx
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rax, [rbp - 0x60]
mov qword [rsp + 0x70], rax
mov rax, qword [rbp - 0x60]
lea rdx, [rax - 0x18]
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x1800515a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov al, 1
mov rcx, qword [rbp + 0x240]
xor rcx, rsp
call fcn.1800916f0
lea r11, [rsp + 0x350]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
xor r9d, r9d
mov r8d, 0xc3
lea rdx, str.C:dvsp4_build_sw_toolswin32msvc141u5VC_atlmfcinclude_atlcore.h
mov ecx, eax
call fcn.18003abe0
nop
xor r9d, r9d
mov r8d, 0xcd
lea rdx, str.C:dvsp4_build_sw_toolswin32msvc141u5VC_atlmfcinclude_atlsimpstr.h
mov ecx, 0x80004005
call fcn.18003abe0
nop
call fcn.180039260
int3
mov edx, 0xbbe
lea rcx, str.FilePath.cpp
call fcn.180039200
nop
call fcn.1800391e0
mov ecx, eax
lea r9, str.WinAPI
mov r8d, 0xef
lea rdx, [0x18011ae00]
call fcn.1800391c0
lea rax, str.WinAPI_FALSE___NO_ERROR
mov qword [rsp + 0x20], rax
mov r9d, 0xef
lea r8, [0x18011ae00]
mov edx, 0x80004005
lea rcx, [rbp - 0x50]
call fcn.18003a640
lea rdx, [0x18015e3c8]
lea rcx, [rbp - 0x50]
call fcn.1800b2060
int3
call fcn.1800391e0
mov ecx, eax
lea r9, str.WinAPI
mov r8d, 0xef
lea rdx, [0x18011ae00]
call fcn.1800391c0
lea rax, str.WinAPI_FALSE___NO_ERROR
mov qword [rsp + 0x20], rax
mov r9d, 0xef
lea r8, [0x18011ae00]
mov edx, 0x80004005
lea rcx, [rbp - 0x30]
call fcn.18003a640
lea rdx, [0x18015e3c8]
lea rcx, [rbp - 0x30]
call fcn.1800b2060
int3