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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x30]
cmp eax, dword [ecx + 8]
jbe 0x653c55
sub esp, 0xb0
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
mov ebx, dword [eax + 0x3c]
mov byte [esp], 7
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00654430
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x653c1e
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x38], edi
lea edi, [esp + 0x58]
xor eax, eax
call fcn.004690fb
mov ecx, dword [esp + 0x34]
test ecx, ecx
xchg edi, ebx
sete bl
xchg edi, ebx
mov ebx, dword [esp + 0x38]
test ebx, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x653a03
xor ecx, ecx
jmp 0x653af8
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebp
mov esi, dword [0x966dd8]
mov edi, dword [esi + 4]
mov dword [esp + 0x48], edi
sar edi, 0x1f
cmp ebx, edi
xchg edi, ebx
sete bl
xchg edi, ebx
setb al
mov ebp, dword [esp + 0x48]
cmp ebp, ecx
setae dl
and edx, edi
or eax, edx
test al, al
je 0x653a73
add ecx, 0xffffffff
adc ebx, 0xffffffff
test ebx, ebx
jne 0x653c49
cmp ecx, ebp
jae 0x653c40
lea ecx, [ecx + ecx*4]
mov edx, dword [esi]
lea esi, [edx + ecx*4]
lea edi, [esp + 0x58]
call fcn.004695de
xor eax, eax
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov ecx, 1
jmp 0x653af8
mov esi, dword [esp + 0xb4]
mov edx, dword [esi + 4]
add edx, ebp
mov ebp, edx
sar edx, 0x1f
cmp ebx, edx
seta dl
sete bl
cmp ecx, ebp
seta cl
and ebx, ecx
or ebx, edx
test bl, bl
je 0x653aa7
xor eax, eax
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
xor ecx, ecx
jmp 0x653af8
lea edi, [esp + 0x94]
call fcn.004695ca
mov eax, dword [esp + 0x98]
mov ecx, dword [0x966dd8]
mov edx, dword [esp + 0x3c]
sub edx, dword [ecx + 4]
mov ecx, eax
sub eax, edx
cmp ecx, eax
jbe 0x653c3b
mov ecx, dword [esp + 0x94]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*4]
lea edi, [esp + 0x58]
call fcn.004695de
xor eax, eax
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov ecx, 1
mov byte [esp + 0x2f], cl
lea edi, [esp + 0x6c]
lea esi, [esp + 0x58]
call fcn.004695de
movzx ecx, byte [esp + 0x2f]
test cl, cl
je 0x653bbb
mov ecx, dword [esp + 0xb4]
mov dword [ecx + 0x38], edx
mov dword [ecx + 0x3c], ebp
mov edx, dword [0x995310]
test edx, edx
jne 0x653b33
mov edx, dword [esp + 0x4c]
jmp 0x653b44
call fcn.00468e70
mov edx, dword [esp + 0x4c]
mov dword [edi], edx
mov ebx, dword [ecx + 0x34]
mov dword [edi + 4], ebx
mov dword [ecx + 0x34], edx
lea edi, [esp + 0x80]
call fcn.004690fb
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
mov ecx, dword [esp + 0xb4]
mov dword [esp], ecx
lea edi, [esp + 4]
lea esi, [esp + 0x80]
call fcn.004695de
call fcn.006541e0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
add esp, 0xb0
ret
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409c30
mov eax, dword [esp + 4]
lea ecx, [0x7b1560]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
lea eax, [0x70c520]
mov dword [esp], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
call fcn.00409b00
mov eax, dword [esp + 8]
lea ecx, [0x7b1330]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0xb0
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0xb0
ret
call fcn.00468ed0
mov eax, ecx
mov ecx, ebp
call fcn.00468ee0
mov esi, ebx
mov eax, ecx
mov ecx, ebp
call fcn.00468fc0
nop
call fcn.00467a60
jmp fcn.00653950