Function at 0x456973
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 0x456cfe
jmp 0x4568c0
push ecx
push eax
lea eax, [esp + 0x54]
push eax
call fcn.004560e0
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je case.0x456b1b.7
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x54]
jae 0x456cf3
jmp 0x4568f4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
push edx
push ecx
lea eax, [esp + 0x68]
push eax
call fcn.004560e0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
je case.0x456b1b.7
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
push esi
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.004560e0
add esp, 0xc
test eax, eax
je case.0x456b1b.7
push esi
push eax
lea eax, [esp + 0x40]
push eax
call fcn.004560e0
add esp, 0xc
test eax, eax
je case.0x456b1b.7
cmp dword [esp + 0x34], 0
jne case.0x456b1b.7
movzx ecx, byte [esp + 0x31]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x456b1b.7
movzx edx, byte [eax + 0x456d3c]
jmp dword [edx*4 + 0x456d14]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
sub ecx, eax
cmp ecx, 1
je 0x45698b
xor eax, eax
mov ebx, eax
jmp 0x456a57
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x45699a
mov eax, str.FALSE
push eax
call dword [0x476058]
add esp, 4
mov ebx, eax
jmp 0x456a57
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.004562b0
mov ebx, eax
jmp 0x456a57
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
inc eax
cmp eax, ebx
jbe 0x4569dd
xor eax, eax
mov ebx, eax
jmp 0x456a57
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.00456250
mov ebx, eax
jmp 0x456a57
push 0x46d773
call dword [0x476058]
add esp, 4
mov ebx, eax
jmp 0x456a57
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
push 1
push edx
call fcn.004566a0
add esp, 8
mov ebx, eax
jmp 0x456a57
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.00456810
mov ebx, eax
jmp 0x456a57
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push eax
call fcn.00456720
add esp, 4
mov ebx, eax
jmp 0x456a57
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x30]
call fcn.00456300
xor ebx, ebx
add esp, 8
test eax, eax
sets bl
dec ebx
and ebx, dword [esp + 0x14]
test ebx, ebx
je case.0x456b1b.7
test ebp, ebp
je 0x456aba
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 0x456a87
movsx edx, byte [esi + 1]
inc esi
push edx
call edi
add esp, 4
test eax, eax
jne 0x456a78
cmp byte [esi], 0
jne 0x456a98
sub esi, ebx
mov eax, 0x461fa0
cmp esi, 2
jle 0x456a9d
mov eax, 0x46e9f8
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
sub eax, ebp
cmp ebp, edi
jae 0x456ab1
mov cl, byte [eax + ebp]
mov byte [esi + ebp], cl
inc ebp
cmp byte [eax + ebp], 0
jne 0x456aa7
jmp 0x456ac2
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
cmp byte [ebx], 0
je 0x456ae1
mov eax, ebx
sub eax, ebp
jmp 0x456ad0
cmp ebp, edi
jae 0x456ada
mov dl, byte [eax + ebp]
mov byte [esi + ebp], dl
inc ebp
cmp byte [eax + ebp], 0
jne 0x456ad0
push ebx
call dword [0x476050]
add esp, 4
cmp ebp, edi
jae 0x456af3
mov byte [esi + ebp], 0x3d
inc ebp
cmp dword [esp + 0x48], 0
mov dword [esp + 0x18], ebp
jne case.0x456b1b.7
movzx ecx, byte [esp + 0x45]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x456b1b.7
movzx eax, byte [eax + 0x456d84]
jmp dword [eax*4 + 0x456d5c]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
sub ecx, eax
cmp ecx, 1
je 0x456b38
xor eax, eax
jmp 0x456cb3
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x456b47
mov eax, str.FALSE
push eax
call dword [0x476058]
add esp, 4
jmp 0x456cb3
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, ebx
xor ecx, ecx
sub edx, eax
jne 0x456b6d
xor eax, eax
jmp 0x456cb3
cmp edx, 4
jbe 0x456b7c
call fcn.00456250
jmp 0x456cb3
test byte [eax], 0x80
je 0x456b84
or ecx, 0xffffffff
movzx edx, byte [eax]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, ebx
jb 0x456b84
mov eax, 0x46c2a8
cmp ecx, 0xa
jae 0x456ba0
mov eax, 0x46d773
push ecx
push eax
push str._s_lx
call fcn.00430080
add esp, 0xc
jmp 0x456cb3
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
inc eax
cmp eax, ebx
jbe 0x456bd0
xor eax, eax
jmp 0x456cb3
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
call fcn.00456250
jmp 0x456cb3
push 0x46d773
call dword [0x476058]
add esp, 4
jmp 0x456cb3
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
xor edi, edi
cmp ebx, ebp
jae 0x456c52
push ebp
push ebx
push 0xffffffffffffffff
push edi
call fcn.004564f0
mov esi, eax
add esp, 0x10
test esi, esi
js 0x456c52
lea eax, [esi + 1]
push eax
call dword [0x47604c]
mov edi, eax
add esp, 4
test edi, edi
je 0x456c52
push ebp
push ebx
push esi
push edi
call fcn.004564f0
add esp, 0x10
mov byte [esi + edi], 0
call fcn.004561f0
mov esi, eax
test esi, esi
je 0x456c52
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 0x456cb3
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.00456810
jmp 0x456cb3
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push edx
call fcn.00456720
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
add esp, 4
jmp 0x456cb3
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
call fcn.00456300
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.0x456b1b.7
cmp byte [eax], 0
mov ecx, eax
je 0x456cd0
mov edi, edi
cmp ebp, edi
jae 0x456cc9
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc ebp
cmp byte [ecx], 0
jne 0x456cc0
push eax
call dword [0x476050]
mov eax, dword [esp + 0x58]
add esp, 4
cmp dword [esp + 0x10], eax
jb 0x4568f0
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 8]
cmp eax, ecx
jb 0x4568c0
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