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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
mov esi, dword [esp + 0x7c]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
xor ebp, ebp
push edi
cmp eax, ecx
jae 0x45739e
jmp 0x456f60
push ecx
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00456770
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je case.0x4571bb.7
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x54]
jae 0x457393
jmp 0x456f94
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
push edx
push ecx
lea eax, [esp + 0x68]
push eax
call fcn.00456770
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
je case.0x4571bb.7
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
push esi
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00456770
add esp, 0xc
test eax, eax
je case.0x4571bb.7
push esi
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00456770
add esp, 0xc
test eax, eax
je case.0x4571bb.7
cmp dword [esp + 0x34], 0
jne case.0x4571bb.7
movzx ecx, byte [esp + 0x31]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x4571bb.7
movzx edx, byte [eax + 0x4573dc]
jmp dword [edx*4 + 0x4573b4]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
sub ecx, eax
cmp ecx, 1
je 0x45702b
xor eax, eax
mov ebx, eax
jmp 0x4570f7
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x45703a
mov eax, str.FALSE
push eax
call dword [0x476058]
add esp, 4
mov ebx, eax
jmp 0x4570f7
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.00456940
mov ebx, eax
jmp 0x4570f7
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
inc eax
cmp eax, ebx
jbe 0x45707d
xor eax, eax
mov ebx, eax
jmp 0x4570f7
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.004568e0
mov ebx, eax
jmp 0x4570f7
push 0x46d773
call dword [0x476058]
add esp, 4
mov ebx, eax
jmp 0x4570f7
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
push 1
push edx
call fcn.00456d30
add esp, 8
mov ebx, eax
jmp 0x4570f7
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.00456ea0
mov ebx, eax
jmp 0x4570f7
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push eax
call fcn.00456db0
add esp, 4
mov ebx, eax
jmp 0x4570f7
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x30]
call fcn.00456990
xor ebx, ebx
add esp, 8
test eax, eax
sets bl
dec ebx
and ebx, dword [esp + 0x14]
test ebx, ebx
je case.0x4571bb.7
test ebp, ebp
je 0x45715a
movsx ecx, byte [ebx]
mov edi, dword [sym.imp.MSVCR100.dll_isupper]
push ecx
mov esi, ebx
call edi
add esp, 4
test eax, eax
je 0x457127
movsx edx, byte [esi + 1]
inc esi
push edx
call edi
add esp, 4
test eax, eax
jne 0x457118
cmp byte [esi], 0
jne 0x457138
sub esi, ebx
mov eax, 0x461fa0
cmp esi, 2
jle 0x45713d
mov eax, 0x46ea50
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
sub eax, ebp
cmp ebp, edi
jae 0x457151
mov cl, byte [eax + ebp]
mov byte [esi + ebp], cl
inc ebp
cmp byte [eax + ebp], 0
jne 0x457147
jmp 0x457162
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
cmp byte [ebx], 0
je 0x457181
mov eax, ebx
sub eax, ebp
jmp 0x457170
cmp ebp, edi
jae 0x45717a
mov dl, byte [eax + ebp]
mov byte [esi + ebp], dl
inc ebp
cmp byte [eax + ebp], 0
jne 0x457170
push ebx
call dword [0x476050]
add esp, 4
cmp ebp, edi
jae 0x457193
mov byte [esi + ebp], 0x3d
inc ebp
cmp dword [esp + 0x48], 0
mov dword [esp + 0x18], ebp
jne case.0x4571bb.7
movzx ecx, byte [esp + 0x45]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x4571bb.7
movzx eax, byte [eax + 0x457424]
jmp dword [eax*4 + 0x4573fc]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
sub ecx, eax
cmp ecx, 1
je 0x4571d8
xor eax, eax
jmp 0x457353
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x4571e7
mov eax, str.FALSE
push eax
call dword [0x476058]
add esp, 4
jmp 0x457353
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, ebx
xor ecx, ecx
sub edx, eax
jne 0x45720d
xor eax, eax
jmp 0x457353
cmp edx, 4
jbe 0x45721c
call fcn.004568e0
jmp 0x457353
test byte [eax], 0x80
je 0x457224
or ecx, 0xffffffff
movzx edx, byte [eax]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, ebx
jb 0x457224
mov eax, 0x46c2a8
cmp ecx, 0xa
jae 0x457240
mov eax, 0x46d773
push ecx
push eax
push str._s_lx
call fcn.00430720
add esp, 0xc
jmp 0x457353
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
inc eax
cmp eax, ebx
jbe 0x457270
xor eax, eax
jmp 0x457353
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
call fcn.004568e0
jmp 0x457353
push 0x46d773
call dword [0x476058]
add esp, 4
jmp 0x457353
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
xor edi, edi
cmp ebx, ebp
jae 0x4572f2
push ebp
push ebx
push 0xffffffffffffffff
push edi
call fcn.00456b80
mov esi, eax
add esp, 0x10
test esi, esi
js 0x4572f2
lea eax, [esi + 1]
push eax
call dword [0x47604c]
mov edi, eax
add esp, 4
test edi, edi
je 0x4572f2
push ebp
push ebx
push esi
push edi
call fcn.00456b80
add esp, 0x10
mov byte [esi + edi], 0
call fcn.00456880
mov esi, eax
test esi, esi
je 0x4572f2
push edi
call dword [0x476050]
mov ecx, dword [esi + 4]
push ecx
call dword [0x476058]
add esp, 8
mov edi, eax
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x78]
mov eax, edi
mov edi, dword [esp + 0x7c]
jmp 0x457353
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.00456ea0
jmp 0x457353
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push edx
call fcn.00456db0
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
add esp, 4
jmp 0x457353
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
call fcn.00456990
xor ecx, ecx
add esp, 8
test eax, eax
sets cl
lea eax, [ecx - 1]
and eax, dword [esp + 0x1c]
test eax, eax
je case.0x4571bb.7
cmp byte [eax], 0
mov ecx, eax
je 0x457370
mov edi, edi
cmp ebp, edi
jae 0x457369
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc ebp
cmp byte [ecx], 0
jne 0x457360
push eax
call dword [0x476050]
mov eax, dword [esp + 0x58]
add esp, 4
cmp dword [esp + 0x10], eax
jb 0x456f90
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 8]
cmp eax, ecx
jb 0x456f60
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x64
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x64
ret