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

Disassembly:
sub esp, 0x1e8
lea eax, [esp + 0x24]
lea ecx, [esp + 0x20]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1fc]
push eax
mov ebp, 1
push ecx
push ebp
push edi
call fcn.0064fb10
add esp, 0x10
test eax, eax
je 0x650bbe
mov eax, dword [esp + 0x34]
cmp eax, 0x31000
jb 0x650b9f
cmp eax, 0x34003
ja 0x650b9f
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push edx
push eax
push edi
mov dword [esp + 0x20], 0
call fcn.00645500
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp eax, ecx
jne 0x650bbe
lea ecx, [esp + 0x14]
push 4
push ecx
call fcn.0064fc20
mov eax, dword [esp + 0x1c]
add esp, 8
mov esi, eax
and esi, 0xff
test ah, 0xf0
jne 0x6507e4
mov edx, eax
and edx, 0xf00
shl edx, 4
or eax, edx
mov dword [esp + 0x14], eax
xor ebx, ebx
mov bl, byte [esp + 0x16]
call fcn.0064dcd0
mov dword [esp + 0x24], eax
call fcn.0064dd00
cmp esi, 3
mov dword [esp + 0x20], eax
je 0x650823
cmp esi, 4
je 0x650823
cmp esi, 5
je 0x650823
cmp esi, 6
je 0x650823
push 0
call fcn.0064dcb0
push 0
call fcn.0064dce0
add esp, 8
jmp 0x65083e
push ebp
call fcn.0064dcb0
add esp, 4
test bl, 1
je 0x650835
push 0
jmp 0x650836
push ebp
call fcn.0064dce0
add esp, 4
lea eax, [esp + 0x1c]
push 0
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x20]
push ecx
push edx
push edi
call fcn.0064f9e0
add esp, 0x14
test eax, eax
je 0x6509a3
mov eax, dword [esp + 0x1c]
cmp eax, 0x31000
jb 0x6508bd
cmp eax, 0x34003
ja 0x6508bd
mov eax, dword [esp + 0x18]
cmp eax, 2
je 0x6508e1
cmp eax, 0x13
je 0x65093c
mov eax, dword [esp + 0x10]
push eax
push edi
call fcn.00645820
add esp, 8
test eax, eax
je 0x6509a3
lea ecx, [esp + 0x1c]
push 0
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
push edi
call fcn.0064f9e0
add esp, 0x14
test eax, eax
jne 0x650860
jmp 0x6509a3
push 0x80000004
mov dword [esp + 0x2c], ebp
call fcn.00669be0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], eax
push ecx
call fcn.00669b30
add esp, 8
jmp 0x6509a3
mov ebx, dword [esp + 0x10]
lea ebp, [esp + 0x78]
test ebx, ebx
jbe 0x650932
cmp ebx, 0x40
mov esi, 0x40
ja 0x6508f9
mov esi, ebx
lea edx, [esp + 0x38]
push esi
push edx
push edi
call fcn.00645500
add esp, 0xc
cmp eax, esi
jne 0x650938
sub ebx, esi
test esi, esi
jbe 0x65092c
lea ecx, [esp + 0x38]
mov eax, ebp
sub ecx, ebp
mov edi, esi
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
dec edi
jne 0x65091c
mov edi, dword [esp + 0x1fc]
add ebp, esi
test ebx, ebx
ja 0x6508ed
lea eax, [esp + 0x78]
jmp 0x65099f
xor eax, eax
jmp 0x65099f
mov edi, dword [esp + 0x10]
lea ebx, [esp + 0x78]
test edi, edi
jbe 0x650994
cmp edi, 0x80
mov esi, 0x80
ja 0x650957
mov esi, edi
mov ecx, dword [esp + 0x1fc]
lea eax, [esp + 0x178]
push esi
push eax
push ecx
call fcn.00645500
add esp, 0xc
cmp eax, esi
jne 0x6509c7
sub edi, esi
mov eax, 0
shr esi, 1
je 0x65098e
mov dl, byte [esp + eax*2 + 0x178]
mov byte [eax + ebx], dl
inc eax
cmp eax, esi
jb 0x65097f
add ebx, esi
test edi, edi
ja 0x650948
lea eax, [esp + 0x78]
mov edi, dword [esp + 0x1fc]
test eax, eax
jne 0x6509cb
mov eax, dword [esp + 0x24]
push eax
call fcn.0064dcb0
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0064dce0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e8
ret
xor eax, eax
jmp 0x650998
lea edx, [esp + 0x18]
push 0
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x24]
push eax
push ecx
push edi
call fcn.0064f9e0
add esp, 0x14
test eax, eax
je 0x650aea
mov eax, dword [esp + 0x18]
cmp eax, 0x31000
jb 0x650a4a
cmp eax, 0x34003
ja 0x650a4a
mov eax, dword [esp + 0x1c]
cmp eax, 2
je 0x650a6f
cmp eax, 0x13
je 0x650ad0
mov edx, dword [esp + 0x10]
push edx
push edi
call fcn.00645820
add esp, 8
test eax, eax
je 0x650aea
lea eax, [esp + 0x18]
push 0
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x24]
push ecx
push edx
push edi
call fcn.0064f9e0
add esp, 0x14
test eax, eax
jne 0x6509ed
jmp 0x650aea
push 0x80000004
mov dword [esp + 0x2c], 1
call fcn.00669be0
mov dword [esp + 0x30], eax
lea eax, [esp + 0x2c]
push eax
call fcn.00669b30
add esp, 8
jmp 0x650aea
mov ebx, dword [esp + 0x10]
lea ebp, [esp + 0xf8]
test ebx, ebx
jbe 0x650ac3
cmp ebx, 0x40
mov esi, 0x40
ja 0x650a8a
mov esi, ebx
lea ecx, [esp + 0x38]
push esi
push ecx
push edi
call fcn.00645500
add esp, 0xc
cmp eax, esi
jne 0x650acc
sub ebx, esi
test esi, esi
jbe 0x650abd
lea ecx, [esp + 0x38]
mov eax, ebp
sub ecx, ebp
mov edi, esi
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
dec edi
jne 0x650aad
mov edi, dword [esp + 0x1fc]
add ebp, esi
test ebx, ebx
ja 0x650a7e
lea eax, [esp + 0xf8]
jmp 0x650ae6
xor eax, eax
jmp 0x650ae6
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0xf8]
push eax
push edi
push ecx
call fcn.00650bd0
add esp, 0xc
test eax, eax
jne 0x650b0e
mov edx, dword [esp + 0x24]
push edx
call fcn.0064dcb0
mov eax, dword [esp + 0x24]
push eax
call fcn.0064dce0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e8
ret
lea ecx, [esp + 0xf8]
lea edx, [esp + 0x78]
push ecx
push edx
call fcn.0064e160
mov esi, eax
add esp, 8
test esi, esi
jne 0x650b58
push edi
push 0x6ddb60
call fcn.00669f20
mov eax, dword [esp + 0x2c]
push eax
call fcn.0064dcb0
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0064dce0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e8
ret
cmp dword [esi + 0x54], 1
jne 0x650b6b
mov edx, dword [esp + 0x14]
and edx, 0xffff
mov dword [esi + 0x50], edx
mov eax, dword [esp + 0x24]
push eax
call fcn.0064dcb0
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0064dce0
push esi
push edi
push 0x6ddb60
call fcn.00669c90
add esp, 0x14
neg eax
sbb eax, eax
pop edi
and eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1e8
ret
push 0x80000004
mov dword [esp + 0x2c], ebp
call fcn.00669be0
lea edx, [esp + 0x2c]
mov dword [esp + 0x30], eax
push edx
call fcn.00669b30
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1e8
ret