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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x334
push ebx
mov ebx, ecx
mov byte [esp + 0x17], 0
push esi
push edi
mov dword [esp + 0x6c], ebx
mov esi, dword [ebx + 0x3c]
mov dword [esp + 0x80], esi
cmp esi, 4
jge 0x683c3f
push 0x200
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x48]
call fcn.004745a0
push str.Internal_error
lea ecx, [esp + 0x44]
call fcn.0045cb80
mov ecx, dword [0x884c54]
lea edx, [esp + 0x140]
push 0x31a
push str.P:P4OtherDevRelClientsBethesdaTESV2010_2_Release_NewRSYSSourceCommon_Internal_GeometryProcessing_ConvexHull_hkgpConvexHullInternals.h
push edx
mov eax, dword [ecx]
push 0x642cf968
push 3
call dword [eax + 0xc]
test eax, eax
je 0x683c36
int3
lea ecx, [esp + 0x40]
call fcn.0045caa0
movaps xmm0, xmmword [0x719320]
xor ecx, ecx
movaps xmmword [ebx + 0xd0], xmm0
mov dword [esp + 0x78], ecx
test esi, esi
jle 0x685096
nop dword [eax + eax]
mov eax, ecx
shl eax, 6
add eax, dword [ebx + 0x38]
movq xmm0, qword [eax + 0x20]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x90], eax
lea eax, [ecx + 1]
movq qword [esp + 0x120], xmm0
mov dword [esp + 0x74], eax
cmp eax, esi
jge 0x684b35
nop
mov ecx, eax
inc eax
shl ecx, 6
add ecx, dword [ebx + 0x38]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x24], eax
cmp eax, esi
jge 0x684b20
nop dword [eax]
mov edi, dword [ecx + 0x24]
mov edx, dword [ecx + 0x28]
sub edi, dword [esp + 0x124]
sub edx, dword [esp + 0x90]
shl eax, 6
add eax, dword [ebx + 0x38]
mov ebx, dword [ecx + 0x20]
sub ebx, dword [esp + 0x120]
mov dword [esp + 0x34], ebx
mov ecx, dword [eax + 0x20]
mov esi, ecx
sub esi, dword [esp + 0x120]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x28], ecx
sub ecx, dword [esp + 0x124]
mov dword [esp + 0x84], ecx
mov ecx, eax
sub ecx, dword [esp + 0x90]
mov dword [esp + 0x20], eax
mov ebx, ecx
mov eax, dword [esp + 0x84]
imul ecx, dword [esp + 0x34]
imul eax, edx
imul ebx, edi
sub ebx, eax
mov eax, esi
imul esi, edi
mov edi, dword [esp + 0x84]
imul edi, dword [esp + 0x34]
imul eax, edx
mov dword [esp + 0x94], ebx
sub edi, esi
mov esi, ebx
sub eax, ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x8c], eax
mov eax, edi
or eax, dword [esp + 0x8c]
or eax, esi
je 0x684b00
mov eax, dword [esp + 0x90]
imul edi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x120]
imul esi
mov esi, dword [esp + 0x124]
add ebx, eax
mov eax, esi
adc ecx, edx
imul dword [esp + 0x8c]
add ebx, eax
adc ecx, edx
neg ebx
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0x6c]
adc ecx, 0
neg ecx
mov dword [esp + 0x98], ecx
cmp byte [ebx], 0
je 0x683f55
movd xmm7, dword [esp + 0x120]
xorps xmm6, xmm6
movd xmm0, dword [esp + 0x90]
movaps xmm1, xmm6
mov eax, dword [esp + 0x54]
cvtdq2ps xmm0, xmm0
movd xmm5, dword [eax + 0x20]
movd xmm6, dword [esp + 0x14]
cvtdq2ps xmm7, xmm7
movaps xmm3, xmmword [ebx + 0x100]
unpcklps xmm7, xmm0
movd xmm0, dword [eax + 0x28]
cvtdq2ps xmm0, xmm0
movd xmm2, esi
cvtdq2ps xmm2, xmm2
movaps xmm4, xmmword [ebx + 0xe0]
unpcklps xmm2, xmm1
unpcklps xmm7, xmm2
movd xmm2, dword [eax + 0x24]
cvtdq2ps xmm5, xmm5
cvtdq2ps xmm2, xmm2
unpcklps xmm5, xmm0
movd xmm0, dword [esp + 0x20]
unpcklps xmm2, xmm1
cvtdq2ps xmm0, xmm0
unpcklps xmm5, xmm2
movd xmm2, dword [esp + 0x28]
cvtdq2ps xmm6, xmm6
cvtdq2ps xmm2, xmm2
unpcklps xmm6, xmm0
unpcklps xmm2, xmm1
mulps xmm5, xmm3
unpcklps xmm6, xmm2
mulps xmm6, xmm3
mulps xmm7, xmm3
addps xmm5, xmm4
addps xmm6, xmm4
addps xmm7, xmm4
subps xmm6, xmm7
subps xmm5, xmm7
movaps xmm1, xmm6
shufps xmm1, xmm6, 0xc9
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xd2
mulps xmm1, xmm0
shufps xmm6, xmm6, 0xd2
shufps xmm5, xmm5, 0xc9
mulps xmm6, xmm5
subps xmm6, xmm1
xorps xmm1, xmm1
movaps xmm3, xmm6
mulps xmm3, xmm6
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm1
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm4, xmm3
cmpeqss xmm4, xmm0
movss xmm0, dword [0x719764]
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
movaps xmm1, xmm0
mulss xmm3, xmm2
subss xmm1, xmm3
movss xmm3, dword [0x719760]
movaps xmm0, xmm3
mulss xmm0, xmm2
mulss xmm0, xmm1
andnps xmm4, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
movaps xmmword [esp + 0x40], xmm4
mulps xmm4, xmm7
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
movaps xmm2, xmmword [ebx + 0xd0]
addss xmm4, xmm0
mulps xmm2, xmm2
xorps xmm4, xmmword [0x719730]
movaps xmm0, xmm2
movss dword [esp + 0x4c], xmm4
movaps xmm3, xmmword [esp + 0x40]
shufps xmm0, xmm2, 0x55
movaps xmm1, xmm3
addss xmm0, xmm2
mulps xmm1, xmm3
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
shufps xmm2, xmm2, 0
addss xmm1, xmm0
shufps xmm1, xmm1, 0
subps xmm2, xmm1
shufps xmm2, xmm2, 0
movmskps eax, xmm2
test al, 1
je 0x683f55
movaps xmmword [ebx + 0xd0], xmm3
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x80]
jge 0x684af5
nop dword [eax + eax]
mov ecx, dword [ebx + 0x38]
shl eax, 6
add ecx, eax
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x28]
imul edi
mov esi, eax
mov edi, edx
mov eax, dword [ecx + 0x24]
imul dword [esp + 0x8c]
add esi, eax
mov eax, dword [ecx + 0x20]
adc edi, edx
imul dword [esp + 0x94]
add esi, eax
adc edi, edx
add esi, dword [esp + 0xfc]
mov eax, esi
mov dword [esp + 0x3c], esi
adc edi, dword [esp + 0x98]
or eax, edi
mov dword [esp + 0x20], edi
je 0x684ad6
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x683fd1
cmp dword [ecx + 0xa00], 0
jne 0x684034
mov eax, dword [0x7d8954]
mov ecx, 0x7d8954
push 0xa10
xor esi, esi
call dword [eax + 4]
mov ecx, eax
lea edx, [esi + 0x1f]
lea eax, [ecx + 0x9b0]
mov dword [eax], esi
mov edi, eax
mov esi, eax
sub eax, 0x50
sub edx, 1
jns 0x683ff0
mov dword [ecx + 0xa0c], 0
mov dword [ecx + 0xa00], edi
mov dword [ecx + 0xa04], 0
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0xa08], eax
mov dword [ebx + 0x18], ecx
mov eax, dword [ecx + 0xa08]
test eax, eax
je 0x684034
mov dword [eax + 0xa04], ecx
mov edx, dword [ecx + 0xa00]
movups xmm0, xmmword [esp + 0xb0]
mov dword [esp + 0x18], edx
mov eax, dword [edx]
mov dword [ecx + 0xa00], eax
mov eax, dword [esp + 0xc8]
mov dword [edx + 0x40], ecx
inc dword [ecx + 0xa0c]
movups xmmword [edx + 0x10], xmm0
mov dword [edx + 0x2c], 0
movq xmm0, qword [esp + 0xc0]
movq qword [edx + 0x20], xmm0
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], 0xffffffff
mov dword [edx + 4], 0
mov eax, dword [ebx + 0x1c]
mov dword [edx], eax
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x6840a1
mov dword [eax + 4], edx
inc dword [ebx + 0x20]
mov eax, edx
mov dword [ebx + 0x1c], edx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x6840bd
cmp dword [ecx + 0xa00], 0
jne 0x684124
mov eax, dword [0x7d8954]
mov ecx, 0x7d8954
push 0xa10
xor esi, esi
call dword [eax + 4]
mov ecx, eax
lea edx, [esi + 0x1f]
lea eax, [ecx + 0x9b0]
nop dword [eax]
mov dword [eax], esi
mov edi, eax
mov esi, eax
sub eax, 0x50
sub edx, 1
jns 0x6840e0
mov dword [ecx + 0xa0c], 0
mov dword [ecx + 0xa00], edi
mov dword [ecx + 0xa04], 0
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0xa08], eax
mov dword [ebx + 0x18], ecx
mov eax, dword [ecx + 0xa08]
test eax, eax
je 0x684124
mov dword [eax + 0xa04], ecx
mov edi, dword [ecx + 0xa00]
movups xmm0, xmmword [esp + 0xb0]
mov dword [esp + 0x5c], edi
mov eax, dword [edi]
mov dword [ecx + 0xa00], eax
mov eax, dword [esp + 0xc8]
mov dword [edi + 0x40], ecx
inc dword [ecx + 0xa0c]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x2c], 0
movq xmm0, qword [esp + 0xc0]
movq qword [edi + 0x20], xmm0
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], 0xffffffff
mov dword [edi + 4], 0
mov eax, dword [ebx + 0x1c]
mov dword [edi], eax
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x684191
mov dword [eax + 4], edi
inc dword [ebx + 0x20]
mov dword [ebx + 0x1c], edi
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x6841a7
cmp dword [ecx + 0xa00], 0
jne 0x68420e
mov eax, dword [0x7d8954]
mov ecx, 0x7d8954
push 0xa10
xor esi, esi
call dword [eax + 4]
mov ecx, eax
lea edx, [esi + 0x1f]
lea eax, [ecx + 0x9b0]
mov dword [eax], esi
mov esi, eax
mov dword [esp + 0x14], eax
sub eax, 0x50
sub edx, 1
jns 0x6841c6
mov dword [ecx + 0xa0c], 0
mov eax, esi
mov dword [ecx + 0xa00], eax
mov dword [ecx + 0xa04], 0
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0xa08], eax
mov dword [ebx + 0x18], ecx
mov eax, dword [ecx + 0xa08]
test eax, eax
je 0x68420e
mov dword [eax + 0xa04], ecx
mov esi, dword [ecx + 0xa00]
movups xmm0, xmmword [esp + 0xb0]
mov dword [esp + 0x58], esi
mov eax, dword [esi]
mov dword [ecx + 0xa00], eax
mov eax, dword [esp + 0xc8]
mov dword [esi + 0x40], ecx
inc dword [ecx + 0xa0c]
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x2c], 0
movq xmm0, qword [esp + 0xc0]
movq qword [esi + 0x20], xmm0
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], 0xffffffff
mov dword [esi + 4], 0
mov eax, dword [ebx + 0x1c]
mov dword [esi], eax
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x68427b
mov dword [eax + 4], esi
inc dword [ebx + 0x20]
mov dword [ebx + 0x1c], esi
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x684291
cmp dword [ecx + 0xa00], 0
jne 0x684308
mov eax, dword [0x7d8954]
mov ecx, 0x7d8954
push 0xa10
mov dword [esp + 0x18], 0
call dword [eax + 4]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov edx, 0x1f
lea eax, [ecx + 0x9b0]
nop dword [eax]
mov dword [eax], edi
mov edi, eax
mov dword [esp + 0x14], eax
sub eax, 0x50
sub edx, 1
jns 0x6842c0
mov dword [ecx + 0xa0c], 0
mov eax, edi
mov dword [ecx + 0xa00], eax
mov dword [ecx + 0xa04], 0
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0xa08], eax
mov dword [ebx + 0x18], ecx
mov eax, dword [ecx + 0xa08]
test eax, eax
je 0x684308
mov dword [eax + 0xa04], ecx
mov edx, dword [ecx + 0xa00]
movups xmm0, xmmword [esp + 0xb0]
mov dword [esp + 0x70], edx
mov eax, dword [edx]
mov dword [ecx + 0xa00], eax
mov eax, dword [esp + 0xc8]
mov dword [edx + 0x40], ecx
inc dword [ecx + 0xa0c]
movups xmmword [edx + 0x10], xmm0
mov dword [edx + 0x2c], 0
movq xmm0, qword [esp + 0xc0]
movq qword [edx + 0x20], xmm0
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], 0xffffffff
mov dword [edx + 4], 0
mov eax, dword [ebx + 0x1c]
mov dword [edx], eax
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x684375
mov dword [eax + 4], edx
inc dword [ebx + 0x20]
mov dword [ebx + 0x1c], edx
mov edx, 0x24
mov ecx, dword [ebx + 0x38]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x18]
shl eax, 6
add ecx, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x18]
movaps xmm0, xmmword [ecx + 0x10]
movaps xmmword [eax + 0x10], xmm0
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + edx]
mov dword [edi + edx], eax
mov eax, 0x28
mov edx, 0x28
mov eax, dword [ecx + eax]
mov dword [edi + edx], eax
mov edx, 0x24
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 0x30]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0x34]
mov ecx, edi
mov edi, dword [esp + 0x5c]
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x30], 0
mov ecx, dword [ebx + 0x38]
mov eax, dword [esp + 0x74]
shl eax, 6
add ecx, eax
mov dword [esp + 0x64], eax
movaps xmm0, xmmword [ecx + 0x10]
movaps xmmword [edi + 0x10], xmm0
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + edx]
mov dword [edi + edx], eax
mov eax, 0x28
mov edx, 0x28
mov eax, dword [ecx + eax]
mov dword [edi + edx], eax
mov edx, 0x24
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 0x30]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0x34]
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x30], 0
mov ecx, dword [ebx + 0x38]
shl eax, 6
add ecx, eax
mov dword [esp + 0x60], eax
movaps xmm0, xmmword [ecx + 0x10]
movaps xmmword [esi + 0x10], xmm0
mov eax, dword [ecx + 0x20]
mov dword [esi + 0x20], eax
mov eax, dword [ecx + edx]
mov dword [esi + edx], eax
mov eax, 0x28
mov edx, 0x28
mov eax, dword [ecx + eax]
mov dword [esi + edx], eax
mov eax, dword [ecx + 0x2c]
mov edx, dword [esp + 0x70]
mov dword [esi + 0x2c], eax
mov eax, dword [ecx + 0x30]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x34]
mov dword [esi + 0x34], eax
mov dword [esi + 0x30], 0
mov ecx, dword [ebx + 0x38]
add ecx, dword [esp + 0x34]
movaps xmm0, xmmword [ecx + 0x10]
movaps xmmword [edx + 0x10], xmm0
mov eax, dword [ecx + 0x20]
cmp dword [esp + 0x20], 0
mov esi, 0x24
mov dword [edx + 0x20], eax
mov eax, dword [ecx + esi]
mov dword [edx + esi], eax
mov esi, 0x28
mov eax, dword [ecx + esi]
mov dword [edx + esi], eax
mov eax, dword [ecx + 0x2c]
mov dword [edx + 0x2c], eax
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 0x34], eax
mov dword [edx + 0x30], 0
jl 0x6844e5
jg 0x6844d7
cmp dword [esp + 0x3c], 0
jbe 0x6844e5
mov eax, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], edi
lea eax, [esp + 0xa0]
mov dword [esp + 0xd8], 0xffffffff
lea esi, [ebx + 0x28]
mov dword [esp + 0xe4], 0xffffffff
push eax
mov ecx, esi
call fcn.00680c90
mov ebx, eax
mov dword [esp + 0xd8], 0xffffffff
lea eax, [esp + 0xa0]
mov dword [esp + 0x20], ebx
push eax
mov ecx, esi
mov dword [esp + 0xe8], 0xffffffff
call fcn.00680c90
mov dword [esp + 0x7c], eax
mov ecx, esi
lea eax, [esp + 0xa0]
mov dword [esp + 0xd8], 0xffffffff
push eax
mov dword [esp + 0xe8], 0xffffffff
call fcn.00680c90
mov dword [esp + 0x88], eax
mov ecx, esi
lea eax, [esp + 0xa0]
mov dword [esp + 0xd8], 0xffffffff
push eax
mov dword [esp + 0xe8], 0xffffffff
call fcn.00680c90
mov esi, dword [esp + 0x38]
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0xffffffff
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x10], eax
inc dword [esi + 0x30]
inc dword [edi + 0x30]
inc dword [eax + 0x30]
mov edx, dword [esi + 0x20]
mov eax, dword [edi + 0x20]
mov ecx, dword [esi + 0x24]
sub eax, edx
mov ebx, dword [edi + 0x24]
mov dword [esp + 0x40], eax
sub ebx, ecx
mov eax, dword [esi + 0x28]
mov esi, dword [edi + 0x28]
mov edi, dword [esp + 0x58]
sub esi, eax
mov dword [esp + 0x14], ebx
mov edi, dword [edi + 0x20]
sub edi, edx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 0x24]
sub ebx, ecx
mov ecx, dword [edx + 0x28]
sub ecx, eax
mov dword [esp + 0x18], ebx
mov edx, ecx
mov eax, ebx
mov ebx, dword [esp + 0x14]
imul ecx, dword [esp + 0x40]
imul eax, esi
imul edx, ebx
sub edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [edx + 0x20], eax
mov eax, edi
imul eax, esi
imul edi, ebx
mov esi, eax
mov dword [esp + 0x2c], eax
sub esi, ecx
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], esi
mov dword [edx + 0x24], esi
mov ebx, dword [esp + 0x38]
sub ecx, edi
mov eax, ecx
mov dword [esp + 0x18], ecx
mov dword [edx + 0x28], ecx
or eax, esi
mov ecx, dword [esp + 0x14]
or eax, ecx
mov dword [edx + 0x30], 0
mov dword [edx + 0x34], 0
je 0x68468f
mov eax, dword [ebx + 0x20]
imul ecx
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 0x28]
imul dword [esp + 0x18]
add ecx, eax
mov eax, dword [ebx + 0x24]
adc esi, edx
imul dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x20]
adc esi, edx
neg ecx
adc esi, 0
mov dword [eax + 0x30], ecx
neg esi
mov dword [eax + 0x34], esi
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x5c]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edi
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0xffffffff
inc dword [ebx + 0x30]
inc dword [esi + 0x30]
inc dword [edi + 0x30]
mov edx, dword [ebx + 0x20]
mov eax, dword [esi + 0x20]
mov ecx, dword [ebx + 0x24]
sub eax, edx
mov edi, dword [edi + 0x20]
mov ebx, dword [esi + 0x24]
sub edi, edx
mov edx, dword [esp + 0x5c]
sub ebx, ecx
mov esi, dword [esi + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], ebx
mov ebx, dword [edx + 0x24]
sub ebx, ecx
mov ecx, dword [edx + 0x28]
mov eax, dword [eax + 0x28]
sub esi, eax
sub ecx, eax
mov dword [esp + 0x14], ebx
mov edx, ecx
mov eax, ebx
imul edx, dword [esp + 0x40]
imul ecx, dword [esp + 0x30]
imul eax, esi
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x18]
mov dword [edx + 0x20], eax
mov eax, edi
imul edi, dword [esp + 0x40]
imul eax, esi
mov dword [edx + 0x30], 0
mov dword [edx + 0x34], 0
mov esi, eax
mov dword [esp + 0x2c], eax
sub esi, ecx
mov ecx, ebx
imul ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x2c], esi
mov dword [edx + 0x24], esi
sub ecx, edi
mov edi, dword [esp + 0x18]
mov eax, ecx
mov dword [edx + 0x28], ecx
or eax, esi
or eax, edi
je 0x684789
mov eax, dword [ebx + 0x28]
imul ecx
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 0x24]
imul dword [esp + 0x2c]
add ecx, eax
mov eax, dword [ebx + 0x20]
adc esi, edx
imul edi
add ecx, eax
mov eax, dword [esp + 0x7c]
adc esi, edx
neg ecx
adc esi, 0
mov dword [eax + 0x30], ecx
neg esi
mov dword [eax + 0x34], esi
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x70]
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edi
mov dword [eax + 8], ebx
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0xffffffff
inc dword [ebx + 0x30]
inc dword [esi + 0x30]
inc dword [edi + 0x30]
mov edx, dword [ebx + 0x20]
mov eax, dword [esi + 0x20]
mov ecx, dword [ebx + 0x24]
sub eax, edx
mov edi, dword [edi + 0x20]
mov ebx, dword [esi + 0x24]
sub edi, edx
mov edx, dword [esp + 0x70]
sub ebx, ecx
mov esi, dword [esi + 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], ebx
mov ebx, dword [edx + 0x24]
sub ebx, ecx
mov ecx, dword [edx + 0x28]
mov eax, dword [eax + 0x28]
sub esi, eax
sub ecx, eax
mov dword [esp + 0x14], ebx
mov edx, ecx
mov eax, ebx
imul edx, dword [esp + 0x30]
imul ecx, dword [esp + 0x40]
imul eax, esi
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x18]
mov dword [edx + 0x20], eax
mov eax, edi
imul edi, dword [esp + 0x30]
imul eax, esi
mov dword [edx + 0x30], 0
mov dword [edx + 0x34], 0
mov esi, eax
mov dword [esp + 0x2c], eax
sub esi, ecx
mov ecx, ebx
imul ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], esi
mov dword [edx + 0x24], esi
sub ecx, edi
mov edi, dword [esp + 0x18]
mov eax, ecx
mov dword [edx + 0x28], ecx
or eax, esi
or eax, edi
je 0x68488c
mov ebx, dword [esp + 0x38]
mov eax, dword [ebx + 0x28]
imul ecx
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 0x24]
imul dword [esp + 0x2c]
add ecx, eax
mov eax, dword [ebx + 0x20]
adc esi, edx
imul edi
add ecx, eax
mov eax, dword [esp + 0x88]
adc esi, edx
neg ecx
adc esi, 0
mov dword [eax + 0x30], ecx
neg esi
mov dword [eax + 0x34], esi
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x58]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edi
mov dword [ecx + 8], esi
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x44], 0xffffffff
inc dword [esi + 0x30]
inc dword [edi + 0x30]
inc dword [eax + 0x30]
mov edx, dword [esi + 0x20]
mov eax, dword [edi + 0x20]
mov ecx, dword [esi + 0x24]
sub eax, edx
mov ebx, dword [edi + 0x24]
mov dword [esp + 0x40], eax
sub ebx, ecx
mov eax, dword [esi + 0x28]
mov esi, dword [edi + 0x28]
mov edi, dword [esp + 0x58]
sub esi, eax
mov dword [esp + 0x30], ebx
mov edi, dword [edi + 0x20]
sub edi, edx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 0x24]
sub ebx, ecx
mov ecx, dword [edx + 0x28]
sub ecx, eax
mov dword [esp + 0x18], ebx
mov edx, ecx
mov eax, ebx
mov ebx, dword [esp + 0x30]
imul ecx, dword [esp + 0x40]
imul eax, esi
imul edx, ebx
sub edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov dword [edx + 0x20], eax
mov eax, edi
imul eax, esi
imul edi, ebx
mov dword [edx + 0x30], 0
mov dword [edx + 0x34], 0
mov esi, eax
mov dword [esp + 0x30], eax
sub esi, ecx
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x40]
mov dword [edx + 0x24], esi
sub ecx, edi
mov edi, dword [esp + 0x14]
mov eax, ecx
mov dword [esp + 0x18], ecx
or eax, esi
mov dword [edx + 0x28], ecx
or eax, edi
je 0x68498c
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 0x24]
imul esi
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 0x20]
imul edi
add ecx, eax
mov eax, dword [ebx + 0x28]
adc esi, edx
imul dword [esp + 0x18]
add ecx, eax
adc esi, edx
mov edx, dword [esp + 0x3c]
neg ecx
adc esi, 0
neg esi
mov dword [edx + 0x30], ecx
mov dword [edx + 0x34], esi
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
lea eax, [ebx + 2]
mov dword [esi + 0x14], eax
lea eax, [edx + 2]
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], eax
lea eax, [esi + 1]
mov dword [edx + 0x1c], eax
lea eax, [esi + 2]
mov dword [esi + 0x1c], ecx
mov dword [ecx + 0x14], eax
lea eax, [ecx + 2]
mov dword [ebx + 0x14], eax
lea eax, [edx + 1]
mov dword [ecx + 0x1c], ebx
mov dword [ecx + 0x18], eax
lea eax, [ecx + 1]
mov dword [edx + 0x18], eax
lea eax, [ebx + 1]
mov dword [edx + 0x14], eax
mov dword [ebx + 0x18], edx
mov ebx, dword [esp + 0x6c]
dec dword [ebx + 0x3c]
mov edx, dword [ebx + 0x3c]
cmp edx, dword [esp + 0x28]
je 0x684a15
mov ecx, dword [esp + 0x34]
mov esi, 8
add ecx, dword [ebx + 0x38]
shl edx, 6
add edx, dword [ebx + 0x38]
sub edx, ecx
nop dword [eax + eax]
mov eax, dword [edx + ecx]
lea ecx, [ecx + 8]
mov dword [ecx - 8], eax
mov eax, dword [edx + ecx - 4]
mov dword [ecx - 4], eax
sub esi, 1
jne 0x684a00
dec dword [ebx + 0x3c]
mov edx, dword [ebx + 0x3c]
cmp edx, dword [esp + 0x24]
je 0x684a4a
mov ecx, dword [esp + 0x60]
mov esi, 8
add ecx, dword [ebx + 0x38]
shl edx, 6
add edx, dword [ebx + 0x38]
sub edx, ecx
mov eax, dword [edx + ecx]
lea ecx, [ecx + 8]
mov dword [ecx - 8], eax
mov eax, dword [edx + ecx - 4]
mov dword [ecx - 4], eax
sub esi, 1
jne 0x684a35
dec dword [ebx + 0x3c]
mov edx, dword [ebx + 0x3c]
cmp edx, dword [esp + 0x74]
je 0x684a85
mov ecx, dword [esp + 0x64]
mov esi, 8
add ecx, dword [ebx + 0x38]
shl edx, 6
add edx, dword [ebx + 0x38]
sub edx, ecx
nop word [eax + eax]
mov eax, dword [edx + ecx]
lea ecx, [ecx + 8]
mov dword [ecx - 8], eax
mov eax, dword [edx + ecx - 4]
mov dword [ecx - 4], eax
sub esi, 1
jne 0x684a70
dec dword [ebx + 0x3c]
mov edx, dword [ebx + 0x3c]
cmp edx, dword [esp + 0x78]
je 0x684aba
mov ecx, dword [esp + 0x68]
mov esi, 8
add ecx, dword [ebx + 0x38]
shl edx, 6
add edx, dword [ebx + 0x38]
sub edx, ecx
mov eax, dword [edx + ecx]
lea ecx, [ecx + 8]
mov dword [ecx - 8], eax
mov eax, dword [edx + ecx - 4]
mov dword [ecx - 4], eax
sub esi, 1
jne 0x684aa5
mov ecx, dword [esp + 0x80]
mov eax, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov byte [esp + 0x1f], 1
jmp 0x684ae1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
inc eax
mov dword [esp + 0x28], eax
cmp eax, ecx
jl 0x683f70
cmp byte [esp + 0x1f], 0
je 0x684ed5
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x80]
inc eax
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x24], eax
cmp eax, esi
jl 0x683cb0
mov eax, dword [esp + 0x74]
inc eax
mov dword [esp + 0x74], eax
cmp eax, esi
jl 0x683c90
mov ecx, dword [esp + 0x78]
inc ecx
mov dword [esp + 0x78], ecx
cmp ecx, esi
jl 0x683c60
cmp byte [esp + 0x1f], 0
je 0x685096
cmp dword [ebx + 0x3c], 0
jle 0x685060
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x2c]
shl ecx, 6
lea edx, [eax - 0x40]
add edx, ecx
mov dword [esp + 0x30], edx
test esi, esi
je 0x684bc1
mov edx, dword [ecx + eax - 0x18]
mov dword [esp + 0x68], edx
mov edx, dword [ecx + eax - 0x1c]
mov eax, dword [ecx + eax - 0x20]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov eax, edx
imul dword [esi + 0x24]
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x68]
imul dword [esi + 0x28]
add edi, eax
mov eax, dword [esp + 0x64]
adc ecx, edx
imul dword [esi + 0x20]
add edi, eax
adc ecx, edx
add edi, dword [esi + 0x30]
adc ecx, dword [esi + 0x34]
test ecx, ecx
jg 0x684bc3
jl 0x684bb7
test edi, edi
jne 0x684bc3
mov esi, dword [esi]
mov edx, dword [esp + 0x60]
test esi, esi
jne 0x684b88
xor esi, esi
test esi, esi
je 0x685053
mov ecx, dword [ebx + 0x18]
lea edx, [ebx + 0x18]
test ecx, ecx
je 0x684bde
cmp dword [ecx + 0xa00], 0
jne 0x684bea
mov ecx, edx
call fcn.00680d90
mov ecx, eax
lea edx, [ebx + 0x18]
mov edi, dword [ecx + 0xa00]
movups xmm0, xmmword [esp + 0xb0]
mov dword [esp + 0x24], edi
mov eax, dword [edi]
mov dword [ecx + 0xa00], eax
mov eax, dword [esp + 0xc8]
mov dword [edi + 0x40], ecx
inc dword [ecx + 0xa0c]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x2c], 0
movq xmm0, qword [esp + 0xc0]
movq qword [edi + 0x20], xmm0
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], 0xffffffff
mov dword [edi + 4], 0
mov eax, dword [edx + 4]
mov dword [edi], eax
mov eax, dword [edx + 4]
test eax, eax
je 0x684c57
mov dword [eax + 4], edi
inc dword [edx + 8]
mov ecx, dword [esp + 0x30]
mov dword [edx + 4], edi
mov edx, 0x24
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
movaps xmm0, xmmword [ecx + 0x10]
movaps xmmword [edi + 0x10], xmm0
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + edx]
mov dword [edi + edx], eax
mov edx, 0x28
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], 0
mov eax, dword [ecx + edx]
mov dword [edi + edx], eax
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 0x30]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0x34]
mov ecx, ebx
mov dword [edi + 0x34], eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x9c]
mov dword [edi + 0x30], 0
inc dword [ebx + 0x19c]
push eax
push edi
call fcn.00682160
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
test dword [edx + eax*4 + 0x14], 0xfffffffc
je 0x684d0f
nop dword [eax]
lea ecx, [eax + eax]
mov dword [esp + 0x40], edx
mov eax, 9
sar eax, cl
and eax, 3
mov dword [esp + 0x44], eax
test dword [edx + eax*4 + 0x14], 0xfffffffc
jne 0x684cf0
xor ecx, ecx
lea esi, [eax + edx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], esi
lea ecx, [eax + eax]
mov eax, 9
sar eax, cl
and eax, 3
test dword [edx + eax*4 + 0x14], 0xfffffffc
je 0x684d59
mov ecx, dword [edx + eax*4 + 0x14]
mov edx, ecx
and ecx, 3
mov eax, 9
add ecx, ecx
and edx, 0xfffffffc
sar eax, cl
and eax, 3
test dword [edx + eax*4 + 0x14], 0xfffffffc
jne 0x684d37
mov dword [esp + 0x44], eax
lea ecx, [ebx + 0x28]
add eax, edx
mov dword [esp + 0x40], edx
cmp esi, eax
mov dword [esp + 0xd8], 0xffffffff
lea eax, [esp + 0xa0]
mov dword [esp + 0xe4], 0xffffffff
push eax
je 0x684efb
call fcn.00680c90
mov edx, dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], ebx
mov edi, dword [edx + eax*4 + 8]
lea ecx, [eax + eax]
mov eax, 9
mov dword [esp + 0x68], edi
sar eax, cl
mov ecx, dword [esp + 0x24]
and eax, 3
mov esi, dword [edx + eax*4 + 8]
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0xffffffff
inc dword [ecx + 0x30]
inc dword [esi + 0x30]
inc dword [edi + 0x30]
mov edx, dword [ecx + 0x20]
mov eax, dword [esi + 0x20]
mov ecx, dword [ecx + 0x24]
sub eax, edx
mov ebx, dword [esi + 0x24]
mov edi, dword [edi + 0x20]
sub ebx, ecx
mov esi, dword [esi + 0x28]
sub edi, edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x64], ebx
mov ebx, dword [edx + 0x24]
sub ebx, ecx
mov ecx, dword [edx + 0x28]
mov eax, dword [eax + 0x28]
sub esi, eax
sub ecx, eax
mov dword [esp + 0x54], ebx
mov edx, ecx
mov eax, ebx
imul edx, dword [esp + 0x64]
imul ecx, dword [esp + 0x60]
imul eax, esi
sub edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [edx + 0x20], eax
mov eax, edi
imul edi, dword [esp + 0x64]
imul eax, esi
mov esi, eax
mov dword [esp + 0x28], eax
sub esi, ecx
mov ecx, ebx
imul ecx, dword [esp + 0x60]
mov ebx, edx
mov dword [esp + 0x28], esi
mov dword [edx + 0x24], esi
mov dword [ebx + 0x30], 0
sub ecx, edi
mov dword [ebx + 0x34], 0
mov eax, ecx
mov dword [ebx + 0x28], ecx
or eax, esi
or eax, dword [esp + 0x20]
je 0x684ea8
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x28]
imul ecx
mov ecx, eax
mov esi, edx
mov eax, dword [edi + 0x24]
imul dword [esp + 0x28]
add ecx, eax
mov eax, dword [edi + 0x20]
adc esi, edx
imul dword [esp + 0x20]
add ecx, eax
adc esi, edx
neg ecx
mov dword [ebx + 0x30], ecx
adc esi, 0
neg esi
mov dword [ebx + 0x34], esi
mov ecx, dword [esp + 0x44]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x40]
mov dword [eax + ecx*4 + 0x14], edx
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x18], eax
test ecx, ecx
je 0x684ede
lea eax, [ebx + 2]
mov dword [ecx + 0x14], eax
mov dword [ebx + 0x1c], ecx
jmp 0x684ee2
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x6c]
jmp 0x684d20
call fcn.00680c90
mov edx, dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], ebx
mov edi, dword [edx + eax*4 + 8]
lea ecx, [eax + eax]
mov eax, 9
mov dword [esp + 0x68], edi
sar eax, cl
mov ecx, dword [esp + 0x24]
and eax, 3
mov esi, dword [edx + eax*4 + 8]
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0xffffffff
inc dword [ecx + 0x30]
inc dword [esi + 0x30]
inc dword [edi + 0x30]
mov edx, dword [ecx + 0x20]
mov eax, dword [esi + 0x20]
mov ecx, dword [ecx + 0x24]
sub eax, edx
mov edi, dword [edi + 0x20]
mov ebx, dword [esi + 0x24]
sub edi, edx
mov edx, dword [esp + 0x68]
sub ebx, ecx
mov esi, dword [esi + 0x28]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x64], ebx
mov ebx, dword [edx + 0x24]
sub ebx, ecx
mov ecx, dword [edx + 0x28]
mov eax, dword [eax + 0x28]
sub esi, eax
sub ecx, eax
mov dword [esp + 0x54], ebx
mov edx, ecx
mov eax, ebx
imul edx, dword [esp + 0x64]
imul ecx, dword [esp + 0x60]
imul eax, esi
sub edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [edx + 0x20], eax
mov eax, edi
imul edi, dword [esp + 0x64]
imul eax, esi
mov esi, eax
mov dword [esp + 0x28], eax
sub esi, ecx
mov ecx, ebx
imul ecx, dword [esp + 0x60]
mov dword [esp + 0x28], esi
mov dword [edx + 0x24], esi
sub ecx, edi
mov edi, edx
mov eax, ecx
or eax, esi
or eax, dword [esp + 0x20]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x30], 0
mov dword [edi + 0x34], 0
je 0x685017
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x28]
imul ecx
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 0x24]
imul dword [esp + 0x28]
add ecx, eax
mov eax, dword [ebx + 0x20]
adc esi, edx
imul dword [esp + 0x20]
add ecx, eax
adc esi, edx
neg ecx
mov dword [edi + 0x30], ecx
adc esi, 0
neg esi
mov dword [edi + 0x34], esi
mov ecx, dword [esp + 0x44]
lea edx, [edi + 1]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
mov dword [eax + ecx*4 + 0x14], edx
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov dword [edi + 0x18], eax
lea eax, [edi + 2]
mov dword [ecx + 0x14], eax
mov dword [edi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 2]
mov dword [edi + 0x14], eax
test ecx, ecx
je 0x685053
mov dword [ecx + 0x1c], edi
dec dword [ebx + 0x3c]
cmp dword [ebx + 0x3c], 0
jg 0x684b57
mov eax, dword [ebx + 0x40]
mov dword [ebx + 0x3c], 0
test eax, eax
js 0x685088
mov edx, dword [0x7d8954]
and eax, 0x3fffffff
shl eax, 6
mov ecx, 0x7d8954
push eax
push dword [ebx + 0x38]
call dword [edx + 0x10]
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x40], connect
mov al, byte [esp + 0x1f]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret