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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [esp + 0x54], sym.___gxx_personality_sj0
mov dword [esp + 0x58], 0x46f844
lea eax, [esp + 0x80]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 0x4031c4
mov dword [esp + 0x64], esp
lea eax, [esp + 0x3c]
mov dword [esp], eax
call dbg._Unwind_SjLj_Register
mov dword [esp + 8], 0
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
lea eax, [esp + 0x7f]
mov dword [esp], eax
mov dword [esp + 0x40], 0xffffffff
call sym.std::istream::sentry::sentry_std::istream__bool_
cmp byte [esp + 0x7f], 0
jne 0x402eeb
mov eax, 4
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx]
mov edx, dword [edx - 0xc]
add edx, ecx
or eax, dword [edx + 0x14]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x40], 0xffffffff
call method.std::basic_ios_char__std::char_traits_char___.clear_std::_Ios_Iostate_
lea eax, [esp + 0x3c]
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 dword [esp + 0xc], 0
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov eax, dword [eax - 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], edx
mov dword [esp + 0x40], 5
call method.std::string._M_mutate_unsigned_int__unsigned_int__unsigned_int_
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx]
mov eax, dword [eax - 0xc]
add eax, ecx
mov edx, dword [eax + 8]
test edx, edx
jle 0x403168
mov dword [esp + 0x28], edx
add eax, 0x6c
mov dword [esp + 4], eax
lea eax, [esp + 0x78]
mov dword [esp], eax
call method.std::locale.locale_std::locale_const_
lea edx, [esp + 0x78]
mov dword [esp], edx
mov dword [esp + 0x40], 2
call method.std::ctype_char__const_std::use_facet_std.ctype_char____std::locale_const_
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x78]
mov dword [esp], eax
call fcn.00409a50
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx]
mov eax, dword [eax - 0xc]
mov eax, dword [ecx + eax + 0x78]
mov dword [esp + 0x18], eax
mov edx, eax
mov eax, dword [eax + 8]
cmp eax, dword [edx + 0xc]
jae 0x403175
movzx eax, byte [eax]
mov dword [esp + 0x24], eax
movzx edx, byte [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x18]
test byte [eax + edx*2], 0x20
mov dword [esp + 0x20], 0
je 0x403001
nop
xor eax, eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx]
mov edx, dword [edx - 0xc]
mov dword [ecx + edx + 8], 0
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4032c3
test eax, eax
je 0x402ecd
jmp 0x402ea8
cmp dword [esp + 0x24], 0xffffffff
je 0x4030a4
movzx edx, byte [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x18]
test byte [eax + edx*2], 0x20
jne 0x402fb4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
sub eax, ecx
mov esi, dword [esp + 0x28]
sub esi, dword [esp + 0x20]
cmp esi, eax
jle 0x40301b
mov esi, eax
cmp esi, 1
jle 0x4030c0
add esi, ecx
lea eax, [ecx + 1]
cmp esi, eax
jbe 0x403040
mov edx, dword [esp + 0x2c]
mov ebx, dword [edx + 0x18]
movzx edx, byte [ecx + 1]
test byte [ebx + edx*2], 0x20
je 0x4030b0
nop
sub eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov dword [esp + 0x40], 1
call method.std::string.append_char_const__unsigned_int_
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
add eax, dword [edx + 8]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x20], ecx
cmp eax, dword [edx + 0xc]
jae 0x40314c
movzx eax, byte [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x28], eax
ja 0x402fe4
cmp dword [esp + 0x24], 0xffffffff
jne 0x402fb4
mov eax, 2
jmp 0x402fb6
inc eax
cmp eax, esi
je 0x403040
movzx edx, byte [eax]
test byte [ebx + edx*2], 0x20
jne 0x403040
jmp 0x4030b0
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov edx, dword [eax - 0xc]
lea ecx, [edx + 1]
mov dword [esp + 0x30], ecx
cmp ecx, dword [eax - 8]
ja 0x4030df
mov ecx, dword [eax - 4]
test ecx, ecx
jle 0x40310a
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov edx, dword [esp + 0xa4]
mov dword [esp], edx
mov dword [esp + 0x40], 1
call method.std::string.reserve_unsigned_int_
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx]
mov edx, dword [eax - 0xc]
mov cl, byte [esp + 0x24]
mov byte [eax + edx], cl
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov dword [eax - 4], 0
mov ecx, dword [esp + 0x30]
mov dword [eax - 0xc], ecx
mov byte [eax + ecx], 0
inc dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov ecx, edx
mov edx, dword [edx + 0xc]
cmp eax, edx
jae 0x40319e
inc eax
mov dword [ecx + 8], eax
cmp eax, edx
jb 0x403084
mov dword [esp + 0x40], 1
mov eax, dword [esp + 0x18]
call method.std::basic_streambuf_char__std::char_traits_char___.sgetc____clone_.part.24_
mov dword [esp + 0x24], eax
jmp 0x40308b
mov dword [esp + 0x28], 0x3ffffffc
jmp 0x402f38
mov dword [esp + 0x40], 6
mov eax, dword [esp + 0x18]
call method.std::basic_streambuf_char__std::char_traits_char___.sgetc____clone_.part.24_
mov dword [esp + 0x24], eax
inc eax
jne 0x402f98
mov dword [esp + 0x20], 0
jmp 0x4030a4
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov dword [esp], edx
mov eax, dword [eax + 0x28]
mov dword [esp + 0x40], 1
call eax
inc eax
jne 0x4031df
mov dword [esp + 0x24], 0xffffffff
jmp 0x40308b
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
jmp 0x403144
or eax, 4
jmp 0x402ea8