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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xd4
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
movss xmm1, dword [0x476b48]
mov ecx, dword [eax]
movss xmm0, dword [edx]
mov dword [esp + 0xd0], ecx
subss xmm0, dword [edx + ecx*4 - 4]
andps xmm0, xmmword [0x476980]
comiss xmm1, xmm0
jbe 0x408434
mov eax, dword [ebp + 0x10]
mov edx, ecx
movss xmm0, dword [eax]
subss xmm0, dword [eax + edx*4 - 4]
andps xmm0, xmmword [0x476980]
comiss xmm1, xmm0
jbe 0x408434
mov dword [esp + 0xb8], 0xffffffff
jmp 0x40843f
mov dword [esp + 0xb8], 0
mov ebx, dword [ebp + 0x14]
xor eax, eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x2c]
movss xmm1, dword [ebx]
movss xmm2, dword [ecx]
mov dword [edx], eax
mov dword [0x8256c0], eax
mov dword [0x838f40], eax
movss xmm0, dword [0x476b4c]
mov dword [0x84c7c0], 0x47c34f80
mov dword [0x860040], 2
comiss xmm1, xmm2
jbe 0x408485
pxor xmm7, xmm7
jmp 0x4084b7
movaps xmm3, xmm1
divss xmm3, xmm2
movss xmm5, dword [0x476b6c]
movaps xmm4, xmm5
movss xmm7, dword [0x476b50]
subss xmm4, xmm3
mulss xmm7, xmm2
mulss xmm4, xmm4
subss xmm5, xmm4
sqrtss xmm5, xmm5
mulss xmm7, xmm5
mov eax, 1
cmp dword [esp + 0xd0], 3
jl 0x408cd7
cvtss2sd xmm3, dword [0x482824]
movss xmm4, dword [0x482830]
mov edx, 3
movss xmm6, dword [0x476b54]
movsd qword [esp + 0xb0], xmm3
movss dword [esp + 0xc0], xmm4
movss dword [esp + 0xbc], xmm7
movss dword [esp + 0xcc], xmm1
movss dword [esp + 0xc8], xmm2
mov ecx, dword [esp + 0xd0]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
movss xmm4, dword [esi + edx*4 - 0xc]
comiss xmm4, xmm6
ja 0x408c67
movss xmm2, dword [esi + edx*4 - 8]
comiss xmm2, xmm6
ja 0x408c67
movss xmm1, dword [esi + edx*4 - 4]
movss dword [esp + 0xc4], xmm1
comiss xmm1, xmm6
ja 0x408c67
movaps xmm1, xmm4
movss xmm3, dword [esp + 0xc0]
subss xmm1, xmm2
movaps xmm5, xmm1
andps xmm5, xmmword [0x476980]
comiss xmm3, xmm5
jbe 0x40859b
movss xmm5, dword [ebx + edx*4 - 0xc]
movss xmm3, dword [esp + 0xc0]
subss xmm5, dword [ebx + edx*4 - 8]
andps xmm5, xmmword [0x476980]
comiss xmm3, xmm5
ja 0x408c67
movss xmm5, dword [esp + 0xc4]
movss xmm3, dword [esp + 0xc0]
subss xmm5, xmm2
movss dword [esp + 0xac], xmm5
andps xmm5, xmmword [0x476980]
comiss xmm3, xmm5
jbe 0x4085eb
movss xmm7, dword [ebx + edx*4 - 4]
movss xmm3, dword [esp + 0xc0]
subss xmm7, dword [ebx + edx*4 - 8]
andps xmm7, xmmword [0x476980]
comiss xmm3, xmm7
ja 0x408c67
xorps xmm1, xmmword [0x476990]
movaps xmm3, xmm1
andps xmm3, xmmword [0x476980]
comiss xmm3, dword [esp + 0xbc]
ja 0x408c67
movss xmm7, dword [ebx + edx*4 - 8]
movss xmm3, dword [ebx + edx*4 - 0xc]
movss dword [esp + 0xa4], xmm7
subss xmm7, xmm3
movss dword [esp + 0xa8], xmm7
andps xmm7, xmmword [0x476980]
movss dword [esp + 0xa0], xmm3
comiss xmm7, dword [esp + 0xbc]
ja 0x408c67
comiss xmm5, dword [esp + 0xbc]
ja 0x408c67
movss xmm3, dword [ebx + edx*4 - 4]
movss dword [esp + 0x98], xmm3
subss xmm3, dword [esp + 0xa4]
movss dword [esp + 0x9c], xmm3
andps xmm3, xmmword [0x476980]
comiss xmm3, dword [esp + 0xbc]
ja 0x408c67
cvtss2sd xmm1, xmm1
cvtss2sd xmm3, dword [esp + 0xa8]
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x60], xmm3
mulsd xmm1, xmm1
mulsd xmm3, xmm3
movsd xmm5, qword [esp + 0xb0]
addsd xmm1, xmm3
sqrtsd xmm1, xmm1
cvtsd2ss xmm1, xmm1
cvtss2sd xmm1, xmm1
comisd xmm5, xmm1
jbe 0x4086f4
movss dword [esp + 0x88], xmm0
movss dword [esp + 0x8c], xmm0
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x7c], xmm0
jmp 0x408880
movsd xmm6, qword [esp + 0x60]
movsd xmm7, qword [esp + 0x58]
mulsd xmm6, qword [0x476a10]
cvtss2sd xmm5, xmm4
mulsd xmm7, qword [0x476a10]
divsd xmm6, xmm1
divsd xmm7, xmm1
movss xmm3, dword [esp + 0xa0]
cvtss2sd xmm1, xmm3
movsd qword [esp + 0x28], xmm5
addsd xmm5, xmm6
movsd qword [esp + 0x20], xmm1
subsd xmm1, xmm7
cvtsd2ss xmm5, xmm5
cvtsd2ss xmm1, xmm1
movsd qword [esp + 0x60], xmm6
subss xmm3, xmm1
movss xmm6, dword [esp + 0xa4]
movsd qword [esp + 0x58], xmm7
movaps xmm7, xmm6
movss dword [esp + 0x94], xmm4
subss xmm4, xmm5
subss xmm7, xmm1
cvtss2sd xmm3, xmm3
cvtss2sd xmm6, xmm6
cvtss2sd xmm4, xmm4
cvtss2sd xmm7, xmm7
mulsd xmm4, xmm7
movaps xmm7, xmm2
subss xmm7, xmm5
movss dword [esp + 0x88], xmm5
cvtss2sd xmm5, xmm7
mulsd xmm5, xmm3
movss dword [esp + 0x8c], xmm1
subsd xmm4, xmm5
cvtss2sd xmm1, xmm2
cvtsd2ss xmm4, xmm4
pxor xmm5, xmm5
movsd qword [esp + 0x38], xmm6
movsd qword [esp + 8], xmm1
movss xmm6, dword [0x476b54]
comiss xmm4, xmm5
movss xmm4, dword [esp + 0x94]
jbe 0x4087ff
movsd xmm1, qword [esp + 0x60]
movsd xmm3, qword [esp + 0x38]
addsd xmm1, qword [esp + 8]
subsd xmm3, qword [esp + 0x58]
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x38], xmm3
jmp 0x408865
movss dword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x60]
movsd xmm3, qword [esp + 0x20]
subsd xmm2, xmm1
movsd xmm5, qword [esp + 0x58]
movsd xmm7, qword [esp + 8]
addsd xmm3, xmm5
cvtsd2ss xmm2, xmm2
cvtsd2ss xmm3, xmm3
subsd xmm7, xmm1
movsd xmm1, qword [esp + 0x38]
movss dword [esp + 0x88], xmm2
addsd xmm1, xmm5
movsd qword [esp + 0x60], xmm7
movsd qword [esp + 0x38], xmm1
movss dword [esp + 0x8c], xmm3
movss xmm2, dword [esp + 0x40]
cvtsd2ss xmm1, qword [esp + 0x60]
cvtsd2ss xmm3, qword [esp + 0x38]
movss dword [esp + 0x80], xmm1
movss dword [esp + 0x7c], xmm3
movss xmm5, dword [esp + 0x88]
movaps xmm3, xmm2
movss xmm7, dword [esp + 0x8c]
addss xmm3, xmm4
addss xmm5, dword [esp + 0x80]
addss xmm7, dword [esp + 0x7c]
mulss xmm3, dword [0x476b58]
mulss xmm5, dword [0x476b58]
mulss xmm7, dword [0x476b58]
movss dword [esp + 0x88], xmm5
movss dword [esp + 0x8c], xmm7
cvtss2sd xmm5, dword [esp + 0xac]
cvtss2sd xmm7, dword [esp + 0x9c]
movsd qword [esp + 0x50], xmm5
movsd qword [esp + 0x68], xmm7
mulsd xmm5, xmm5
mulsd xmm7, xmm7
movss xmm1, dword [esp + 0xa4]
addsd xmm5, xmm7
addss xmm1, dword [esp + 0xa0]
sqrtsd xmm5, xmm5
mulss xmm1, dword [0x476b58]
cvtsd2ss xmm5, xmm5
cvtss2sd xmm5, xmm5
movsd xmm7, qword [esp + 0xb0]
comisd xmm7, xmm5
jbe 0x40894e
movss dword [esp + 0x90], xmm0
movaps xmm5, xmm0
movss dword [esp + 0x74], xmm0
movss dword [esp + 0x78], xmm0
jmp 0x408b0d
movss dword [esp + 0x94], xmm4
movsd xmm6, qword [esp + 0x68]
movsd xmm4, qword [esp + 0x50]
mulsd xmm6, qword [0x476a10]
cvtss2sd xmm7, xmm2
mulsd xmm4, qword [0x476a10]
divsd xmm6, xmm5
divsd xmm4, xmm5
movss dword [esp + 0x44], xmm3
movss xmm3, dword [esp + 0xa4]
movss dword [esp + 0x48], xmm1
cvtss2sd xmm1, xmm3
movsd qword [esp + 0x10], xmm7
addsd xmm7, xmm6
movsd qword [esp + 0x18], xmm1
subsd xmm1, xmm4
cvtsd2ss xmm7, xmm7
cvtsd2ss xmm1, xmm1
movsd qword [esp + 0x68], xmm6
subss xmm3, xmm1
movss xmm6, dword [esp + 0x98]
movaps xmm5, xmm6
movss dword [esp + 0x40], xmm2
subss xmm2, xmm7
subss xmm5, xmm1
cvtss2sd xmm3, xmm3
cvtss2sd xmm6, xmm6
cvtss2sd xmm2, xmm2
cvtss2sd xmm5, xmm5
mulsd xmm2, xmm5
movss xmm5, dword [esp + 0xc4]
movsd qword [esp + 0x50], xmm4
movaps xmm4, xmm5
cvtss2sd xmm5, xmm5
subss xmm4, xmm7
cvtss2sd xmm4, xmm4
mulsd xmm4, xmm3
movss dword [esp + 0x74], xmm1
subsd xmm2, xmm4
cvtsd2ss xmm2, xmm2
pxor xmm1, xmm1
movsd qword [esp + 0x30], xmm6
movss dword [esp + 0x90], xmm7
movsd qword [esp], xmm5
movss xmm3, dword [esp + 0x44]
movss xmm4, dword [esp + 0x94]
movss xmm6, dword [0x476b54]
comiss xmm2, xmm1
movss xmm1, dword [esp + 0x48]
movss xmm2, dword [esp + 0x40]
jbe 0x408a81
movsd xmm5, qword [esp + 0x68]
movsd xmm7, qword [esp + 0x30]
addsd xmm5, qword [esp]
subsd xmm7, qword [esp + 0x50]
movsd qword [esp + 0x68], xmm5
movsd qword [esp + 0x30], xmm7
jmp 0x408afb
movss dword [esp + 0x44], xmm3
movss dword [esp + 0x48], xmm1
movss dword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x68]
movsd xmm3, qword [esp + 0x18]
subsd xmm2, xmm1
movsd xmm5, qword [esp + 0x50]
movsd xmm7, qword [esp]
addsd xmm3, xmm5
subsd xmm7, xmm1
cvtsd2ss xmm2, xmm2
cvtsd2ss xmm3, xmm3
movsd xmm1, qword [esp + 0x30]
movss dword [esp + 0x90], xmm2
addsd xmm1, xmm5
movsd qword [esp + 0x30], xmm1
movss dword [esp + 0x74], xmm3
movsd qword [esp + 0x68], xmm7
movss xmm2, dword [esp + 0x40]
movss xmm1, dword [esp + 0x48]
movss xmm3, dword [esp + 0x44]
cvtsd2ss xmm7, qword [esp + 0x30]
cvtsd2ss xmm5, qword [esp + 0x68]
movss dword [esp + 0x78], xmm7
movss dword [esp + 0x94], xmm4
movss xmm4, dword [esp + 0x90]
movss xmm7, dword [esp + 0xa4]
addss xmm4, xmm5
addss xmm2, dword [esp + 0xc4]
addss xmm7, dword [esp + 0x98]
mulss xmm4, dword [0x476b58]
mulss xmm2, dword [0x476b58]
mulss xmm7, dword [0x476b58]
movss xmm5, dword [esp + 0x74]
movss dword [esp + 0xa4], xmm7
movss xmm6, dword [esp + 0x88]
addss xmm5, dword [esp + 0x78]
subss xmm6, xmm3
mulss xmm5, dword [0x476b58]
movss dword [esp + 0x88], xmm6
subss xmm7, xmm5
movaps xmm5, xmm2
mulss xmm6, xmm7
subss xmm5, xmm4
movss xmm4, dword [esp + 0x8c]
movss dword [esp + 0x70], xmm7
subss xmm4, xmm1
movss dword [esp + 0x8c], xmm4
mulss xmm4, xmm5
movss dword [esp + 0x84], xmm5
subss xmm6, xmm4
movss dword [esp + 0x4c], xmm6
andps xmm6, xmmword [0x476980]
movss xmm4, dword [esp + 0x94]
comiss xmm6, dword [0x476b5c]
movss xmm6, dword [0x476b54]
jbe 0x408c67
movss xmm7, dword [esp + 0xa4]
subss xmm2, xmm3
subss xmm7, xmm1
mulss xmm2, dword [esp + 0x70]
movss xmm5, dword [esp + 0x84]
mulss xmm5, xmm7
subss xmm5, xmm2
movss xmm2, dword [esp + 0x88]
divss xmm5, dword [esp + 0x4c]
mulss xmm2, xmm5
mulss xmm5, dword [esp + 0x8c]
subss xmm3, xmm2
subss xmm1, xmm5
subss xmm4, xmm3
movss xmm2, dword [esp + 0xa0]
cvtss2sd xmm4, xmm4
subss xmm2, xmm1
mulsd xmm4, xmm4
cvtss2sd xmm2, xmm2
mulsd xmm2, xmm2
addsd xmm4, xmm2
sqrtsd xmm4, xmm4
cvtsd2ss xmm4, xmm4
jmp 0x408c72
movaps xmm4, xmm0
pxor xmm3, xmm3
pxor xmm1, xmm1
comiss xmm4, dword [esp + 0xc8]
jbe 0x408c7f
movaps xmm4, xmm0
comiss xmm4, xmm6
jbe 0x408c92
movss xmm2, dword [eax*4 + 0x84c7bc]
comiss xmm2, xmm6
ja 0x408cc5
inc eax
comiss xmm4, xmm6
movss dword [eax*4 + 0x84c7bc], xmm4
movss dword [eax*4 + 0x8256bc], xmm3
movss dword [eax*4 + 0x838f3c], xmm1
mov dword [eax*4 + 0x86003c], 0
jbe 0x408cc5
mov dword [eax*4 + 0x86003c], edx
inc edx
cmp edx, ecx
jle 0x408521
movss xmm1, dword [esp + 0xcc]
inc eax
xor edx, edx
mov ecx, dword [esp + 0xd0]
test eax, eax
mov dword [eax*4 + 0x8256bc], edx
mov dword [eax*4 + 0x838f3c], edx
mov dword [eax*4 + 0x84c7bc], 0x47c34f80
mov dword [eax*4 + 0x86003c], ecx
jle 0x408d50
movss xmm4, dword [0x482828]
mov ecx, 1
movss xmm3, dword [0x476b50]
pxor xmm0, xmm0
movss xmm2, dword [0x476b5c]
xor edx, edx
mov dword [ecx*4 + 0x8738bc], edx
mov dword [ecx*8 + 0x887138], edx
mov dword [ecx*8 + 0x88713c], edx
cmp dword [ecx*4 + 0x86003c], 0
jle 0x409322
inc ecx
cmp ecx, eax
jle 0x408d28
cmp dword [esp + 0xd0], 0
jle 0x408e67
push 1
pop edx
xor ecx, ecx
mov ebx, ecx
test eax, eax
jle 0x408d9a
mov esi, ecx
mov edi, 1
cmp edx, dword [edi*8 + 0x887138]
jl 0x408d93
cmp edx, dword [edi*8 + 0x88713c]
jg 0x408d93
mov ecx, dword [edi*4 + 0x8738bc]
cmp ecx, esi
cmovge esi, ecx
cmp esi, ecx
cmove ebx, edi
inc edi
cmp edi, eax
jle 0x408d70
xor ecx, ecx
mov dword [edx*4 + 0x86003c], ebx
test ebx, ebx
je 0x408e43
mov dword [esp + 0x3c], eax
mov edi, dword [ebx*8 + 0x887138]
mov esi, dword [ebx*8 + 0x88713c]
mov eax, dword [esp + 0xd0]
jmp 0x408dcb
mov dword [edx*4 + 0x86003c], ebx
inc edx
mov dword [ebx*4 + 0x8738bc], ecx
cmp edx, eax
mov dword [ebx*8 + 0x887138], ecx
mov dword [ebx*8 + 0x88713c], ecx
jg 0x409314
test edi, edi
je 0x408e59
test esi, esi
je 0x408e59
cmp edx, edi
jl 0x408df9
cmp edx, esi
jle 0x408dc4
mov eax, dword [esp + 0x3c]
mov ebx, ecx
test eax, eax
jle 0x408e34
mov esi, ecx
mov edi, 1
cmp edx, dword [edi*8 + 0x887138]
jl 0x408e2d
cmp edx, dword [edi*8 + 0x88713c]
jg 0x408e2d
mov ecx, dword [edi*4 + 0x8738bc]
cmp ecx, esi
cmovge esi, ecx
cmp esi, ecx
cmove ebx, edi
inc edi
cmp edi, eax
jle 0x408e0a
xor ecx, ecx
mov dword [edx*4 + 0x86003c], ebx
test ebx, ebx
jne 0x408da9
lea esi, [esi]
inc edx
cmp edx, dword [esp + 0xd0]
jle 0x408d63
jmp 0x408e62
mov eax, dword [esp + 0x3c]
jmp 0x408d63
mov dword [0x90fddc], eax
mov ebx, dword [ebp + 0x1c]
mov eax, dword [esp + 0xd0]
cmp eax, 2
mov dword [0x90fde0], eax
mov dword [ebx], 0
lea edx, [eax - 1]
jl 0x408f01
xor ecx, ecx
xor eax, eax
pxor xmm0, xmm0
xor edi, edi
mov dword [esp + 8], edx
xor esi, esi
mov edx, dword [esi*4 + 0x860044]
test edx, edx
jle 0x408eb6
cmp edx, dword [esi*4 + 0x860040]
jne 0x408eb6
test eax, eax
lea edx, [esi + 1]
lea edi, [esi + 2]
cmove eax, edx
inc ecx
jmp 0x408ef6
test ecx, ecx
jle 0x408eed
mov ecx, edi
sub ecx, eax
cmp ecx, 3
jge 0x408eed
cmp edi, eax
jl 0x408eed
lea edx, [ecx + 1]
cmp edx, 0x18
jle 0x4091c4
lea ecx, [ecx*4 + 4]
push ecx
push 0
lea eax, [eax*4 + 0x86003c]
push eax
call fcn.00458b40
add esp, 0xc
xor ecx, ecx
lea edx, [esi + 1]
xor eax, eax
xor edi, edi
mov esi, edx
cmp edx, dword [esp + 8]
jb 0x408e94
mov ebx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x24]
xor ecx, ecx
mov esi, dword [ebp + 0x28]
cmp dword [esp + 0xd0], 0
jle 0x409268
movss xmm2, dword [0x476b54]
xor edx, edx
movss xmm1, dword [0x476b60]
push 1
pop eax
movss xmm0, dword [0x476b64]
mov edi, dword [eax*4 + 0x86003c]
test edi, edi
jne 0x408fa8
cmp ecx, 1
jle 0x408f74
mov edx, dword [ebp + 0x28]
movss xmm3, dword [edx + ecx*4 - 4]
comiss xmm3, xmm2
jbe 0x408f74
inc ecx
mov ebx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
mov edx, dword [ebx + ecx*4 - 8]
mov dword [ebx + ecx*4 - 4], edx
mov edx, dword [ebp + 0x28]
mov esi, dword [edi + ecx*4 - 8]
mov dword [edi + ecx*4 - 4], esi
mov dword [edx + ecx*4 - 4], 0
mov edx, dword [ebp + 0x1c]
inc ecx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x20]
mov dword [edx], ecx
mov esi, dword [ebx + eax*4 - 4]
mov edx, dword [ebp + 0x10]
mov dword [edi + ecx*4 - 4], esi
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x28]
mov ebx, dword [edx + eax*4 - 4]
xor edx, edx
mov dword [esi + ecx*4 - 4], ebx
mov dword [edi + ecx*4 - 4], 0
jmp 0x409192
cmp eax, 1
je 0x4092d2
cmp edi, dword [eax*4 + 0x860038]
je 0x40901c
cmp ecx, 1
jle 0x408fef
mov ebx, dword [ebp + 0x28]
movss xmm3, dword [ebx + ecx*4 - 4]
comiss xmm3, xmm2
jbe 0x408fef
inc ecx
mov esi, dword [ebp + 0x20]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov esi, dword [ebp + 0x24]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov ebx, dword [ebp + 0x28]
mov dword [ebx + ecx*4 - 4], 0
mov ebx, dword [ebp + 0x1c]
inc ecx
mov esi, dword [ebp + 0xc]
mov dword [ebx], ecx
mov ebx, dword [esi + eax*4 - 4]
mov esi, dword [ebp + 0x20]
mov dword [esi + ecx*4 - 4], ebx
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebx + eax*4 - 4]
mov ebx, dword [ebp + 0x24]
mov dword [ebx + ecx*4 - 4], esi
mov esi, dword [ebp + 0x28]
mov dword [esi + ecx*4 - 4], 0
test edx, edx
jne 0x409022
mov edx, eax
cmp eax, edx
jle 0x409110
mov esi, dword [ebp + 0xc]
movss xmm5, dword [edi*4 + 0x84c7bc]
mulss xmm5, xmm1
movss xmm3, dword [esi + eax*4 - 4]
mov ebx, dword [esi + eax*4 - 4]
cmp eax, dword [esp + 0xd0]
mov dword [esp + 0xc], ebx
subss xmm3, dword [esi + edx*4 - 4]
mov esi, dword [ebp + 0x10]
cvtss2sd xmm3, xmm3
movss xmm4, dword [esi + eax*4 - 4]
mulsd xmm3, xmm3
subss xmm4, dword [esi + edx*4 - 4]
cvtss2sd xmm4, xmm4
mulsd xmm4, xmm4
mov ebx, dword [esi + eax*4 - 4]
addsd xmm3, xmm4
sqrtsd xmm3, xmm3
cvtsd2ss xmm3, xmm3
mov dword [esp + 8], ebx
jne 0x40908d
movaps xmm3, xmm0
mov ebx, dword [edi*4 + 0x84c7bc]
mov dword [esp + 0x10], ebx
comiss xmm3, xmm5
jbe 0x409110
cmp eax, edx
je 0x409110
mov ebx, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov dword [esp], edi
mov esi, dword [edi*4 + 0x8256bc]
mov eax, dword [ebp + 0x20]
mov edi, dword [edi*4 + 0x838f3c]
mov dword [ebx + ecx*4], edi
mov edi, dword [ebp + 0x28]
mov dword [eax + ecx*4], esi
mov esi, dword [esp + 0x10]
mov dword [edi + ecx*4], esi
mov esi, dword [ebp + 0xc]
mov esi, dword [esi + edx*4 - 4]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [ebp + 0x10]
mov edx, dword [esi + edx*4 - 4]
mov esi, dword [ebp + 0x1c]
mov dword [ebx + ecx*4 + 4], edx
mov edx, 0x47c34f80
mov dword [edi + ecx*4 + 4], edx
add ecx, 3
mov dword [esi], ecx
mov esi, dword [esp + 0xc]
mov dword [eax + ecx*4 - 4], esi
mov eax, dword [esp + 8]
mov dword [ebx + ecx*4 - 4], eax
mov dword [edi + ecx*4 - 4], edx
mov eax, dword [esp + 4]
mov edx, eax
mov edi, dword [esp]
cmp edi, dword [eax*4 + 0x860040]
je 0x409192
cmp eax, edx
je 0x409190
mov esi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [edi*4 + 0x8256bc]
mov dword [esi + ecx*4], eax
mov eax, dword [edi*4 + 0x838f3c]
mov dword [ebx + ecx*4], eax
mov eax, dword [ebp + 0x28]
mov edi, dword [edi*4 + 0x84c7bc]
mov dword [eax + ecx*4], edi
mov edi, dword [ebp + 0xc]
mov dword [eax + ecx*4 + 4], 0x47c34f80
mov eax, dword [ebp + 0x1c]
mov edi, dword [edi + edx*4 - 4]
mov dword [esi + ecx*4 + 4], edi
mov edi, dword [ebp + 0x10]
mov edx, dword [edi + edx*4 - 4]
mov dword [ebx + ecx*4 + 4], edx
add ecx, 3
mov dword [eax], ecx
mov eax, dword [esp + 4]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + eax*4 - 4]
mov dword [esi + ecx*4 - 4], edx
mov esi, dword [edi + eax*4 - 4]
mov dword [ebx + ecx*4 - 4], esi
mov ebx, dword [ebp + 0x28]
mov dword [ebx + ecx*4 - 4], 0x47c34f80
xor edx, edx
inc eax
cmp eax, dword [esp + 0xd0]
jg 0x40925f
cmp ecx, 0x4e16
jle 0x408f34
mov eax, dword [ebp + 0x2c]
mov dword [eax], 1
add esp, 0xd4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x28
cmp edx, 4
jl 0x40925b
lea edi, [eax*4]
mov dword [esp + 4], edi
lea edi, [eax*4 + 0x86004c]
and edi, 0xf
mov ecx, edi
neg ecx
add ecx, 0x10
shr ecx, 2
test edi, edi
cmovne edi, ecx
lea ebx, [edi + 4]
cmp edx, ebx
jl 0x40925b
mov ecx, edx
sub ecx, edi
and ecx, 3
neg ecx
add ecx, edx
test edi, edi
jbe 0x409223
mov dword [esp], esi
xor ebx, ebx
mov esi, dword [esp + 4]
mov dword [esi + ebx*4 + 0x86003c], 0
inc ebx
cmp ebx, edi
jb 0x409210
mov esi, dword [esp]
mov ebx, dword [esp + 4]
pxor xmm0, xmm0
movdqa xmmword [ebx + edi*4 + 0x86003c], xmm0
add edi, 4
cmp edi, ecx
jb 0x40922b
cmp ecx, edx
jae 0x408eed
shl eax, 2
mov dword [eax + ecx*4 + 0x86003c], 0
inc ecx
cmp ecx, edx
jb 0x409246
jmp 0x408eed
xor ecx, ecx
jmp 0x40923b
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x1c]
test byte [esp + 0xb8], 1
je 0x4091b5
movss xmm0, dword [0x476b68]
inc ecx
mov dword [ebx], ecx
mov eax, dword [esi]
comiss xmm0, dword [esi]
jbe 0x4092aa
mov ebx, dword [ebp + 0x20]
mov dword [esi + ecx*4 - 4], eax
mov edx, dword [ebx]
mov dword [ebx + ecx*4 - 4], edx
mov edx, dword [edi]
mov dword [edi + ecx*4 - 4], edx
add esp, 0xd4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x28
mov edx, dword [ebp + 0x20]
mov ebx, dword [edi + 4]
mov dword [edi + ecx*4 - 4], ebx
mov eax, dword [edx + 4]
mov dword [edx + ecx*4 - 4], eax
mov dword [esi + ecx*4 - 4], 0
add esp, 0xd4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x28
cmp ecx, 1
jle 0x408fef
mov ebx, dword [ebp + 0x28]
movss xmm3, dword [ebx + ecx*4 - 4]
comiss xmm3, xmm2
jbe 0x408fef
inc ecx
mov esi, dword [ebp + 0x20]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov esi, dword [ebp + 0x24]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov ebx, dword [ebp + 0x28]
mov dword [ebx + ecx*4 - 4], 0
jmp 0x408fef
mov eax, dword [esp + 0x3c]
mov dword [0x90fddc], eax
jmp 0x408e67
mov dword [esp + 0x30], edx
mov ebx, edx
mov dword [0x90fdd8], eax
mov esi, 1
mov edi, dword [esi*4 + 0x86003c]
test edi, edi
jle 0x40934b
cmp ecx, esi
jle 0x409345
mov edx, edi
jmp 0x40934b
test ebx, ebx
jne 0x409355
mov ebx, edi
test edx, edx
je 0x409359
test ebx, ebx
jne 0x40935e
jmp 0x409359
test edx, edx
jne 0x40935e
inc esi
cmp esi, eax
jle 0x409332
mov dword [esp + 0x30], edx
xor edx, edx
movss xmm0, dword [ecx*4 + 0x84c7bc]
comiss xmm1, xmm0
jbe 0x409378
pxor xmm6, xmm6
jmp 0x4093aa
movaps xmm5, xmm1
divss xmm5, xmm0
movss xmm6, dword [0x476b6c]
movss xmm7, dword [0x476b6c]
subss xmm6, xmm5
mulss xmm6, xmm6
subss xmm7, xmm6
movaps xmm6, xmm0
mulss xmm6, xmm3
sqrtss xmm7, xmm7
mulss xmm6, xmm7
movaps xmm5, xmm6
andps xmm5, xmmword [0x476980]
comiss xmm2, xmm5
jbe 0x4093bf
mov dword [esp + 0x34], edx
jmp 0x4093e5
mulss xmm0, xmm4
mov edi, 3
divss xmm0, xmm6
cvttss2si esi, xmm0
cmp esi, 3
cmovl esi, edi
mov edi, 7
cmp esi, 7
cmovge esi, edi
mov dword [esp + 0x34], esi
cmp ebx, dword [esp + 0x30]
jl 0x408d4b
movss xmm0, dword [ecx*4 + 0x84c7bc]
movaps xmm5, xmm1
mov dword [esp + 0x3c], eax
addss xmm5, xmm0
movss xmm6, dword [ecx*4 + 0x8256bc]
mov esi, dword [ecx*4 + 0x8738bc]
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x28], xmm4
movss dword [esp + 0xcc], xmm1
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 0xc]
movss xmm4, dword [eax + edi*4 - 8]
movaps xmm2, xmm6
subss xmm2, xmm4
movaps xmm0, xmm2
andps xmm0, xmmword [0x476980]
comiss xmm0, xmm5
ja 0x409677
mov edx, dword [ebp + 0x10]
movss xmm3, dword [ecx*4 + 0x838f3c]
movaps xmm1, xmm3
movss xmm0, dword [edx + edi*4 - 8]
movss dword [esp + 0x38], xmm0
subss xmm1, xmm0
movaps xmm7, xmm1
andps xmm7, xmmword [0x476980]
comiss xmm7, xmm5
ja 0x409677
movss xmm0, dword [eax + edi*4 - 4]
movaps xmm7, xmm6
movss dword [esp + 0x20], xmm0
subss xmm7, xmm0
movss dword [esp + 0x24], xmm7
andps xmm7, xmmword [0x476980]
comiss xmm7, xmm5
ja 0x409677
mov edx, dword [ebp + 0x10]
movaps xmm7, xmm3
movss xmm0, dword [edx + edi*4 - 4]
movss dword [esp + 0x18], xmm0
subss xmm7, xmm0
movss dword [esp + 0x1c], xmm7
andps xmm7, xmmword [0x476980]
comiss xmm7, xmm5
ja 0x409677
xorps xmm2, xmmword [0x476990]
xorps xmm1, xmmword [0x476990]
cvtss2sd xmm7, xmm2
cvtss2sd xmm0, xmm1
mulsd xmm7, xmm7
mulsd xmm0, xmm0
addsd xmm7, xmm0
sqrtsd xmm7, xmm7
cvtsd2ss xmm7, xmm7
subss xmm7, dword [esp + 0x2c]
andps xmm7, xmmword [0x476980]
comiss xmm7, dword [esp + 0xcc]
ja 0x409677
movss xmm0, dword [esp + 0x24]
movss xmm7, dword [esp + 0x1c]
xorps xmm0, xmmword [0x476990]
xorps xmm7, xmmword [0x476990]
cvtss2sd xmm0, xmm0
cvtss2sd xmm7, xmm7
mulsd xmm0, xmm0
mulsd xmm7, xmm7
addsd xmm0, xmm7
sqrtsd xmm0, xmm0
cvtsd2ss xmm0, xmm0
subss xmm0, dword [esp + 0x2c]
andps xmm0, xmmword [0x476980]
comiss xmm0, dword [esp + 0xcc]
ja 0x409677
movss xmm7, dword [esp + 0x20]
movss xmm0, dword [esp + 0x18]
subss xmm7, xmm4
subss xmm0, dword [esp + 0x38]
cvtss2sd xmm7, xmm7
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x10], xmm7
movsd qword [esp + 8], xmm0
mulsd xmm7, xmm7
mulsd xmm0, xmm0
addsd xmm7, xmm0
pxor xmm0, xmm0
movsd qword [esp], xmm7
comisd xmm7, xmm0
jbe 0x40969a
cvtss2sd xmm2, xmm2
cvtss2sd xmm1, xmm1
mulsd xmm2, qword [esp + 0x10]
mulsd xmm1, qword [esp + 8]
pxor xmm0, xmm0
addsd xmm2, xmm1
comisd xmm0, xmm2
jb 0x40969a
divsd xmm2, qword [esp]
xorps xmm2, xmmword [0x4769a0]
pxor xmm0, xmm0
comisd xmm2, xmm0
jb 0x40969a
movsd xmm0, qword [0x476a18]
comisd xmm0, xmm2
jb 0x40969a
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 8]
cvtss2sd xmm7, dword [esp + 0x38]
cvtss2sd xmm4, xmm4
mulsd xmm0, xmm2
mulsd xmm1, xmm2
addsd xmm4, xmm0
addsd xmm7, xmm1
cvtsd2ss xmm4, xmm4
cvtsd2ss xmm7, xmm7
movaps xmm2, xmm6
subss xmm3, xmm7
subss xmm2, xmm4
cvtss2sd xmm3, xmm3
cvtss2sd xmm2, xmm2
mulsd xmm3, xmm3
mulsd xmm2, xmm2
movss xmm0, dword [esp + 0x2c]
addsd xmm2, xmm3
sqrtsd xmm2, xmm2
cvtsd2ss xmm2, xmm2
subss xmm0, xmm2
andps xmm0, xmmword [0x476980]
comiss xmm0, dword [esp + 0xcc]
jbe 0x40969a
cmp esi, dword [esp + 0x34]
jge 0x4096c6
test esi, esi
jle 0x4096bd
xor esi, esi
mov dword [ecx*4 + 0x8738bc], esi
mov dword [ecx*8 + 0x887138], esi
mov dword [ecx*8 + 0x88713c], esi
jmp 0x4096bd
inc esi
mov dword [ecx*4 + 0x8738bc], esi
cmp dword [ecx*8 + 0x887138], 0
jne 0x4096b6
lea edx, [edi - 1]
mov dword [ecx*8 + 0x887138], edx
mov dword [ecx*8 + 0x88713c], edi
inc edi
cmp edi, ebx
jle 0x40942f
movss xmm2, dword [0x476b5c]
xor edx, edx
movss xmm3, dword [0x476b50]
movss xmm4, dword [esp + 0x28]
movss xmm1, dword [esp + 0xcc]
mov eax, dword [esp + 0x3c]
jmp 0x408d4b