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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
lea eax, [esp + 0x80]
mov dword [esp + 0x54], sym.___gxx_personality_sj0
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], 0x4ca164
mov dword [esp + 0x60], 0x4c5cc0
mov dword [esp + 0x64], esp
call dbg._Unwind_SjLj_Register
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], 0
lea ecx, [esp + 0x7b]
mov dword [esp + 0x40], 0xffffffff
mov dword [esp], eax
call sym.std::istream::sentry::sentry_std::istream__bool_
sub esp, 8
cmp byte [esp + 0x7b], 0
mov eax, dword [esp + 0xa0]
je 0x4c5a10
mov eax, dword [eax]
mov edi, dword [esp + 0xa0]
mov edx, 0x7fffffff
lea ecx, [esp + 0x7c]
add edi, dword [eax - 0xc]
mov eax, edi
mov edi, dword [edi + 8]
test edi, edi
cmovg edx, edi
add eax, 0x6c
mov dword [esp], eax
mov dword [esp + 0x2c], edx
call method.std::locale.locale_std::locale_const_
sub esp, 4
lea eax, [esp + 0x7c]
mov dword [esp + 0x40], 1
mov dword [esp], eax
call method.std::ctype_char__const_std::use_facet_std.ctype_char____std::locale_const_
lea ecx, [esp + 0x7c]
mov dword [esp + 0x30], eax
call fcn.004ae0d0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0xa0]
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
mov esi, dword [esi + eax + 0x78]
mov dword [esp + 0x20], esi
mov eax, dword [esi + 8]
cmp dword [esi + 0xc], eax
jbe 0x4c5b57
mov edx, dword [esp + 0x2c]
movzx eax, byte [eax]
sub edx, 1
mov dword [esp + 0x34], edx
je 0x4c5c1b
mov dword [esp + 0x1c], 0
nop
mov esi, dword [esp + 0x30]
movzx edx, al
mov ecx, dword [esi + 0x18]
test byte [ecx + edx*2], 0x20
jne 0x4c5bdb
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x1c]
mov esi, dword [ebx + 0xc]
mov ebx, dword [ebx + 8]
sub edx, 1
mov edi, esi
sub edi, ebx
cmp edx, edi
cmovg edx, edi
cmp edx, 1
jle 0x4c5a40
add edx, ebx
lea eax, [ebx + 1]
cmp edx, eax
ja 0x4c5977
jmp 0x4c5a88
add eax, 1
cmp edx, eax
jbe 0x4c5980
movzx edi, byte [eax]
test byte [ecx + edi*2], 0x20
je 0x4c5970
mov ecx, eax
sub ecx, ebx
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
test edx, edx
jne 0x4c5aa0
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add dword [esp + 0xa4], ecx
mov dword [ebx + 8], eax
mov ebx, dword [esp + 0x28]
add dword [esp + 0x1c], ebx
cmp esi, eax
jbe 0x4c5ad0
movzx eax, byte [eax]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x1c], esi
jl 0x4c5920
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0xa0]
mov byte [eax], 0
mov eax, dword [esp + 0xa0]
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
mov dword [esi + eax + 8], 0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [esp + 0xa0]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [eax]
mov eax, 4
mov ecx, dword [esp + 0xa0]
add ecx, dword [edx - 0xc]
or eax, dword [ecx + 0x14]
mov dword [esp + 0x40], 0xffffffff
mov dword [esp], eax
call method.std::basic_ios_char__std::char_traits_char___.clear_std::_Ios_Iostate_
sub esp, 4
jmp 0x4c59f0
mov ebx, dword [esp + 0xa4]
add dword [esp + 0x1c], 1
lea esi, [ebx + 1]
mov byte [ebx], al
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
cmp eax, edx
jae 0x4c5b07
add eax, 1
mov dword [esi + 8], eax
cmp eax, edx
jae 0x4c5bb8
mov ebx, dword [esp + 0x24]
movzx eax, byte [eax]
mov dword [esp + 0xa4], ebx
jmp 0x4c59bd
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 1
lea esi, [esi]
nop
mov esi, dword [esp + 0xa4]
mov eax, dword [esp + 0x24]
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._memcpy
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov esi, dword [ebx + 0xc]
add eax, dword [ebx + 8]
jmp 0x4c5998
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], 2
call eax
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x1c], ebx
jge 0x4c5c4a
cmp eax, 0xffffffff
jne 0x4c5920
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
jmp 0x4c5b23
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x40], 2
call eax
cmp eax, 0xffffffff
jne 0x4c5cb1
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0xa0]
cmp dword [esp + 0x1c], 1
mov byte [eax], 0
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
mov dword [esi + eax + 8], 0
sbb eax, eax
and eax, 4
add eax, 2
jmp 0x4c5a17
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], 5
call eax
mov ebx, dword [esp + 0x2c]
sub ebx, 1
mov dword [esp + 0x34], ebx
je 0x4c5c16
cmp eax, 0xffffffff
jne 0x4c5916
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0xa0]
mov byte [eax], 0
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
mov dword [esi + eax + 8], 0
mov eax, 6
jmp 0x4c5a17
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], 2
call eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0xa4], esi
jmp 0x4c5ae3
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov byte [eax], 0
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
mov dword [ebx + eax + 8], 0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4c59f0
mov eax, 4
jmp 0x4c5a17
cmp eax, 0xffffffff
je 0x4c5c82
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov byte [eax], 0
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
mov dword [ebx + eax + 8], 0
mov eax, 4
jmp 0x4c5a17
cmp eax, 0xffffffff
jne 0x4c59cb
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0xa0]
mov byte [eax], 0
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
mov dword [esi + eax + 8], 0
mov eax, 2
jmp 0x4c5a17
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov byte [eax], 0
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
mov dword [ebx + eax + 8], 0
mov eax, 6
jmp 0x4c5a17
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
jmp 0x4c5a6d