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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x690
mov eax, dword [0x420164]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x18]
xor esi, esi
mov dword [ebp - 0x684], eax
mov eax, dword [ebp + 0x14]
push 0x20a
mov dword [ebp - 0x680], eax
lea eax, [ebp - 0x42c]
push esi
push eax
mov dword [ebp - 0x690], ecx
mov dword [ebp - 0x68c], ebx
mov dword [ebp - 0x688], edi
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x20a
push esi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x42c]
push ebx
mov ebx, 0x105
push ebx
push eax
call dword [sym.imp.msvcrt.dll_wcscpy_s]
add esp, 0xc
test eax, eax
je 0x414edb
mov eax, 0x8000ffff
push eax
push 0x409058
mov esi, eax
push 0x409100
push 0x420710
push 0x40149c
push 2
call fcn.00411c1c
add esp, 0x18
jmp 0x4151d8
push 0x409164
lea eax, [ebp - 0x42c]
push ebx
push eax
call dword [sym.imp.msvcrt.dll_wcscat_s]
add esp, 0xc
test eax, eax
je 0x414f02
mov eax, 0x8000ffff
push eax
push 0x409170
jmp 0x414ebb
lea eax, [ebp - 0x67c]
push eax
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x415130
mov ecx, 0x40a630
lea eax, [ebp - 0x650]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x414f52
test dx, dx
je 0x414f4e
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x414f52
add eax, 4
add ecx, 4
test dx, dx
jne 0x414f2c
xor eax, eax
jmp 0x414f57
sbb eax, eax
or eax, 1
test eax, eax
je 0x41509e
mov ecx, 0x409218
lea eax, [ebp - 0x650]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x414f90
test dx, dx
je 0x414f8c
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x414f90
add eax, 4
add ecx, 4
test dx, dx
jne 0x414f6a
xor eax, eax
jmp 0x414f95
sbb eax, eax
or eax, 1
test eax, eax
je 0x41509e
cmp dword [edi], 0x7f
jae 0x415123
lea eax, [ebp - 0x650]
push eax
push dword [ebp - 0x68c]
lea eax, [ebp - 0x21c]
push 0x4026c4
push eax
call fcn.00416096
add esp, 0x10
cmp eax, 0xffffffff
je 0x415113
test byte [ebp - 0x67c], 0x10
je 0x415012
mov ecx, dword [ebp - 0x690]
lea eax, [ebp - 0x21c]
push edi
push dword [ebp - 0x680]
push dword [ebp - 0x684]
push 0x80
push eax
call fcn.00414e27
mov esi, eax
test esi, esi
jns 0x41509e
push esi
push 0x409370
jmp 0x4151af
xor eax, eax
push eax
push 0x200000
push 3
push eax
push eax
push 0x120116
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_CreateFileW]
mov edi, eax
test edi, edi
je 0x415103
cmp edi, 0xffffffff
je 0x415103
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push edi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_LockFile]
test eax, eax
je 0x4150f3
mov eax, dword [ebp - 0x688]
mov ecx, dword [ebp - 0x684]
mov eax, dword [eax]
mov dword [ecx + eax*4], edi
mov edi, dword [ebp - 0x688]
mov ecx, dword [edi]
lea eax, [ecx + 1]
mov dword [edi], eax
lea eax, [ebp - 0x21c]
push eax
imul eax, ecx, 0x20a
push 0x105
add eax, dword [ebp - 0x680]
push eax
call dword [sym.imp.msvcrt.dll_wcscpy_s]
add esp, 0xc
test eax, eax
jne 0x4150e3
lea eax, [ebp - 0x67c]
push eax
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindNextFileW]
test eax, eax
jne 0x414f21
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 0x12
je 0x41513d
test eax, eax
je 0x41513d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x4150d8
movzx esi, si
or esi, 0x80070000
push esi
push 0x409610
jmp 0x4151af
mov eax, 0x8000ffff
push eax
push 0x409568
jmp 0x4151ad
mov eax, 0x80070005
push eax
push 0x4094c0
jmp 0x4151ad
mov eax, 0x80070005
push eax
push 0x409418
jmp 0x4151ad
mov eax, 0x8000ffff
push eax
push 0x4092c8
jmp 0x4151ad
mov eax, 0x8007000e
push eax
push 0x409220
jmp 0x4151ad
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 2
jne 0x415154
xor esi, esi
mov ecx, dword [edi]
cmp ecx, 0x80
jb 0x415178
mov eax, 0x8007000e
push eax
push 0x409760
jmp 0x4151ad
test eax, eax
je 0x41513d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x41516d
movzx esi, si
or esi, 0x80070000
push esi
push 0x4096b8
jmp 0x414ebd
push dword [ebp - 0x68c]
lea eax, [ecx + 1]
mov dword [edi], eax
imul eax, ecx, 0x20a
push 0x105
add eax, dword [ebp - 0x680]
push eax
call dword [sym.imp.msvcrt.dll_wcscpy_s]
add esp, 0xc
test eax, eax
je 0x4151c8
mov eax, 0x8000ffff
push eax
push 0x409808
mov esi, eax
push 0x409100
push 0x420710
push 0x40149c
push 2
call fcn.00411c1c
add esp, 0x18
test ebx, ebx
je 0x4151d8
cmp ebx, 0xffffffff
je 0x4151d8
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindClose]
mov ecx, dword [ebp - 8]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041d370
leave
ret 0x14