Function at 0x4d6fe0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5d6dd2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
mov eax, dword [0x644904]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
movzx eax, byte [esi]
sub eax, 4
mov ebp, ecx
je 0x4d7029
dec eax
je 0x4d701f
movzx eax, byte [esi + 1]
mov dword [esp + 0x5c], eax
jmp 0x4d7031
mov dword [esp + 0x5c], 8
jmp 0x4d7031
mov dword [esp + 0x5c], 5
mov ecx, dword [esp + 0x5c]
push ecx
mov ecx, ebp
call fcn.004d6580
mov ebx, eax
test ebx, ebx
mov dword [esp + 0xc], ebx
je 0x4d7344
mov eax, dword [esi + 8]
push edi
push eax
mov ecx, ebx
call fcn.004d6e00
mov edi, eax
test edi, edi
jne 0x4d717e
lea eax, [esi + 0xd]
push eax
mov ecx, ebx
call fcn.004d6e50
mov edi, eax
test edi, edi
jne 0x4d717e
mov eax, dword [esi + 8]
mov edi, dword [sym.imp.msvcr71.dll_strncpy]
lea ebx, [ebp + 0xb0]
mov dword [ebx], eax
push 0x1d
lea eax, [esi + 0xd]
push eax
lea edx, [ebp + 0xb4]
push edx
call edi
movzx eax, byte [esi]
mov dword [ebp + 0xd4], eax
mov ecx, dword [esi + 4]
mov dword [ebp + 0xd8], ecx
mov edx, dword [esi + 0x2c]
mov dword [ebp + 0xe0], edx
mov eax, dword [esi + 0x30]
mov dword [ebp + 0xe4], eax
mov ecx, dword [esi + 0x34]
mov dword [ebp + 0xe8], ecx
mov dx, word [esi + 0x38]
push 0x17
lea eax, [esi + 0x3b]
push eax
lea ecx, [ebp + 0xee]
push ecx
mov word [ebp + 0xec], dx
call edi
mov dx, word [esi + 0x54]
push 0x1f
lea eax, [esi + 0x57]
push eax
lea ecx, [ebp + 0x108]
push ecx
mov word [ebp + 0x106], dx
call edi
movzx eax, byte [esi + 0x77]
add esp, 0x24
test eax, eax
mov dword [ebp + 0x128], eax
je 0x4d716c
push 0x1f
lea edx, [esi + 0x79]
push edx
lea eax, [ebp + 0x12c]
push eax
call edi
add esp, 0xc
lea ecx, [esi + 0x9a]
push 0x21
push ecx
call fcn.0045b0f0
add esp, 4
push eax
lea edx, [ebp + 0x14c]
push edx
call edi
xor eax, eax
mov ax, word [esi + 0xbc]
add esp, 0xc
lea ecx, [ebp + 0x190]
push ecx
mov ecx, ebp
mov word [ebp + 0x16e], ax
push eax
call fcn.004d65f0
movzx edx, byte [esi + 0xbe]
push ebx
mov ecx, ebp
mov dword [ebp + 0x1b0], edx
call fcn.004d6a70
mov ecx, dword [0x646074]
mov eax, dword [ecx]
push 0x65
call dword [eax + 0x54]
jmp 0x4d733e
mov eax, dword [esi + 8]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0xc]
test eax, eax
jne 0x4d7198
mov eax, dword [ebx]
lea ecx, [esi + 0xd]
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov edx, dword [esi + 8]
mov ebx, dword [sym.imp.msvcr71.dll_strncpy]
push 0x1d
lea eax, [esi + 0xd]
push eax
lea ecx, [edi + 4]
push ecx
mov dword [edi], edx
call ebx
movzx edx, byte [esi]
mov dword [edi + 0x24], edx
mov eax, dword [esi + 4]
mov dword [edi + 0x28], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 0x30]
mov dword [edi + 0x34], eax
mov eax, dword [esi + 0x34]
mov dword [edi + 0x38], eax
mov ax, word [esi + 0x38]
mov word [edi + 0x3c], ax
push 0x17
lea eax, [esi + 0x3b]
push eax
lea ecx, [edi + 0x3e]
push ecx
call ebx
mov ax, word [esi + 0x54]
push 0x1f
lea edx, [esi + 0x57]
mov word [edi + 0x56], ax
push edx
lea eax, [edi + 0x58]
push eax
call ebx
movzx ecx, byte [esi + 0x77]
add esp, 0x24
mov dword [edi + 0x78], ecx
push edi
mov ecx, ebp
call fcn.004d66b0
mov eax, dword [edi + 0x78]
test eax, eax
je 0x4d7274
push 0x1f
lea edx, [esi + 0x79]
push edx
lea eax, [edi + 0x7c]
push eax
call ebx
add esp, 0xc
lea ecx, [esi + 0x9a]
push 0x21
push ecx
call fcn.0045b0f0
add esp, 4
push eax
lea edx, [edi + 0x9c]
push edx
call ebx
xor eax, eax
mov ax, word [esi + 0xbc]
add esp, 0xc
lea ecx, [edi + 0xe0]
push ecx
mov ecx, ebp
mov word [edi + 0xbe], ax
push eax
call fcn.004d65f0
movzx edx, byte [esi + 0xbe]
push edi
mov ecx, ebp
mov dword [edi + 0x100], edx
call fcn.004d6a70
jmp 0x4d72f7
push 0x5eb0c0
lea ecx, [esp + 0x34]
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov eax, dword [0x645858]
mov ecx, dword [eax]
push 0x6072c8
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x64], 0
call dword [ecx + 0x90]
add esp, 0xc
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x5c], 1
call dword [sym.imp.msvcp71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x14]
mov byte [esp + 0x58], 0
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x30]
call dword [sym.imp.msvcp71.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
lea edx, [edi + 0xe0]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x4d72d5
mov byte [edi + 0x104], cl
lea ecx, [esp + 0x30]
mov dword [esp + 0x58], 0xffffffff
call dword [sym.imp.msvcp71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx]
push edi
mov ecx, ebx
call dword [eax + 4]
mov ebp, dword [esp + 0x60]
mov ecx, dword [0x646074]
mov edx, dword [ecx]
push ebp
push 0xbc
call dword [edx + 0x50]
mov ecx, dword [edi]
mov esi, dword [0x646074]
mov eax, dword [esi]
push ecx
mov ecx, ebx
mov dword [esp + 0x64], eax
call fcn.004d6f50
push eax
mov eax, dword [esp + 0x64]
push ebp
push 0xbd
mov ecx, esi
call dword [eax + pe_nt_image_headers32]
mov eax, 1
pop edi
mov ecx, dword [esp + 0x4c]
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x40]
pop ebx
call fcn.005c8895
add esp, 0x4c
ret 4