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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6516eb
sub esp, 0x6c
mov eax, dword [esp + 0x74]
cmp eax, 4
jge 0x65165f
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
test al, al
je 0x651636
mov dword [esp + 0x40], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x44], edi
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
call fcn.00660a50
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
test ebx, ebx
jne 0x651619
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edi
lea eax, [0x7b79e0]
mov dword [esp], eax
call fcn.00409cb0
mov eax, dword [esp + 4]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
lea ecx, [0x74be40]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00663450
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x6515fc
lea eax, [0x7b8460]
mov dword [esp], eax
call fcn.00409cb0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x44]
mov dword [edi + 8], eax
mov eax, dword [0xadb480]
test eax, eax
jne 0x6515ee
mov ecx, dword [esp + 0x58]
mov dword [edi], ecx
mov ecx, dword [esp + 0x48]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xadb480]
test ecx, ecx
jne 0x6515d5
mov ecx, dword [esp + 0x5c]
mov dword [edi + 0x10], ecx
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov dword [edi + 0x14], edx
mov dword [edi + 0x18], ebx
mov edx, dword [ecx + 8]
mov dword [edi + 0x1c], edx
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x24], edx
mov edx, dword [0xadb480]
test edx, edx
jne 0x6515c2
mov dword [edi + 0x20], eax
mov dword [esp + 0x60], edi
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 0x24]
mov dword [edi + 0x34], eax
mov dword [edi + 0x38], edx
mov eax, dword [ecx + 0x2c]
mov edx, dword [ecx + 0x28]
mov dword [edi + 0x3c], edx
mov dword [edi + 0x40], eax
mov eax, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x14]
jmp 0x6511a3
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x68]
mov edi, eax
mov edx, dword [esp + 0x30]
mov ebx, esi
mov eax, ebp
test edx, edx
jle 0x65135a
cmp edx, 4
jge 0x6512ca
xor eax, eax
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor eax, eax
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x54], eax
xor eax, eax
test al, al
je 0x6512a1
mov dword [esp + 0x3c], esi
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call fcn.0043be30
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
mov ebx, dword [eax + 0x30]
lea ebp, [ecx + 1]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp ebp, ebx
jg 0x651240
lea ebx, [ecx + 1]
mov dword [eax + 0x2c], ebx
lea ebx, [edx + ecx*8 + 4]
mov dword [ebx], esi
lea ecx, [edx + ecx*8]
mov edx, dword [0xadb480]
test edx, edx
jne 0x65122c
mov dword [ecx], edi
jmp 0x651189
mov edx, edi
mov edi, ecx
mov ebx, eax
mov eax, edx
call fcn.0044c870
mov eax, ebx
jmp 0x651189
mov dword [esp + 0x4c], esi
mov dword [esp + 0x64], edi
lea eax, [0x7716e0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00438b10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x30], edx
mov edx, dword [0xadb480]
test edx, edx
jne 0x651297
mov dword [ebx + 0x28], eax
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x64]
mov edx, eax
mov eax, ebx
jmp 0x65120c
lea edi, [ebx + 0x28]
call fcn.0044c870
jmp 0x651286
mov eax, dword [0xac91a4]
mov ecx, dword [0xac91a0]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x6c
ret
add eax, 0xfffffffc
mov ebp, eax
neg eax
sar eax, 0x1f
and eax, 4
add eax, ebx
add edx, 0xfffffffc
movzx esi, byte [ebx + 2]
movzx ecx, byte [ebx + 3]
shl esi, 8
or ecx, esi
movzx esi, byte [ebx + 1]
shl esi, 0x10
or ecx, esi
movzx ebx, byte [ebx]
shl ebx, 0x18
or ebx, ecx
cmp edx, ebx
jae 0x651323
mov ecx, dword [esp + 0x68]
xor eax, eax
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x30], ecx
xor eax, eax
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x68]
xor eax, eax
jmp 0x6511cc
test ebx, ebx
jl 0x6516dd
mov esi, ebp
sub esi, ebx
mov ecx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
add esi, eax
sub edx, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x54], esi
mov edx, eax
mov esi, ecx
mov ecx, dword [esp + 0x68]
mov eax, 1
jmp 0x6511cc
mov eax, dword [ecx + 0x38]
mov edx, dword [ecx + 0x34]
mov ebx, dword [ecx + 0x30]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00650a60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [0xadb480]
test ebx, ebx
jne 0x6515ab
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x44], edx
test ecx, ecx
jne 0x65158e
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x44]
mov ebx, dword [eax + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.00650a60
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [0xadb480]
test ebx, ebx
jne 0x65157d
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x48], eax
test ecx, ecx
jne 0x651560
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ebp, dword [ecx + 0x50]
mov dword [ebx + 0x50], edx
mov dword [ebx + 0x54], ebp
mov edx, dword [0xadb480]
test edx, edx
jne 0x651553
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x54]
mov edx, dword [ecx + 0x58]
mov ebx, dword [ecx + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.006610f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test edx, edx
jne 0x651536
mov edx, dword [esp + 0x60]
mov dword [edx + 0x58], eax
mov ebx, dword [0xadb480]
test ebx, ebx
jne 0x651527
mov dword [edx + 0x5c], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 0x64]
mov eax, dword [eax + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00652100
mov eax, dword [0xadb480]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x1c]
mov ebx, dword [esp + 0x14]
test eax, eax
jne 0x651512
mov eax, dword [esp + 0x60]
mov dword [eax + 0x60], ecx
test dl, dl
je 0x651496
test ebx, ebx
jle 0x6514f1
lea eax, [0x785320]
mov dword [esp], eax
call fcn.00409cb0
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x1a
mov eax, dword [0xadb480]
test eax, eax
jne 0x6514e4
lea eax, [0x7deeb3]
mov dword [edi], eax
mov dword [esp + 0x84], 0
lea eax, [0x843830]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x6c
ret
lea eax, [0x7deeb3]
call fcn.0044c870
jmp 0x6514c1
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x6c
ret
mov ebp, dword [esp + 0x60]
lea edi, [ebp + 0x60]
mov eax, ecx
call fcn.0044c870
mov eax, ebp
jmp 0x65148e
lea edi, [edx + 0x5c]
mov eax, ecx
call fcn.0044c870
jmp 0x65144f
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ebx
add esp, 0x6c
ret
lea edi, [ebx + 0x4c]
call fcn.0044c870
jmp 0x651406
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
add esp, 0x6c
ret
mov ebx, dword [esp + 0x60]
lea edi, [ebx + 0x48]
call fcn.0044c870
jmp 0x6513da
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x6c
ret
mov ebx, dword [esp + 0x60]
lea edi, [ebx + 0x44]
mov ebp, eax
mov eax, edx
call fcn.0044c870
mov eax, ebp
jmp 0x651394
lea edx, [edi + 0x20]
mov ebx, edi
mov edi, edx
call fcn.0044c870
mov edi, ebx
jmp 0x651162
lea ecx, [edi + 0x10]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x5c]
call fcn.0044c870
mov edi, edx
jmp 0x651133
mov eax, dword [esp + 0x58]
call fcn.0044c870
jmp 0x651117
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x6c
ret
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edx
add esp, 0x6c
ret
mov eax, dword [0xac91a4]
mov ecx, dword [0xac91a0]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x6c
ret
mov ecx, dword [esp + 0x78]
add ecx, 0xfffffffc
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov ebx, dword [esp + 0x70]
add ecx, ebx
add eax, 0xfffffffc
movzx ebp, byte [ebx + 3]
movzx esi, byte [ebx + 2]
shl esi, 8
or ebp, esi
movzx esi, byte [ebx + 1]
shl esi, 0x10
or ebp, esi
movzx ebx, byte [ebx]
shl ebx, 0x18
or ebx, ebp
cmp eax, ebx
jae 0x6516ae
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x651024
test ebx, ebx
jl 0x6516e4
sub eax, ebx
mov esi, edx
sub esi, ebx
mov ebp, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
add esi, ecx
mov edi, edx
mov edx, ecx
mov ecx, ebx
mov ebx, esi
mov esi, ebp
mov ebp, eax
mov eax, 1
jmp 0x651024
call fcn.00426530
ud2
call fcn.00426530
ud2
call fcn.0044b110
jmp fcn.00650ff0