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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x270
mov eax, dword [0x647f70]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x260], eax
mov eax, dword [ebp + 0x18]
mov esi, edx
push edi
mov dword [ebp - 0x270], esi
xor ebx, ebx
mov dword [ebp - 0x26c], edi
mov dword [ebp - 0x268], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x473833
test al, 0x10
je 0x473833
cmp dword [ebp + 0x10], ebx
je 0x47363d
cmp dword [ebp + 0xc], ebx
jne 0x47363d
push edi
push 0x624a44
push ebx
push 0x87
push str..._fileutil.c
push str._s___d_:__sDirectory__s
call fcn.00473420
add esp, 0x18
test esi, esi
je 0x473626
push esi
push 0x89
push str..._fileutil.c
push str._s___d_:____s_
call fcn.00473420
add esp, 0x10
push 0x8a
push str..._fileutil.c
push str._s___d_:__n
call fcn.00473420
add esp, 0xc
push 0x208
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x47382c
push dword [ebp - 0x26c]
push 0x104
push edi
call fcn.0059f952
add esp, 0xc
test eax, eax
jne 0x47382c
push 0x625228
push 0x104
push edi
call fcn.0059f8e6
add esp, 0xc
test eax, eax
jne 0x47382c
test esi, esi
mov eax, 0x62522c
cmovne eax, esi
push eax
push 0x104
push edi
call fcn.0059f8e6
add esp, 0xc
test eax, eax
jne 0x47382c
lea eax, [ebp - 0x25c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x264], eax
cmp eax, 0xffffffff
je 0x47382c
lea esp, [esp]
lea eax, [ebp - 0x230]
push 0x625230
push eax
call fcn.0059f688
add esp, 8
test eax, eax
je 0x473805
lea eax, [ebp - 0x230]
push 0x625234
push eax
call fcn.0059f688
add esp, 8
test eax, eax
je 0x473805
push dword [ebp - 0x26c]
push 0x104
push edi
call fcn.0059f952
add esp, 0xc
test eax, eax
jne 0x473805
push 0x625228
push 0x104
push edi
call fcn.0059f8e6
add esp, 0xc
test eax, eax
jne 0x473805
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x473744
lea eax, [ebp - 0x230]
sub esi, ecx
push eax
push 0x104
push edi
sar esi, 1
call fcn.0059f8e6
add esp, 0xc
test eax, eax
jne 0x473805
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4737b6
lea eax, [ebp - 0x230]
push eax
mov eax, dword [ebp - 0x25c]
shr eax, 3
not eax
and eax, 2
or eax, 0x44
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0x624a44
add eax, eax
push eax
push 0xa3
push str..._fileutil.c
push str._s___d_:__s_3u__c_s_n
call fcn.00473420
mov eax, dword [ebp + 0x10]
add esp, 0x20
test byte [ebp - 0x25c], 0x10
jne 0x4737db
mov ecx, dword [ebp - 0x260]
test ecx, ecx
je 0x473805
push dword [ebp - 0x268]
lea eax, [edi + esi*2]
push eax
push edi
push dword [ebp + 0xc]
call ecx
jmp 0x4737ff
push dword [ebp - 0x268]
mov edx, dword [ebp - 0x270]
mov ecx, edi
push dword [ebp - 0x260]
push eax
mov eax, dword [ebp + 0xc]
inc eax
push eax
push 1
call fcn.00473590
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x473820
lea eax, [ebp - 0x25c]
push eax
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4736d0
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_FindClose]
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [ebp - 8]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0059df39
mov esp, ebp
pop ebp
ret