Function at 0x456d40
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 - 0x4c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x50], 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 0x457542
mov edi, 0xa
cmp eax, 8
je 0x45709e
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 0x45756f
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 0x457040
cmp word [esi + 0x72], bx
je 0x457040
mov byte [ebp - 0x37], 0
movzx eax, byte [esi + 0x10]
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
test al, al
je 0x456dee
cmp word [esi + 0x26], bx
je 0x457360
cmp word [esi + 0x24], bx
je 0x457360
cmp word [esi + 0x78], bx
je 0x4570f0
cmp byte [ebp - 0x2c], 0
je 0x457360
cmp word [esi + 0x74], bx
je 0x456e1c
cmp word [esi + 0x76], bx
jne 0x45761b
mov eax, dword [ebp - 0x3c]
test eax, eax
sete al
cmp edi, 0x10
sete dl
or al, dl
je 0x457634
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 0x457140
add eax, 2
mov dword [ecx + 8], eax
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x457168
movzx eax, word [eax]
cmp ax, 0xffff
je 0x45717a
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 0x456e9b
test al, al
jne 0x457220
cmp byte [ebp - 0x30], dl
jne 0x457190
mov byte [ebp - 0x35], 1
cmp edi, 0x10
je 0x4570d3
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 0x45754c
mov eax, 0xffffffff
xor edx, edx
div dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
movzx eax, byte [esi + 0xa4]
mov byte [ebp - 0x36], al
test al, al
jne 0x457370
cmp byte [ebp - 0x35], 0
mov byte [ebp - 0x3c], 0
jne 0x4576ae
mov dword [ebp - 0x30], 0
add edi, 0x30
cmp dword [ebp - 0x40], 0xa
ja 0x457200
cmp bx, 0x2f
jbe 0x457298
cmp bx, di
jae 0x457298
sub ebx, 0x30
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x44], eax
jb 0x4571d0
mov edx, dword [ebp - 0x48]
imul eax, edx
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp + 8]
setb al
or byte [ebp - 0x3c], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add dword [ebp - 0x34], 1
cmp eax, edx
jae 0x4571e5
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x457660
movzx eax, word [eax]
cmp ax, 0xffff
je 0x45760f
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x456fac
test al, al
jne 0x457338
cmp dl, bl
jne 0x457250
mov byte [ebp - 0x36], 1
mov edx, dword [ebp - 0x20]
mov edi, dword [edx - 0xc]
test edi, edi
jne 0x4572aa
lea esi, cs:[esi]
nop
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4572f7
cmp byte [ebp - 0x2c], 1
je 0x4572f7
mov eax, dword [ebp - 0x50]
mov dword [eax], 0
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
cmp byte [ebp - 0x36], 0
je 0x457003
mov eax, dword [ebp - 0x4c]
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 0x457585
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x50f0e8]
jne 0x4576fd
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 - 0x37]
test al, al
jne 0x45759b
cmp word [esi + 0x24], bx
je 0x456dd5
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 0x457679
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 0x456dd5
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 0x456dab
mov byte [ebp - 0x37], 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 0x456eb7
movzx eax, byte [ebp - 0x2c]
xor eax, 1
cmp edi, 0xa
sete dl
or al, dl
je 0x456e0c
mov edx, dword [ebp - 0x3c]
cmp edi, 8
sete cl
test edx, edx
sete dl
or cl, dl
mov byte [ebp - 0x2c], cl
je 0x457328
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 0x456e56
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 0x456e6d
lea esi, [esi]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp ax, 0xffff
jne 0x456e7a
mov dword [ebp + 8], 0
jmp 0x456e7a
mov ecx, dword [ebp + 8]
mov ebx, 0xffff
test ecx, ecx
je 0x4571b5
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x45766c
movzx ebx, word [eax]
cmp bx, 0xffff
je 0x457628
cmp byte [ebp - 0x2c], 0
je 0x457360
movzx eax, byte [esi + 0x10]
jmp 0x456de0
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], 1
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x456f68
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 0x456f77
lea eax, [ebx - 0x30]
cmp ax, 9
jbe 0x456f33
lea eax, [ebx - 0x61]
cmp ax, 5
ja 0x457280
sub ebx, 0x57
jmp 0x456f36
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4575f2
movzx eax, word [eax]
cmp ax, 0xffff
je 0x457563
cmp ax, 0xffff
sete byte [ebp - 0x30]
jmp 0x456e9b
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x457298
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x457689
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x456f16
cmp dword [ebp - 0x40], 0xa
mov dword [ebp + 8], 0
jbe 0x457298
lea esi, [esi]
lea eax, [ebx - 0x41]
cmp ax, 5
ja 0x457298
sub ebx, 0x37
jmp 0x456f36
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x36], 0
mov edi, dword [edx - 0xc]
test edi, edi
je 0x456fd0
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 0x4575cc
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
test ebx, ebx
jne 0x4572f7
cmp byte [ebp - 0x2c], 1
je 0x4572f7
mov ecx, dword [edx - 0xc]
test ecx, ecx
je 0x456fe5
cmp byte [ebp - 0x35], 0
jne 0x456fe5
cmp byte [ebp - 0x3c], 0
je 0x4575b4
mov eax, dword [ebp - 0x50]
mov dword [eax], 0xffffffff
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
jmp 0x456ff7
add dword [ebp - 0x34], 1
mov byte [ebp - 0x2c], al
jmp 0x456e42
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x457656
movzx eax, word [eax]
cmp ax, 0xffff
je 0x457603
cmp ax, 0xffff
sete dl
jmp 0x456fac
mov byte [ebp - 0x35], 0
jmp 0x456ea8
cmp byte [ebp - 0x35], 0
jne 0x4576c5
mov byte [ebp - 0x3c], 0
lea edi, [esi + 0x78]
mov dword [ebp - 0x30], 0
movzx eax, byte [esi + 0x10]
test al, al
je 0x45739a
cmp word [esi + 0x26], bx
je 0x4574e0
mov ecx, dword [ebp - 0x40]
cmp word [esi + 0x24], bx
sete al
test ecx, ecx
sete dl
or al, dl
jne 0x457298
mov edx, ecx
mov eax, edi
mov ecx, dword [ebp - 0x30]
jmp 0x4573cc
add eax, 2
sub edx, 1
je 0x4574d0
cmp bx, word [eax]
jne 0x4573c0
sub eax, edi
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov ecx, eax
sar ecx, 1
cmp eax, 0x1e
lea edx, [ecx - 6]
mov eax, ecx
cmovg eax, edx
cmp dword [ebp - 0x44], ebx
jb 0x457498
mov edx, dword [ebp - 0x48]
imul ebx, edx
add eax, ebx
setb dl
add dword [ebp - 0x34], 1
or byte [ebp - 0x3c], dl
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jae 0x4574b0
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x457640
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4575da
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x45745a
test al, al
jne 0x457510
cmp dl, bl
je 0x456fb8
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x457538
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4576a2
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x457388
mov dword [ebp + 8], 0
jmp 0x457388
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 0x457416
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 0x457425
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], 0
jmp 0x456fb8
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x457696
movsx eax, dl
lea ecx, [ebp - 0x20]
mov dword [esp], eax
call method.std::string.push_back_char_
mov dword [ebp - 0x34], 0
sub esp, 4
jmp 0x457405
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x45764c
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4575e6
cmp ax, 0xffff
sete dl
jmp 0x45745a
mov ebx, 0xffffffff
jmp 0x457388
mov edi, 8
jmp 0x456d8c
mov dword [esp], 0x20
lea ecx, [ebp - 0x20]
call method.std::string.reserve_unsigned_int_
sub esp, 4
jmp 0x456edf
mov dword [ebp + 0x10], 0
jmp 0x457239
mov byte [ebp - 0x37], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x456eb1
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 0x45701b
cmp word [esi + 0x26], bx
je 0x456dd5
cmp word [esi + 0x24], bx
je 0x456dd5
jmp 0x45705d
mov edi, dword [ebp - 0x30]
mov eax, edi
neg eax
cmp byte [ebp - 0x37], 0
cmove eax, edi
mov edi, dword [ebp - 0x50]
mov dword [edi], eax
jmp 0x456ff7
mov eax, dword [ebp - 0x4c]
mov dword [eax], 4
jmp 0x4572dc
mov dword [ebp + 8], 0
jmp 0x45743a
mov dword [ebp + 0x10], 0
jmp 0x457529
mov eax, dword [ecx]
mov byte [ebp - 0x30], dl
call dword [eax + 0x24]
movzx edx, byte [ebp - 0x30]
jmp 0x45722f
mov dword [ebp + 0x10], 0
jmp 0x457351
mov dword [ebp + 8], 0
jmp 0x456f8c
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x2c], 1
jmp 0x456ea8
mov dword [ebp + 8], 0
jmp 0x4571b5
mov byte [ebp - 0x35], al
mov byte [ebp - 0x2c], 1
jmp 0x456eb1
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x457430
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x45751f
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x457347
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x456f82
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4571ab
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x456ea8
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x457266
mov byte [ebp - 0x36], 0
mov byte [ebp - 0x35], al
jmp 0x456fb8
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ebx, eax
jmp 0x45747c
movzx eax, byte [ebp - 0x35]
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], al
jmp 0x456fb8
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 0x456fb8
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 0x457706
call dbg.__stack_chk_fail
mov ebx, eax
jmp 0x4576e0
mov dword [esp], ebx
call sym.__Unwind_Resume
nop
nop