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

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0xa54
mov eax, dword [0x516ad4]
push ebx
push esi
push edi
mov dword [ebp + 0x64], eax
call fcn.004e4e58
test eax, eax
mov ebx, 0x1000000
je 0x4e53b2
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x4e520c
cmp word [eax], 0
je 0x4e520c
push eax
lea eax, [ebp - 0x9ec]
push eax
call fcn.004de40e
pop ecx
pop ecx
jmp 0x4e521f
push ebx
lea eax, [ebp - 0x9ec]
push eax
push dword [ebp + 0x74]
call fcn.004de211
add esp, 0xc
mov esi, dword [ebp + 0x7c]
or edi, 0xffffffff
cmp dword [ebp + 0x70], edi
lea eax, [ebp - 0x1ec]
push eax
jne 0x4e526e
lea eax, [ebp - 0x9ec]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, edi
mov dword [ebp + 0x70], eax
jne 0x4e5299
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x4e541b
cmp eax, 3
je 0x4e541b
cmp eax, 0x12
je 0x4e541b
xor eax, eax
inc eax
jmp 0x4e541d
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4e5290
mov dword [ebp + 0x70], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
setne al
mov byte [esi + 0x109c], al
cmp dword [ebp + 0x70], edi
je 0x4e556d
lea eax, [ebp - 0x9ec]
push eax
lea edi, [esi + 0x400]
push edi
call fcn.004de40e
pop ecx
pop ecx
lea eax, [ebp - 0x1c0]
push eax
push edi
call fcn.004deaa2
pop ecx
push eax
call fcn.004de40e
push ebx
push esi
push edi
call fcn.004de1e4
add esp, 0x14
push 1
push 0
push 0
push dword [ebp - 0x1d0]
call fcn.004eaf70
mov ecx, dword [ebp - 0x1cc]
xor ebx, ebx
add eax, ecx
mov dword [esi + 0xc00], eax
mov eax, dword [ebp - 0x1ec]
mov dword [esi + 0xc08], eax
push 0x1000000
lea eax, [esi + 0xc80]
push eax
lea eax, [ebp + 0x48]
adc edx, ebx
push eax
mov dword [esi + 0xc04], edx
call fcn.004de1e4
mov eax, dword [ebp - 0x1e8]
mov dword [esi + 0x1080], eax
mov eax, dword [ebp - 0x1e4]
mov dword [esi + 0x1084], eax
mov eax, dword [ebp - 0x1e0]
mov dword [esi + 0x1088], eax
mov eax, dword [ebp - 0x1dc]
mov dword [esi + 0x108c], eax
mov eax, dword [ebp - 0x1d8]
mov dword [esi + 0x1090], eax
mov eax, dword [ebp - 0x1d4]
mov dword [esi + 0x1094], eax
add esp, 0xc
lea eax, [ebp - 0x1d8]
lea ebx, [esi + 0xc14]
push eax
mov ecx, ebx
call fcn.004e4772
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [esi + 0xc38]
call fcn.004e4772
lea eax, [ebp - 0x1e0]
push eax
lea ecx, [esi + 0xc5c]
call fcn.004e4772
mov ecx, ebx
call fcn.004e46d3
push edi
mov dword [esi + 0xc0c], eax
call fcn.004db4ad
jmp 0x4e5564
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x4e53cf
cmp byte [eax], 0
je 0x4e53cf
push eax
lea eax, [ebp - 0x5ec]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
jmp 0x4e53e2
push ebx
lea eax, [ebp - 0x5ec]
push eax
push dword [ebp + 0x78]
call fcn.004de1e4
add esp, 0xc
mov esi, dword [ebp + 0x7c]
or edi, 0xffffffff
cmp dword [ebp + 0x70], edi
lea eax, [ebp - 0xdc]
push eax
jne 0x4e542b
lea eax, [ebp - 0x5ec]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, edi
mov dword [ebp + 0x70], eax
jne 0x4e5456
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x4e541b
cmp eax, 3
jmp 0x4e5260
xor eax, eax
mov esi, dword [ebp + 0x7c]
mov byte [esi + 0x109c], al
jmp 0x4e556d
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4e544d
mov dword [ebp + 0x70], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
setne al
mov byte [esi + 0x109c], al
cmp dword [ebp + 0x70], edi
je 0x4e556d
lea eax, [ebp - 0x5ec]
push eax
push esi
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
lea eax, [ebp - 0xb0]
push eax
push esi
call fcn.004dea48
pop ecx
push eax
call sub.MSVCRT.dll_strcpy
push ebx
lea edi, [esi + 0x400]
push edi
push esi
call fcn.004de211
add esp, 0x14
push 1
push 0
push 0
push dword [ebp - 0xc0]
call fcn.004eaf70
mov ecx, dword [ebp - 0xbc]
xor ebx, ebx
add eax, ecx
mov dword [esi + 0xc00], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0xc08], eax
lea eax, [ebp + 0x54]
push eax
lea eax, [esi + 0xc80]
adc edx, ebx
push eax
mov dword [esi + 0xc04], edx
call sub.MSVCRT.dll_strcpy
mov eax, dword [ebp - 0xd8]
mov dword [esi + 0x1080], eax
mov eax, dword [ebp - 0xd4]
mov dword [esi + 0x1084], eax
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0x1088], eax
mov eax, dword [ebp - 0xcc]
mov dword [esi + 0x108c], eax
mov eax, dword [ebp - 0xc8]
mov dword [esi + 0x1090], eax
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
mov dword [esi + 0x1094], eax
lea eax, [ebp - 0xc8]
lea ebx, [esi + 0xc14]
push eax
mov ecx, ebx
call fcn.004e4772
lea eax, [ebp - 0xd8]
push eax
lea ecx, [esi + 0xc38]
call fcn.004e4772
lea eax, [ebp - 0xd0]
push eax
lea ecx, [esi + 0xc5c]
call fcn.004e4772
mov ecx, ebx
call fcn.004e46d3
push esi
mov dword [esi + 0xc0c], eax
call fcn.004db492
test al, al
pop ecx
je 0x4e556d
and word [edi], 0
and dword [esi + 0x1098], 0
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x70]
pop edi
pop esi
pop ebx
call fcn.004eae3c
add ebp, 0x68
leave
ret