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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x58], eax
mov eax, dword [0x50f0e8]
mov dword [ebp - 0x1c], eax
xor eax, eax
lea eax, [ebx + 0x6c]
call method.std::__use_cache_std::__numpunct_cache_wchar_t___.operator___std::locale_const__const__clone_.isra.0_
mov esi, eax
mov eax, dword [ebx + 0xc]
and eax, 0x4a
mov dword [ebp - 0x3c], eax
cmp eax, 0x40
je 0x456b72
mov edi, 0xa
cmp eax, 8
je 0x4566be
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call method.std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t___.equal_std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t____const__const
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x456b9f
lea ecx, [ebp + 8]
call method.std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t___._M_get___const
movzx ebx, ax
movzx eax, word [esi + 0x70]
cmp ax, bx
je 0x456660
cmp word [esi + 0x72], bx
je 0x456660
mov byte [ebp - 0x54], 0
movzx eax, byte [esi + 0x10]
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
test al, al
je 0x45640e
cmp word [esi + 0x26], bx
je 0x456988
cmp word [esi + 0x24], bx
je 0x456988
cmp word [esi + 0x78], bx
je 0x456710
cmp byte [ebp - 0x2c], 0
je 0x456988
cmp word [esi + 0x74], bx
je 0x45643c
cmp word [esi + 0x76], bx
jne 0x456c4b
mov eax, dword [ebp - 0x3c]
test eax, eax
sete al
cmp edi, 0x10
sete dl
or al, dl
je 0x456c64
mov dword [ebp - 0x34], 0
mov edi, 0x10
mov byte [ebp - 0x2c], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jae 0x456760
add eax, 2
mov dword [ecx + 8], eax
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x456788
movzx eax, word [eax]
cmp ax, 0xffff
je 0x45679a
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete dl
cmp word [ebp + 0x14], 0xffff
sete al
mov byte [ebp - 0x30], al
test ecx, ecx
je 0x4564bb
test al, al
jne 0x456840
cmp dl, byte [ebp - 0x30]
jne 0x4567b0
mov byte [ebp - 0x35], 1
cmp edi, 0x10
je 0x4566f3
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x48], edi
lea eax, [ebp - 0x21]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call method.std::string._S_construct_unsigned_int__char__std::allocator_char__const_
cmp byte [esi + 0x10], 0
mov dword [ebp - 0x20], eax
jne 0x456b7c
movzx eax, byte [ebp - 0x54]
xor edx, edx
add eax, 0x7fffffff
mov dword [ebp - 0x4c], eax
div dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
movzx eax, byte [esi + 0xa4]
mov byte [ebp - 0x36], al
test al, al
jne 0x456998
cmp byte [ebp - 0x35], 0
mov byte [ebp - 0x3c], 0
jne 0x456cde
mov dword [ebp - 0x30], 0
add edi, 0x30
cmp dword [ebp - 0x40], 0xa
ja 0x456820
cmp bx, 0x2f
jbe 0x4568b8
cmp bx, di
jae 0x4568b8
sub ebx, 0x30
mov edx, dword [ebp - 0x30]
cmp dword [ebp - 0x44], edx
jb 0x4567f0
mov eax, dword [ebp - 0x48]
imul edx, eax
mov eax, dword [ebp - 0x4c]
sub eax, ebx
cmp eax, edx
setb al
or byte [ebp - 0x3c], al
lea eax, [ebx + edx]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x30], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add dword [ebp - 0x34], 1
cmp eax, edx
jae 0x456805
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x456c90
movzx eax, word [eax]
cmp ax, 0xffff
je 0x456c3f
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4565db
test al, al
jne 0x456960
cmp dl, bl
jne 0x456870
mov byte [ebp - 0x36], 1
mov edx, dword [ebp - 0x20]
mov edi, dword [edx - 0xc]
test edi, edi
jne 0x4568ca
lea esi, [esi]
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x456917
cmp byte [ebp - 0x2c], 1
je 0x456917
mov eax, dword [ebp - 0x58]
mov dword [eax], 0
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
cmp byte [ebp - 0x36], 0
je 0x45662b
mov eax, dword [ebp - 0x50]
or dword [eax], 2
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, 0xffffffff
lock xadd dword [edx - 4], eax
test eax, eax
jle 0x456bb5
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x50f0e8]
jne 0x456d2d
lea esp, [ebp - 0xc]
mov eax, esi
mov edx, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
cmp ax, bx
movzx eax, byte [esi + 0x10]
sete byte [ebp - 0x54]
test al, al
jne 0x456bcb
cmp word [esi + 0x24], bx
je 0x4563f5
mov ecx, dword [ebp + 8]
call sym.std::basic_streambuf_wchar_t__std::char_traits_wchar_t___::sbumpc____clone_.isra.0_
mov eax, dword [ebp - 0x2c]
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
lea ecx, [ebp + 8]
mov dword [esp], eax
call method.std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t___.equal_std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t____const__const
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x456ca9
lea ecx, [ebp + 8]
call method.std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t___._M_get___const
movzx ebx, ax
movzx eax, byte [esi + 0x10]
jmp 0x4563f5
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov edi, 0x10
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call method.std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t___.equal_std::istreambuf_iterator_wchar_t__std::char_traits_wchar_t____const__const
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
je 0x4563cb
mov byte [ebp - 0x54], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x48], 0x10
mov edi, 0x16
mov dword [ebp - 0x40], 0x16
jmp 0x4564d7
movzx eax, byte [ebp - 0x2c]
xor eax, 1
cmp edi, 0xa
sete dl
or al, dl
je 0x45642c
mov edx, dword [ebp - 0x3c]
cmp edi, 8
sete cl
test edx, edx
sete dl
or cl, dl
mov byte [ebp - 0x2c], cl
je 0x456950
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x34], 0
mov edi, 8
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jb 0x456476
nop
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x28]
mov edx, dword [ebp - 0x30]
mov eax, 0xffffffff
mov word [ebp + 0xc], ax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
cmp eax, edx
jb 0x45648d
lea esi, [esi]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp ax, 0xffff
jne 0x45649a
mov dword [ebp + 8], 0
jmp 0x45649a
mov ecx, dword [ebp + 8]
mov ebx, 0xffff
test ecx, ecx
je 0x4567d5
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x456c9c
movzx ebx, word [eax]
cmp bx, 0xffff
je 0x456c58
cmp byte [ebp - 0x2c], 0
je 0x456988
movzx eax, byte [esi + 0x10]
jmp 0x456400
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], 1
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x456597
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4565a6
lea eax, [ebx - 0x30]
cmp ax, 9
jbe 0x45655a
lea eax, [ebx - 0x61]
cmp ax, 5
ja 0x4568a0
sub ebx, 0x57
jmp 0x45655d
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x456c22
movzx eax, word [eax]
cmp ax, 0xffff
je 0x456b93
cmp ax, 0xffff
sete byte [ebp - 0x30]
jmp 0x4564bb
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4568b8
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x456cb9
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x45653d
cmp dword [ebp - 0x40], 0xa
mov dword [ebp + 8], 0
jbe 0x4568b8
lea esi, [esi]
lea eax, [ebx - 0x41]
cmp ax, 5
ja 0x4568b8
sub ebx, 0x37
jmp 0x45655d
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x36], 0
mov edi, dword [edx - 0xc]
test edi, edi
je 0x4565f8
movsx eax, byte [ebp - 0x34]
lea ebx, [ebp - 0x20]
mov ecx, ebx
mov dword [esp], eax
call method.std::string.push_back_char_
sub esp, 4
mov dword [esp + 8], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call method.std.__verify_grouping_char_const__unsigned_int__std::string_const_
test al, al
je 0x456bfc
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
test ebx, ebx
jne 0x456917
cmp byte [ebp - 0x2c], 1
je 0x456917
mov ecx, dword [edx - 0xc]
test ecx, ecx
je 0x45660d
cmp byte [ebp - 0x35], 0
jne 0x45660d
cmp byte [ebp - 0x3c], 0
je 0x456be4
mov eax, dword [ebp - 0x54]
mov edi, dword [ebp - 0x58]
and eax, 1
add eax, 0x7fffffff
mov dword [edi], eax
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
jmp 0x45661f
add dword [ebp - 0x34], 1
mov byte [ebp - 0x2c], al
jmp 0x456462
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x456c86
movzx eax, word [eax]
cmp ax, 0xffff
je 0x456c33
cmp ax, 0xffff
sete dl
jmp 0x4565db
mov byte [ebp - 0x35], 0
jmp 0x4564c8
cmp byte [ebp - 0x35], 0
jne 0x456cf5
mov byte [ebp - 0x3c], 0
lea edi, [esi + 0x78]
mov dword [ebp - 0x30], 0
movzx eax, byte [esi + 0x10]
test al, al
je 0x4569c2
cmp word [esi + 0x26], bx
je 0x456b10
mov ecx, dword [ebp - 0x40]
cmp word [esi + 0x24], bx
sete al
test ecx, ecx
sete dl
or al, dl
jne 0x4568b8
mov edx, ecx
mov eax, edi
mov ecx, dword [ebp - 0x30]
jmp 0x4569f4
add eax, 2
sub edx, 1
je 0x456b00
cmp bx, word [eax]
jne 0x4569e8
sub eax, edi
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov edx, eax
sar edx, 1
cmp eax, 0x1e
lea ecx, [edx - 6]
mov eax, edx
cmovg eax, ecx
cmp dword [ebp - 0x44], ebx
jb 0x456ac8
mov edx, dword [ebp - 0x48]
imul ebx, edx
mov edx, dword [ebp - 0x4c]
sub edx, eax
cmp edx, ebx
setb dl
add eax, ebx
or byte [ebp - 0x3c], dl
add dword [ebp - 0x34], 1
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jae 0x456ae0
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x456c70
movzx eax, word [eax]
cmp ax, 0xffff
je 0x456c0a
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x456a89
test al, al
jne 0x456b40
cmp dl, bl
je 0x4565e7
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x456b68
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x456cd2
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4569b0
mov dword [ebp + 8], 0
jmp 0x4569b0
movzx eax, byte [ebp - 0x36]
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp eax, edx
jb 0x456a45
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x456a54
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], 0
jmp 0x4565e7
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x456cc6
movsx eax, bl
lea ecx, [ebp - 0x20]
mov dword [esp], eax
call method.std::string.push_back_char_
mov dword [ebp - 0x34], 0
sub esp, 4
jmp 0x456a34
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x456c7c
movzx eax, word [eax]
cmp ax, 0xffff
je 0x456c16
cmp ax, 0xffff
sete dl
jmp 0x456a89
mov ebx, 0xffffffff
jmp 0x4569b0
mov edi, 8
jmp 0x4563ac
mov dword [esp], 0x20
lea ecx, [ebp - 0x20]
call method.std::string.reserve_unsigned_int_
sub esp, 4
jmp 0x4564ff
mov dword [ebp + 0x10], 0
jmp 0x456859
mov byte [ebp - 0x54], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4564d1
lea eax, [ebp - 0x21]
lea ecx, [edx - 0xc]
mov dword [esp], eax
call method.std::string::_Rep._M_destroy_std::allocator_char__const_
sub esp, 4
jmp 0x456643
cmp word [esi + 0x26], bx
je 0x4563f5
cmp word [esi + 0x24], bx
je 0x4563f5
jmp 0x45667d
mov edi, dword [ebp - 0x30]
mov eax, edi
neg eax
cmp byte [ebp - 0x54], 0
cmove eax, edi
mov edi, dword [ebp - 0x58]
mov dword [edi], eax
jmp 0x45661f
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
jmp 0x4568fc
mov dword [ebp + 8], 0
jmp 0x456a69
mov dword [ebp + 0x10], 0
jmp 0x456b59
mov eax, dword [ecx]
mov byte [ebp - 0x30], dl
call dword [eax + 0x24]
movzx edx, byte [ebp - 0x30]
jmp 0x45684f
mov dword [ebp + 0x10], 0
jmp 0x456979
mov dword [ebp + 8], 0
jmp 0x4565bb
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x2c], 1
jmp 0x4564c8
mov dword [ebp + 8], 0
jmp 0x4567d5
mov byte [ebp - 0x35], al
mov byte [ebp - 0x2c], 1
jmp 0x4564d1
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x456a5f
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x456b4f
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x45696f
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4565b1
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4567cb
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4564c8
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x456886
mov byte [ebp - 0x36], 0
mov byte [ebp - 0x35], al
jmp 0x4565e7
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ebx, eax
jmp 0x456aab
movzx eax, byte [ebp - 0x35]
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], al
jmp 0x4565e7
movzx eax, byte [ebp - 0x35]
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x36], al
mov byte [ebp - 0x35], 0
jmp 0x4565e7
mov eax, dword [ebp - 0x20]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x21]
mov dword [esp], eax
call method.std::string::_Rep._M_dispose_std::allocator_char__const_
push edx
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x50f0e8]
je 0x456d36
call dbg.__stack_chk_fail
mov ebx, eax
jmp 0x456d10
mov dword [esp], ebx
call sym.__Unwind_Resume
nop
nop