Function at 0x4e0350
Capabilities:
Enumerate files on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5540ea
mov eax, dword fs:[0]
push eax
sub esp, 0x2b8
mov eax, dword [0x5c403c]
xor eax, esp
mov dword [esp + 0x2b0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5c403c]
xor eax, esp
push eax
lea eax, [esp + 0x2cc]
mov dword fs:[0], eax
mov eax, dword [esp + 0x2dc]
mov esi, ecx
xor ebx, ebx
push 0x24c
lea ecx, [esp + 0x7c]
push ebx
push ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x80], ebx
call sub.MSVCR90.dll_memset
add esp, 0xc
lea edx, [esp + 0x50]
push esi
push edx
mov edi, str..plug
call fcn.0040f2b0
add esp, 8
mov dword [esp + 0x2d4], ebx
mov eax, dword [eax]
lea ecx, [esp + 0x74]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x64], eax
mov dword [esp + 0x2d4], 0xffffffff
lea ecx, [esp + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
test byte [esp + 0x74], 0x10
jne 0x4e09be
lea edx, [esp + 0xa0]
push edx
lea ecx, [esp + 0x1c]
call dword [0x55a504]
mov ebx, 1
mov dword [esp + 0x2d4], ebx
push 0x588bec
lea esi, [esp + 0x1c]
call fcn.004e0b50
add esp, 4
test al, al
je 0x4e09a9
push 0x588bf0
call fcn.004e0b50
add esp, 4
test al, al
je 0x4e09a9
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 6
jle 0x4e09a9
push 0xb0
call sub.mfc90u.dll_new
add esp, 4
mov dword [esp + 0x4c], eax
mov byte [esp + 0x2d4], 2
test eax, eax
je 0x4e0485
push eax
call fcn.004dd7b0
mov ebp, eax
jmp 0x4e0487
xor ebp, ebp
mov byte [esp + 0x2d4], bl
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x1c]
mov ebx, 0x588bf4
mov dword [esp + 0x50], ebp
call fcn.004393e0
add esp, 4
mov byte [esp + 0x2d4], 3
push eax
call fcn.004e0bd0
mov byte [esp + 0x2d4], 1
lea ecx, [esp + 0x5c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.0040e540
add esp, 8
mov byte [esp + 0x2d4], 4
mov edi, eax
mov esi, ebp
call fcn.004ddaf0
test eax, eax
sete bl
mov byte [esp + 0x2d4], 1
lea ecx, [esp + 0x58]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
test bl, bl
je 0x4e072e
cmp dword [esp + 0x2e4], 0
je 0x4e05f7
mov eax, 4
call fcn.004de860
lea ecx, [esp + 0x24]
call dword [0x55a6c4]
mov byte [esp + 0x2d4], 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x2c]
push str._tError:__s___d_
push edx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
cmp dword [0x5c7004], 0
je 0x4e05cd
push 0x55ae9c
lea ecx, [esp + 0x48]
call dword [0x55a504]
mov byte [esp + 0x2d4], 6
push str.PLMG
lea ecx, [esp + 0x3c]
call dword [0x55a504]
mov byte [esp + 0x2d4], 7
mov esi, dword [0x5c7004]
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x3c]
push ecx
xor ecx, ecx
lea ebx, [esp + 0x2c]
call fcn.00433ab0
mov byte [esp + 0x2d4], 6
lea ecx, [esp + 0x38]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x2d4], 5
lea ecx, [esp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
test ebp, ebp
je 0x4e05e0
push ebp
call fcn.004dd8d0
push ebp
call sub.mfc90u.dll_delete
add esp, 4
mov byte [esp + 0x2d4], 1
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x4e09a9
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x1c]
mov edi, eax
call dword [0x55a6c4]
mov byte [esp + 0x2d4], 8
mov edx, dword [esp + 0x18]
push edi
push edx
lea eax, [esp + 0x24]
push str._tError:__s___d_
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
cmp dword [0x5c7004], 0
je 0x4e06a0
push 0x55ae9c
lea ecx, [esp + 0x4c]
call dword [0x55a504]
mov byte [esp + 0x2d4], 9
push str.PLMG
lea ecx, [esp + 0x34]
call dword [0x55a504]
mov byte [esp + 0x2d4], 0xa
mov esi, dword [0x5c7004]
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x34]
push edx
xor ecx, ecx
lea ebx, [esp + 0x24]
call fcn.00433ab0
mov byte [esp + 0x2d4], 9
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x2d4], 8
lea ecx, [esp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 0x802
call sub.mfc90u.dll_new__
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4e06c5
push 0x802
push 0
push ebx
call sub.MSVCR90.dll_memset
add esp, 0xc
jmp 0x4e06c7
xor ebx, ebx
push 0
push 0x400
push ebx
push 0x800
push edi
push 0
push 0x1200
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
lea esi, [ebp + 0x58]
push ebx
mov ecx, esi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
push 0
push 0x570a68
mov ecx, esi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
cmp eax, 0xffffffff
je 0x4e0714
mov eax, dword [esp + 0x18]
push eax
push 0x570a68
mov ecx, esi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Replace]
push ebx
call sub.mfc90u.dll_delete__
add esp, 4
mov byte [esp + 0x2d4], 1
lea ecx, [esp + 0x1c]
jmp 0x4e0854
cmp dword [0x5c7004], 0
je 0x4e085a
push 0x55ae9c
lea ecx, [esp + 0x38]
call dword [0x55a504]
mov byte [esp + 0x2d4], 0xb
push str.PLMG
lea ecx, [esp + 0x44]
call dword [0x55a504]
mov byte [esp + 0x2d4], 0xc
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x1c]
mov ebx, str._tFound:
call fcn.004393e0
add esp, 4
mov byte [esp + 0x2d4], 0xd
push eax
lea edx, [esp + 0x74]
push edx
mov edi, 0x57f410
call fcn.0040f2b0
mov byte [esp + 0x2dc], 0xe
lea ecx, [ebp + 0x4c]
push ecx
lea edx, [esp + 0x6c]
push edx
mov ecx, eax
call fcn.0040e540
mov byte [esp + 0x2e4], 0xf
push eax
lea eax, [esp + 0x7c]
push eax
mov edi, 0x561420
call fcn.0040f2b0
add esp, 0x18
mov byte [esp + 0x2d4], 0x10
mov esi, dword [0x5c7004]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x44]
push edx
mov ecx, 5
mov ebx, eax
call fcn.00433ab0
mov byte [esp + 0x2d4], 0xf
lea ecx, [esp + 0x68]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x2d4], 0xe
lea ecx, [esp + 0x60]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x2d4], 0xd
lea ecx, [esp + 0x70]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x2d4], 0xc
lea ecx, [esp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x2d4], 0xb
lea ecx, [esp + 0x40]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x2d4], 1
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x20]
call dword [0x55a6c4]
mov byte [esp + 0x2d4], 0x11
movzx eax, word [ebp + 0x98]
movzx ecx, word [ebp + 0x9a]
movzx edx, word [ebp + 0x9c]
push eax
movzx eax, word [ebp + 0x9e]
push ecx
mov ecx, dword [ebp + 0x54]
push edx
mov edx, dword [ebp + 0x50]
push eax
push ecx
push edx
lea eax, [esp + 0x38]
push str.I:_s__s__d._d._d._d
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x20
lea ecx, [esp + 0x20]
push ecx
call fcn.004e0bd0
mov byte [esp + 0x2d4], 1
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp dword [esp + 0x2e4], 0
mov edx, dword [esp + 0x2e0]
mov dword [ebp + 0x48], edx
jne 0x4e08e6
mov ecx, dword [esp + 0x3c]
push ebp
call fcn.004dfea0
jmp 0x4e09a9
mov edi, dword [esp + 0x3c]
mov esi, dword [edi + 0x24]
mov eax, dword [edi + 0x28]
add edi, 0xc
add eax, esi
cmp esi, eax
jbe 0x4e08ff
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebx, dword [edi]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], esi
lea esp, [esp]
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x1c]
add esi, eax
cmp eax, esi
jbe 0x4e0922
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [edi]
test ebx, ebx
je 0x4e092c
cmp ebx, eax
je 0x4e0932
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x2c], esi
je 0x4e099d
lea eax, [esp + 0x28]
call fcn.004a8ec0
mov ecx, dword [eax]
mov eax, dword [ebp + 0x54]
add ecx, 0x54
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
je 0x4e0980
test ebx, ebx
jne 0x4e097a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp dword [esp + 0x2c], ecx
jb 0x4e0974
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
inc dword [esp + 0x2c]
jmp 0x4e0910
mov eax, dword [ebx]
mov ecx, eax
jmp 0x4e0962
mov eax, 4
mov esi, ebp
call fcn.004de860
push ebp
call fcn.004dd8d0
push ebp
call sub.mfc90u.dll_delete
add esp, 4
jmp 0x4e09a9
lea edx, [esp + 0x4c]
push edx
mov eax, edi
call fcn.004c8c40
mov dword [esp + 0x2d4], 0xffffffff
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov esi, dword [esp + 0x64]
lea eax, [esp + 0x74]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4e03f9
test esi, esi
je 0x4e09e1
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x2cc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2b0]
xor ecx, esp
call fcn.00532776
add esp, 0x2c4
ret 0xc