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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe94
mov eax, dword [0x581d10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0xe8c], eax
mov edi, ecx
xor eax, eax
push 0x24c
push eax
mov dword [ebp - 0xe94], eax
mov dword [ebp - 0xe88], eax
lea eax, [ebp - 0xe84]
push eax
call fcn.004f28b0
add esp, 0xc
xor eax, eax
mov ebx, 0x40e
mov word [ebp - 0x828], ax
push ebx
push eax
lea eax, [ebp - 0x826]
push eax
call fcn.004f28b0
add esp, 0xc
xor eax, eax
mov word [ebp - 0xc38], ax
push ebx
push eax
lea eax, [ebp - 0xc36]
push eax
call fcn.004f28b0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x418], ax
push ebx
push eax
lea eax, [ebp - 0x416]
push eax
call fcn.004f28b0
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x458d46
test al, 0x10
jne 0x458d46
test esi, esi
je 0x458ef3
lea eax, [ebp - 0xe88]
push eax
push edi
call esi
jmp 0x458ef3
push edi
lea eax, [ebp - 0xc38]
push 0x55e180
push eax
call fcn.004f52ad
add esp, 0xc
lea eax, [ebp - 0xe88]
push eax
lea eax, [ebp - 0xc38]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
mov dword [ebp - 0xe90], ebx
cmp ebx, 0xffffffff
je 0x458ef3
test byte [ebp - 0xe88], 0x10
lea eax, [ebp - 0xe5c]
je 0x458ea8
mov ecx, 0x559ff0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458dbe
test dx, dx
je 0x458dba
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458dbe
add eax, 4
add ecx, 4
test dx, dx
jne 0x458d98
xor eax, eax
jmp 0x458dc3
sbb eax, eax
or eax, 1
test eax, eax
je 0x458ed6
mov ecx, 0x559ff4
lea eax, [ebp - 0xe5c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458dfc
test dx, dx
je 0x458df8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458dfc
add eax, 4
add ecx, 4
test dx, dx
jne 0x458dd6
xor eax, eax
jmp 0x458e01
sbb eax, eax
or eax, 1
test eax, eax
je 0x458ed6
lea eax, [ebp - 0xe5c]
push eax
push edi
lea eax, [ebp - 0x418]
push str._s_s
push eax
call fcn.004f52ad
mov eax, dword [ebp - 0xe8c]
add esp, 0x10
test eax, eax
je 0x458e91
lea ecx, [ebp - 0xe88]
push ecx
lea ecx, [ebp - 0x418]
push ecx
call eax
test eax, eax
jne 0x458e8b
lea eax, [ebp - 0x418]
push 0x5c
push eax
call fcn.004f4fbb
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x458eec
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xe94]
jne 0x458e62
sub ecx, ebx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
xor eax, eax
push eax
push edx
call fcn.004f28b0
mov ebx, dword [ebp - 0xe90]
add esp, 0xc
mov eax, dword [ebp - 0xe8c]
push eax
push esi
lea edx, [ebp - 0xe88]
lea ecx, [ebp - 0x418]
call fcn.00458c85
pop ecx
pop ecx
jmp 0x458ed6
push eax
push edi
lea eax, [ebp - 0x828]
push str._s_s
push eax
call fcn.004f52ad
add esp, 0x10
test esi, esi
je 0x458ed6
lea eax, [ebp - 0xe88]
push eax
lea eax, [ebp - 0x828]
push eax
call esi
test eax, eax
je 0x458eec
lea eax, [ebp - 0xe88]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x458d80
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f1cdb
mov esp, ebp
pop ebp
ret