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

Disassembly:
push 0xffffffffffffffff
push 0x588bc4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc0
mov eax, dword [0x5f3edc]
push ebx
push ebp
mov dword [esp + 0xc4], eax
test byte [esp + 0xdc], 7
push esi
push edi
mov dword [esp + 0x18], ecx
jne 0x4c918e
mov esi, dword [esp + 0xe0]
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 8]
xor ebx, ebx
shl esi, 4
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x4c8c01
mov ecx, dword [esi + edx + 4]
jmp 0x4c8bf1
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x14], ecx
je 0x4c8c08
mov eax, dword [eax + 0x1c]
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x4c8bed
xor eax, eax
jmp 0x4c9217
cmp dword [esi + edx + 4], ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + 0x1c]
mov edi, eax
mov edx, eax
jne 0x4c8ed8
and edx, 0xff0000
shr edi, 0x10
or edx, edi
mov edi, eax
shl edi, 0x10
and eax, 0xff00
or edi, eax
shr edx, 8
shl edi, 8
or edx, edi
inc edx
shl edx, 0xb
push edx
push ecx
lea ecx, [esp + 0xa8]
call fcn.004c5f10
mov dword [esp + 0xd8], ebx
call fcn.00530c5b
lea ecx, [esp + 0xa0]
mov ebp, eax
mov eax, dword [ebp]
push ecx
lea edx, [esp + 0x6c]
push edx
mov ecx, ebp
call dword [eax + 8]
lea edi, [esp + 0x68]
mov byte [esp + 0xd8], 1
call fcn.004c6ac0
test eax, eax
mov ecx, ebp
jne 0x4c8cbf
mov eax, dword [ebp]
call dword [eax + 0x10]
lea ecx, [esp + 0x68]
mov byte [esp + 0xd8], bl
call fcn.004c7980
mov ecx, dword [esp + 0xa4]
push ecx
mov dword [esp + 0xa4], 0x5ba354
call sub.MFC71.DLL_operator_delete
add esp, 4
xor eax, eax
jmp 0x4c9217
mov edx, dword [ebp]
call dword [edx]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 8]
mov edx, dword [esi + ecx + 8]
mov ecx, dword [esi + ecx + 0xc]
mov esi, dword [eax + 0x5b8]
imul ecx, ecx, 0x164
lea eax, [edx + edx*2]
shl eax, 4
add eax, esi
mov eax, dword [eax + 0x24]
add ecx, eax
xor edx, edx
lea eax, [esp + 0xbc]
mov dword [esp + 0xbc], edx
push eax
add ecx, 0x124
mov dword [esp + 0xc4], edx
call fcn.004c8a10
mov esi, 0x5ba354
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov edx, dword [ebp]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebp
mov byte [esp + 0xe0], 2
call dword [edx + 0xc]
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0xdc], 3
call fcn.004c87f0
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 2
call fcn.004c7980
push 0x188
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xdc], esp
push str..CmdTableAllocator.cpp
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__]
push ebx
push 2
lea ecx, [esp + 0xa0]
call fcn.004c53f0
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0xdc], 4
call fcn.004c8980
lea ecx, [esp + 0x7c]
mov byte [esp + 0xd8], 2
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 edi, [esp + 0x68]
call fcn.004c6ac0
test eax, eax
jne 0x4c8e10
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x10]
mov eax, dword [esp + 0x34]
push eax
mov dword [esp + 0x34], esi
call sub.MFC71.DLL_operator_delete
add esp, 4
lea ecx, [esp + 0x68]
mov byte [esp + 0xd8], bl
call fcn.004c7980
mov ecx, dword [esp + 0xa4]
push ecx
mov dword [esp + 0xa4], esi
call sub.MFC71.DLL_operator_delete
add esp, 4
xor eax, eax
jmp 0x4c9217
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0x1c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xbc], eax
xor edi, edi
mov dword [esp + 0x10], ebx
cmp esi, ebx
je 0x4c8e5f
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x20]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x4c8e5f
mov eax, dword [esp + 0x10]
inc edi
add eax, 0xc
mov dword [esp + 0x10], eax
jmp 0x4c8e30
mov eax, dword [esp + 0x48]
push eax
call dword [sym.imp.MSVCR71.dll_malloc]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov esi, ecx
shr esi, 0xb
mov dword [edx + 0x18], esi
mov esi, dword [esp + 0xc0]
mov dword [edx + 0x10], eax
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
add esp, 4
mov ecx, ebp
call dword [eax + 0x10]
mov ecx, dword [esp + 0x34]
mov esi, 0x5ba354
push ecx
mov dword [esp + 0x34], esi
call sub.MFC71.DLL_operator_delete
add esp, 4
lea ecx, [esp + 0x68]
mov byte [esp + 0xd8], bl
call fcn.004c7980
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], esi
jmp 0x4c9209
and edx, 0xff0000
shr edi, 0x10
or edx, edi
mov edi, eax
shl edi, 0x10
and eax, 0xff00
or edi, eax
shr edx, 8
shl edi, 8
or edx, edi
inc edx
shl edx, 0xb
push edx
push ecx
lea ecx, [esp + 0x80]
call fcn.004c5f10
mov dword [esp + 0xd8], 5
call fcn.0052353d
lea ecx, [esp + 0x78]
mov ebp, eax
mov eax, dword [ebp]
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call dword [eax + 8]
lea edi, [esp + 0x20]
mov byte [esp + 0xd8], 6
call fcn.004c6ac0
test eax, eax
mov ecx, ebp
jne 0x4c8f77
mov eax, dword [ebp]
call dword [eax + 0x10]
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 5
call fcn.004c7980
mov ecx, dword [esp + 0x7c]
push ecx
mov dword [esp + 0x7c], 0x5ba354
call sub.MFC71.DLL_operator_delete
add esp, 4
xor eax, eax
jmp 0x4c9217
mov edx, dword [ebp]
call dword [edx]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 8]
mov edi, dword [esi + ecx + 8]
cmp edi, 0xffffffff
mov esi, dword [esi + ecx + 0xc]
mov dword [esp + 0x10], eax
jne 0x4c8ffa
lea ecx, [eax + 0x848]
call fcn.004c56e0
cmp esi, eax
jge 0x4c905e
mov eax, dword [esp + 0x10]
imul esi, esi, 0x164
mov eax, dword [eax + 0x84c]
add esi, eax
mov eax, dword [esp + 0xe4]
xor ecx, ecx
shr eax, 3
cmp eax, ebx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], ecx
jle 0x4c90e2
lea edi, [esi + 0x124]
mov esi, eax
lea edx, [esp + 0xbc]
push edx
mov ecx, edi
call fcn.004c8a10
dec esi
jne 0x4c8fe3
jmp 0x4c90e2
lea ecx, [eax + 0x878]
call fcn.004c5710
cmp edi, eax
jl 0x4c9036
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 5
call fcn.004c7980
mov eax, dword [esp + 0x7c]
push eax
mov dword [esp + 0x7c], 0x5ba354
call sub.MFC71.DLL_operator_delete
add esp, 4
xor eax, eax
jmp 0x4c9217
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x87c]
lea eax, [edi + edi*2]
shl eax, 4
mov dword [esp + 0x1c], ecx
lea ecx, [eax + ecx + 0x20]
mov dword [esp + 0xbc], eax
call fcn.004c56e0
cmp edi, eax
jl 0x4c908b
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 5
call fcn.004c7980
mov edx, dword [esp + 0x7c]
push edx
mov dword [esp + 0x7c], 0x5ba354
call sub.MFC71.DLL_operator_delete
add esp, 4
xor eax, eax
jmp 0x4c9217
mov eax, dword [esp + 0xbc]
imul esi, esi, 0x164
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + ecx + 0x24]
add esi, eax
mov eax, dword [esp + 0xe4]
xor edx, edx
shr eax, 3
cmp eax, ebx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], edx
jle 0x4c90e2
lea edi, [esi + 0x124]
mov esi, eax
jmp 0x4c90d0
lea eax, [esp + 0xbc]
push eax
mov ecx, edi
call fcn.004c8a10
dec esi
jne 0x4c90d0
mov esi, 0x5ba354
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov edx, dword [ebp]
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xc0]
push ecx
mov ecx, ebp
mov byte [esp + 0xe0], 7
call dword [edx + 0xc]
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xdc], 8
call fcn.004c87f0
lea ecx, [esp + 0xbc]
mov byte [esp + 0xd8], 7
call fcn.004c7980
lea edi, [esp + 0x20]
call fcn.004c6ac0
test eax, eax
jne 0x4c9195
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x10]
mov eax, dword [esp + 0x50]
push eax
mov dword [esp + 0x50], esi
call sub.MFC71.DLL_operator_delete
add esp, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 5
call fcn.004c7980
mov ecx, dword [esp + 0x7c]
push ecx
mov dword [esp + 0x7c], esi
call sub.MFC71.DLL_operator_delete
add esp, 4
xor eax, eax
jmp 0x4c9217
mov edi, dword [esp + 0x14]
mov edx, dword [edi + 0x10]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x50]
push edx
call dword [sym.imp.MSVCR71.dll_free]
push ebx
call dword [sym.imp.MSVCR71.dll_malloc]
mov ecx, ebx
shr ecx, 0xb
mov dword [edi + 0x18], ecx
mov dword [edi + 0x10], eax
mov ecx, ebx
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
add esp, 8
mov ecx, ebp
call dword [eax + 0x10]
mov ecx, dword [esp + 0x50]
mov esi, 0x5ba354
push ecx
mov dword [esp + 0x50], esi
call sub.MFC71.DLL_operator_delete
add esp, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 5
call fcn.004c7980
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x78], esi
push edx
call sub.MFC71.DLL_operator_delete
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xcc]
call fcn.00558076
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret 8