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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x364
push ebx
movss xmm0, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
movzx edx, word [esi + 0xe]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x30]
add ecx, 0x40
mov dword [esp + 0x310], ecx
push edi
cvtsi2ss xmm1, edx
lea edi, [esi + 0x60]
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0xc], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x14], edx
movzx eax, word [eax + 8]
mov edx, dword [ecx]
lea ebx, [esi + 0x30]
divss xmm0, xmm1
movss xmm1, dword [0x649444]
push ebx
push eax
divss xmm1, xmm0
push ecx
movss dword [ebp + 0xc], xmm0
movss dword [esp + 0xc8], xmm1
call dword [edx + 8]
movss xmm2, dword [edi + 4]
subss xmm2, dword [esp + 0x1c]
movss xmm3, dword [edi + 8]
subss xmm3, dword [esp + 0x20]
movss xmm1, dword [edi]
subss xmm1, dword [esp + 0x18]
movss xmm5, dword [edi + 0xc]
subss xmm5, dword [esp + 0x24]
movaps xmm0, xmm2
mulss xmm0, xmm2
movaps xmm4, xmm3
mulss xmm4, xmm3
addss xmm0, xmm4
movaps xmm4, xmm1
mulss xmm4, xmm1
add esp, 0xc
addss xmm0, xmm4
comiss xmm0, dword [0x64de78]
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x14], xmm3
movss dword [esp + 0x18], xmm5
jbe 0x586efc
call fcn.00586990
xorps xmm0, xmm0
movss xmm1, dword [esi + 0x14]
comiss xmm1, xmm0
mov dword [esi + 0x1c], 0
movss dword [esp + 0xd0], xmm0
jbe 0x58e254
mov ecx, dword [esi + 0x18]
push ecx
push esi
call fcn.00586db0
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [esp + 0xd8]
movss xmm1, dword [esi + 0x14]
add esp, 8
comiss xmm1, xmm0
movss dword [esp + 0xd0], xmm0
ja 0x586ec7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0xe]
movss xmm6, dword [esi + 0xb0]
lea edi, [esi + 0xb0]
cvtsi2ss xmm4, eax
mulss xmm4, dword [ebp + 0xc]
lea edx, [eax + 1]
imul edx, eax
movaps xmm0, xmm4
mulss xmm6, xmm0
subss xmm1, xmm6
movss xmm6, dword [esi + 0xb4]
mulss xmm6, xmm0
subss xmm2, xmm6
movss xmm6, dword [esi + 0xb8]
mulss xmm6, xmm0
movss xmm0, dword [esp + 0xbc]
subss xmm3, xmm6
mulss xmm0, xmm0
mulss xmm0, dword [0x649530]
cvtsi2ss xmm6, edx
mov eax, edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
movss dword [esp + 0xcc], xmm0
divss xmm0, xmm6
mulss xmm1, xmm0
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 8]
movss dword [esp + 0x88], xmm1
mulss xmm2, xmm0
movss dword [esp + 0x8c], xmm2
mulss xmm3, xmm0
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0xc]
mulss xmm1, xmm4
addss xmm1, dword [edi]
movss dword [edi], xmm1
movss dword [esp + 0x90], xmm3
mulss xmm2, xmm4
addss xmm2, dword [edi + 4]
movss dword [edi + 4], xmm2
mulss xmm3, xmm4
addss xmm3, dword [edi + 8]
movss dword [edi + 8], xmm3
mov eax, dword [edi + 0xc]
mov dword [edi + 0xc], eax
push ebx
lea eax, [esi + 0x70]
mov dword [esp + 0x70], ecx
push eax
lea ecx, [esp + 0xe8]
mulss xmm5, xmm0
push ecx
movss dword [esp + 0xa0], xmm5
mov dword [esp + 0x7c], edx
call fcn.00593dd0
lea eax, [esi + 0x70]
push ebx
push eax
call fcn.00555cf0
lea edx, [esp + 0xe8]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.00555600
movzx eax, word [esi + 0xe]
movss xmm1, dword [esi + 0xc0]
movss xmm0, dword [esp + 0x2c]
movss xmm4, dword [esi + 0xc4]
cvtsi2ss xmm3, eax
mulss xmm3, dword [ebp + 0xc]
movaps xmm2, xmm3
lea ebx, [esi + 0xc0]
mulss xmm1, xmm2
subss xmm0, xmm1
movss xmm1, dword [esp + 0x30]
mulss xmm4, xmm2
subss xmm1, xmm4
movss xmm4, dword [esi + 0xc8]
add esp, 0x10
mulss xmm4, xmm2
movss xmm2, dword [esp + 0x24]
lea ecx, [eax + 1]
imul ecx, eax
subss xmm2, xmm4
movss xmm4, dword [esp + 0xcc]
cvtsi2ss xmm5, ecx
divss xmm4, xmm5
movss xmm5, dword [esp + 0x28]
mulss xmm0, xmm4
movss dword [esp + 0x78], xmm0
mulss xmm0, xmm3
addss xmm0, dword [ebx]
mov edx, ebx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x54], eax
mov eax, dword [edx + 8]
mulss xmm1, xmm4
mov dword [esp + 0x58], ecx
mov ecx, dword [edx + 0xc]
movss dword [ebx], xmm0
movss dword [esp + 0x7c], xmm1
mulss xmm2, xmm4
movss dword [esp + 0x80], xmm2
mulss xmm1, xmm3
addss xmm1, dword [ebx + 4]
movss dword [ebx + 4], xmm1
mulss xmm2, xmm3
addss xmm2, dword [ebx + 8]
movss dword [ebx + 8], xmm2
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0xc], edx
movss xmm0, dword [esi + 0xd0]
subss xmm0, dword [esp + 0x88]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esi + 0xd4]
subss xmm0, dword [esp + 0x8c]
mov dword [esp + 0x5c], eax
movss dword [esp + 0x9c], xmm0
movss xmm0, dword [esi + 0xd8]
subss xmm0, dword [esp + 0x90]
lea eax, [esi + 0x70]
push eax
lea eax, [esp + 0x9c]
mov dword [esp + 0x64], ecx
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [esi + 0xdc]
subss xmm0, dword [esp + 0x98]
push eax
mov ecx, eax
mulss xmm5, xmm4
push ecx
movss dword [esp + 0x90], xmm5
movss dword [esp + 0xb0], xmm0
call fcn.005932e0
movss xmm1, dword [esp + 0xa0]
movss xmm0, dword [esp + 0x98]
movss xmm3, dword [esp + 0x80]
movaps xmm2, xmm1
mulss xmm2, xmm1
movss xmm1, dword [esp + 0x9c]
mulss xmm0, xmm0
addss xmm0, xmm2
movaps xmm2, xmm1
mulss xmm2, xmm1
addss xmm0, xmm2
comiss xmm0, dword [0x65c958]
movss xmm2, dword [esp + 0x78]
movaps xmm1, xmm2
mulss xmm1, xmm2
movaps xmm4, xmm3
mulss xmm4, xmm3
addss xmm1, xmm4
movss xmm4, dword [esp + 0x7c]
movaps xmm5, xmm4
mulss xmm5, xmm4
addss xmm1, xmm5
ja 0x58e24b
comiss xmm1, dword [0x65c954]
ja 0x58e24b
comiss xmm0, dword [0x65c950]
ja 0x58721f
comiss xmm1, dword [0x65c94c]
jbe 0x587373
movzx edx, word [esi + 0xe]
movss xmm5, dword [ebp + 0xc]
movss xmm1, dword [0x649534]
add edx, 1
cvtsi2ss xmm0, edx
mulss xmm0, xmm5
mulss xmm0, xmm1
movaps xmm6, xmm0
mulss xmm6, dword [esp + 0x88]
addss xmm6, dword [esp + 0x64]
movss dword [edi], xmm6
movss xmm6, dword [esp + 0x8c]
mulss xmm6, xmm0
addss xmm6, dword [esp + 0x68]
movss dword [edi + 4], xmm6
movss xmm6, dword [esp + 0x90]
mulss xmm6, xmm0
addss xmm6, dword [esp + 0x6c]
movss xmm0, dword [esp + 0x70]
movss dword [edi + 8], xmm6
movss dword [edi + 0xc], xmm0
movzx eax, word [esi + 0xe]
add eax, 1
cvtsi2ss xmm0, eax
mulss xmm0, xmm5
mulss xmm0, xmm1
mulss xmm2, xmm0
addss xmm2, dword [esp + 0x54]
mulss xmm4, xmm0
addss xmm4, dword [esp + 0x58]
mulss xmm3, xmm0
addss xmm3, dword [esp + 0x5c]
movss xmm0, dword [esp + 0x60]
movss dword [ebx], xmm2
movss dword [ebx + 4], xmm4
movss dword [ebx + 8], xmm3
movss dword [ebx + 0xc], xmm0
xorps xmm0, xmm0
movss dword [esp + 0xa4], xmm0
movss dword [esp + 0xa0], xmm0
movss dword [esp + 0x9c], xmm0
movss dword [esp + 0x98], xmm0
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x6c], xmm0
movss dword [esp + 0x68], xmm0
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x94], xmm0
movss dword [esp + 0x90], xmm0
movss dword [esp + 0x8c], xmm0
movss dword [esp + 0x88], xmm0
movss dword [esp + 0x60], xmm0
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x84], xmm0
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x7c], xmm0
movss dword [esp + 0x78], xmm0
movss xmm0, dword [esi + 0xe0]
subss xmm0, dword [esp + 0x64]
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [esi + 0xe4]
subss xmm0, dword [esp + 0x68]
movss dword [esp + 0xac], xmm0
movss xmm0, dword [esi + 0xe8]
subss xmm0, dword [esp + 0x6c]
lea edi, [esi + 0x70]
push edi
lea ecx, [esp + 0xac]
movss dword [esp + 0xb4], xmm0
movss xmm0, dword [esi + 0xec]
subss xmm0, dword [esp + 0x74]
push ecx
mov edx, ecx
push edx
movss dword [esp + 0xc0], xmm0
call fcn.005932e0
push edi
lea eax, [esp + 0x68]
push eax
mov ecx, eax
push ecx
call fcn.005932e0
push edi
lea edx, [esp + 0x8c]
push edx
mov eax, edx
push eax
call fcn.005932e0
push edi
lea ecx, [esp + 0x58]
push ecx
mov edx, ecx
push edx
call fcn.005932e0
push edi
lea eax, [esp + 0x7c]
push eax
mov ecx, eax
push ecx
call fcn.005932e0
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
shl eax, 6
push eax
call fcn.005810e0
mov ecx, dword [esi]
xor ebx, ebx
add esp, 4
cmp dword [ecx + 0x10], ebx
mov dword [esp + 0x30c], eax
mov dword [esp + 0x34], ebx
jbe 0x5874b8
mov dword [esp + 0xc4], ebx
mov edi, eax
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
mov ecx, dword [esp + 0xc4]
add eax, ecx
cmp dword [eax + 8], 0
mov dword [esp + 0xcc], eax
je 0x587498
mov ecx, dword [esi + 0x108]
mov eax, dword [esi + 4]
mov edx, dword [eax]
add ecx, ebx
push ecx
mov ecx, dword [esp + 0xd0]
movzx ecx, word [ecx + 0xe]
push edi
push ecx
push eax
call dword [edx + 0x10]
add esp, 0x10
lea eax, [esi + 0x70]
push eax
push edi
push edi
call fcn.00593dd0
mov eax, dword [esp + 0x34]
mov edx, dword [esi]
add dword [esp + 0xc4], 0x10
add eax, 1
add ebx, 0x40
add edi, 0x40
cmp eax, dword [edx + 0x10]
mov dword [esp + 0x34], eax
jb 0x587450
mov eax, dword [esp + 0x38]
lea ecx, [eax*8]
sub ecx, eax
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
call fcn.005810e0
push esi
mov dword [esp + 0x54], eax
call fcn.00585360
add esp, 8
test eax, eax
mov dword [esp + 0xc4], eax
je 0x58753b
mov edx, dword [esi + 0x554]
lea edi, [esi + 0x514]
lea eax, [esi + edx*4 + 0x514]
cmp edi, eax
je 0x58753b
mov eax, dword [edi]
cmp word [eax + 0x5a], 0
je 0x587527
push eax
call fcn.00581290
mov ecx, dword [esi + 0x10]
movzx edx, word [esi + 0xe]
lea eax, [esi + 0x70]
push eax
mov eax, dword [edi]
push ecx
push edx
push eax
call fcn.00581560
add esp, 0x14
mov ecx, dword [esi + 0x554]
add edi, 4
lea edx, [esi + ecx*4 + 0x514]
cmp edi, edx
jne 0x587500
cmp word [esi + 0xe], 0
mov dword [esp + 0xcc], 0
jbe 0x58e1f7
mov ebx, dword [ebp + 8]
xor esi, esi
cmp dword [esp + 0xc4], esi
je 0x589047
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
cmp ecx, esi
jbe 0x58757d
mov eax, dword [esp + 0x4c]
add eax, 0x34
mov dword [eax], esi
add eax, 0x38
sub ecx, 1
jne 0x587573
mov ax, word [ebx + 0x28]
cmp ax, 1
jne 0x587d2f
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x10]
shl eax, 4
push eax
call fcn.005810e0
mov edx, dword [ebx]
add esp, 4
cmp dword [edx + 0x10], esi
mov dword [esp + 0x48], eax
jbe 0x58762f
mov edi, 0xfffffff8
lea ecx, [eax + 8]
sub edi, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x28]
add edx, edi
mov eax, dword [edx + ecx + 4]
add eax, dword [edx + ecx]
add edx, ecx
mov edx, dword [ebx + 0xf0]
lea eax, [eax + eax*4]
shl eax, 5
movss xmm0, dword [eax + edx - 0x10]
lea edx, [eax + edx - 0xa0]
mov eax, dword [edx + 0x80]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
addss xmm1, dword [eax + 0x30]
movss dword [ecx - 8], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [ecx - 4], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [ecx], xmm1
mov eax, dword [eax + 0x3c]
mov dword [ecx + 4], eax
mov edx, dword [ebx]
add esi, 1
add ecx, 0x10
cmp esi, dword [edx + 0x10]
jb 0x5875b5
xor esi, esi
mov ecx, dword [ebx + 0x554]
lea eax, [ebx + 0x514]
lea edx, [ebx + ecx*4 + 0x514]
cmp eax, edx
mov dword [esp + 0x2c], eax
je 0x5878b3
mov edi, edi
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
cmp word [eax + 0x5a], 0
je 0x587891
push eax
call fcn.00581680
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
push edx
call fcn.00584490
mov dword [esp + 0x40], eax
mov eax, dword [ebx]
add esp, 8
cmp dword [eax + 0x10], 0
mov dword [esp + 0x34], 0
jbe 0x587891
mov dword [esp + 0x44], 0
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x44]
lea ecx, [edx + eax]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea edx, [eax*8]
sub edx, eax
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x4c]
shl edi, 5
add edi, dword [ebx + 0xf0]
lea edx, [eax + edx*8]
lea eax, [ecx - 1]
test eax, eax
mov dword [esp + 0x30], edx
jbe 0x5877ac
mov dword [esp + 0x40], eax
lea eax, [eax + eax*4]
shl eax, 5
lea esi, [edi + 0x48]
add edi, eax
movss xmm0, dword [ebp + 0xc]
mov ecx, dword [ebx + 0xf8]
mov edx, dword [esp + 0x30]
movaps xmm1, xmm0
mulss xmm1, dword [esi - 8]
movss dword [esp + 0xc], xmm1
movaps xmm1, xmm0
mulss xmm1, dword [esi - 4]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [esi]
push ecx
mulss xmm1, xmm0
movss dword [esp + 0x18], xmm1
movss xmm0, dword [esi + 4]
add edx, 0x10
push edx
mov edx, dword [esp + 0x34]
movss dword [esp + 0x20], xmm0
mov ecx, dword [esi + 0xd8]
lea eax, [esp + 0x14]
push eax
mov eax, dword [edx]
add ecx, 0x30
push ecx
push eax
call dword [esp + 0x4c]
add esp, 0x14
test eax, eax
je 0x587796
mov ecx, dword [esp + 0x30]
movss xmm0, dword [esp + 0xbc]
mov dword [ecx + 0x34], 1
movss xmm1, dword [esp + 0xc]
mulss xmm1, xmm0
movss dword [esi - 8], xmm1
movss xmm1, dword [esp + 0x10]
mulss xmm1, xmm0
movss dword [esi - 4], xmm1
movss xmm1, dword [esp + 0x14]
mulss xmm1, xmm0
movss dword [esi], xmm1
movss xmm0, dword [esp + 0x18]
movss dword [esi + 4], xmm0
add dword [esp + 0x30], 0x38
add esi, 0xa0
sub dword [esp + 0x40], 1
jne 0x5876e1
mov edx, dword [ebx]
mov eax, dword [edx + 0x28]
mov ecx, dword [esp + 0x44]
cmp dword [eax + ecx + 8], 0
jne 0x587876
movss xmm1, dword [edi + 0x40]
movss xmm0, dword [ebp + 0xc]
mov edx, dword [ebx + 0xf8]
mov esi, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x4c]
mulss xmm1, xmm0
movss dword [esp + 0x10], xmm1
movss xmm1, dword [edi + 0x44]
lea eax, [esi + 0x10]
push eax
mov eax, dword [esp + 0x4c]
mulss xmm1, xmm0
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x38]
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [edi + 0x48]
add eax, edx
mov edx, dword [ecx]
mulss xmm1, xmm0
push eax
movss dword [esp + 0x24], xmm1
movss xmm0, dword [edi + 0x4c]
push edx
movss dword [esp + 0x2c], xmm0
call dword [esp + 0x4c]
add esp, 0x14
test eax, eax
je 0x587876
movss xmm0, dword [esp + 0xbc]
mov dword [esi + 0x34], 1
movss xmm1, dword [esp + 0xc]
mulss xmm1, xmm0
movss dword [edi + 0x40], xmm1
movss xmm1, dword [esp + 0x10]
mulss xmm1, xmm0
movss dword [edi + 0x44], xmm1
movss xmm1, dword [esp + 0x14]
mulss xmm1, xmm0
movss dword [edi + 0x48], xmm1
movss xmm0, dword [esp + 0x18]
movss dword [edi + 0x4c], xmm0
mov eax, dword [esp + 0x34]
mov ecx, dword [ebx]
add dword [esp + 0x44], 0x10
add eax, 1
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
jb 0x587696
mov eax, dword [esp + 0x2c]
mov edx, dword [ebx + 0x554]
add eax, 4
lea ecx, [ebx + edx*4 + 0x514]
cmp eax, ecx
mov dword [esp + 0x2c], eax
jne 0x587650
xor esi, esi
mov edx, dword [ebx]
cmp dword [edx + 0x10], esi
mov dword [esp + 0x34], esi
jbe 0x587d23
mov ecx, dword [esp + 0x48]
lea eax, [ecx + 8]
mov dword [esp + 0x2c], eax
mov eax, 0xfffffff8
sub eax, ecx
mov dword [esp + 0x3c], eax
jmp 0x5878e0
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x28]
add edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
lea ecx, [edx + eax]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea edx, [eax*8]
sub edx, eax
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x4c]
shl esi, 5
add esi, dword [ebx + 0xf0]
lea edx, [eax + edx*8]
xor edi, edi
lea eax, [ecx - 1]
test eax, eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x48], edi
jbe 0x587b32
mov dword [esp + 0x40], eax
lea ebx, [ebx]
mov eax, dword [edx + 0x34]
test eax, eax
jne 0x58793f
test edi, edi
je 0x587b1a
mov ecx, dword [esi + 0x120]
fld dword [ecx + 0x30]
add ecx, 0x30
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x80]
fsub dword [eax + 0x30]
add eax, 0x30
lea edx, [esp + 0xc]
mov dword [esp + 0xc0], edx
fstp dword [esp + 0xc]
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [ecx + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x14]
movss xmm0, dword [ecx + 0xc]
fld dword [esp + 0x10]
subss xmm0, dword [eax + 0xc]
fmul dword [esp + 0x10]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x14]
mov ecx, dword [esi + 0x80]
fmul dword [esp + 0x14]
mov dword [esp + 0x44], ecx
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [esi + 0x90]
fstp dword [esp + 0x38]
mov edx, dword [esp + 0xc0]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x38]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x44]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x14]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x18]
mulss xmm1, dword [eax]
movss dword [esp + 0x198], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov edi, dword [esp + 0x198]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x19c], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], edi
mov edi, dword [esp + 0x19c]
mov dword [edx + 4], edi
subss xmm0, xmm1
movss dword [esp + 0x1a0], xmm0
mov edi, dword [esp + 0x1a0]
mov dword [edx + 8], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edi, dword [esi + 0x80]
add edi, 0x20
push edi
push edi
call fcn.00591360
mov ecx, dword [edi + 0xc]
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0x28]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
movss dword [esp + 0x150], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x28]
lea ecx, [eax + 0x10]
mulss xmm1, dword [eax + 8]
mov edi, dword [esp + 0x150]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x24]
movss dword [esp + 0x154], xmm0
movss xmm0, dword [eax + 0x20]
mulss xmm0, dword [eax + 4]
mov edx, ecx
mov dword [edx], edi
mov edi, dword [esp + 0x154]
mov dword [edx + 4], edi
subss xmm0, xmm1
movss dword [esp + 0x158], xmm0
mov edi, dword [esp + 0x158]
mov dword [edx + 8], edi
mov eax, dword [eax + 0x2c]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov dword [ecx + 0xc], eax
add edx, 0x38
add esi, 0xa0
sub dword [esp + 0x40], 1
mov dword [esp + 0x30], edx
jne 0x587930
cmp dword [edx + 0x34], 0
jne 0x587b40
test edi, edi
je 0x587d08
mov eax, dword [esi + 0x80]
mov ecx, dword [esp + 0x2c]
fld dword [ecx - 8]
add eax, 0x30
fsub dword [eax]
lea edx, [esp + 0xc]
mov dword [esp + 0x40], edx
fstp dword [esp + 0xc]
fld dword [ecx - 4]
fsub dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [ecx]
fsub dword [eax + 8]
fstp dword [esp + 0x14]
movss xmm0, dword [ecx + 4]
fld dword [esp + 0x10]
subss xmm0, dword [eax + 0xc]
fmul dword [esp + 0x10]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x14]
mov ecx, dword [esi + 0x80]
fmul dword [esp + 0x14]
mov dword [esp + 0xc0], ecx
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [esi + 0x90]
fstp dword [esp + 0x48]
mov edx, dword [esp + 0x40]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x48]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0xc0]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 0x18]
mulss xmm0, dword [eax + 4]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x14]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x1b0], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov edi, dword [esp + 0x1b0]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x1b4], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], edi
mov edi, dword [esp + 0x1b4]
mov dword [edx + 4], edi
subss xmm0, xmm1
movss dword [esp + 0x1b8], xmm0
mov edi, dword [esp + 0x1b8]
mov dword [edx + 8], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edi, dword [esi + 0x80]
add edi, 0x20
push edi
push edi
call fcn.00591360
mov ecx, dword [edi + 0xc]
mov dword [edi + 0xc], ecx
mov esi, dword [esi + 0x80]
movss xmm0, dword [esi + 8]
mulss xmm0, dword [esi + 0x24]
movss xmm1, dword [esi + 0x28]
mulss xmm1, dword [esi + 4]
subss xmm0, xmm1
movss xmm1, dword [esi + 8]
mulss xmm1, dword [esi + 0x20]
movss dword [esp + 0x318], xmm0
movss xmm0, dword [esi + 0x28]
mulss xmm0, dword [esi]
lea eax, [esi + 0x10]
subss xmm0, xmm1
movss xmm1, dword [esi]
mulss xmm1, dword [esi + 0x24]
mov ecx, dword [esp + 0x318]
movss dword [esp + 0x31c], xmm0
movss xmm0, dword [esi + 4]
mulss xmm0, dword [esi + 0x20]
mov edx, eax
mov dword [edx], ecx
mov ecx, dword [esp + 0x31c]
mov dword [edx + 4], ecx
subss xmm0, xmm1
movss dword [esp + 0x320], xmm0
mov ecx, dword [esp + 0x320]
mov dword [edx + 8], ecx
mov edx, dword [esi + 0x2c]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebx]
add dword [esp + 0x2c], 0x10
add eax, 1
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
jb 0x5878e0
call fcn.00581110
xor esi, esi
jmp 0x589047
cmp ax, 2
lea edi, [ebx + 0x514]
jne 0x588591
mov edx, dword [ebx + 0x554]
lea eax, [ebx + edx*4 + 0x514]
cmp edi, eax
mov dword [esp + 0x40], edi
je 0x589047
jmp 0x587d60
mov eax, dword [edi]
cmp word [eax + 0x5a], si
je 0x588570
push eax
call fcn.00581680
mov ecx, dword [ebx]
add esp, 4
cmp dword [ecx + 0x10], esi
mov dword [esp + 0x3c], esi
jbe 0x588570
mov dword [esp + 0x34], esi
jmp 0x587d90
mov edx, dword [ebx]
mov eax, dword [edx + 0x28]
mov ecx, dword [esp + 0x34]
add ecx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea edx, [eax*8]
sub edx, eax
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x4c]
shl edi, 5
add edi, dword [ebx + 0xf0]
lea edx, [eax + edx*8]
lea eax, [ecx - 1]
test eax, eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], 0
jbe 0x58834e
mov ecx, edx
lea eax, [ecx + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
add eax, 0xffffffff
lea edx, [eax*8]
sub edx, eax
lea eax, [ecx + edx*8]
mov dword [esp + 0x30], eax
jmp 0x587e00
mov eax, dword [edi + 0x80]
mov edx, dword [esp + 0x40]
movss xmm0, dword [edi + 0x90]
lea ecx, [eax + 0x30]
mov dword [esp + 0x48], ecx
mov ecx, dword [edx]
mov edx, dword [ecx + 0x40]
mov edx, dword [edx + 4]
test edx, edx
lea esi, [edi + 0x40]
movss dword [esp + 0xdc], xmm0
movss xmm0, dword [ebx + 0xf8]
movss dword [esp + 0x140], xmm0
je 0x587e77
cmp edx, 3
jne 0x588329
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0x144]
push edx
mov edx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0xe8]
push esi
push edx
push eax
mov eax, dword [esp + 0x60]
push eax
push ecx
call fcn.005827f0
jmp 0x587ea1
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0x144]
push edx
mov edx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0xe8]
push esi
push edx
push eax
mov eax, dword [esp + 0x60]
push eax
push ecx
call fcn.00583e20
add esp, 0x20
test eax, eax
je 0x588329
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
add edx, 2
cmp edx, dword [esp + 0x38]
mov dword [ecx + 0x24], 1
jae 0x587f6a
mov eax, dword [edi + 0x80]
movss xmm1, dword [eax]
mov ecx, dword [edi + 0x120]
movss xmm0, dword [esp + 0xdc]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [eax + 8]
add ecx, 0x30
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [ecx + 8], xmm1
mov eax, dword [eax + 0x3c]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x120]
mov ecx, dword [esi + 0x180]
movss xmm0, dword [ecx + 0x30]
subss xmm0, dword [eax + 0x30]
add eax, 0x30
add ecx, 0x30
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx + 4]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ecx + 8]
subss xmm0, dword [eax + 8]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ecx + 0xc]
jmp 0x588055
mov eax, dword [edi + 0x120]
movss xmm0, dword [edi + 0x130]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
addss xmm1, dword [eax + 0x30]
movss dword [esp + 0xc], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [esp + 0x14], xmm1
movss xmm0, dword [eax + 0x3c]
movss dword [esp + 0x18], xmm0
mov eax, dword [edi + 0x80]
movss xmm1, dword [eax]
mov ecx, dword [edi + 0x120]
movss xmm0, dword [esp + 0xdc]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [eax + 8]
add ecx, 0x30
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [ecx + 8], xmm1
mov edx, dword [eax + 0x3c]
mov dword [ecx + 0xc], edx
mov eax, dword [edi + 0x120]
movss xmm0, dword [esp + 0xc]
subss xmm0, dword [eax + 0x30]
add eax, 0x30
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x10]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x14]
subss xmm0, dword [eax + 8]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [eax + 0xc]
movss dword [esp + 0x18], xmm0
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x14]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x1c8], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov esi, dword [esp + 0x1c8]
subss xmm0, xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, dword [eax + 0x10]
lea ecx, [eax + 0x20]
movss dword [esp + 0x1cc], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x1cc]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x1d0], xmm0
mov esi, dword [esp + 0x1d0]
mov dword [edx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x80]
lea esi, [eax + 0x20]
push esi
push esi
call fcn.00591360
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0x28]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x2c0], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x28]
mov esi, dword [esp + 0x2c0]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x24]
mulss xmm1, dword [eax]
lea ecx, [eax + 0x10]
movss dword [esp + 0x2c4], xmm0
movss xmm0, dword [eax + 0x20]
mulss xmm0, dword [eax + 4]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x2c4]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x2c8], xmm0
mov esi, dword [esp + 0x2c8]
mov dword [edx + 8], esi
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0xc], eax
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
mov ecx, dword [edi + 0x120]
fld dword [esp + 0x14]
mov dword [esp + 0xc0], ecx
fmul dword [esp + 0x14]
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [edi + 0x130]
fstp dword [esp + 0x48]
lea edx, [esp + 0xc]
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0xc8]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x48]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0xc0]
movups xmmword [eax], xmm0
mov eax, dword [edi + 0x120]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x14]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x1e0], xmm0
movss xmm0, dword [eax + 8]
mulss xmm0, dword [eax + 0x10]
mov esi, dword [esp + 0x1e0]
subss xmm0, xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, dword [eax + 0x10]
lea ecx, [eax + 0x20]
movss dword [esp + 0x1e4], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x1e4]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x1e8], xmm0
mov esi, dword [esp + 0x1e8]
mov dword [edx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x120]
lea esi, [eax + 0x20]
push esi
push esi
call fcn.00591360
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
mov eax, dword [edi + 0x120]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0x28]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x348], xmm0
movss xmm0, dword [eax + 0x28]
mulss xmm0, dword [eax]
mov esi, dword [esp + 0x348]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x24]
mulss xmm1, dword [eax]
lea ecx, [eax + 0x10]
movss dword [esp + 0x34c], xmm0
movss xmm0, dword [eax + 0x20]
mulss xmm0, dword [eax + 4]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x34c]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x350], xmm0
mov esi, dword [esp + 0x350]
mov dword [edx + 8], esi
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
add dword [esp + 0x2c], 0x38
add eax, 1
add ecx, 0xffffffff
add edi, 0xa0
cmp eax, ecx
mov dword [esp + 0x44], eax
jb 0x587e00
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x34]
cmp dword [edx + eax + 8], 0
jne 0x58854f
mov eax, dword [edi + 0x80]
movss xmm0, dword [edi + 0x90]
mov edx, dword [esp + 0x30]
lea ecx, [eax + 0x30]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
mov esi, dword [ecx + 0x40]
mov esi, dword [esi + 4]
movss dword [esp + 0x14c], xmm0
movss xmm0, dword [ebx + 0xf8]
add edx, 0x10
test esi, esi
movss dword [esp + 0x134], xmm0
je 0x5883dc
cmp esi, 3
jne 0x58854f
mov esi, dword [esp + 0xbc]
push esi
mov esi, dword [esp + 0x138]
push esi
push edx
lea edx, [edi + 0x40]
push edx
mov edx, dword [esp + 0x15c]
push edx
push eax
mov eax, dword [esp + 0x60]
push eax
push ecx
call fcn.005827f0
jmp 0x588405
mov esi, dword [esp + 0xbc]
push esi
mov esi, dword [esp + 0x138]
push esi
push edx
lea edx, [edi + 0x40]
push edx
mov edx, dword [esp + 0x15c]
push edx
push eax
mov eax, dword [esp + 0x60]
push eax
push ecx
call fcn.00583e20
add esp, 0x20
test eax, eax
je 0x58854f
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x34], 1
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x14]
mulss xmm1, dword [eax + 8]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x1f8], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov esi, dword [esp + 0x1f8]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x1fc], xmm0
movss xmm0, dword [eax + 0x14]
mulss xmm0, dword [eax]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x1fc]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x200], xmm0
mov esi, dword [esp + 0x200]
mov dword [edx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x80]
lea esi, [eax + 0x20]
push esi
push esi
call fcn.00591360
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
mov edi, dword [edi + 0x80]
movss xmm0, dword [edi + 0x24]
mulss xmm0, dword [edi + 8]
movss xmm1, dword [edi + 4]
mulss xmm1, dword [edi + 0x28]
subss xmm0, xmm1
movss xmm1, dword [edi + 0x20]
mulss xmm1, dword [edi + 8]
movss dword [esp + 0x2d8], xmm0
movss xmm0, dword [edi]
mulss xmm0, dword [edi + 0x28]
mov ecx, dword [esp + 0x2d8]
subss xmm0, xmm1
movss xmm1, dword [edi + 0x24]
mulss xmm1, dword [edi]
movss dword [esp + 0x2dc], xmm0
movss xmm0, dword [edi + 4]
mulss xmm0, dword [edi + 0x20]
lea eax, [edi + 0x10]
mov edx, eax
mov dword [edx], ecx
mov ecx, dword [esp + 0x2dc]
mov dword [edx + 4], ecx
subss xmm0, xmm1
movss dword [esp + 0x2e0], xmm0
mov ecx, dword [esp + 0x2e0]
mov dword [edx + 8], ecx
mov edx, dword [edi + 0x2c]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx]
add dword [esp + 0x34], 0x10
add eax, 1
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x3c], eax
jb 0x587d90
mov edi, dword [esp + 0x40]
xor esi, esi
mov edx, dword [ebx + 0x554]
add edi, 4
lea eax, [ebx + edx*4 + 0x514]
cmp edi, eax
mov dword [esp + 0x40], edi
jne 0x587d60
jmp 0x589047
mov ecx, dword [ebx + 0x554]
lea edx, [ebx + ecx*4 + 0x514]
cmp edi, edx
mov dword [esp + 0x2c], edi
je 0x589047
lea ebx, [ebx]
mov eax, dword [edi]
cmp word [eax + 0x5a], si
je 0x58902b
push eax
call fcn.00581680
mov eax, dword [ebx]
add esp, 4
cmp dword [eax + 0x10], esi
mov dword [esp + 0x3c], esi
jbe 0x58902b
mov dword [esp + 0x40], esi
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x28]
mov ecx, dword [esp + 0x40]
movss xmm2, dword [esp + 0x5c]
movss xmm1, dword [esp + 0x58]
add ecx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea esi, [eax + eax*4]
shl esi, 5
add esi, dword [edx + 0xf0]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [esp + 0x4c]
lea edx, [eax + edx*8]
mov eax, dword [esi + 0x80]
add eax, 0x30
movaps xmm3, xmm1
mulss xmm3, dword [eax + 8]
mulss xmm1, dword [eax]
movaps xmm0, xmm2
mulss xmm0, dword [eax + 4]
mulss xmm2, dword [eax]
subss xmm0, xmm3
movss dword [esp + 0x210], xmm0
movss xmm0, dword [esp + 0x54]
movaps xmm3, xmm0
mulss xmm0, dword [eax + 4]
mulss xmm3, dword [eax + 8]
subss xmm1, xmm0
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x210]
mov dword [esp + 0x1c], edx
movss dword [esp + 0x218], xmm1
movss xmm1, dword [esp + 0x64]
addss xmm1, dword [esp + 0x1c]
subss xmm3, xmm2
movss dword [esp + 0x214], xmm3
mov edx, dword [esp + 0x214]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x218]
mov dword [esp + 0x24], edx
movss xmm0, dword [eax + 0xc]
addss xmm0, dword [esp + 0x70]
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [esp + 0x20]
addss xmm1, dword [esp + 0x68]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [esp + 0x24]
addss xmm1, dword [esp + 0x6c]
lea eax, [ecx - 1]
test eax, eax
mov dword [esp + 0x38], ecx
movss dword [esp + 0x24], xmm1
movss dword [esp + 0x28], xmm0
lea ebx, [esp + 0x1c]
mov dword [esp + 0x44], 0
jbe 0x588d1d
lea eax, [esp + 0xc]
mov ecx, eax
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x38]
add eax, 0xffffffff
lea edx, [eax + eax*4]
shl edx, 5
lea edi, [esi + 0x48]
mov dword [esp + 0xc8], ecx
add esi, edx
jmp 0x588720
movss xmm3, dword [edi + 0x48]
movss xmm2, dword [edi - 8]
subss xmm2, dword [ebx]
movss dword [esp + 0xc], xmm2
movss xmm0, dword [edi - 4]
subss xmm0, dword [ebx + 4]
movss dword [esp + 0x10], xmm0
movss xmm1, dword [edi]
subss xmm1, dword [ebx + 8]
movss dword [esp + 0x14], xmm1
movss xmm4, dword [edi + 4]
subss xmm4, dword [ebx + 0xc]
movss dword [esp + 0x18], xmm4
mov eax, dword [edi + 0x38]
movss xmm4, dword [eax + 4]
movss xmm5, dword [eax + 8]
mulss xmm4, xmm1
mulss xmm1, dword [eax]
mulss xmm5, xmm0
mulss xmm0, dword [eax]
subss xmm4, xmm5
movss dword [esp + 0x328], xmm4
movss xmm4, dword [eax + 8]
mov ecx, dword [esp + 0x328]
mulss xmm4, xmm2
subss xmm4, xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm2
subss xmm0, xmm1
movss dword [esp + 0x330], xmm0
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x330]
movss dword [esp + 0x32c], xmm4
mov edx, dword [esp + 0x32c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
movss xmm0, dword [eax + 0xc]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x310], xmm3
movss dword [esp + 0x178], xmm0
mov edx, dword [esp + 0xc0]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x178]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0xc8]
movups xmmword [eax], xmm0
mov eax, dword [edi + 0x38]
movss xmm0, dword [edi + 0x3c]
movss xmm1, dword [eax]
mov edx, dword [ebp + 8]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0xc]
movss dword [esp + 0xc], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x10]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [eax + 8]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x14]
movss xmm0, dword [edx + 0xf8]
movss dword [esp + 0x14], xmm1
mov edx, dword [eax + 0x40]
cmp dword [edx + 4], 0
mov ecx, dword [edi + 0x38]
movss dword [esp + 0x168], xmm0
jne 0x588cf5
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0x16c]
push edx
mov edx, dword [esp + 0x38]
add edx, 0x10
push edx
lea edx, [esp + 0x18]
push edx
push ebx
lea edx, [edi + 8]
push edx
push ecx
push eax
call fcn.005831c0
add esp, 0x20
test eax, eax
je 0x588cf5
mov eax, dword [esp + 0x30]
mov dword [eax + 0x34], 1
mov eax, dword [edi + 0x38]
movss xmm0, dword [eax + 4]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [esp + 0x14]
mulss xmm0, dword [esp + 0x10]
addss xmm0, xmm1
movss xmm1, dword [esp + 0xc]
mulss xmm1, dword [eax]
addss xmm0, xmm1
movss dword [edi + 0x3c], xmm0
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0x14]
movaps xmm3, xmm1
mulss xmm3, dword [eax + 4]
movaps xmm2, xmm0
mulss xmm2, dword [eax + 8]
subss xmm2, xmm3
movss xmm3, dword [eax + 8]
movss dword [esp + 0x228], xmm2
movss xmm2, dword [eax]
mov ecx, dword [esp + 0x228]
mulss xmm2, xmm1
movss xmm1, dword [esp + 0xc]
mulss xmm3, xmm1
subss xmm2, xmm3
movss dword [esp + 0x22c], xmm2
movss xmm2, dword [eax + 4]
mov edx, dword [esp + 0x22c]
mulss xmm2, xmm1
movss xmm1, dword [eax]
mulss xmm1, xmm0
movss xmm0, dword [esp + 0x310]
subss xmm2, xmm1
mov dword [esp + 0xc], ecx
movss xmm1, dword [esp + 0xc]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x44]
mulss xmm1, xmm0
movss dword [esp + 0x230], xmm2
mov eax, dword [esp + 0x230]
mov dword [esp + 0x14], eax
addss xmm1, dword [ebx]
movss dword [edi - 8], xmm1
movss xmm1, dword [esp + 0x10]
mulss xmm1, xmm0
addss xmm1, dword [ebx + 4]
movss dword [edi - 4], xmm1
movss xmm1, dword [esp + 0x14]
mulss xmm1, xmm0
addss xmm1, dword [ebx + 8]
movss dword [edi], xmm1
mov ecx, dword [ebx + 0xc]
add edx, 2
cmp edx, dword [esp + 0x38]
mov dword [edi + 4], ecx
jae 0x588a7c
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0xd8]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
addss xmm1, dword [eax + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [eax + 8]
add ecx, 0x30
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [ecx + 8], xmm1
mov eax, dword [eax + 0x3c]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0x178]
movss xmm0, dword [ecx + 0x30]
subss xmm0, dword [eax + 0x30]
add eax, 0x30
add ecx, 0x30
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx + 4]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ecx + 8]
subss xmm0, dword [eax + 8]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ecx + 0xc]
jmp 0x588b5b
mov eax, dword [edi + 0xd8]
movss xmm1, dword [edi + 0xe8]
movaps xmm2, xmm1
mulss xmm2, dword [eax]
addss xmm2, dword [eax + 0x30]
movss dword [esp + 0xc], xmm2
movss xmm2, dword [eax + 4]
mulss xmm2, xmm1
addss xmm2, dword [eax + 0x34]
movss dword [esp + 0x10], xmm2
movss xmm2, dword [eax + 8]
mulss xmm2, xmm1
addss xmm2, dword [eax + 0x38]
movss dword [esp + 0x14], xmm2
movss xmm1, dword [eax + 0x3c]
movss dword [esp + 0x18], xmm1
mov eax, dword [edi + 0x38]
movss xmm1, dword [eax]
mov ecx, dword [edi + 0xd8]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [eax + 8]
add ecx, 0x30
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [ecx + 8], xmm1
mov edx, dword [eax + 0x3c]
mov dword [ecx + 0xc], edx
mov eax, dword [edi + 0xd8]
movss xmm0, dword [esp + 0xc]
subss xmm0, dword [eax + 0x30]
add eax, 0x30
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x10]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x14]
subss xmm0, dword [eax + 8]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x18]
fld dword [esp + 0x10]
subss xmm0, dword [eax + 0xc]
fmul dword [esp + 0x10]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x14]
mov eax, dword [edi + 0xd8]
fmul dword [esp + 0x14]
lea ecx, [esp + 0xc]
mov dword [esp + 0x48], eax
mov dword [esp + 0xd4], ecx
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [edi + 0xe8]
fstp dword [esp + 0x34]
mov edx, dword [esp + 0xd4]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x34]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x48]
movups xmmword [eax], xmm0
mov eax, dword [edi + 0xd8]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x14]
mulss xmm1, dword [eax + 8]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x2f0], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov ebx, dword [esp + 0x2f0]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x2f4], xmm0
movss xmm0, dword [eax + 0x14]
mulss xmm0, dword [eax]
mov edx, ecx
mov dword [edx], ebx
mov ebx, dword [esp + 0x2f4]
mov dword [edx + 4], ebx
subss xmm0, xmm1
movss dword [esp + 0x2f8], xmm0
mov ebx, dword [esp + 0x2f8]
mov dword [edx + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ebx, dword [edi + 0xd8]
add ebx, 0x20
push ebx
push ebx
call fcn.00591360
mov ecx, dword [ebx + 0xc]
mov dword [ebx + 0xc], ecx
mov eax, dword [edi + 0xd8]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 4]
mulss xmm1, dword [eax + 0x28]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x240], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x28]
mov ebx, dword [esp + 0x240]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x24]
movss dword [esp + 0x244], xmm0
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x20]
lea ecx, [eax + 0x10]
mov edx, ecx
mov dword [edx], ebx
mov ebx, dword [esp + 0x244]
subss xmm0, xmm1
movss dword [esp + 0x248], xmm0
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x248]
mov dword [edx + 8], ebx
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
add dword [esp + 0x30], 0x38
add ecx, 1
lea ebx, [edi - 8]
add eax, 0xffffffff
add edi, 0xa0
cmp ecx, eax
mov dword [esp + 0x44], ecx
jb 0x588720
mov edi, dword [ebp + 8]
mov ecx, dword [edi]
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x40]
cmp dword [edx + eax + 8], 0
jne 0x589005
movss xmm3, dword [esi + 0x90]
movss xmm1, dword [esi + 0x40]
subss xmm1, dword [ebx]
movss dword [esp + 0xc], xmm1
movss xmm0, dword [esi + 0x44]
subss xmm0, dword [ebx + 4]
movss dword [esp + 0x10], xmm0
movss xmm2, dword [esi + 0x48]
subss xmm2, dword [ebx + 8]
movss dword [esp + 0x14], xmm2
movss xmm4, dword [esi + 0x4c]
subss xmm4, dword [ebx + 0xc]
movss dword [esp + 0x18], xmm4
mov eax, dword [esi + 0x80]
movaps xmm5, xmm0
mulss xmm5, dword [eax + 8]
mulss xmm0, dword [eax]
movaps xmm4, xmm2
mulss xmm4, dword [eax + 4]
mulss xmm2, dword [eax]
subss xmm4, xmm5
movss dword [esp + 0x360], xmm4
mov ecx, dword [esp + 0x360]
movaps xmm4, xmm1
mulss xmm4, dword [eax + 8]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss dword [esp + 0x368], xmm0
subss xmm4, xmm2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x368]
movss dword [esp + 0x364], xmm4
mov edx, dword [esp + 0x364]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
movss xmm0, dword [eax + 0xc]
lea edx, [esp + 0xc]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm3
mov eax, edx
mulss xmm0, xmm3
movss dword [esp + 0x2fc], xmm3
movss dword [esp + 0x2a0], xmm0
mov dword [esp + 0xc8], edx
mov dword [esp + 0xd4], eax
mov edx, dword [esp + 0xc8]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x2a0]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0xd4]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x80]
movss xmm0, dword [esi + 0x84]
movss xmm1, dword [eax]
mov edx, dword [esp + 0x2c]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0xc]
movss dword [esp + 0xc], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x10]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [eax + 8]
mov eax, dword [edx]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x14]
movss xmm0, dword [edi + 0xf8]
movss dword [esp + 0x14], xmm1
mov edx, dword [eax + 0x40]
cmp dword [edx + 4], 0
mov ecx, dword [esi + 0x80]
movss dword [esp + 0x2b0], xmm0
jne 0x589005
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0x2b4]
push edx
mov edx, dword [esp + 0x38]
add edx, 0x10
push edx
lea edx, [esp + 0x18]
push edx
push ebx
lea edx, [esi + 0x50]
push edx
push ecx
push eax
call fcn.005831c0
add esp, 0x20
test eax, eax
je 0x589005
mov eax, dword [esp + 0x30]
mov dword [eax + 0x34], 1
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [esp + 0x10]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [esp + 0x14]
addss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [esp + 0xc]
addss xmm0, xmm1
movss dword [esi + 0x84], xmm0
movss xmm2, dword [eax + 8]
movss xmm3, dword [eax + 4]
movss xmm1, dword [esp + 0x10]
movss xmm0, dword [esp + 0x14]
mulss xmm2, xmm1
mulss xmm1, dword [eax]
mulss xmm3, xmm0
mulss xmm0, dword [eax]
subss xmm2, xmm3
movss xmm3, dword [eax + 8]
movss dword [esp + 0x258], xmm2
movss xmm2, dword [esp + 0xc]
mov ecx, dword [esp + 0x258]
mulss xmm3, xmm2
subss xmm0, xmm3
movss dword [esp + 0x25c], xmm0
movss xmm0, dword [eax + 4]
mov edx, dword [esp + 0x25c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mulss xmm0, xmm2
subss xmm0, xmm1
movss xmm1, dword [esp + 0xc]
movss dword [esp + 0x260], xmm0
movss xmm0, dword [esp + 0x2fc]
mov eax, dword [esp + 0x260]
mov dword [esp + 0x14], eax
mulss xmm1, xmm0
addss xmm1, dword [ebx]
movss dword [esi + 0x40], xmm1
movss xmm1, dword [esp + 0x10]
mulss xmm1, xmm0
addss xmm1, dword [ebx + 4]
movss dword [esi + 0x44], xmm1
movss xmm1, dword [esp + 0x14]
mulss xmm1, xmm0
addss xmm1, dword [ebx + 8]
movss dword [esi + 0x48], xmm1
mov ecx, dword [ebx + 0xc]
mov dword [esi + 0x4c], ecx
mov eax, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
add dword [esp + 0x40], 0x10
add eax, 1
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x3c], eax
jb 0x5885d8
mov edi, dword [esp + 0x2c]
mov ebx, edx
xor esi, esi
mov edx, dword [ebx + 0x554]
add edi, 4
lea eax, [ebx + edx*4 + 0x514]
cmp edi, eax
mov dword [esp + 0x2c], edi
jne 0x5885b0
mov ecx, dword [ebx]
cmp dword [ecx + 0x10], esi
mov dword [esp + 0x34], esi
jbe 0x58a26d
lea edx, [esp + 0x1c]
mov eax, edx
mov ecx, edx
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xc]
mov dword [esp + 0xc8], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x30c]
mov ecx, eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x334], ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x44], edx
mov edi, edi
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea esi, [eax + eax*4]
shl esi, 5
add esi, dword [edx + 0xf0]
lea edx, [eax*8]
sub edx, eax
test ecx, ecx
mov eax, dword [esp + 0x4c]
lea edi, [eax + edx*8]
mov dword [esp + 0x38], ecx
jbe 0x589643
lea ebx, [esi + 0x48]
mov dword [esp + 0x3c], ecx
mov eax, dword [ebx + 0x38]
movss xmm2, dword [eax]
movss xmm0, dword [eax + 4]
movss xmm1, dword [eax + 8]
movss xmm3, dword [ebx + 0x48]
mulss xmm1, xmm3
addss xmm1, dword [eax + 0x38]
mulss xmm0, xmm3
addss xmm0, dword [eax + 0x34]
mulss xmm2, xmm3
addss xmm2, dword [eax + 0x30]
mov eax, dword [esp + 0x98]
mov edx, edi
mov dword [edx], eax
mov ecx, dword [esp + 0x9c]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0xa0]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0xa4]
mov dword [edx + 0xc], ecx
movss xmm4, dword [esp + 0x7c]
movss xmm3, dword [esp + 0x80]
movaps xmm5, xmm1
mulss xmm5, xmm4
movaps xmm6, xmm0
mulss xmm6, xmm3
subss xmm5, xmm6
mulss xmm3, xmm2
movss dword [esp + 0x300], xmm5
movss xmm5, dword [esp + 0x78]
mov edx, dword [esp + 0x300]
movaps xmm6, xmm1
mulss xmm6, xmm5
subss xmm3, xmm6
movss dword [esp + 0x304], xmm3
mov eax, dword [esp + 0x304]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
movaps xmm3, xmm0
mulss xmm3, xmm5
mulss xmm4, xmm2
subss xmm3, xmm4
movss dword [esp + 0x308], xmm3
movss xmm3, dword [esp + 0x84]
mov ecx, dword [esp + 0x308]
movss dword [esp + 0x18], xmm3
mov dword [esp + 0x14], ecx
movss xmm3, dword [edi]
subss xmm3, dword [esp + 0xc]
movss dword [edi], xmm3
movss xmm3, dword [edi + 4]
subss xmm3, dword [esp + 0x10]
movss dword [edi + 4], xmm3
movss xmm3, dword [edi + 8]
subss xmm3, dword [esp + 0x14]
movss dword [edi + 8], xmm3
movss xmm3, dword [edi + 0xc]
subss xmm3, dword [esp + 0x18]
movss dword [edi + 0xc], xmm3
movss xmm4, dword [esp + 0x58]
movss xmm3, dword [esp + 0x5c]
movaps xmm5, xmm1
movaps xmm6, xmm0
mulss xmm6, xmm3
mulss xmm5, xmm4
subss xmm5, xmm6
movss dword [esp + 0x270], xmm5
movss xmm5, dword [esp + 0x54]
mov edx, dword [esp + 0x270]
mulss xmm1, xmm5
movaps xmm6, xmm3
mulss xmm6, xmm2
subss xmm6, xmm1
movaps xmm1, xmm4
mulss xmm0, xmm5
mulss xmm1, xmm2
movss dword [esp + 0x274], xmm6
mov eax, dword [esp + 0x274]
subss xmm0, xmm1
movss dword [esp + 0x278], xmm0
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x278]
movss xmm2, dword [esp + 0x60]
mov dword [esp + 0x20], eax
movss xmm0, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
movss xmm1, dword [esp + 0x24]
movaps xmm7, xmm0
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x28], xmm2
mulss xmm0, xmm5
movaps xmm6, xmm1
mulss xmm7, xmm3
mulss xmm1, xmm5
mulss xmm6, xmm4
subss xmm6, xmm7
movss dword [esp + 0x338], xmm6
movss xmm6, dword [esp + 0x1c]
mov edx, dword [esp + 0x338]
mov dword [esp + 0xc], edx
mulss xmm3, xmm6
subss xmm3, xmm1
movss dword [esp + 0x33c], xmm3
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x10], eax
mulss xmm4, xmm6
subss xmm0, xmm4
movss dword [esp + 0x340], xmm0
mov ecx, dword [esp + 0x340]
mov dword [esp + 0x14], ecx
movss xmm0, dword [edi]
subss xmm0, dword [esp + 0xc]
movss dword [edi], xmm0
movss xmm0, dword [edi + 4]
subss xmm0, dword [esp + 0x10]
movss dword [edi + 4], xmm0
movss xmm0, dword [edi + 8]
subss xmm0, dword [esp + 0x14]
movss dword [edi + 8], xmm0
movss xmm0, dword [edi + 0xc]
subss xmm0, dword [esp + 0x18]
movss dword [edi + 0xc], xmm0
movss xmm1, dword [esp + 0x58]
movss xmm0, dword [esp + 0x5c]
movaps xmm2, xmm1
mulss xmm2, dword [ebx]
mulss xmm1, dword [ebx - 8]
movaps xmm3, xmm0
mulss xmm3, dword [ebx - 4]
mulss xmm0, dword [ebx - 8]
subss xmm2, xmm3
movss dword [esp + 0x288], xmm2
movss xmm2, dword [esp + 0x54]
mov edx, dword [esp + 0x288]
movaps xmm3, xmm2
mulss xmm3, dword [ebx]
subss xmm0, xmm3
movss dword [esp + 0x28c], xmm0
movss xmm0, dword [ebx - 4]
mov eax, dword [esp + 0x28c]
mulss xmm0, xmm2
subss xmm0, xmm1
movss dword [esp + 0x290], xmm0
movss xmm0, dword [esp + 0x60]
mov ecx, dword [esp + 0x290]
mov dword [esp + 0xc], edx
movss xmm1, dword [esp + 0xc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x649530]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
movss xmm2, dword [edi]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [edi], xmm2
movss xmm1, dword [esp + 0x10]
movss xmm2, dword [edi + 4]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [edi + 4], xmm2
movss xmm1, dword [esp + 0x14]
mulss xmm1, xmm0
movss xmm0, dword [edi + 8]
mov edx, dword [edi + 0xc]
subss xmm0, xmm1
movss dword [edi + 8], xmm0
mov dword [edi + 0xc], edx
movss xmm0, dword [ebx + 0x40]
movss xmm1, dword [edi]
mulss xmm1, xmm0
movss dword [edi], xmm1
movaps xmm1, xmm0
mulss xmm1, dword [edi + 4]
movss dword [edi + 4], xmm1
movaps xmm1, xmm0
mulss xmm0, dword [edi + 0xc]
mulss xmm1, dword [edi + 8]
movss dword [edi + 0xc], xmm0
movss dword [edi + 8], xmm1
movss xmm0, dword [ebx + 0x48]
movss dword [esp + 0x130], xmm0
movss xmm0, dword [ebx + 0xc]
movss dword [esp + 0x148], xmm0
movss xmm0, dword [ebx + 0x10]
movss dword [esp + 0x138], xmm0
movss xmm0, dword [ebx - 8]
subss xmm0, dword [esp + 0xa8]
movss dword [esp + 0xc], xmm0
movss xmm1, dword [ebx - 4]
subss xmm1, dword [esp + 0xac]
addss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x10], xmm1
movss xmm2, dword [ebx]
subss xmm2, dword [esp + 0xb0]
movss dword [esp + 0x14], xmm2
movss xmm3, dword [ebx + 4]
subss xmm3, dword [esp + 0xb4]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x20]
addss xmm0, xmm1
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, xmm2
push esi
lea eax, [esp + 0x10]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x2c]
push eax
mov ecx, eax
addss xmm0, xmm3
push ecx
movss dword [esp + 0x24], xmm0
call fcn.005932e0
movss xmm0, dword [esp + 0x138]
movss xmm2, dword [esp + 0xc]
movss xmm1, dword [esp + 0x148]
mulss xmm2, xmm0
mulss xmm2, xmm1
movss dword [esp + 0xc], xmm2
movss xmm2, dword [esp + 0x10]
mulss xmm2, xmm0
movss xmm0, dword [esp + 0x130]
mulss xmm2, xmm0
movss dword [esp + 0x10], xmm2
movss xmm2, dword [esp + 0x14]
mulss xmm2, xmm1
mulss xmm2, xmm0
movss dword [esp + 0x14], xmm2
mov edx, dword [ebx + 0x38]
push edx
lea eax, [esp + 0x10]
push eax
mov ecx, eax
push ecx
call fcn.005932e0
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + 0xf4]
movss xmm2, dword [edi]
movaps xmm1, xmm0
mulss xmm1, dword [esp + 0xc]
subss xmm2, xmm1
movss dword [edi], xmm2
movss xmm1, dword [esp + 0x10]
movss xmm2, dword [edi + 4]
mov edx, dword [edi + 0xc]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [edi + 4], xmm2
movss xmm1, dword [esp + 0x14]
mulss xmm1, xmm0
movss xmm0, dword [edi + 8]
subss xmm0, xmm1
movss dword [edi + 8], xmm0
movss xmm0, dword [esp + 0x138]
movaps xmm1, xmm0
mulss xmm1, xmm0
movss xmm0, dword [esp + 0x148]
movaps xmm2, xmm0
mov dword [edi + 0xc], edx
mulss xmm2, xmm0
xorps xmm0, xmm0
addss xmm1, xmm2
mulss xmm1, dword [ebx + 0x3c]
mulss xmm1, dword [esp + 0x130]
mulss xmm1, dword [eax + 0xf4]
subss xmm0, xmm1
movss dword [edi + 0x20], xmm0
add esi, 0xa0
add ebx, 0xa0
add edi, 0x38
sub dword [esp + 0x3c], 1
jne 0x5890e2
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + edx]
mov edx, dword [esp + 0x4c]
lea ebx, [eax + eax*4]
shl ebx, 5
add ebx, dword [ecx + 0xf0]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esp + 0x314]
lea edi, [edx + ecx*8]
mov ecx, dword [ebx + 0x80]
push eax
push ecx
lea edx, [esp + 0xe8]
push edx
call fcn.00593dd0
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x10]
push ecx
call fcn.00555600
mov eax, dword [ebx + 0x80]
movss xmm1, dword [ebx + 0x48]
mulss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
mulss xmm2, dword [ebx + 0x44]
movss xmm0, dword [ebx + 0x90]
subss xmm1, xmm2
movss xmm2, dword [eax]
mulss xmm2, dword [ebx + 0x48]
movss dword [esp + 0x164], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, dword [ebx + 0x40]
mov edx, dword [esp + 0x164]
subss xmm1, xmm2
movss xmm2, dword [ebx + 0x40]
mulss xmm2, dword [eax + 4]
movss dword [esp + 0x168], xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [ebx + 0x44]
mov ecx, dword [esp + 0x168]
subss xmm1, xmm2
movss dword [esp + 0x16c], xmm1
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
movss xmm1, dword [eax + 0xc]
add esp, 8
movss dword [esp + 0xd0], xmm0
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x324], xmm0
mov edx, dword [esp + 0xc8]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x324]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0xd4]
movups xmmword [eax], xmm0
mov eax, dword [ebx + 0x80]
movss xmm0, dword [ebx + 0x84]
movss xmm1, dword [eax]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x20]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [eax + 8]
push ebx
lea eax, [esp + 0x20]
push eax
mov ecx, eax
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x2c]
push ecx
movss dword [esp + 0x30], xmm1
call fcn.005932e0
lea edx, [ebx + 0x70]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x48]
movups xmm1, xmmword [edx]
mov ecx, dword [esp + 0x3c]
movups xmm2, xmmword [ecx]
mulps xmm1, xmm2
mov eax, dword [esp + 0xc0]
movups xmmword [eax], xmm1
lea eax, [ebx + 0x60]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x344]
movups xmm1, xmmword [edx]
mov ecx, dword [esp + 0x3c]
movups xmm2, xmmword [ecx]
mulps xmm1, xmm2
mov eax, dword [esp + 0x334]
movups xmmword [eax], xmm1
movss xmm1, dword [esp + 0x20]
addss xmm1, dword [esp + 0x10]
movss xmm0, dword [esp + 0xc]
addss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [esp + 0x24]
addss xmm1, dword [esp + 0x14]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [esp + 0x28]
addss xmm1, dword [esp + 0x18]
movss dword [esp + 0xc], xmm0
movss dword [esp + 0x18], xmm1
movss xmm1, dword [edi + 0x20]
subss xmm1, xmm0
xorps xmm0, xmm0
movss dword [edi + 0x20], xmm1
movss dword [esp + 0xc], xmm0
mov ecx, dword [ebx + 0x80]
push ecx
lea edx, [esp + 0x10]
push edx
mov eax, edx
push eax
call fcn.005932e0
mov eax, dword [ebx + 0x80]
movss xmm1, dword [esp + 0x14]
movss xmm0, dword [esp + 0x10]
movaps xmm2, xmm1
mulss xmm1, dword [eax]
mulss xmm2, dword [eax + 4]
movaps xmm3, xmm0
mulss xmm3, dword [eax + 8]
mulss xmm0, dword [eax]
subss xmm2, xmm3
movss xmm3, dword [eax + 8]
movss dword [esp + 0x16c], xmm2
movss xmm2, dword [esp + 0xc]
mov ecx, dword [esp + 0x16c]
mulss xmm3, xmm2
subss xmm3, xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm2
subss xmm0, xmm1
mov dword [esp + 0x1c], ecx
movss dword [esp + 0x174], xmm0
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x24], ecx
movss dword [esp + 0x170], xmm3
mov edx, dword [esp + 0x170]
mov dword [esp + 0x20], edx
movss xmm0, dword [eax + 0xc]
mov eax, dword [esp + 0x38]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0xd0]
movaps xmm1, xmm0
mulss xmm1, dword [esp + 0x1c]
addss xmm1, dword [edi]
movss dword [edi], xmm1
movss xmm1, dword [esp + 0x20]
mov edx, dword [edi + 0xc]
mulss xmm1, xmm0
addss xmm1, dword [edi + 4]
movss dword [edi + 4], xmm1
movss xmm1, dword [esp + 0x24]
mulss xmm1, xmm0
addss xmm1, dword [edi + 8]
movss dword [edi + 8], xmm1
mov dword [edi + 0xc], edx
add edi, 0x38
add ebx, 0xa0
add eax, 0xffffffff
mov dword [esp + 0x30], edi
je 0x589ed2
lea ecx, [esp + 0x1c]
mov edx, ecx
mov dword [esp + 0x35c], ecx
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0xc]
mov dword [esp + 0x38], edx
mov dword [esp + 0x36c], edx
mov edx, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x40], 0
add edi, 0xffffffd0
lea esi, [ebx - 0x5c]
mov dword [esp + 0x3c], eax
lea ebx, [ebx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x104]
test eax, eax
mov edx, dword [esi + 0xdc]
je 0x5899ef
mov ecx, dword [esp + 0x40]
add ecx, eax
push ecx
push edx
lea eax, [esp + 0xe8]
push eax
call fcn.00593dd0
lea edx, [esp + 0xe0]
lea ecx, [esi - 0x44]
push ecx
lea eax, [esp + 0xe4]
push edx
push eax
call fcn.00593dd0
lea ecx, [esp + 0xe0]
push ecx
lea edx, [esp + 0x10]
push edx
call fcn.00555600
movss xmm3, dword [esi + 0xec]
movss xmm2, dword [esi + 0x9c]
subss xmm2, dword [esi - 4]
movss dword [esp + 0x24], xmm2
movss xmm0, dword [esi + 0xa0]
subss xmm0, dword [esi]
movss dword [esp + 0x28], xmm0
movss xmm1, dword [esi + 0xa4]
subss xmm1, dword [esi + 4]
movss dword [esp + 0x2c], xmm1
movss xmm4, dword [esi + 0xa8]
subss xmm4, dword [esi + 8]
movss dword [esp + 0x30], xmm4
mov eax, dword [esi + 0xdc]
movaps xmm4, xmm1
mulss xmm4, dword [eax + 4]
mulss xmm1, dword [eax]
movaps xmm5, xmm0
mulss xmm5, dword [eax + 8]
mulss xmm0, dword [eax]
subss xmm4, xmm5
movss dword [esp + 0x184], xmm4
movss xmm4, dword [eax + 8]
mov ecx, dword [esp + 0x184]
mulss xmm4, xmm2
subss xmm4, xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm2
subss xmm0, xmm1
movss dword [esp + 0x18c], xmm0
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18c]
movss dword [esp + 0x188], xmm4
mov edx, dword [esp + 0x188]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
movss xmm0, dword [eax + 0xc]
add esp, 8
movss dword [esp + 0xd0], xmm3
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x354], xmm3
mov edx, dword [esp + 0x35c]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x354]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x38]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0xdc]
movss xmm0, dword [esi + 0xe0]
subss xmm0, dword [esi + 0x40]
movss xmm1, dword [eax]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x20]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [eax + 8]
push ebx
lea edx, [esp + 0x20]
push edx
mov eax, edx
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x2c]
push eax
movss dword [esp + 0x30], xmm1
call fcn.005932e0
lea ecx, [esi + 0xcc]
mov dword [esp + 0xd8], ecx
mov edx, dword [esp + 0xb8]
movups xmm1, xmmword [edx]
mov ecx, dword [esp + 0xd8]
movups xmm2, xmmword [ecx]
mulps xmm1, xmm2
mov eax, dword [esp + 0x36c]
movups xmmword [eax], xmm1
lea edx, [esi + 0xbc]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x50]
movups xmm1, xmmword [edx]
mov ecx, dword [esp + 0xd8]
movups xmm2, xmmword [ecx]
mulps xmm1, xmm2
mov eax, dword [esp + 0x74]
movups xmmword [eax], xmm1
movss xmm0, dword [esp + 0xc]
movss xmm1, dword [esp + 0x20]
addss xmm1, dword [esp + 0x10]
addss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [esp + 0x24]
addss xmm1, dword [esp + 0x14]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [esp + 0x28]
addss xmm1, dword [esp + 0x18]
movss dword [esp + 0xc], xmm0
movss dword [esp + 0x18], xmm1
movss xmm1, dword [edi + 0x50]
subss xmm1, xmm0
movss dword [edi + 0x50], xmm1
movss xmm0, dword [esp + 0xc]
addss xmm0, dword [edi + 0x18]
movss dword [edi + 0x18], xmm0
xorps xmm0, xmm0
movss dword [esp + 0xc], xmm0
mov eax, dword [esi + 0xdc]
push eax
lea ecx, [esp + 0x10]
push ecx
mov edx, ecx
push edx
call fcn.005932e0
mov eax, dword [esi + 0xdc]
movss xmm1, dword [esp + 0x14]
movss xmm0, dword [esp + 0x10]
movaps xmm2, xmm1
mulss xmm1, dword [eax]
mulss xmm2, dword [eax + 4]
movaps xmm3, xmm0
mulss xmm3, dword [eax + 8]
mulss xmm0, dword [eax]
subss xmm2, xmm3
movss dword [esp + 0x18c], xmm2
movss xmm2, dword [esp + 0xc]
mov ecx, dword [esp + 0x18c]
movaps xmm3, xmm2
mulss xmm2, dword [eax + 4]
mulss xmm3, dword [eax + 8]
subss xmm3, xmm1
mov dword [esp + 0x1c], ecx
subss xmm0, xmm2
movss dword [esp + 0x194], xmm0
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x24], ecx
movss dword [esp + 0x190], xmm3
mov edx, dword [esp + 0x190]
mov dword [esp + 0x20], edx
movss xmm0, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0xd0]
movaps xmm1, xmm0
mulss xmm1, dword [esp + 0x1c]
addss xmm1, dword [eax]
movss dword [eax], xmm1
movss xmm1, dword [esp + 0x20]
mov edx, dword [edi + 0x3c]
mulss xmm1, xmm0
addss xmm1, dword [edi + 0x34]
movss dword [edi + 0x34], xmm1
movss xmm1, dword [esp + 0x24]
mulss xmm1, xmm0
addss xmm1, dword [edi + 0x38]
movss dword [edi + 0x38], xmm1
mov dword [edi + 0x3c], edx
movss xmm2, dword [edi - 8]
movaps xmm1, xmm0
mulss xmm1, dword [esp + 0x1c]
subss xmm2, xmm1
movss dword [edi - 8], xmm2
movss xmm1, dword [esp + 0x20]
movss xmm2, dword [edi - 4]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [edi - 4], xmm2
movss xmm1, dword [esp + 0x24]
mulss xmm1, xmm0
cmp dword [esp + 0x40], 0
movss xmm0, dword [edi]
subss xmm0, xmm1
movss dword [edi], xmm0
mov eax, dword [edi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x3c]
movss xmm1, dword [esp + 0x10]
movss xmm0, dword [esp + 0x14]
movaps xmm2, xmm1
mulss xmm2, dword [eax + 8]
mulss xmm1, dword [eax]
movaps xmm3, xmm0
mulss xmm3, dword [eax + 4]
mulss xmm0, dword [eax]
subss xmm2, xmm3
movss xmm3, dword [eax + 8]
movss dword [esp + 0x1a4], xmm2
movss xmm2, dword [esp + 0xc]
mov ecx, dword [esp + 0x1a4]
mulss xmm3, xmm2
subss xmm0, xmm3
movss dword [esp + 0x1a8], xmm0
movss xmm0, dword [eax + 4]
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mulss xmm0, xmm2
subss xmm0, xmm1
movss dword [esp + 0x1ac], xmm0
movss xmm0, dword [esp + 0x18]
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x24], eax
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esi + 0x4c]
movaps xmm1, xmm0
mulss xmm1, dword [esp + 0x1c]
addss xmm1, dword [edi - 8]
movss dword [edi - 8], xmm1
movss xmm1, dword [esp + 0x20]
mulss xmm1, xmm0
addss xmm1, dword [edi - 4]
movss dword [edi - 4], xmm1
movss xmm1, dword [esp + 0x24]
mulss xmm1, xmm0
addss xmm1, dword [edi]
movss dword [edi], xmm1
mov ecx, dword [edi + 4]
mov dword [edi + 4], ecx
je 0x589eae
movss xmm0, dword [esi + 0x4c]
movss xmm2, dword [edi - 0x40]
movaps xmm1, xmm0
mulss xmm1, dword [esp + 0x1c]
subss xmm2, xmm1
movss dword [edi - 0x40], xmm2
movss xmm1, dword [esp + 0x20]
movss xmm2, dword [edi - 0x3c]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [edi - 0x3c], xmm2
movss xmm1, dword [esp + 0x24]
mulss xmm1, xmm0
movss xmm0, dword [edi - 0x38]
subss xmm0, xmm1
movss dword [edi - 0x38], xmm0
mov edx, dword [edi - 0x34]
mov dword [edi - 0x34], edx
add dword [esp + 0x40], 0x40
add dword [esp + 0x30], 0x38
add ebx, 0xa0
add esi, 0xa0
add edi, 0x38
sub dword [esp + 0x3c], 1
jne 0x5899c0
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x2c]
cmp dword [edx + eax + 8], 0
je 0x58a24a
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
movss xmm0, dword [ebx - 0x10]
sub ebx, 0xa0
push ebx
push ecx
lea edx, [esp + 0xe8]
push edx
sub esi, 0x38
movss dword [esp + 0x138], xmm0
call fcn.00593dd0
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x10]
push ecx
call fcn.00555600
movss xmm2, dword [ebx + 0x40]
subss xmm2, dword [ebx - 0x60]
movss dword [esp + 0x24], xmm2
movss xmm0, dword [ebx + 0x44]
subss xmm0, dword [ebx - 0x5c]
movss dword [esp + 0x28], xmm0
movss xmm1, dword [ebx + 0x48]
subss xmm1, dword [ebx - 0x58]
movss dword [esp + 0x2c], xmm1
movss xmm3, dword [ebx + 0x4c]
subss xmm3, dword [ebx - 0x54]
movss dword [esp + 0x30], xmm3
mov eax, dword [ebx + 0x80]
movaps xmm4, xmm0
mulss xmm4, dword [eax + 8]
mulss xmm0, dword [eax]
movaps xmm3, xmm1
mulss xmm3, dword [eax + 4]
mulss xmm1, dword [eax]
subss xmm3, xmm4
movss dword [esp + 0x1c4], xmm3
movss xmm3, dword [eax + 8]
mov edx, dword [esp + 0x1c4]
mulss xmm3, xmm2
subss xmm3, xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm2
subss xmm0, xmm1
movss dword [esp + 0x1cc], xmm0
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1cc]
movss dword [esp + 0x1c8], xmm3
mov ecx, dword [esp + 0x1c8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
movss xmm0, dword [eax + 0xc]
lea eax, [esp + 0x24]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x134]
mov ecx, eax
add esp, 8
movss dword [esp + 0x188], xmm0
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x74]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x188]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x50]
movups xmmword [eax], xmm0
mov eax, dword [ebx + 0x80]
movss xmm0, dword [ebx + 0x84]
subss xmm0, dword [ebx - 0x1c]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
addss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x20]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [eax + 8]
push ebx
mov edx, ecx
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x28]
push edx
mov eax, ecx
movss dword [esp + 0x2c], xmm1
push eax
call fcn.005932e0
lea edx, [esp + 0x1c]
lea ecx, [ebx + 0x70]
mov eax, edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0xb8]
movups xmm1, xmmword [edx]
mov ecx, dword [esp + 0x74]
movups xmm2, xmmword [ecx]
mulps xmm1, xmm2
mov eax, dword [esp + 0x50]
movups xmmword [eax], xmm1
lea edx, [esp + 0xc]
lea ecx, [ebx + 0x60]
mov eax, edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0xb8]
movups xmm1, xmmword [edx]
mov ecx, dword [esp + 0x74]
movups xmm2, xmmword [ecx]
mulps xmm1, xmm2
mov eax, dword [esp + 0x50]
movups xmmword [eax], xmm1
movss xmm1, dword [esp + 0x10]
subss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0xc]
subss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [esp + 0x14]
subss xmm1, dword [esp + 0x24]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [esp + 0x18]
subss xmm1, dword [esp + 0x28]
movss dword [esp + 0xc], xmm0
movss dword [esp + 0x18], xmm1
movss xmm1, dword [esi + 0x20]
addss xmm1, xmm0
xorps xmm0, xmm0
movss dword [esi + 0x20], xmm1
movss dword [esp + 0xc], xmm0
mov ecx, dword [ebx + 0x80]
push ecx
lea edx, [esp + 0x10]
push edx
mov eax, edx
push eax
call fcn.005932e0
mov ebx, dword [ebx + 0x80]
movss xmm4, dword [ebx]
movss xmm0, dword [esp + 0x14]
movss xmm1, dword [esp + 0x10]
movaps xmm3, xmm1
mulss xmm3, dword [ebx + 8]
movaps xmm2, xmm0
mulss xmm2, dword [ebx + 4]
mulss xmm4, xmm0
movss xmm0, dword [ebx]
mulss xmm0, xmm1
movss xmm1, dword [ebx + 4]
subss xmm2, xmm3
movss xmm3, dword [ebx + 8]
movss dword [esp + 0x1d4], xmm2
movss xmm2, dword [esp + 0xc]
mov ecx, dword [esp + 0x1d4]
mulss xmm1, xmm2
subss xmm0, xmm1
mulss xmm3, xmm2
movss dword [esp + 0x1dc], xmm0
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
subss xmm3, xmm4
movss dword [esp + 0x1d8], xmm3
mov edx, dword [esp + 0x1d8]
mov dword [esp + 0x20], edx
movss xmm0, dword [ebx + 0xc]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x12c]
sub esi, 0x38
movaps xmm1, xmm0
mulss xmm1, dword [esp + 0x1c]
addss xmm1, dword [esi]
movss dword [esi], xmm1
movss xmm1, dword [esp + 0x20]
mulss xmm1, xmm0
addss xmm1, dword [esi + 4]
movss dword [esi + 4], xmm1
movss xmm1, dword [esp + 0x24]
mulss xmm1, xmm0
addss xmm1, dword [esi + 8]
mov ecx, dword [esi + 0xc]
movss dword [esi + 8], xmm1
mov dword [esi + 0xc], ecx
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
add dword [esp + 0x2c], 0x10
add dword [esp + 0x44], 0x40
add eax, 1
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
jb 0x5890a0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x568]
lea esi, [eax + 0x558]
lea eax, [eax + edx*4 + 0x558]
cmp esi, eax
je 0x58a2b1
mov ebx, dword [esp + 0x4c]
mov edi, dword [ebp + 8]
mov edi, edi
mov ecx, dword [esi]
push ebx
push edi
push ecx
call fcn.00584da0
mov edx, dword [edi + 0x568]
add esi, 4
lea eax, [edi + edx*4 + 0x558]
add esp, 0xc
cmp esi, eax
jne 0x58a290
mov edi, dword [ebp + 8]
xor edx, edx
cmp dword [esp + 0xc4], edx
je 0x58a357
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x18]
cmp ecx, edx
jbe 0x58a357
mov eax, dword [esp + 0x4c]
add eax, 0x18
cmp dword [eax + 0x1c], edx
je 0x58a34f
movss xmm0, dword [eax - 0x10]
mulss xmm0, dword [eax]
movss xmm1, dword [eax - 8]
mulss xmm1, dword [eax - 0x18]
addss xmm0, xmm1
movss xmm1, dword [eax - 4]
mulss xmm1, dword [eax - 0x14]
addss xmm0, xmm1
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x58a34f
movss xmm1, dword [eax - 8]
movss xmm2, dword [eax - 0x18]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [eax - 0x18], xmm2
movss xmm1, dword [eax - 4]
movss xmm2, dword [eax - 0x14]
mov esi, dword [eax - 0xc]
mulss xmm1, xmm0
subss xmm2, xmm1
movss xmm1, dword [eax - 0x10]
movss dword [eax - 0x14], xmm2
mulss xmm0, dword [eax]
subss xmm1, xmm0
movss dword [eax - 0x10], xmm1
mov dword [eax - 0xc], esi
add eax, 0x38
sub ecx, 1
jne 0x58a2d7
mov eax, dword [edi]
cmp dword [eax + 0x10], edx
mov dword [esp + 0x34], edx
jbe 0x58b1f0
mov dword [esp + 0x2c], edx
lea ebx, [ebx]
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x2c]
mov edi, dword [edx + eax + 4]
lea ecx, [edx + eax]
mov eax, dword [ecx]
lea edx, [eax + eax*4]
shl edx, 5
add edx, dword [esi + 0xf0]
lea esi, [eax*8]
sub esi, eax
cmp edi, 1
mov eax, dword [esp + 0x4c]
lea eax, [eax + esi*8]
mov dword [esp + 0x38], edi
jne 0x58a493
mov ecx, dword [edx + 0x80]
movss xmm1, dword [edx + 0x48]
mulss xmm1, dword [ecx + 8]
movss xmm0, dword [edx + 0x44]
mulss xmm0, dword [ecx + 4]
movss xmm2, dword [edx + 0x44]
addss xmm1, xmm0
movss xmm0, dword [ecx]
mulss xmm0, dword [edx + 0x40]
addss xmm1, xmm0
movss xmm0, dword [edx + 0x48]
mulss xmm0, xmm0
mulss xmm2, xmm2
addss xmm0, xmm2
movss xmm2, dword [edx + 0x40]
mulss xmm2, xmm2
addss xmm0, xmm2
movaps xmm2, xmm1
mulss xmm2, xmm1
movss xmm1, dword [ecx + 8]
mulss xmm1, dword [eax + 8]
subss xmm0, xmm2
divss xmm0, dword [edx + 0x50]
mulss xmm0, dword [edx + 0x88]
addss xmm0, xmm1
movss xmm1, dword [ecx + 4]
mulss xmm1, dword [eax + 4]
addss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [ecx]
addss xmm0, xmm1
movss dword [eax + 0x30], xmm0
mov edx, dword [edx + 0x80]
movss xmm2, dword [eax]
movaps xmm1, xmm0
mulss xmm1, dword [edx]
subss xmm2, xmm1
movss dword [eax], xmm2
movss xmm1, dword [edx + 4]
movss xmm2, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [eax + 4], xmm2
movss xmm1, dword [edx + 8]
mulss xmm1, xmm0
movss xmm0, dword [eax + 8]
subss xmm0, xmm1
movss dword [eax + 8], xmm0
mov dword [eax + 0xc], ecx
jmp 0x58b1ce
mov ecx, dword [edx + 0x120]
mov esi, dword [edx + 0x80]
movss xmm0, dword [ecx + 8]
mulss xmm0, dword [esi + 8]
movss xmm1, dword [ecx + 4]
mulss xmm1, dword [esi + 4]
xorps xmm6, xmm6
movss xmm7, dword [0x649444]
addss xmm0, xmm1
movss xmm1, dword [ecx]
mulss xmm1, dword [esi]
addss xmm0, xmm1
movss dword [eax + 0x24], xmm6
movss dword [eax + 0x28], xmm7
movaps xmm4, xmm6
subss xmm4, xmm0
movss dword [eax + 0x2c], xmm4
mov ecx, dword [edx + 0x80]
movss xmm0, dword [edx + 0x48]
mulss xmm0, dword [ecx + 8]
movss xmm1, dword [edx + 0x44]
mulss xmm1, dword [ecx + 4]
movss xmm2, dword [edx + 0x44]
addss xmm0, xmm1
movss xmm1, dword [edx + 0x40]
mulss xmm1, dword [ecx]
addss xmm0, xmm1
movss xmm1, dword [edx + 0x48]
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm1, xmm2
movss xmm2, dword [edx + 0x40]
mulss xmm2, xmm2
addss xmm1, xmm2
movaps xmm2, xmm0
mulss xmm2, xmm0
movss xmm0, dword [ecx + 8]
mulss xmm0, dword [eax + 8]
subss xmm1, xmm2
divss xmm1, dword [edx + 0x50]
mulss xmm1, dword [edx + 0x88]
addss xmm1, xmm0
movss xmm0, dword [ecx + 4]
mulss xmm0, dword [eax + 4]
addss xmm1, xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [ecx]
addss xmm1, xmm0
lea ecx, [edi - 1]
movss dword [eax + 0x30], xmm1
add edx, 0xa0
add eax, 0x38
cmp ecx, 1
mov dword [esp + 0x30], ecx
jbe 0x58a785
mov ebx, dword [esp + 0x30]
add ebx, 0xffffffff
lea esi, [ebx + ebx*4]
shl esi, 5
lea ecx, [edx - 0x5c]
add edx, esi
mulss xmm4, dword [ecx + 0xe4]
movss dword [eax + 0x24], xmm4
movss xmm0, dword [ecx + 0x44]
addss xmm0, dword [ecx + 0xe4]
movss dword [eax + 0x28], xmm0
mov esi, dword [ecx + 0x17c]
mov edi, dword [ecx + 0xdc]
movss xmm0, dword [edi + 8]
mulss xmm0, dword [esi + 8]
movss xmm1, dword [edi + 4]
mulss xmm1, dword [esi + 4]
addss xmm0, xmm1
movss xmm1, dword [esi]
mulss xmm1, dword [edi]
addss xmm0, xmm1
movaps xmm1, xmm6
subss xmm1, xmm0
movaps xmm4, xmm1
movaps xmm0, xmm4
mulss xmm0, dword [ecx + 0x44]
movss dword [eax + 0x2c], xmm0
movss xmm1, dword [ecx + 0x9c]
subss xmm1, dword [ecx - 4]
movss dword [esp + 0xc], xmm1
movss xmm2, dword [ecx + 0xa0]
subss xmm2, dword [ecx]
movss dword [esp + 0x10], xmm2
movss xmm3, dword [ecx + 0xa4]
subss xmm3, dword [ecx + 4]
movss dword [esp + 0x14], xmm3
movss xmm0, dword [ecx + 0xa8]
subss xmm0, dword [ecx + 8]
movss dword [esp + 0x18], xmm0
mov esi, dword [ecx + 0xdc]
movss xmm0, dword [esi + 4]
movss xmm5, dword [esi + 8]
mulss xmm5, xmm3
mulss xmm0, xmm2
addss xmm0, xmm5
movss xmm5, dword [esi]
mulss xmm5, xmm1
addss xmm0, xmm5
movaps xmm5, xmm2
mulss xmm5, xmm2
movaps xmm2, xmm3
mulss xmm2, xmm3
addss xmm5, xmm2
movaps xmm2, xmm1
mulss xmm2, xmm1
addss xmm5, xmm2
movss xmm2, dword [eax]
movaps xmm1, xmm0
mulss xmm1, xmm0
subss xmm5, xmm1
divss xmm5, dword [ecx + 0xac]
mulss xmm5, dword [ecx + 0x44]
mulss xmm5, dword [ecx + 0xe4]
mulss xmm5, dword [0x649530]
movss dword [eax + 0x30], xmm5
movss xmm0, dword [ecx + 0x44]
mulss xmm2, xmm0
movss dword [esp + 0xc], xmm2
movss xmm3, dword [eax + 4]
mulss xmm3, xmm0
movss dword [esp + 0x10], xmm3
movss xmm5, dword [eax + 8]
mulss xmm5, xmm0
movss dword [esp + 0x14], xmm5
movss xmm0, dword [eax + 0xc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [eax - 0x38]
movaps xmm1, xmm6
subss xmm1, dword [ecx + 0xe4]
mulss xmm0, xmm1
addss xmm0, xmm2
movss dword [esp + 0xc], xmm0
movss xmm2, dword [eax - 0x34]
mulss xmm2, xmm1
addss xmm2, xmm3
movss dword [esp + 0x10], xmm2
movss xmm3, dword [eax - 0x30]
mulss xmm3, xmm1
addss xmm3, xmm5
movss dword [esp + 0x14], xmm3
mov esi, dword [ecx + 0xdc]
movss xmm1, dword [esi + 4]
mulss xmm0, dword [esi]
mulss xmm1, xmm2
movss xmm2, dword [esi + 8]
mulss xmm2, xmm3
addss xmm1, xmm2
addss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [eax + 0x30], xmm1
add ecx, 0xa0
add eax, 0x38
sub ebx, 1
jne 0x58a5a2
mov edi, dword [ebp + 8]
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x28]
mov esi, dword [esp + 0x2c]
cmp dword [ecx + esi + 8], 0
je 0x58a880
movss dword [eax + 0x24], xmm4
movss dword [eax + 0x28], xmm7
movss dword [eax + 0x2c], xmm6
movss xmm2, dword [edx + 0x40]
subss xmm2, dword [edx - 0x60]
movss dword [esp + 0xc], xmm2
movss xmm0, dword [edx + 0x44]
subss xmm0, dword [edx - 0x5c]
movss dword [esp + 0x10], xmm0
movss xmm3, dword [edx + 0x48]
subss xmm3, dword [edx - 0x58]
movss dword [esp + 0x14], xmm3
movss xmm1, dword [edx + 0x4c]
subss xmm1, dword [edx - 0x54]
movss dword [esp + 0x18], xmm1
mov ecx, dword [edx + 0x80]
movss xmm1, dword [ecx + 4]
movss xmm4, dword [ecx + 8]
mulss xmm1, xmm0
mulss xmm4, xmm3
addss xmm1, xmm4
movss xmm4, dword [ecx]
mulss xmm4, xmm2
addss xmm1, xmm4
mulss xmm0, xmm0
movaps xmm4, xmm3
mulss xmm4, xmm3
movaps xmm3, xmm2
mulss xmm3, xmm2
addss xmm0, xmm4
movaps xmm2, xmm1
mulss xmm2, xmm1
addss xmm0, xmm3
subss xmm0, xmm2
divss xmm0, dword [edx + 0x50]
mulss xmm0, dword [edx - 0x18]
movss dword [eax + 0x30], xmm0
mov edx, dword [edx + 0x80]
movss xmm1, dword [eax - 0x30]
mulss xmm1, dword [edx + 8]
movss xmm2, dword [eax - 0x34]
mulss xmm2, dword [edx + 4]
addss xmm1, xmm2
movss xmm2, dword [edx]
mulss xmm2, dword [eax - 0x38]
addss xmm1, xmm2
subss xmm0, xmm1
movss dword [eax + 0x30], xmm0
jmp 0x58a9fe
mulss xmm4, dword [edx + 0x88]
movss dword [eax + 0x24], xmm4
movss xmm0, dword [edx - 0x18]
addss xmm0, dword [edx + 0x88]
movss dword [eax + 0x28], xmm0
movss dword [eax + 0x2c], xmm6
movss xmm1, dword [edx + 0x40]
subss xmm1, dword [edx - 0x60]
movss dword [esp + 0xc], xmm1
movss xmm2, dword [edx + 0x44]
subss xmm2, dword [edx - 0x5c]
movss dword [esp + 0x10], xmm2
movss xmm3, dword [edx + 0x48]
subss xmm3, dword [edx - 0x58]
movss dword [esp + 0x14], xmm3
movss xmm0, dword [edx + 0x4c]
subss xmm0, dword [edx - 0x54]
movss dword [esp + 0x18], xmm0
mov ecx, dword [edx + 0x80]
movss xmm0, dword [ecx + 4]
movss xmm4, dword [ecx + 8]
mulss xmm4, xmm3
mulss xmm0, xmm2
addss xmm0, xmm4
movss xmm4, dword [ecx]
mulss xmm4, xmm1
addss xmm0, xmm4
movaps xmm4, xmm2
mulss xmm4, xmm2
movaps xmm2, xmm3
mulss xmm2, xmm3
addss xmm4, xmm2
movaps xmm2, xmm1
mulss xmm2, xmm1
addss xmm4, xmm2
movaps xmm1, xmm0
mulss xmm1, xmm0
movss xmm0, dword [eax]
subss xmm4, xmm1
divss xmm4, dword [edx + 0x50]
mulss xmm4, dword [edx - 0x18]
mulss xmm4, dword [edx + 0x88]
mulss xmm4, dword [0x649530]
movss dword [eax + 0x30], xmm4
movss xmm3, dword [edx - 0x18]
mulss xmm0, xmm3
movss dword [esp + 0xc], xmm0
movss xmm1, dword [eax + 4]
mulss xmm1, xmm3
movss dword [esp + 0x10], xmm1
movss xmm2, dword [eax + 8]
mulss xmm2, xmm3
movss dword [esp + 0x14], xmm2
movss xmm3, dword [eax + 0xc]
movss dword [esp + 0x18], xmm3
movss xmm3, dword [edx + 0x88]
movss xmm4, dword [eax - 0x38]
mulss xmm4, xmm3
subss xmm0, xmm4
movss dword [esp + 0xc], xmm0
movss xmm4, dword [eax - 0x34]
mulss xmm4, xmm3
subss xmm1, xmm4
movss dword [esp + 0x10], xmm1
movss xmm4, dword [eax - 0x30]
mulss xmm4, xmm3
subss xmm2, xmm4
movss dword [esp + 0x14], xmm2
mov edx, dword [edx + 0x80]
movss xmm3, dword [edx + 4]
mulss xmm0, dword [edx]
mulss xmm3, xmm1
movss xmm1, dword [edx + 8]
mulss xmm1, xmm2
addss xmm3, xmm1
addss xmm3, xmm0
addss xmm3, dword [eax + 0x30]
movss dword [eax + 0x30], xmm3
mov edx, dword [edi]
mov eax, dword [edx + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + ecx]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
add eax, 1
lea edx, [eax*8]
sub edx, eax
lea eax, [ecx + edx*8]
lea edx, [ebx - 1]
cmp edx, 4
mov esi, 1
mov dword [esp + 0x50], edx
jl 0x58ab92
lea edx, [ebx - 5]
shr edx, 2
add edx, esi
lea esi, [edx*4 + 1]
jmp 0x58aa50
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax - 0xc]
movss xmm1, dword [eax + 0x28]
movss xmm2, dword [eax - 8]
mulss xmm2, dword [eax + 0x24]
movss xmm3, dword [eax + 0x30]
subss xmm1, xmm0
subss xmm3, xmm2
movss xmm2, dword [eax + 0x5c]
movaps xmm0, xmm7
divss xmm0, xmm1
movss xmm1, dword [eax + 0x2c]
mulss xmm1, xmm0
mulss xmm3, xmm0
movss xmm0, dword [eax + 0x5c]
mulss xmm0, xmm1
movss dword [eax + 0x2c], xmm1
movss xmm1, dword [eax + 0x60]
subss xmm1, xmm0
mulss xmm2, xmm3
movss dword [eax + 0x30], xmm3
movss xmm3, dword [eax + 0x68]
subss xmm3, xmm2
movss xmm2, dword [eax + 0x94]
movaps xmm0, xmm7
divss xmm0, xmm1
movss xmm1, dword [eax + 0x64]
mulss xmm1, xmm0
mulss xmm3, xmm0
movss xmm0, dword [eax + 0x94]
mulss xmm0, xmm1
movss dword [eax + 0x64], xmm1
movss xmm1, dword [eax + 0x98]
subss xmm1, xmm0
mulss xmm2, xmm3
movss dword [eax + 0x68], xmm3
movss xmm3, dword [eax + 0xa0]
subss xmm3, xmm2
movss xmm2, dword [eax + 0xd8]
movaps xmm0, xmm7
divss xmm0, xmm1
movss xmm1, dword [eax + 0x9c]
mulss xmm1, xmm0
mulss xmm3, xmm0
movss xmm0, dword [eax + 0xcc]
mulss xmm0, xmm1
movss dword [eax + 0x9c], xmm1
movss xmm1, dword [eax + 0xd0]
subss xmm1, xmm0
movaps xmm0, xmm7
divss xmm0, xmm1
movss xmm1, dword [eax + 0xd4]
mulss xmm1, xmm0
movss dword [eax + 0xd4], xmm1
movss xmm1, dword [eax + 0xcc]
mulss xmm1, xmm3
subss xmm2, xmm1
mulss xmm2, xmm0
movss dword [eax + 0xa0], xmm3
movss dword [eax + 0xd8], xmm2
add eax, 0xe0
sub edx, 1
jne 0x58aa50
cmp esi, ebx
jae 0x58abec
mov edx, ebx
sub edx, esi
lea ebx, [ebx]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax - 0xc]
movss xmm1, dword [eax + 0x28]
movss xmm2, dword [eax + 0x30]
subss xmm1, xmm0
movaps xmm0, xmm7
divss xmm0, xmm1
movss xmm1, dword [eax + 0x2c]
mulss xmm1, xmm0
movss dword [eax + 0x2c], xmm1
movss xmm1, dword [eax - 8]
mulss xmm1, dword [eax + 0x24]
subss xmm2, xmm1
mulss xmm2, xmm0
movss dword [eax + 0x30], xmm2
add eax, 0x38
sub edx, 1
jne 0x58aba0
mov esi, dword [esp + 0x30]
sub eax, 0x70
xor ebx, ebx
cmp esi, 4
jl 0x58ac77
lea edx, [esi - 4]
shr edx, 2
add edx, 1
lea ebx, [edx*4]
mov edi, edi
movss xmm1, dword [eax + 0x68]
mulss xmm1, dword [eax + 0x2c]
movss xmm0, dword [eax + 0x30]
subss xmm0, xmm1
movss xmm1, dword [eax - 0xc]
mulss xmm1, xmm0
movss dword [eax + 0x30], xmm0
movss xmm0, dword [eax - 8]
subss xmm0, xmm1
movss xmm1, dword [eax - 0x44]
mulss xmm1, xmm0
movss dword [eax - 8], xmm0
movss xmm0, dword [eax - 0x40]
subss xmm0, xmm1
movss xmm1, dword [eax - 0x7c]
movss dword [eax - 0x40], xmm0
mulss xmm1, xmm0
movss xmm0, dword [eax - 0x78]
subss xmm0, xmm1
movss dword [eax - 0x78], xmm0
sub eax, 0xe0
sub edx, 1
jne 0x58ac10
cmp ebx, esi
jae 0x58ac9e
add eax, 0x30
sub esi, ebx
movss xmm0, dword [eax + 0x38]
movss xmm1, dword [eax]
mulss xmm0, dword [eax - 4]
subss xmm1, xmm0
movss dword [eax], xmm1
sub eax, 0x38
sub esi, 1
jne 0x58ac80
mov eax, dword [edi]
mov edx, dword [eax + 0x28]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + edx]
lea edx, [eax + eax*4]
shl edx, 5
add edx, dword [edi + 0xf0]
lea esi, [eax*8]
sub esi, eax
mov eax, dword [edx + 0x80]
movss xmm0, dword [ecx + esi*8 + 0x30]
lea ecx, [ecx + esi*8]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
movss dword [esp + 0xc], xmm1
movss xmm2, dword [eax + 4]
mulss xmm2, xmm0
movss dword [esp + 0x10], xmm2
movss xmm2, dword [eax + 8]
mulss xmm2, xmm0
movss dword [esp + 0x14], xmm2
movss xmm2, dword [eax + 0xc]
mulss xmm2, xmm0
movss dword [esp + 0x18], xmm2
movss xmm0, dword [ecx]
subss xmm0, xmm1
movss dword [ecx], xmm0
movss xmm0, dword [ecx + 4]
subss xmm0, dword [esp + 0x10]
movss dword [ecx + 4], xmm0
movss xmm0, dword [ecx + 8]
subss xmm0, dword [esp + 0x14]
movss dword [ecx + 8], xmm0
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [esp + 0x18]
movss dword [ecx + 0xc], xmm0
add edx, 0xa0
add ecx, 0x38
cmp dword [esp + 0x50], 4
mov ebx, 1
jl 0x58b0e9
mov edi, dword [esp + 0x38]
add edi, 0xfffffffb
shr edi, 2
add edi, ebx
lea eax, [ecx - 0x30]
lea ebx, [edi*4 + 1]
jmp 0x58ad80
mov esi, dword [edx + 0x80]
movss xmm1, dword [eax + 0x60]
movaps xmm0, xmm1
mulss xmm0, dword [esi]
movss dword [esp + 0xc], xmm0
movss xmm2, dword [esi + 4]
mulss xmm2, xmm1
movss dword [esp + 0x10], xmm2
movss xmm2, dword [esi + 8]
mulss xmm2, xmm1
movss dword [esp + 0x14], xmm2
movss xmm2, dword [esi + 0xc]
mulss xmm2, xmm1
movss dword [esp + 0x18], xmm2
addss xmm0, dword [eax - 8]
movss dword [eax - 8], xmm0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [eax - 4]
movss dword [eax - 4], xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [eax]
movss dword [eax], xmm0
movss xmm0, dword [eax + 4]
addss xmm0, dword [esp + 0x18]
movss dword [eax + 4], xmm0
movss xmm0, dword [ecx]
subss xmm0, dword [esp + 0xc]
movss dword [ecx], xmm0
movss xmm0, dword [eax + 0x34]
subss xmm0, dword [esp + 0x10]
movss dword [eax + 0x34], xmm0
movss xmm0, dword [eax + 0x38]
subss xmm0, dword [esp + 0x14]
movss dword [eax + 0x38], xmm0
movss xmm0, dword [eax + 0x3c]
subss xmm0, dword [esp + 0x18]
movss dword [eax + 0x3c], xmm0
mov esi, dword [edx + 0x120]
movss xmm0, dword [eax + 0x98]
movaps xmm1, xmm0
mulss xmm1, dword [esi]
movss dword [esp + 0xc], xmm1
movss xmm2, dword [esi + 4]
mulss xmm2, xmm0
movss dword [esp + 0x10], xmm2
movss xmm2, dword [esi + 8]
mulss xmm2, xmm0
movss dword [esp + 0x14], xmm2
movss xmm2, dword [esi + 0xc]
mulss xmm2, xmm0
movss dword [esp + 0x18], xmm2
movss xmm0, dword [ecx]
addss xmm0, xmm1
movss dword [ecx], xmm0
movss xmm0, dword [eax + 0x34]
addss xmm0, dword [esp + 0x10]
movss dword [eax + 0x34], xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [eax + 0x38]
movss dword [eax + 0x38], xmm0
movss xmm0, dword [eax + 0x3c]
addss xmm0, dword [esp + 0x18]
movss dword [eax + 0x3c], xmm0
movss xmm0, dword [eax + 0x68]
subss xmm0, dword [esp + 0xc]
movss xmm1, dword [eax + 0xd0]
movss dword [eax + 0x68], xmm0
movss xmm0, dword [eax + 0x6c]
subss xmm0, dword [esp + 0x10]
movss dword [eax + 0x6c], xmm0
movss xmm0, dword [eax + 0x70]
subss xmm0, dword [esp + 0x14]
movss dword [eax + 0x70], xmm0
movss xmm0, dword [eax + 0x74]
subss xmm0, dword [esp + 0x18]
movss dword [eax + 0x74], xmm0
mov esi, dword [edx + 0x1c0]
movaps xmm0, xmm1
mulss xmm0, dword [esi]
movss dword [esp + 0xc], xmm0
movss xmm2, dword [esi + 4]
mulss xmm2, xmm1
movss dword [esp + 0x10], xmm2
movss xmm2, dword [esi + 8]
mulss xmm2, xmm1
movss dword [esp + 0x14], xmm2
movss xmm2, dword [esi + 0xc]
mulss xmm2, xmm1
movss dword [esp + 0x18], xmm2
addss xmm0, dword [eax + 0x68]
movss dword [eax + 0x68], xmm0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [eax + 0x6c]
movss dword [eax + 0x6c], xmm0
movss xmm0, dword [eax + 0x70]
addss xmm0, dword [esp + 0x14]
movss dword [eax + 0x70], xmm0
movss xmm0, dword [esp + 0x18]
addss xmm0, dword [eax + 0x74]
movss dword [eax + 0x74], xmm0
movss xmm0, dword [eax + 0xa0]
subss xmm0, dword [esp + 0xc]
movss dword [eax + 0xa0], xmm0
movss xmm0, dword [eax + 0xa4]
subss xmm0, dword [esp + 0x10]
movss dword [eax + 0xa4], xmm0
movss xmm0, dword [eax + 0xa8]
subss xmm0, dword [esp + 0x14]
movss dword [eax + 0xa8], xmm0
movss xmm0, dword [eax + 0xac]
subss xmm0, dword [esp + 0x18]
movss dword [eax + 0xac], xmm0
mov esi, dword [edx + 0x260]
movss xmm0, dword [eax + 0x108]
movaps xmm1, xmm0
mulss xmm1, dword [esi]
movss dword [esp + 0xc], xmm1
movss xmm2, dword [esi + 4]
mulss xmm2, xmm0
movss dword [esp + 0x10], xmm2
movss xmm2, dword [esi + 8]
mulss xmm2, xmm0
movss dword [esp + 0x14], xmm2
movss xmm2, dword [esi + 0xc]
mulss xmm2, xmm0
movss dword [esp + 0x18], xmm2
movss xmm0, dword [eax + 0xa0]
addss xmm0, xmm1
movss dword [eax + 0xa0], xmm0
movss xmm0, dword [eax + 0xa4]
addss xmm0, dword [esp + 0x10]
movss dword [eax + 0xa4], xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [eax + 0xa8]
movss dword [eax + 0xa8], xmm0
movss xmm0, dword [eax + 0xac]
addss xmm0, dword [esp + 0x18]
movss dword [eax + 0xac], xmm0
movss xmm0, dword [eax + 0xd8]
subss xmm0, dword [esp + 0xc]
movss dword [eax + 0xd8], xmm0
movss xmm0, dword [eax + 0xdc]
subss xmm0, dword [esp + 0x10]
movss dword [eax + 0xdc], xmm0
movss xmm0, dword [eax + 0xe0]
subss xmm0, dword [esp + 0x14]
movss dword [eax + 0xe0], xmm0
movss xmm0, dword [eax + 0xe4]
subss xmm0, dword [esp + 0x18]
movss dword [eax + 0xe4], xmm0
add ecx, 0xe0
add eax, 0xe0
add edx, 0x280
sub edi, 1
jne 0x58ad80
cmp ebx, dword [esp + 0x38]
jae 0x58b1ce
mov edi, dword [esp + 0x38]
lea esi, [edx + 0x80]
lea eax, [ecx - 0x30]
sub edi, ebx
mov edx, dword [esi]
movss xmm1, dword [eax + 0x60]
movaps xmm0, xmm1
mulss xmm0, dword [edx]
movss dword [esp + 0xc], xmm0
movss xmm2, dword [edx + 4]
mulss xmm2, xmm1
movss dword [esp + 0x10], xmm2
movss xmm2, dword [edx + 8]
mulss xmm2, xmm1
movss dword [esp + 0x14], xmm2
movss xmm2, dword [edx + 0xc]
mulss xmm2, xmm1
movss dword [esp + 0x18], xmm2
addss xmm0, dword [eax - 8]
movss dword [eax - 8], xmm0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [eax - 4]
movss dword [eax - 4], xmm0
movss xmm0, dword [eax]
addss xmm0, dword [esp + 0x14]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x18]
addss xmm0, dword [eax + 4]
movss dword [eax + 4], xmm0
movss xmm0, dword [ecx]
subss xmm0, dword [esp + 0xc]
movss dword [ecx], xmm0
movss xmm0, dword [eax + 0x34]
subss xmm0, dword [esp + 0x10]
movss dword [eax + 0x34], xmm0
movss xmm0, dword [eax + 0x38]
subss xmm0, dword [esp + 0x14]
movss dword [eax + 0x38], xmm0
movss xmm0, dword [eax + 0x3c]
subss xmm0, dword [esp + 0x18]
movss dword [eax + 0x3c], xmm0
add ecx, 0x38
add eax, 0x38
add esi, 0xa0
sub edi, 1
jne 0x58b102
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
add dword [esp + 0x2c], 0x10
add eax, 1
cmp eax, dword [edx + 0x10]
mov dword [esp + 0x34], eax
jb 0x58a370
mov edi, ecx
xor edx, edx
cmp dword [esp + 0xc4], edx
je 0x58b28f
mov eax, dword [edi]
mov ecx, dword [eax + 0x18]
cmp ecx, edx
jbe 0x58b28f
mov eax, dword [esp + 0x4c]
add eax, 0x18
cmp dword [eax + 0x1c], edx
je 0x58b287
movss xmm0, dword [eax - 0x10]
mulss xmm0, dword [eax]
movss xmm1, dword [eax - 8]
mulss xmm1, dword [eax - 0x18]
addss xmm0, xmm1
movss xmm1, dword [eax - 4]
mulss xmm1, dword [eax - 0x14]
addss xmm0, xmm1
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x58b287
movss xmm2, dword [eax - 0x18]
movaps xmm1, xmm0
mulss xmm1, dword [eax - 8]
subss xmm2, xmm1
movss dword [eax - 0x18], xmm2
movss xmm2, dword [eax - 0x14]
mov esi, dword [eax - 0xc]
movaps xmm1, xmm0
mulss xmm1, dword [eax - 4]
subss xmm2, xmm1
movss xmm1, dword [eax - 0x10]
movss dword [eax - 0x14], xmm2
mulss xmm0, dword [eax]
subss xmm1, xmm0
movss dword [eax - 0x10], xmm1
mov dword [eax - 0xc], esi
add eax, 0x38
sub ecx, 1
jne 0x58b211
mov ecx, dword [edi]
cmp dword [ecx + 0x10], edx
mov dword [esp + 0x34], edx
jbe 0x58b436
xor ebx, ebx
mov dword [esp + 0x3c], ebx
mov edx, dword [edi]
mov eax, dword [edx + 0x28]
lea esi, [eax + ebx]
mov eax, dword [esi]
mov esi, dword [esi + 4]
lea edx, [eax + eax*4]
lea ecx, [eax*8]
shl edx, 5
add edx, dword [edi + 0xf0]
sub ecx, eax
add esi, 0xffffffff
mov eax, dword [esp + 0x4c]
lea ecx, [eax + ecx*8]
je 0x58b363
lea ebx, [esi + esi*4]
shl ebx, 5
lea eax, [edx + 0x48]
add edx, ebx
movss xmm3, dword [ecx]
movss xmm2, dword [ebp + 0xc]
movss xmm1, dword [0x649534]
movaps xmm0, xmm2
divss xmm0, dword [eax + 0x40]
mulss xmm0, xmm1
mulss xmm3, xmm0
addss xmm3, dword [eax - 8]
movss dword [eax - 8], xmm3
movss xmm3, dword [ecx + 4]
mulss xmm3, xmm0
addss xmm3, dword [eax - 4]
movss dword [eax - 4], xmm3
movss xmm3, dword [ecx + 8]
mulss xmm3, xmm0
addss xmm3, dword [eax]
movss dword [eax], xmm3
mov ebx, dword [eax + 4]
mov dword [eax + 4], ebx
movss xmm0, dword [ecx + 0x20]
divss xmm0, dword [eax + 0x44]
mulss xmm0, xmm2
mulss xmm0, xmm1
addss xmm0, dword [eax + 0x3c]
movss dword [eax + 0x3c], xmm0
add eax, 0xa0
add ecx, 0x38
sub esi, 1
jne 0x58b2e1
mov ebx, dword [esp + 0x3c]
mov eax, dword [edi]
mov eax, dword [eax + 0x28]
cmp dword [eax + ebx + 8], 0
jne 0x58b3c1
movss xmm0, dword [ebp + 0xc]
divss xmm0, dword [edx + 0x88]
mulss xmm0, dword [0x649534]
movaps xmm1, xmm0
mulss xmm1, dword [ecx]
addss xmm1, dword [edx + 0x40]
movss dword [edx + 0x40], xmm1
movss xmm1, dword [ecx + 4]
mulss xmm1, xmm0
addss xmm1, dword [edx + 0x44]
movss dword [edx + 0x44], xmm1
movss xmm1, dword [ecx + 8]
mulss xmm1, xmm0
addss xmm1, dword [edx + 0x48]
movss dword [edx + 0x48], xmm1
mov eax, dword [edx + 0x4c]
mov dword [edx + 0x4c], eax
movss xmm0, dword [ecx + 0x20]
divss xmm0, dword [edx + 0x8c]
mulss xmm0, dword [ebp + 0xc]
mulss xmm0, dword [0x649534]
addss xmm0, dword [edx + 0x84]
movss dword [esp + 0x358], xmm0
fld dword [esp + 0x358]
movss dword [edx + 0x84], xmm0
fmul dword [ebp + 0xc]
fabs
fld dword [0x64de98]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x58b419
xorps xmm0, xmm0
movss dword [edx + 0x84], xmm0
mov eax, dword [esp + 0x34]
mov ecx, dword [edi]
add eax, 1
add ebx, 0x10
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ebx
jb 0x58b2a4
mov edx, dword [edi]
xor eax, eax
cmp dword [edx + 0x10], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
jbe 0x58ba55
lea eax, [esp + 0xc]
xor edi, edi
mov dword [esp + 0xd8], eax
mov dword [esp + 0x40], edi
jmp 0x58b462
mov edi, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
mov esi, dword [eax + edi + 4]
mov ebx, dword [ecx + 0xf0]
add eax, edi
mov eax, dword [eax]
add eax, esi
lea ecx, [eax + eax*4]
shl ecx, 5
mov eax, dword [ecx + ebx - 0x20]
movss xmm3, dword [ecx + ebx - 0x10]
lea ecx, [ecx + ebx - 0xa0]
movaps xmm0, xmm3
mulss xmm0, dword [eax]
addss xmm0, dword [eax + 0x30]
movss dword [esp + 0x1c], xmm0
movss xmm1, dword [eax + 4]
mulss xmm1, xmm3
addss xmm1, dword [eax + 0x34]
movss dword [esp + 0x20], xmm1
movss xmm2, dword [eax + 8]
mulss xmm2, xmm3
addss xmm2, dword [eax + 0x38]
movss xmm3, dword [ebp + 0xc]
movss dword [esp + 0x24], xmm2
movss xmm4, dword [eax + 0x3c]
movss dword [esp + 0x28], xmm4
movss xmm5, dword [ecx + 0x40]
mulss xmm5, xmm3
addss xmm5, xmm0
movss dword [esp + 0x1c], xmm5
movss xmm0, dword [ecx + 0x44]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x20], xmm0
movss xmm0, dword [ecx + 0x48]
mulss xmm0, xmm3
addss xmm0, xmm2
movss dword [esp + 0x24], xmm0
mov edx, dword [edx + 0x28]
mov edi, dword [edi + edx]
lea edi, [edi + edi*4]
shl edi, 5
add edi, ebx
add esi, 0xffffffff
je 0x58b7f6
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0xc]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x48], esi
jmp 0x58b550
movss xmm3, dword [ebp + 0xc]
jmp 0x58b550
mov eax, dword [edi + 0x120]
movss xmm0, dword [edi + 0x40]
mulss xmm0, xmm3
addss xmm0, dword [eax + 0x30]
movss dword [eax + 0x30], xmm0
movss xmm0, dword [edi + 0x44]
mulss xmm0, xmm3
addss xmm0, dword [eax + 0x34]
movss dword [eax + 0x34], xmm0
movss xmm0, dword [edi + 0x48]
mulss xmm0, xmm3
addss xmm0, dword [eax + 0x38]
movss dword [eax + 0x38], xmm0
mov ecx, dword [eax + 0x3c]
mov dword [eax + 0x3c], ecx
mov ecx, dword [edi + 0x120]
mov eax, dword [edi + 0x80]
fld dword [ecx + 0x30]
fsub dword [eax + 0x30]
add ecx, 0x30
add eax, 0x30
fstp dword [esp + 0xc]
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [ecx + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x14]
movss xmm0, dword [ecx + 0xc]
fld dword [esp + 0x10]
subss xmm0, dword [eax + 0xc]
fmul dword [esp + 0x10]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x14]
mov edx, dword [edi + 0x80]
fmul dword [esp + 0x14]
mov dword [esp + 0x50], edx
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [edi + 0x90]
fstp dword [esp + 0x74]
mov edx, dword [esp + 0xb8]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x74]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x50]
movups xmmword [eax], xmm0
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x14]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x18]
mulss xmm1, dword [eax]
movss dword [esp + 0x1ec], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov esi, dword [esp + 0x1ec]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x1f0], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x1f0]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x1f4], xmm0
mov esi, dword [esp + 0x1f4]
mov dword [edx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x80]
lea esi, [eax + 0x20]
push esi
push esi
call fcn.00591360
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
movss xmm0, dword [edi + 0x84]
mulss xmm0, dword [ebp + 0xc]
movss dword [esp + 0x13c], xmm0
fld dword [esp + 0x13c]
mov eax, dword [edi + 0x80]
fmul dword [esp + 0x13c]
lea ecx, [eax + 0x20]
push ecx
fadd dword [0x649444]
fsqrt
fdivr dword [0x649444]
fstp dword [esp + 0x40]
movss xmm1, dword [esp + 0x40]
mov edx, dword [esp + 0x40]
mulss xmm1, xmm0
movss dword [esp], xmm1
push edx
push ecx
push eax
push ecx
call fcn.00555990
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 8]
mulss xmm0, dword [eax + 0x24]
movss xmm1, dword [eax + 0x28]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x20]
movss dword [esp + 0x218], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x28]
mov esi, dword [esp + 0x218]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x24]
lea ecx, [eax + 0x10]
movss dword [esp + 0x21c], xmm0
movss xmm0, dword [eax + 0x20]
mulss xmm0, dword [eax + 4]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x21c]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x220], xmm0
mov esi, dword [esp + 0x220]
mov dword [edx + 8], esi
mov eax, dword [eax + 0x2c]
add esp, 0x14
test ebx, ebx
mov dword [ecx + 0xc], eax
jne 0x58b7db
mov ecx, dword [ebp + 8]
movss xmm0, dword [edi + 0x50]
mulss xmm0, dword [ecx + 0x2c]
movss xmm1, dword [edi + 0x90]
comiss xmm1, xmm0
jbe 0x58b7db
mov ebx, 1
add edi, 0xa0
sub dword [esp + 0x48], 1
jne 0x58b540
movss xmm4, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x80]
fld dword [esp + 0x1c]
fsub dword [eax + 0x30]
add eax, 0x30
fstp dword [esp + 0xc]
fld dword [esp + 0x20]
fsub dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x24]
fsub dword [eax + 8]
fstp dword [esp + 0x14]
subss xmm4, dword [eax + 0xc]
fld dword [esp + 0x10]
movss dword [esp + 0x18], xmm4
fmul dword [esp + 0x10]
mov edx, dword [edi + 0x80]
fld dword [esp + 0x14]
mov dword [esp + 0x50], edx
fmul dword [esp + 0x14]
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [edi + 0x90]
fstp dword [esp + 0x74]
mov edx, dword [esp + 0xd8]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x74]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x50]
movups xmmword [eax], xmm0
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x14]
mulss xmm1, dword [eax + 8]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x21c], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov esi, dword [esp + 0x21c]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x220], xmm0
movss xmm0, dword [eax + 0x14]
mulss xmm0, dword [eax]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x220]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x224], xmm0
mov esi, dword [esp + 0x224]
mov dword [edx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x80]
lea esi, [eax + 0x20]
push esi
push esi
call fcn.00591360
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
movss xmm0, dword [edi + 0x84]
mulss xmm0, dword [ebp + 0xc]
movss dword [esp + 0x144], xmm0
fld dword [esp + 0x144]
mov eax, dword [edi + 0x80]
fmul dword [esp + 0x144]
lea ecx, [eax + 0x20]
push ecx
fadd dword [0x649444]
fsqrt
fdivr dword [0x649444]
fstp dword [esp + 0x40]
movss xmm1, dword [esp + 0x40]
mov edx, dword [esp + 0x40]
mulss xmm1, xmm0
movss dword [esp], xmm1
push edx
push ecx
push eax
push ecx
call fcn.00555990
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 4]
mulss xmm1, dword [eax + 0x28]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x248], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x28]
mov esi, dword [esp + 0x248]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x24]
lea ecx, [eax + 0x10]
movss dword [esp + 0x24c], xmm0
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x20]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x24c]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x250], xmm0
mov esi, dword [esp + 0x250]
mov dword [edx + 8], esi
mov eax, dword [eax + 0x2c]
add esp, 0x14
cmp dword [esp + 0x2c], 0
mov dword [ecx + 0xc], eax
jne 0x58ba37
mov ecx, dword [ebp + 8]
movss xmm0, dword [edi + 0x50]
mulss xmm0, dword [ecx + 0x2c]
movss xmm1, dword [edi + 0x90]
comiss xmm1, xmm0
jbe 0x58ba37
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
add dword [esp + 0x40], 0x10
add eax, 1
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
jb 0x58b45e
mov edi, dword [ebp + 8]
mov edx, dword [edi]
xor eax, eax
cmp dword [edx + 0x10], eax
mov dword [esp + 0x34], eax
jbe 0x58ccef
mov dword [esp + 0x38], eax
lea ecx, [ecx]
mov ebx, dword [ebp + 8]
mov edx, dword [ebx]
mov eax, dword [edx + 0x28]
mov esi, dword [esp + 0x38]
lea ecx, [eax + esi]
mov eax, dword [ecx]
lea edi, [eax + eax*4]
shl edi, 5
add edi, dword [ebx + 0xf0]
lea ebx, [eax*8]
sub ebx, eax
mov eax, dword [esp + 0x4c]
lea eax, [eax + ebx*8]
mov ebx, dword [ecx + 4]
cmp ebx, 1
jne 0x58bac1
mov ecx, dword [edx + 0x28]
cmp dword [ecx + esi + 8], 0
jne 0x58cccd
mov edx, dword [edi + 0x50]
mov dword [edi + 0x90], edx
jmp 0x58cccd
cmp dword [esp + 0x2c], 0
je 0x58bf5a
mov ecx, dword [edx + 0x28]
cmp dword [ecx + esi + 8], 0
jne 0x58bf5a
lea edx, [ebx + ebx*4]
shl edx, 5
mov eax, dword [edx + edi - 0x20]
movss xmm0, dword [edx + edi - 0x10]
movss xmm1, dword [eax]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [eax + 8]
lea ecx, [edx + edi]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [esp + 0x24], xmm1
movss xmm0, dword [eax + 0x3c]
movss dword [esp + 0x28], xmm0
mov eax, dword [edi + 0x50]
movss xmm0, dword [edi + 0x50]
mov ecx, dword [edi + 0x120]
mov dword [edi + 0x90], eax
mov eax, dword [edi + 0x80]
movss xmm1, dword [eax]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [eax + 4]
add ecx, 0x30
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [ecx + 4], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [ecx + 8], xmm1
mov edx, dword [eax + 0x3c]
add ebx, 0xffffffff
add edi, 0xa0
cmp ebx, 1
mov dword [ecx + 0xc], edx
jbe 0x58bdaf
add ebx, 0xffffffff
mov ecx, dword [edi + 0x120]
mov eax, dword [edi + 0x80]
movss xmm0, dword [ecx + 0x30]
subss xmm0, dword [eax + 0x30]
add eax, 0x30
add ecx, 0x30
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx + 4]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ecx + 8]
subss xmm0, dword [eax + 8]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [eax + 0xc]
lea eax, [esp + 0xc]
movss dword [esp + 0x18], xmm0
mov esi, dword [edi + 0x80]
push eax
push esi
call fcn.00591360
movss xmm0, dword [esp + 0x18]
movss dword [esi + 0xc], xmm0
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 0x18]
mulss xmm0, dword [eax + 4]
movss xmm1, dword [eax + 0x14]
mulss xmm1, dword [eax + 8]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x24c], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov esi, dword [esp + 0x24c]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x250], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x250]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x254], xmm0
mov esi, dword [esp + 0x254]
mov dword [edx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov esi, dword [edi + 0x80]
add esi, 0x20
push esi
push esi
call fcn.00591360
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0x28]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x264], xmm0
movss xmm0, dword [eax + 0x28]
mulss xmm0, dword [eax]
mov esi, dword [esp + 0x264]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x24]
mulss xmm1, dword [eax]
movss dword [esp + 0x268], xmm0
movss xmm0, dword [eax + 0x20]
mulss xmm0, dword [eax + 4]
lea ecx, [eax + 0x10]
subss xmm0, xmm1
movss dword [esp + 0x26c], xmm0
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x268]
mov dword [edx + 4], esi
mov esi, dword [esp + 0x26c]
mov dword [edx + 8], esi
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x80]
movss xmm0, dword [edi + 0x50]
mov ecx, dword [edi + 0x120]
movss xmm1, dword [eax]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [eax + 4]
add ecx, 0x30
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [ecx + 4], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [ecx + 8], xmm1
mov edx, dword [eax + 0x3c]
mov dword [ecx + 0xc], edx
mov eax, dword [edi + 0x50]
mov dword [edi + 0x90], eax
add edi, 0xa0
sub ebx, 1
jne 0x58bba3
mov eax, dword [edi + 0x80]
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [eax + 0x30]
add eax, 0x30
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x24]
subss xmm0, dword [eax + 8]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x28]
subss xmm0, dword [eax + 0xc]
lea ecx, [esp + 0xc]
movss dword [esp + 0x18], xmm0
mov esi, dword [edi + 0x80]
push ecx
push esi
call fcn.00591360
movss xmm0, dword [esp + 0x18]
movss dword [esi + 0xc], xmm0
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x14]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x27c], xmm0
movss xmm0, dword [eax + 8]
mulss xmm0, dword [eax + 0x10]
mov esi, dword [esp + 0x27c]
subss xmm0, xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, dword [eax + 0x10]
lea ecx, [eax + 0x20]
movss dword [esp + 0x280], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x280]
mov dword [edx + 4], esi
subss xmm0, xmm1
movss dword [esp + 0x284], xmm0
mov esi, dword [esp + 0x284]
mov dword [edx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x80]
lea esi, [eax + 0x20]
push esi
push esi
call fcn.00591360
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
mov eax, dword [edi + 0x80]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0x28]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x294], xmm0
movss xmm0, dword [eax + 0x28]
mulss xmm0, dword [eax]
mov esi, dword [esp + 0x294]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x24]
mulss xmm1, dword [eax]
movss dword [esp + 0x298], xmm0
movss xmm0, dword [eax + 0x20]
mulss xmm0, dword [eax + 4]
lea ecx, [eax + 0x10]
mov edx, ecx
subss xmm0, xmm1
mov dword [edx], esi
mov esi, dword [esp + 0x298]
movss dword [esp + 0x29c], xmm0
mov dword [edx + 4], esi
mov esi, dword [esp + 0x29c]
mov dword [edx + 8], esi
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0xc], eax
mov ecx, dword [edi + 0x50]
mov dword [edi + 0x90], ecx
jmp 0x58cccd
mov ecx, dword [edi + 0x120]
mov edx, dword [edi + 0x80]
movss xmm2, dword [ecx + 8]
movss xmm0, dword [ecx + 4]
mulss xmm0, dword [edx + 4]
mulss xmm2, dword [edx + 8]
xorps xmm1, xmm1
movss xmm3, dword [0x649534]
addss xmm2, xmm0
movss xmm0, dword [ecx]
mulss xmm0, dword [edx]
addss xmm2, xmm0
movaps xmm0, xmm1
subss xmm0, xmm2
movss xmm2, dword [0x649444]
movss dword [eax + 0x24], xmm1
movss dword [eax + 0x28], xmm2
movss dword [eax + 0x2c], xmm0
movss xmm4, dword [edi + 0x90]
subss xmm4, dword [edi + 0x50]
mulss xmm4, dword [edi + 0x88]
lea ecx, [ebx - 1]
mulss xmm4, xmm3
mov dword [esp + 0x30], ecx
movss dword [eax + 0x30], xmm4
add ecx, 0xffffffff
add edi, 0xa0
add eax, 0x38
cmp ecx, 4
mov dword [esp + 0x44], 1
jl 0x58c279
mov esi, dword [esp + 0x30]
add esi, 0xfffffffb
shr esi, 2
add esi, 1
lea edx, [esi*4 + 1]
mov dword [esp + 0x44], edx
lea ecx, [ecx]
mulss xmm0, dword [edi + 0x88]
movss dword [eax + 0x24], xmm0
movss xmm0, dword [edi - 0x18]
addss xmm0, dword [edi + 0x88]
movss dword [eax + 0x28], xmm0
mov edx, dword [edi + 0x80]
mov ecx, dword [edi + 0x120]
movss xmm4, dword [edx + 8]
mulss xmm4, dword [ecx + 8]
movss xmm0, dword [edx + 4]
mulss xmm0, dword [ecx + 4]
addss xmm4, xmm0
movss xmm0, dword [edx]
mulss xmm0, dword [ecx]
addss xmm4, xmm0
movaps xmm0, xmm1
subss xmm0, xmm4
movss xmm4, dword [edi - 0x18]
mulss xmm4, xmm0
movss dword [eax + 0x2c], xmm4
movss xmm4, dword [edi + 0x90]
subss xmm4, dword [edi + 0x50]
mulss xmm4, dword [edi - 0x18]
mulss xmm4, dword [edi + 0x88]
mulss xmm4, xmm3
movss dword [eax + 0x30], xmm4
mulss xmm0, dword [edi + 0x128]
movss dword [eax + 0x5c], xmm0
movss xmm0, dword [edi + 0x88]
addss xmm0, dword [edi + 0x128]
movss dword [eax + 0x60], xmm0
mov edx, dword [edi + 0x120]
mov ecx, dword [edi + 0x1c0]
movss xmm4, dword [edx + 8]
mulss xmm4, dword [ecx + 8]
movss xmm0, dword [edx + 4]
mulss xmm0, dword [ecx + 4]
addss xmm4, xmm0
movss xmm0, dword [edx]
mulss xmm0, dword [ecx]
addss xmm4, xmm0
movaps xmm0, xmm1
subss xmm0, xmm4
movaps xmm4, xmm0
mulss xmm4, dword [edi + 0x88]
movss dword [eax + 0x64], xmm4
movss xmm4, dword [edi + 0x130]
subss xmm4, dword [edi + 0xf0]
mulss xmm4, dword [edi + 0x88]
mulss xmm4, dword [edi + 0x128]
mulss xmm4, xmm3
movss dword [eax + 0x68], xmm4
mulss xmm0, dword [edi + 0x1c8]
movss dword [eax + 0x94], xmm0
movss xmm0, dword [edi + 0x1c8]
addss xmm0, dword [edi + 0x128]
movss dword [eax + 0x98], xmm0
mov edx, dword [edi + 0x1c0]
mov ecx, dword [edi + 0x260]
movss xmm4, dword [edx + 8]
mulss xmm4, dword [ecx + 8]
movss xmm0, dword [edx + 4]
mulss xmm0, dword [ecx + 4]
addss xmm4, xmm0
movss xmm0, dword [edx]
mulss xmm0, dword [ecx]
addss xmm4, xmm0
movaps xmm0, xmm1
subss xmm0, xmm4
movaps xmm4, xmm0
mulss xmm4, dword [edi + 0x128]
movss dword [eax + 0x9c], xmm4
movss xmm4, dword [edi + 0x1d0]
subss xmm4, dword [edi + 0x190]
mulss xmm4, dword [edi + 0x1c8]
mulss xmm4, dword [edi + 0x128]
mulss xmm4, xmm3
movss dword [eax + 0xa0], xmm4
mulss xmm0, dword [edi + 0x268]
movss dword [eax + 0xcc], xmm0
movss xmm0, dword [edi + 0x268]
addss xmm0, dword [edi + 0x1c8]
movss dword [eax + 0xd0], xmm0
mov edx, dword [edi + 0x260]
mov ecx, dword [edi + 0x300]
movss xmm0, dword [edx + 8]
mulss xmm0, dword [ecx + 8]
movss xmm4, dword [edx + 4]
mulss xmm4, dword [ecx + 4]
addss xmm0, xmm4
movss xmm4, dword [edx]
mulss xmm4, dword [ecx]
addss xmm0, xmm4
movaps xmm4, xmm1
subss xmm4, xmm0
movaps xmm0, xmm4
mulss xmm4, dword [edi + 0x1c8]
movss dword [eax + 0xd4], xmm4
movss xmm4, dword [edi + 0x270]
subss xmm4, dword [edi + 0x230]
mulss xmm4, dword [edi + 0x268]
mulss xmm4, dword [edi + 0x1c8]
mulss xmm4, xmm3
movss dword [eax + 0xd8], xmm4
add eax, 0xe0
add edi, 0x280
sub esi, 1
jne 0x58c010
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
cmp ecx, esi
jae 0x58c32c
sub esi, ecx
jmp 0x58c290
mulss xmm0, dword [edi + 0x88]
movss dword [eax + 0x24], xmm0
movss xmm0, dword [edi - 0x18]
addss xmm0, dword [edi + 0x88]
movss dword [eax + 0x28], xmm0
mov edx, dword [edi + 0x80]
mov ecx, dword [edi + 0x120]
movss xmm0, dword [edx + 8]
mulss xmm0, dword [ecx + 8]
movss xmm4, dword [edx + 4]
mulss xmm4, dword [ecx + 4]
addss xmm0, xmm4
movss xmm4, dword [edx]
mulss xmm4, dword [ecx]
addss xmm0, xmm4
movaps xmm4, xmm1
subss xmm4, xmm0
movaps xmm0, xmm4
movss xmm4, dword [edi - 0x18]
mulss xmm4, xmm0
movss dword [eax + 0x2c], xmm4
movss xmm4, dword [edi + 0x90]
subss xmm4, dword [edi + 0x50]
mulss xmm4, dword [edi - 0x18]
mulss xmm4, dword [edi + 0x88]
mulss xmm4, xmm3
movss dword [eax + 0x30], xmm4
add eax, 0x38
add edi, 0xa0
sub esi, 1
jne 0x58c290
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov esi, dword [ecx + 0x28]
mov ecx, dword [esp + 0x38]
cmp dword [esi + ecx + 8], 0
je 0x58c362
movss dword [eax + 0x24], xmm0
movss dword [eax + 0x28], xmm2
movss dword [eax + 0x2c], xmm1
movss xmm0, dword [edi + 0x90]
subss xmm0, dword [edi + 0x50]
mulss xmm0, dword [edi - 0x18]
jmp 0x58c3a0
mulss xmm0, dword [edi + 0x88]
movss dword [eax + 0x24], xmm0
movss xmm0, dword [edi - 0x18]
addss xmm0, dword [edi + 0x88]
movss dword [eax + 0x28], xmm0
movss dword [eax + 0x2c], xmm1
movss xmm0, dword [edi + 0x90]
subss xmm0, dword [edi + 0x50]
mulss xmm0, dword [edi - 0x18]
mulss xmm0, dword [edi + 0x88]
mulss xmm0, xmm3
movss dword [eax + 0x30], xmm0
mov edx, dword [edx]
mov eax, dword [edx + 0x28]
mov eax, dword [eax + ecx]
mov edx, dword [esp + 0x4c]
add eax, 1
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*8]
lea ecx, [ebx - 1]
cmp ecx, 4
mov edx, 1
jl 0x58c532
lea ecx, [ebx - 5]
shr ecx, 2
add ecx, edx
lea edx, [ecx*4 + 1]
jmp 0x58c3f0
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax - 0xc]
movss xmm1, dword [eax + 0x28]
movss xmm3, dword [eax - 8]
mulss xmm3, dword [eax + 0x24]
movss xmm4, dword [eax + 0x30]
subss xmm1, xmm0
subss xmm4, xmm3
movss xmm3, dword [eax + 0x5c]
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x2c]
mulss xmm1, xmm0
mulss xmm4, xmm0
movss xmm0, dword [eax + 0x5c]
mulss xmm0, xmm1
movss dword [eax + 0x2c], xmm1
movss xmm1, dword [eax + 0x60]
subss xmm1, xmm0
mulss xmm3, xmm4
movss dword [eax + 0x30], xmm4
movss xmm4, dword [eax + 0x68]
subss xmm4, xmm3
movss xmm3, dword [eax + 0x94]
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x64]
mulss xmm1, xmm0
mulss xmm4, xmm0
movss xmm0, dword [eax + 0x94]
mulss xmm0, xmm1
movss dword [eax + 0x64], xmm1
movss xmm1, dword [eax + 0x98]
subss xmm1, xmm0
mulss xmm3, xmm4
movss dword [eax + 0x68], xmm4
movss xmm4, dword [eax + 0xa0]
subss xmm4, xmm3
movss xmm3, dword [eax + 0xd8]
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x9c]
mulss xmm1, xmm0
mulss xmm4, xmm0
movss xmm0, dword [eax + 0xcc]
mulss xmm0, xmm1
movss dword [eax + 0x9c], xmm1
movss xmm1, dword [eax + 0xd0]
subss xmm1, xmm0
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0xd4]
mulss xmm1, xmm0
movss dword [eax + 0xd4], xmm1
movss xmm1, dword [eax + 0xcc]
mulss xmm1, xmm4
subss xmm3, xmm1
mulss xmm3, xmm0
movss dword [eax + 0xa0], xmm4
movss dword [eax + 0xd8], xmm3
add eax, 0xe0
sub ecx, 1
jne 0x58c3f0
cmp edx, ebx
jae 0x58c58c
mov ecx, ebx
sub ecx, edx
lea ebx, [ebx]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax - 0xc]
movss xmm1, dword [eax + 0x28]
movss xmm3, dword [eax + 0x30]
subss xmm1, xmm0
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x2c]
mulss xmm1, xmm0
movss dword [eax + 0x2c], xmm1
movss xmm1, dword [eax - 8]
mulss xmm1, dword [eax + 0x24]
subss xmm3, xmm1
mulss xmm3, xmm0
movss dword [eax + 0x30], xmm3
add eax, 0x38
sub ecx, 1
jne 0x58c540
mov esi, dword [esp + 0x30]
sub eax, 0x70
xor edx, edx
cmp esi, 4
jl 0x58c617
lea ecx, [esi - 4]
shr ecx, 2
add ecx, 1
lea edx, [ecx*4]
mov edi, edi
movss xmm1, dword [eax + 0x68]
mulss xmm1, dword [eax + 0x2c]
movss xmm0, dword [eax + 0x30]
subss xmm0, xmm1
movss xmm1, dword [eax - 0xc]
mulss xmm1, xmm0
movss dword [eax + 0x30], xmm0
movss xmm0, dword [eax - 8]
subss xmm0, xmm1
movss xmm1, dword [eax - 0x44]
mulss xmm1, xmm0
movss dword [eax - 8], xmm0
movss xmm0, dword [eax - 0x40]
subss xmm0, xmm1
movss xmm1, dword [eax - 0x7c]
movss dword [eax - 0x40], xmm0
mulss xmm1, xmm0
movss xmm0, dword [eax - 0x78]
subss xmm0, xmm1
movss dword [eax - 0x78], xmm0
sub eax, 0xe0
sub ecx, 1
jne 0x58c5b0
cmp edx, esi
jae 0x58c640
mov ecx, esi
add eax, 0x30
sub ecx, edx
movss xmm0, dword [eax + 0x38]
movss xmm1, dword [eax]
mulss xmm0, dword [eax - 4]
subss xmm1, xmm0
movss dword [eax], xmm1
sub eax, 0x38
sub ecx, 1
jne 0x58c622
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 0xf0]
mov eax, dword [ecx + 0x28]
mov edi, dword [esp + 0x38]
mov eax, dword [eax + edi]
add eax, ebx
lea eax, [eax + eax*4]
shl eax, 5
movss xmm0, dword [eax + edx - 0x10]
lea esi, [eax + edx - 0xa0]
mov eax, dword [esi + 0x80]
movss xmm1, dword [eax]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x30]
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x34]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
addss xmm1, dword [eax + 0x38]
movss dword [esp + 0x24], xmm1
movss xmm0, dword [eax + 0x3c]
movss dword [esp + 0x28], xmm0
mov ecx, dword [ecx + 0x28]
mov ecx, dword [edi + ecx]
lea eax, [ecx + ecx*4]
shl eax, 5
mov esi, dword [eax + edx + 0x80]
add eax, edx
lea edx, [ecx*8]
sub edx, ecx
mov ecx, dword [esp + 0x4c]
movss xmm0, dword [ecx + edx*8 + 0x30]
divss xmm0, dword [eax + 0x88]
lea edx, [ecx + edx*8]
mov ecx, dword [eax + 0x120]
movss xmm2, dword [ecx + 0x30]
movaps xmm1, xmm0
mulss xmm1, dword [esi]
subss xmm2, xmm1
movss dword [ecx + 0x30], xmm2
movss xmm1, dword [esi + 4]
movss xmm2, dword [ecx + 0x34]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [ecx + 0x34], xmm2
movss xmm1, dword [esi + 8]
mulss xmm1, xmm0
movss xmm0, dword [ecx + 0x38]
subss xmm0, xmm1
movss dword [ecx + 0x38], xmm0
mov esi, dword [ecx + 0x3c]
add eax, 0xa0
add edx, 0x38
cmp dword [esp + 0x30], 1
mov dword [ecx + 0x3c], esi
jbe 0x58c820
mov ebx, dword [esp + 0x30]
add ebx, 0xffffffff
jmp 0x58c760
mov ecx, dword [eax + 0x80]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [eax - 0x18]
movaps xmm1, xmm0
mulss xmm1, dword [ecx]
addss xmm1, dword [ecx + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [ecx + 4]
mulss xmm1, xmm0
addss xmm1, dword [ecx + 0x34]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [ecx + 8]
mulss xmm1, xmm0
addss xmm1, dword [ecx + 0x38]
movss dword [ecx + 0x38], xmm1
mov esi, dword [ecx + 0x3c]
mov dword [ecx + 0x3c], esi
mov esi, dword [eax + 0x80]
mov ecx, dword [eax + 0x120]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [eax + 0x88]
movss xmm2, dword [ecx + 0x30]
movaps xmm1, xmm0
mulss xmm1, dword [esi]
subss xmm2, xmm1
movss dword [ecx + 0x30], xmm2
movss xmm1, dword [esi + 4]
movss xmm2, dword [ecx + 0x34]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [ecx + 0x34], xmm2
movss xmm1, dword [esi + 8]
mulss xmm1, xmm0
movss xmm0, dword [ecx + 0x38]
subss xmm0, xmm1
movss dword [ecx + 0x38], xmm0
mov esi, dword [ecx + 0x3c]
add eax, 0xa0
add edx, 0x38
sub ebx, 1
mov dword [ecx + 0x3c], esi
jne 0x58c760
mov ecx, dword [eax + 0x80]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [eax - 0x18]
movss xmm1, dword [ecx]
mov ebx, dword [ebp + 8]
mulss xmm1, xmm0
addss xmm1, dword [ecx + 0x30]
movss dword [ecx + 0x30], xmm1
movss xmm1, dword [ecx + 4]
mulss xmm1, xmm0
addss xmm1, dword [ecx + 0x34]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [ecx + 8]
mulss xmm1, xmm0
addss xmm1, dword [ecx + 0x38]
movss dword [ecx + 0x38], xmm1
mov esi, dword [ecx + 0x3c]
mov dword [ecx + 0x3c], esi
mov ecx, dword [ebx]
mov esi, dword [ecx + 0x28]
cmp dword [esi + edi + 8], 0
jne 0x58c8d7
mov esi, dword [eax + 0x80]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [eax - 0x18]
movss xmm1, dword [esi]
movss xmm2, dword [esp + 0x1c]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [esp + 0x1c], xmm2
movss xmm1, dword [esi + 4]
movss xmm2, dword [esp + 0x20]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [esp + 0x20], xmm2
movss xmm1, dword [esi + 8]
mulss xmm1, xmm0
movss xmm0, dword [esp + 0x24]
subss xmm0, xmm1
movss dword [esp + 0x24], xmm0
mov edx, dword [ecx + 0x28]
mov esi, dword [edi + edx]
lea esi, [esi + esi*4]
shl esi, 5
add esi, dword [ebx + 0xf0]
cmp dword [esp + 0x30], 0
jbe 0x58caf3
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0xc]
mov dword [esp + 0xb8], eax
jmp 0x58c910
mov ecx, dword [esi + 0x120]
mov eax, dword [esi + 0x80]
fld dword [ecx + 0x30]
fsub dword [eax + 0x30]
add ecx, 0x30
add eax, 0x30
fstp dword [esp + 0xc]
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [ecx + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x14]
movss xmm0, dword [ecx + 0xc]
fld dword [esp + 0x10]
subss xmm0, dword [eax + 0xc]
fmul dword [esp + 0x10]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x14]
mov ecx, dword [esi + 0x80]
fmul dword [esp + 0x14]
mov dword [esp + 0x50], ecx
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [esi + 0x90]
fstp dword [esp + 0x74]
mov edx, dword [esp + 0xb8]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x74]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x50]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [eax + 0x14]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x2a4], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov edi, dword [esp + 0x2a4]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x2a8], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x14]
mov edx, ecx
mov dword [edx], edi
mov edi, dword [esp + 0x2a8]
mov dword [edx + 4], edi
subss xmm0, xmm1
movss dword [esp + 0x2ac], xmm0
mov edi, dword [esp + 0x2ac]
mov dword [edx + 8], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edi, dword [esi + 0x80]
add edi, 0x20
push edi
push edi
call fcn.00591360
mov ecx, dword [edi + 0xc]
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0x28]
mulss xmm1, dword [eax + 4]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x2b4], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x28]
subss xmm0, xmm1
lea ecx, [eax + 0x10]
movss dword [esp + 0x2b8], xmm0
movss xmm0, dword [eax + 0x20]
movss xmm1, dword [eax]
mulss xmm0, dword [eax + 4]
mulss xmm1, dword [eax + 0x24]
mov edi, dword [esp + 0x2b4]
mov edx, ecx
mov dword [edx], edi
mov edi, dword [esp + 0x2b8]
mov dword [edx + 4], edi
subss xmm0, xmm1
movss dword [esp + 0x2bc], xmm0
mov edi, dword [esp + 0x2bc]
mov dword [edx + 8], edi
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0xc], eax
mov ecx, dword [esi + 0x80]
push ecx
push esi
call fcn.00555cf0
add esp, 8
add esi, 0xa0
sub ebx, 1
jne 0x58c910
mov eax, dword [esi + 0x80]
fld dword [esp + 0x1c]
fsub dword [eax + 0x30]
add eax, 0x30
movss xmm0, dword [esp + 0x28]
fstp dword [esp + 0xc]
fld dword [esp + 0x20]
fsub dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x24]
fsub dword [eax + 8]
fstp dword [esp + 0x14]
subss xmm0, dword [eax + 0xc]
fld dword [esp + 0x10]
movss dword [esp + 0x18], xmm0
fmul dword [esp + 0x10]
mov edx, dword [esi + 0x80]
fld dword [esp + 0x14]
lea eax, [esp + 0xc]
fmul dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov dword [esp + 0xb8], eax
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fst dword [esi + 0x90]
fstp dword [esp + 0x74]
mov edx, dword [esp + 0xb8]
movups xmm0, xmmword [edx]
movss xmm1, dword [esp + 0x74]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
mov eax, dword [esp + 0x50]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x14]
mulss xmm1, dword [eax + 8]
subss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, dword [eax + 0x18]
movss dword [esp + 0x2cc], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 8]
mov edi, dword [esp + 0x2cc]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x10]
mulss xmm1, dword [eax + 4]
lea ecx, [eax + 0x20]
movss dword [esp + 0x2d0], xmm0
movss xmm0, dword [eax + 0x14]
mulss xmm0, dword [eax]
mov edx, ecx
mov dword [edx], edi
mov edi, dword [esp + 0x2d0]
mov dword [edx + 4], edi
subss xmm0, xmm1
movss dword [esp + 0x2d4], xmm0
mov edi, dword [esp + 0x2d4]
mov dword [edx + 8], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x80]
lea edi, [eax + 0x20]
push edi
push edi
call fcn.00591360
mov ecx, dword [edi + 0xc]
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x80]
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 4]
mulss xmm1, dword [eax + 0x28]
subss xmm0, xmm1
movss xmm1, dword [eax + 0x20]
mulss xmm1, dword [eax + 8]
movss dword [esp + 0x2e4], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [eax + 0x28]
subss xmm0, xmm1
lea ecx, [eax + 0x10]
movss dword [esp + 0x2e8], xmm0
movss xmm0, dword [eax + 4]
movss xmm1, dword [eax]
mulss xmm0, dword [eax + 0x20]
mulss xmm1, dword [eax + 0x24]
mov edi, dword [esp + 0x2e4]
mov edx, ecx
mov dword [edx], edi
mov edi, dword [esp + 0x2e8]
mov dword [edx + 4], edi
subss xmm0, xmm1
movss dword [esp + 0x2ec], xmm0
mov edi, dword [esp + 0x2ec]
mov dword [edx + 8], edi
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0xc], eax
mov ecx, dword [esi + 0x80]
push ecx
push esi
call fcn.00555cf0
add esp, 8
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
add dword [esp + 0x38], 0x10
add eax, 1
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
jb 0x58ba70
mov edi, edx
xor eax, eax
mov edx, dword [edi]
cmp dword [edx + 0x10], eax
mov dword [esp + 0x34], eax
jbe 0x58ce6a
xor ebx, ebx
mov dword [esp + 0x3c], ebx
mov eax, dword [edi]
mov ecx, dword [eax + 0x28]
mov eax, dword [ecx + ebx]
lea esi, [ecx + ebx]
mov esi, dword [esi + 4]
lea edx, [eax + eax*4]
lea ecx, [eax*8]
shl edx, 5
add edx, dword [edi + 0xf0]
sub ecx, eax
add esi, 0xffffffff
mov eax, dword [esp + 0x4c]
lea ecx, [eax + ecx*8]
je 0x58cdc4
lea ebx, [esi + esi*4]
shl ebx, 5
lea eax, [edx + 0x48]
add edx, ebx
movss xmm3, dword [ecx]
movss xmm2, dword [ebp + 0xc]
movss xmm1, dword [0x649534]
movaps xmm0, xmm2
divss xmm0, dword [eax + 0x40]
mulss xmm0, xmm1
mulss xmm3, xmm0
addss xmm3, dword [eax - 8]
movss dword [eax - 8], xmm3
movss xmm3, dword [ecx + 4]
mulss xmm3, xmm0
addss xmm3, dword [eax - 4]
movss dword [eax - 4], xmm3
movss xmm3, dword [ecx + 8]
mulss xmm3, xmm0
addss xmm3, dword [eax]
movss dword [eax], xmm3
mov ebx, dword [eax + 4]
mov dword [eax + 4], ebx
movss xmm0, dword [ecx + 0x20]
divss xmm0, dword [eax + 0x44]
mulss xmm0, xmm2
mulss xmm0, xmm1
addss xmm0, dword [eax + 0x3c]
movss dword [eax + 0x3c], xmm0
add eax, 0xa0
add ecx, 0x38
sub esi, 1
jne 0x58cd42
mov ebx, dword [esp + 0x3c]
mov eax, dword [edi]
mov eax, dword [eax + 0x28]
cmp dword [eax + ebx + 8], 0
jne 0x58ce23
movss xmm1, dword [ecx]
movss xmm0, dword [ebp + 0xc]
divss xmm0, dword [edx + 0x88]
mulss xmm0, dword [0x649534]
mulss xmm1, xmm0
addss xmm1, dword [edx + 0x40]
movss dword [edx + 0x40], xmm1
movss xmm1, dword [ecx + 4]
mulss xmm1, xmm0
addss xmm1, dword [edx + 0x44]
movss dword [edx + 0x44], xmm1
movss xmm1, dword [ecx + 8]
mulss xmm1, xmm0
addss xmm1, dword [edx + 0x48]
movss dword [edx + 0x48], xmm1
mov eax, dword [edx + 0x4c]
mov dword [edx + 0x4c], eax
movss xmm0, dword [ecx + 0x20]
divss xmm0, dword [edx + 0x8c]
mulss xmm0, dword [ebp + 0xc]
mulss xmm0, dword [0x649534]
mov eax, dword [esp + 0x34]
addss xmm0, dword [edx + 0x84]
movss dword [edx + 0x84], xmm0
mov ecx, dword [edi]
add eax, 1
add ebx, 0x10
cmp eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ebx
jb 0x58cd04
mov edx, dword [edi]
cmp dword [edx + 0x10], 0
mov dword [esp + 0x34], 0
jbe 0x58e0f8
mov dword [esp + 0x2c], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
mov eax, dword [esp + 0x2c]
mov edi, dword [edx + eax + 4]
lea esi, [edx + eax]
mov eax, dword [esi]
lea edx, [eax + eax*4]
shl edx, 5
add edx, dword [ecx + 0xf0]
lea ecx, [eax*8]
sub ecx, eax
cmp edi, 1
mov eax, dword [esp + 0x4c]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x38], edi
jne 0x58cff4
mov eax, dword [edx + 0x80]
movss xmm0, dword [edx + 0x48]
mulss xmm0, dword [eax + 8]
movss xmm1, dword [edx + 0x44]
mulss xmm1, dword [eax + 4]
movss xmm2, dword [edx + 0x40]
addss xmm0, xmm1
movss xmm1, dword [edx + 0x40]
mulss xmm1, dword [eax]
addss xmm0, xmm1
movss xmm1, dword [eax]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [edx + 0x40], xmm2
movss xmm1, dword [eax + 4]
movss xmm2, dword [edx + 0x44]
mulss xmm1, xmm0
subss xmm2, xmm1
movss dword [edx + 0x44], xmm2
movss xmm1, dword [eax + 8]
mov ebx, dword [ebp + 8]
mulss xmm1, xmm0
movss xmm0, dword [edx + 0x48]
subss xmm0, xmm1
movss dword [edx + 0x48], xmm0
mov ecx, dword [edx + 0x4c]
mov dword [edx + 0x4c], ecx
movss xmm0, dword [edx + 0x48]
movss xmm2, dword [edx + 0x44]
movss xmm1, dword [edx + 0x90]
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm0, xmm2
movss xmm2, dword [edx + 0x40]
mulss xmm2, xmm2
addss xmm0, xmm2
movss xmm2, dword [ebp + 0xc]
mulss xmm0, xmm2
mulss xmm0, xmm2
movaps xmm2, xmm1
mulss xmm2, xmm1
movss xmm1, dword [0x649444]
divss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x58cfa8
xorps xmm0, xmm0
movss dword [edx + 0x4c], xmm0
movss dword [edx + 0x48], xmm0
movss dword [edx + 0x44], xmm0
movss dword [edx + 0x40], xmm0
jmp 0x58e0dd
mulss xmm0, dword [0x649534]
addss xmm0, xmm1
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [edx + 0x40]
movss dword [edx + 0x40], xmm0
movss xmm0, dword [edx + 0x44]
mulss xmm0, xmm1
movss dword [edx + 0x44], xmm0
movss xmm0, dword [edx + 0x48]
mulss xmm0, xmm1
movss dword [edx + 0x48], xmm0
movss xmm0, dword [edx + 0x4c]
mulss xmm0, xmm1
movss dword [edx + 0x4c], xmm0
jmp 0x58e0dd
mov eax, dword [edx + 0x120]
mov esi, dword [edx + 0x80]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [esi + 8]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [esi + 4]
xorps xmm5, xmm5
movss xmm2, dword [0x649444]
addss xmm1, xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [esi]
addss xmm1, xmm0
movss dword [ecx + 0x24], xmm5
movss dword [ecx + 0x28], xmm2
movaps xmm0, xmm5
subss xmm0, xmm1
movss dword [ecx + 0x2c], xmm0
mov eax, dword [edx + 0x80]
movss xmm1, dword [eax + 8]
mulss xmm1, dword [edx + 0x48]
movss xmm3, dword [eax + 4]
mulss xmm3, dword [edx + 0x44]
addss xmm1, xmm3
movss xmm3, dword [edx + 0x40]
mulss xmm3, dword [eax]
lea eax, [edi - 1]
addss xmm1, xmm3
mulss xmm1, dword [edx + 0x88]
mov dword [esp + 0x30], eax
movss dword [ecx + 0x30], xmm1
add eax, 0xffffffff
add edx, 0xa0
add ecx, 0x38
cmp eax, 4
mov dword [esp + 0x44], 1
jl 0x58d4eb
mov ebx, dword [esp + 0x30]
add ebx, 0xfffffffb
shr ebx, 2
add ebx, 1
lea esi, [ebx + ebx*4]
shl esi, 7
lea eax, [edx - 0x58]
add edx, esi
lea esi, [ebx*4 + 1]
mov dword [esp + 0x44], esi
jmp 0x58d0d0
mulss xmm0, dword [eax + 0xe0]
movss dword [ecx + 0x24], xmm0
movss xmm0, dword [eax + 0x40]
addss xmm0, dword [eax + 0xe0]
movss dword [ecx + 0x28], xmm0
mov edi, dword [eax + 0xd8]
mov esi, dword [eax + 0x178]
movss xmm1, dword [edi + 8]
mulss xmm1, dword [esi + 8]
movss xmm0, dword [edi + 4]
mulss xmm0, dword [esi + 4]
addss xmm1, xmm0
movss xmm0, dword [esi]
mulss xmm0, dword [edi]
addss xmm1, xmm0
movaps xmm0, xmm5
subss xmm0, xmm1
movaps xmm1, xmm0
mulss xmm1, dword [eax + 0x40]
movss dword [ecx + 0x2c], xmm1
movss xmm1, dword [eax + 0x98]
subss xmm1, dword [eax - 8]
movss dword [esp + 0xc], xmm1
movss xmm3, dword [eax + 0x9c]
subss xmm3, dword [eax - 4]
movss dword [esp + 0x10], xmm3
movss xmm4, dword [eax + 0xa0]
subss xmm4, dword [eax]
movss dword [esp + 0x14], xmm4
movss xmm6, dword [eax + 0xa4]
subss xmm6, dword [eax + 4]
movss dword [esp + 0x18], xmm6
mov esi, dword [eax + 0xd8]
movss xmm6, dword [esi + 4]
mulss xmm6, xmm3
movss xmm3, dword [esi + 8]
mulss xmm3, xmm4
addss xmm6, xmm3
movss xmm3, dword [esi]
mulss xmm3, xmm1
addss xmm6, xmm3
mulss xmm6, dword [eax + 0x40]
mulss xmm6, dword [eax + 0xe0]
movss dword [ecx + 0x30], xmm6
movss xmm1, dword [eax + 0x180]
mulss xmm1, xmm0
movss dword [ecx + 0x5c], xmm1
movss xmm0, dword [eax + 0x180]
addss xmm0, dword [eax + 0xe0]
movss dword [ecx + 0x60], xmm0
mov esi, dword [eax + 0x218]
mov edi, dword [eax + 0x178]
movss xmm1, dword [edi + 8]
mulss xmm1, dword [esi + 8]
movss xmm0, dword [edi + 4]
mulss xmm0, dword [esi + 4]
addss xmm1, xmm0
movss xmm0, dword [esi]
mulss xmm0, dword [edi]
addss xmm1, xmm0
movaps xmm0, xmm5
subss xmm0, xmm1
movaps xmm1, xmm0
mulss xmm1, dword [eax + 0xe0]
movss dword [ecx + 0x64], xmm1
movss xmm1, dword [eax + 0x138]
subss xmm1, dword [eax + 0x98]
movss dword [esp + 0xc], xmm1
movss xmm3, dword [eax + 0x13c]
subss xmm3, dword [eax + 0x9c]
movss dword [esp + 0x10], xmm3
movss xmm4, dword [eax + 0x140]
subss xmm4, dword [eax + 0xa0]
movss dword [esp + 0x14], xmm4
movss xmm6, dword [eax + 0x144]
subss xmm6, dword [eax + 0xa4]
movss dword [esp + 0x18], xmm6
mov esi, dword [eax + 0x178]
movss xmm6, dword [esi + 4]
mulss xmm6, xmm3
movss xmm3, dword [esi + 8]
mulss xmm3, xmm4
addss xmm6, xmm3
movss xmm3, dword [esi]
mulss xmm3, xmm1
addss xmm6, xmm3
mulss xmm6, dword [eax + 0x180]
mulss xmm6, dword [eax + 0xe0]
movss dword [ecx + 0x68], xmm6
movss xmm1, dword [eax + 0x220]
mulss xmm1, xmm0
movss dword [ecx + 0x94], xmm1
movss xmm0, dword [eax + 0x220]
addss xmm0, dword [eax + 0x180]
movss dword [ecx + 0x98], xmm0
mov edi, dword [eax + 0x218]
mov esi, dword [eax + 0x2b8]
movss xmm1, dword [edi + 8]
mulss xmm1, dword [esi + 8]
movss xmm0, dword [edi + 4]
mulss xmm0, dword [esi + 4]
addss xmm1, xmm0
movss xmm0, dword [esi]
mulss xmm0, dword [edi]
addss xmm1, xmm0
movaps xmm0, xmm5
subss xmm0, xmm1
movss xmm1, dword [eax + 0x180]
mulss xmm1, xmm0
movss dword [ecx + 0x9c], xmm1
movss xmm1, dword [eax + 0x1d8]
subss xmm1, dword [eax + 0x138]
movss dword [esp + 0xc], xmm1
movss xmm3, dword [eax + 0x1dc]
subss xmm3, dword [eax + 0x13c]
movss dword [esp + 0x10], xmm3
movss xmm4, dword [eax + 0x1e0]
subss xmm4, dword [eax + 0x140]
movss dword [esp + 0x14], xmm4
movss xmm6, dword [eax + 0x1e4]
subss xmm6, dword [eax + 0x144]
movss dword [esp + 0x18], xmm6
mov esi, dword [eax + 0x218]
movss xmm6, dword [esi + 4]
mulss xmm6, xmm3
movss xmm3, dword [esi + 8]
mulss xmm3, xmm4
addss xmm6, xmm3
movss xmm3, dword [esi]
mulss xmm3, xmm1
addss xmm6, xmm3
mulss xmm6, dword [eax + 0x220]
mulss xmm6, dword [eax + 0x180]
movss dword [ecx + 0xa0], xmm6
mulss xmm0, dword [eax + 0x2c0]
movss dword [ecx + 0xcc], xmm0
movss xmm0, dword [eax + 0x220]
addss xmm0, dword [eax + 0x2c0]
movss dword [ecx + 0xd0], xmm0
mov edi, dword [eax + 0x2b8]
mov esi, dword [eax + 0x358]
movss xmm0, dword [edi + 8]
mulss xmm0, dword [esi + 8]
movss xmm1, dword [edi + 4]
mulss xmm1, dword [esi + 4]
addss xmm0, xmm1
movss xmm1, dword [esi]
mulss xmm1, dword [edi]
addss xmm0, xmm1
movaps xmm1, xmm5
subss xmm1, xmm0
movaps xmm0, xmm1
movss xmm1, dword [eax + 0x220]
mulss xmm1, xmm0
movss dword [ecx + 0xd4], xmm1
movss xmm1, dword [eax + 0x278]
subss xmm1, dword [eax + 0x1d8]
movss dword [esp + 0xc], xmm1
movss xmm3, dword [eax + 0x27c]
subss xmm3, dword [eax + 0x1dc]
movss dword [esp + 0x10], xmm3
movss xmm4, dword [eax + 0x280]
subss xmm4, dword [eax + 0x1e0]
movss dword [esp + 0x14], xmm4
movss xmm6, dword [eax + 0x284]
subss xmm6, dword [eax + 0x1e4]
movss dword [esp + 0x18], xmm6
mov esi, dword [eax + 0x2b8]
movss xmm6, dword [esi + 4]
mulss xmm6, xmm3
movss xmm3, dword [esi + 8]
mulss xmm3, xmm4
addss xmm6, xmm3
movss xmm3, dword [esi]
mulss xmm3, xmm1
addss xmm6, xmm3
mulss xmm6, dword [eax + 0x220]
mulss xmm6, dword [eax + 0x2c0]
movss dword [ecx + 0xd8], xmm6
add ecx, 0xe0
add eax, 0x280
sub ebx, 1
jne 0x58d0d0
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x30]
cmp esi, ebx
jae 0x58d609
sub ebx, esi
lea esi, [ebx + ebx*4]
shl esi, 5
lea eax, [edx - 0x5c]
add edx, esi
jmp 0x58d510
mulss xmm0, dword [eax + 0xe4]
movss dword [ecx + 0x24], xmm0
movss xmm0, dword [eax + 0xe4]
addss xmm0, dword [eax + 0x44]
movss dword [ecx + 0x28], xmm0
mov esi, dword [eax + 0x17c]
mov edi, dword [eax + 0xdc]
movss xmm0, dword [edi + 8]
mulss xmm0, dword [esi + 8]
movss xmm1, dword [edi + 4]
mulss xmm1, dword [esi + 4]
addss xmm0, xmm1
movss xmm1, dword [esi]
mulss xmm1, dword [edi]
addss xmm0, xmm1
movaps xmm1, xmm5
subss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [eax + 0x44]
movss dword [ecx + 0x2c], xmm1
movss xmm1, dword [eax + 0x9c]
subss xmm1, dword [eax - 4]
movss dword [esp + 0xc], xmm1
movss xmm3, dword [eax + 0xa0]
subss xmm3, dword [eax]
movss dword [esp + 0x10], xmm3
movss xmm4, dword [eax + 0xa4]
subss xmm4, dword [eax + 4]
movss dword [esp + 0x14], xmm4
movss xmm6, dword [eax + 0xa8]
subss xmm6, dword [eax + 8]
movss dword [esp + 0x18], xmm6
mov esi, dword [eax + 0xdc]
movss xmm6, dword [esi + 4]
mulss xmm6, xmm3
movss xmm3, dword [esi + 8]
mulss xmm3, xmm4
addss xmm6, xmm3
movss xmm3, dword [esi]
mulss xmm3, xmm1
addss xmm6, xmm3
mulss xmm6, dword [eax + 0xe4]
mulss xmm6, dword [eax + 0x44]
movss dword [ecx + 0x30], xmm6
add ecx, 0x38
add eax, 0xa0
sub ebx, 1
jne 0x58d510
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov eax, dword [eax + 0x28]
mov esi, dword [esp + 0x2c]
cmp dword [eax + esi + 8], 0
je 0x58d69d
movss dword [ecx + 0x24], xmm0
movss dword [ecx + 0x28], xmm2
movss dword [ecx + 0x2c], xmm5
movss xmm0, dword [edx + 0x40]
subss xmm0, dword [edx - 0x60]
movss dword [esp + 0xc], xmm0
movss xmm1, dword [edx + 0x44]
subss xmm1, dword [edx - 0x5c]
movss dword [esp + 0x10], xmm1
movss xmm3, dword [edx + 0x48]
subss xmm3, dword [edx - 0x58]
movss dword [esp + 0x14], xmm3
movss xmm4, dword [edx + 0x4c]
subss xmm4, dword [edx - 0x54]
movss dword [esp + 0x18], xmm4
mov eax, dword [edx + 0x80]
movss xmm4, dword [eax + 4]
mulss xmm0, dword [eax]
mulss xmm4, xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm3
addss xmm4, xmm1
addss xmm4, xmm0
mulss xmm4, dword [edx - 0x18]
jmp 0x58d736
mulss xmm0, dword [edx + 0x88]
movss dword [ecx + 0x24], xmm0
movss xmm0, dword [edx - 0x18]
addss xmm0, dword [edx + 0x88]
movss dword [ecx + 0x28], xmm0
movss dword [ecx + 0x2c], xmm5
movss xmm0, dword [edx + 0x40]
subss xmm0, dword [edx - 0x60]
movss dword [esp + 0xc], xmm0
movss xmm1, dword [edx + 0x44]
subss xmm1, dword [edx - 0x5c]
movss dword [esp + 0x10], xmm1
movss xmm3, dword [edx + 0x48]
subss xmm3, dword [edx - 0x58]
movss dword [esp + 0x14], xmm3
movss xmm4, dword [edx + 0x4c]
subss xmm4, dword [edx - 0x54]
movss dword [esp + 0x18], xmm4
mov eax, dword [edx + 0x80]
movss xmm4, dword [eax + 4]
mulss xmm4, xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm3
addss xmm4, xmm1
movss xmm1, dword [eax]
mulss xmm1, xmm0
addss xmm4, xmm1
mulss xmm4, dword [edx - 0x18]
mulss xmm4, dword [edx + 0x88]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
movss dword [ecx + 0x30], xmm4
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x28]
mov eax, dword [edx + eax]
mov edx, dword [esp + 0x4c]
add eax, 1
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*8]
lea ecx, [esi - 1]
cmp ecx, 4
mov edi, 1
jl 0x58d8c2
lea ecx, [esi - 5]
shr ecx, 2
add ecx, edi
lea edi, [ecx*4 + 1]
mov edi, edi
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax - 0xc]
movss xmm1, dword [eax + 0x28]
movss xmm3, dword [eax - 8]
mulss xmm3, dword [eax + 0x24]
movss xmm4, dword [eax + 0x30]
subss xmm1, xmm0
subss xmm4, xmm3
movss xmm3, dword [eax + 0x5c]
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x2c]
mulss xmm1, xmm0
mulss xmm4, xmm0
movss xmm0, dword [eax + 0x5c]
mulss xmm0, xmm1
movss dword [eax + 0x2c], xmm1
movss xmm1, dword [eax + 0x60]
subss xmm1, xmm0
mulss xmm3, xmm4
movss dword [eax + 0x30], xmm4
movss xmm4, dword [eax + 0x68]
subss xmm4, xmm3
movss xmm3, dword [eax + 0x94]
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x64]
mulss xmm1, xmm0
mulss xmm4, xmm0
movss xmm0, dword [eax + 0x94]
mulss xmm0, xmm1
movss dword [eax + 0x64], xmm1
movss xmm1, dword [eax + 0x98]
subss xmm1, xmm0
mulss xmm3, xmm4
movss dword [eax + 0x68], xmm4
movss xmm4, dword [eax + 0xa0]
subss xmm4, xmm3
movss xmm3, dword [eax + 0xd8]
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x9c]
mulss xmm1, xmm0
mulss xmm4, xmm0
movss xmm0, dword [eax + 0xcc]
mulss xmm0, xmm1
movss dword [eax + 0x9c], xmm1
movss xmm1, dword [eax + 0xd0]
subss xmm1, xmm0
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0xd4]
mulss xmm1, xmm0
movss dword [eax + 0xd4], xmm1
movss xmm1, dword [eax + 0xcc]
mulss xmm1, xmm4
subss xmm3, xmm1
mulss xmm3, xmm0
movss dword [eax + 0xa0], xmm4
movss dword [eax + 0xd8], xmm3
add eax, 0xe0
sub ecx, 1
jne 0x58d780
cmp edi, esi
jae 0x58d91c
sub esi, edi
jmp 0x58d8d0
movss xmm0, dword [eax + 0x24]
mulss xmm0, dword [eax - 0xc]
movss xmm1, dword [eax + 0x28]
movss xmm3, dword [eax + 0x30]
subss xmm1, xmm0
movaps xmm0, xmm2
divss xmm0, xmm1
movss xmm1, dword [eax + 0x2c]
mulss xmm1, xmm0
movss dword [eax + 0x2c], xmm1
movss xmm1, dword [eax - 8]
mulss xmm1, dword [eax + 0x24]
subss xmm3, xmm1
mulss xmm3, xmm0
movss dword [eax + 0x30], xmm3
add eax, 0x38
sub esi, 1
jne 0x58d8d0
mov edi, dword [esp + 0x30]
sub eax, 0x70
xor esi, esi
cmp edi, 4
jl 0x58d9a7
lea ecx, [edi - 4]
shr ecx, 2
add ecx, 1
lea esi, [ecx*4]
mov edi, edi
movss xmm1, dword [eax + 0x68]
mulss xmm1, dword [eax + 0x2c]
movss xmm0, dword [eax + 0x30]
subss xmm0, xmm1
movss xmm1, dword [eax - 0xc]
mulss xmm1, xmm0
movss dword [eax + 0x30], xmm0
movss xmm0, dword [eax - 8]
subss xmm0, xmm1
movss xmm1, dword [eax - 0x44]
mulss xmm1, xmm0
movss dword [eax - 8], xmm0
movss xmm0, dword [eax - 0x40]
subss xmm0, xmm1
movss xmm1, dword [eax - 0x7c]
movss dword [eax - 0x40], xmm0
mulss xmm1, xmm0
movss xmm0, dword [eax - 0x78]
subss xmm0, xmm1
movss dword [eax - 0x78], xmm0
sub eax, 0xe0
sub ecx, 1
jne 0x58d940
cmp esi, edi
jae 0x58d9d0
mov ecx, edi
add eax, 0x30
sub ecx, esi
movss xmm0, dword [eax + 0x38]
movss xmm1, dword [eax]
mulss xmm0, dword [eax - 4]
subss xmm1, xmm0
movss dword [eax], xmm1
sub eax, 0x38
sub ecx, 1
jne 0x58d9b2
mov eax, dword [ebx]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + ecx]
lea ecx, [eax + eax*4]
lea esi, [eax*8]
sub esi, eax
movss xmm0, dword [edx + esi*8 + 0x30]
shl ecx, 5
add ecx, dword [ebx + 0xf0]
lea edx, [edx + esi*8]
divss xmm0, dword [ecx + 0x88]
mov eax, dword [ecx + 0x80]
movss xmm3, dword [ecx + 0x40]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
subss xmm3, xmm1
movss dword [ecx + 0x40], xmm3
movss xmm1, dword [eax + 4]
movss xmm3, dword [ecx + 0x44]
mulss xmm1, xmm0
subss xmm3, xmm1
movss dword [ecx + 0x44], xmm3
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
movss xmm0, dword [ecx + 0x48]
subss xmm0, xmm1
movss dword [ecx + 0x48], xmm0
mov eax, dword [ecx + 0x4c]
mov dword [ecx + 0x4c], eax
add ecx, 0xa0
add edx, 0x38
cmp dword [esp + 0x30], 1
jbe 0x58db51
mov edi, dword [esp + 0x30]
add edi, 0xffffffff
lea esi, [edi + edi*4]
shl esi, 5
lea eax, [ecx - 0x58]
add ecx, esi
jmp 0x58da80
mov esi, dword [eax + 0xd8]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [eax + 0x40]
movaps xmm1, xmm0
mulss xmm1, dword [esi]
addss xmm1, dword [eax - 8]
movss dword [eax - 8], xmm1
movss xmm1, dword [esi + 4]
mulss xmm1, xmm0
addss xmm1, dword [eax - 4]
movss dword [eax - 4], xmm1
movss xmm1, dword [esi + 8]
mulss xmm1, xmm0
addss xmm1, dword [eax]
movss dword [eax], xmm1
mov esi, dword [eax + 4]
mov dword [eax + 4], esi
mov esi, dword [eax + 0xd8]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [eax + 0xe0]
movss xmm1, dword [esi]
movss xmm3, dword [eax + 0x98]
mulss xmm1, xmm0
subss xmm3, xmm1
movss dword [eax + 0x98], xmm3
movss xmm1, dword [esi + 4]
movss xmm3, dword [eax + 0x9c]
mulss xmm1, xmm0
subss xmm3, xmm1
movss dword [eax + 0x9c], xmm3
movss xmm1, dword [esi + 8]
mulss xmm1, xmm0
movss xmm0, dword [eax + 0xa0]
subss xmm0, xmm1
movss dword [eax + 0xa0], xmm0
mov esi, dword [eax + 0xa4]
mov dword [eax + 0xa4], esi
add eax, 0xa0
add edx, 0x38
sub edi, 1
jne 0x58da80
mov eax, dword [ecx + 0x80]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [ecx - 0x18]
mov esi, dword [esp + 0x2c]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
addss xmm1, dword [ecx - 0x60]
movss dword [ecx - 0x60], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
addss xmm1, dword [ecx - 0x5c]
movss dword [ecx - 0x5c], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
addss xmm1, dword [ecx - 0x58]
movss dword [ecx - 0x58], xmm1
mov eax, dword [ecx - 0x54]
mov dword [ecx - 0x54], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x28]
cmp dword [eax + esi + 8], 0
jne 0x58dc0a
mov eax, dword [ecx + 0x80]
movss xmm0, dword [edx + 0x30]
divss xmm0, dword [ecx + 0x88]
movss xmm3, dword [ecx + 0x40]
movaps xmm1, xmm0
mulss xmm1, dword [eax]
subss xmm3, xmm1
movss dword [ecx + 0x40], xmm3
movss xmm1, dword [eax + 4]
movss xmm3, dword [ecx + 0x44]
mulss xmm1, xmm0
subss xmm3, xmm1
movss dword [ecx + 0x44], xmm3
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
movss xmm0, dword [ecx + 0x48]
subss xmm0, xmm1
movss dword [ecx + 0x48], xmm0
mov edx, dword [ecx + 0x4c]
mov dword [ecx + 0x4c], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x28]
mov ecx, dword [esi + ecx]
lea ecx, [ecx + ecx*4]
shl ecx, 5
add ecx, dword [ebx + 0xf0]
mov edx, dword [esp + 0x30]
movss xmm3, dword [ecx + 0x48]
movss xmm1, dword [ecx + 0x44]
movss xmm0, dword [ecx + 0x90]
mulss xmm3, xmm3
mulss xmm1, xmm1
addss xmm3, xmm1
movss xmm1, dword [ecx + 0x40]
mulss xmm1, xmm1
addss xmm3, xmm1
movss xmm1, dword [ebp + 0xc]
mulss xmm3, xmm1
mulss xmm3, xmm1
movaps xmm1, xmm0
mulss xmm1, xmm0
divss xmm3, xmm1
movss xmm1, dword [0x649534]
mulss xmm3, xmm1
addss xmm3, xmm2
movaps xmm0, xmm2
divss xmm0, xmm3
movaps xmm3, xmm0
mulss xmm3, dword [ecx + 0x40]
movss dword [ecx + 0x40], xmm3
movss xmm3, dword [ecx + 0x44]
mulss xmm3, xmm0
movss dword [ecx + 0x44], xmm3
movss xmm3, dword [ecx + 0x48]
mulss xmm3, xmm0
movss dword [ecx + 0x48], xmm3
movss xmm3, dword [ecx + 0x4c]
mulss xmm3, xmm0
movss dword [ecx + 0x4c], xmm3
add ecx, 0xa0
cmp edx, 1
jbe 0x58deb7
add edx, 0xffffffff
lea edi, [edx + edx*4]
shl edi, 5
lea eax, [ecx + 0x44]
add ecx, edi
movss xmm6, dword [eax - 4]
subss xmm6, dword [eax - 0xa4]
movss dword [esp + 0xc], xmm6
movss xmm3, dword [eax]
subss xmm3, dword [eax - 0xa0]
movss dword [esp + 0x10], xmm3
movss xmm4, dword [eax + 4]
subss xmm4, dword [eax - 0x9c]
movss dword [esp + 0x14], xmm4
movss xmm0, dword [eax + 8]
subss xmm0, dword [eax - 0x98]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movaps xmm7, xmm4
mulss xmm7, xmm4
addss xmm0, xmm7
movaps xmm7, xmm6
mulss xmm7, xmm6
movss xmm6, dword [ebp + 0xc]
addss xmm0, xmm7
mulss xmm0, xmm6
mulss xmm0, xmm6
movss xmm6, dword [eax + 0x4c]
movaps xmm7, xmm6
mulss xmm7, xmm6
divss xmm0, xmm7
comiss xmm0, xmm2
jbe 0x58dd82
mov edi, dword [eax - 0xa4]
mov dword [eax - 4], edi
mov edi, dword [eax - 0xa0]
mov dword [eax], edi
mov edi, dword [eax - 0x9c]
mov dword [eax + 4], edi
mov edi, dword [eax - 0x98]
mov dword [eax + 8], edi
jmp 0x58dea9
mulss xmm0, dword [0x649530]
addss xmm0, xmm2
movaps xmm6, xmm2
divss xmm6, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm6
movss dword [esp + 0x18], xmm0
mulss xmm3, xmm6
movss dword [esp + 0x10], xmm3
mulss xmm4, xmm6
movss dword [esp + 0x14], xmm4
movss xmm0, dword [eax - 4]
addss xmm0, dword [eax - 0xa4]
mulss xmm0, xmm1
movss dword [eax - 4], xmm0
movss xmm0, dword [eax]
addss xmm0, dword [eax - 0xa0]
mulss xmm0, xmm1
movss dword [eax], xmm0
movss xmm0, dword [eax + 4]
addss xmm0, dword [eax - 0x9c]
mulss xmm0, xmm1
movss dword [eax + 4], xmm0
movss xmm0, dword [eax - 0x98]
addss xmm0, dword [eax + 8]
mulss xmm0, xmm1
movss dword [eax + 8], xmm0
movss xmm0, dword [esp + 0xc]
mulss xmm0, xmm1
addss xmm0, dword [eax - 4]
movss dword [eax - 4], xmm0
movss xmm0, dword [esp + 0x10]
mov edi, dword [eax + 8]
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm1
addss xmm0, dword [eax + 4]
movss dword [eax + 4], xmm0
mov dword [eax + 8], edi
movss xmm0, dword [eax - 4]
subss xmm0, dword [esp + 0xc]
movss dword [eax - 0xa4], xmm0
movss xmm0, dword [eax]
subss xmm0, dword [esp + 0x10]
movss dword [eax - 0xa0], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, dword [esp + 0x14]
movss dword [eax - 0x9c], xmm0
movss xmm0, dword [eax + 8]
subss xmm0, dword [esp + 0x18]
movss dword [eax - 0x98], xmm0
add eax, 0xa0
sub edx, 1
jne 0x58dcd0
movss xmm6, dword [ecx + 0x40]
subss xmm6, dword [ecx - 0x60]
lea eax, [ecx + 0x40]
movss dword [esp + 0xc], xmm6
movss xmm3, dword [eax + 4]
subss xmm3, dword [ecx - 0x5c]
lea edx, [ecx - 0x60]
movss dword [esp + 0x10], xmm3
movss xmm4, dword [eax + 8]
subss xmm4, dword [edx + 8]
movss dword [esp + 0x14], xmm4
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [edx + 0xc]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movaps xmm7, xmm4
mulss xmm7, xmm4
addss xmm0, xmm7
movaps xmm7, xmm6
mulss xmm7, xmm6
movss xmm6, dword [ebp + 0xc]
addss xmm0, xmm7
mulss xmm0, xmm6
mulss xmm0, xmm6
movss xmm6, dword [ecx + 0x90]
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0x28]
cmp dword [ecx + esi + 8], 0
movaps xmm7, xmm6
mulss xmm7, xmm6
divss xmm0, xmm7
je 0x58dfb3
comiss xmm0, xmm2
jbe 0x58df63
movss dword [edx + 0xc], xmm5
movss dword [edx + 8], xmm5
movss dword [edx + 4], xmm5
movss dword [edx], xmm5
jmp 0x58e0dd
mulss xmm0, xmm1
movss xmm1, dword [esp + 0x18]
addss xmm0, xmm2
divss xmm2, xmm0
mulss xmm1, xmm2
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x18], xmm1
movss dword [esp + 0xc], xmm0
mulss xmm3, xmm2
movss dword [esp + 0x10], xmm3
mulss xmm4, xmm2
movss dword [esp + 0x14], xmm4
movss xmm1, dword [eax]
subss xmm1, xmm0
movss dword [edx], xmm1
jmp 0x58e0ad
comiss xmm0, xmm2
jbe 0x58dfd3
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
jmp 0x58e0dd
mulss xmm0, dword [0x649530]
addss xmm0, xmm2
divss xmm2, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm2
movss dword [esp + 0x18], xmm0
mulss xmm3, xmm2
movss dword [esp + 0x10], xmm3
mulss xmm4, xmm2
movss dword [esp + 0x14], xmm4
movss xmm0, dword [eax]
addss xmm0, dword [edx]
mulss xmm0, xmm1
movss dword [eax], xmm0
movss xmm0, dword [eax + 4]
addss xmm0, dword [edx + 4]
mulss xmm0, xmm1
movss dword [eax + 4], xmm0
movss xmm0, dword [edx + 8]
addss xmm0, dword [eax + 8]
mulss xmm0, xmm1
movss dword [eax + 8], xmm0
movss xmm0, dword [eax + 0xc]
addss xmm0, dword [edx + 0xc]
mulss xmm0, xmm1
movss dword [eax + 0xc], xmm0
movss xmm0, dword [esp + 0xc]
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mulss xmm0, xmm1
addss xmm0, dword [eax + 4]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm1
addss xmm0, dword [eax + 8]
movss dword [eax + 8], xmm0
mov dword [eax + 0xc], ecx
movss xmm0, dword [eax]
subss xmm0, dword [esp + 0xc]
movss dword [edx], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, dword [esp + 0x10]
movss dword [edx + 4], xmm0
movss xmm0, dword [eax + 8]
subss xmm0, dword [esp + 0x14]
movss dword [edx + 8], xmm0
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [esp + 0x18]
movss dword [edx + 0xc], xmm0
mov eax, dword [esp + 0x34]
mov edx, dword [ebx]
add dword [esp + 0x2c], 0x10
add eax, 1
cmp eax, dword [edx + 0x10]
mov dword [esp + 0x34], eax
jb 0x58ce86
movss xmm3, dword [ebp + 0xc]
movss xmm0, dword [esp + 0x88]
movss xmm1, dword [esp + 0xa8]
movss xmm2, dword [esp + 0xac]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0xcc]
movzx edx, word [ecx + 0xe]
mulss xmm0, xmm3
subss xmm1, xmm0
addss xmm0, dword [esp + 0x64]
movss xmm4, dword [esp + 0xb0]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x68]
movss dword [esp + 0xa8], xmm1
movss xmm1, dword [esp + 0x8c]
mulss xmm1, xmm3
addss xmm0, xmm1
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x6c]
subss xmm2, xmm1
movss dword [esp + 0xac], xmm2
movss xmm2, dword [esp + 0x90]
mulss xmm2, xmm3
addss xmm0, xmm2
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x78]
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x54]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x7c]
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x58]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x80]
add eax, 1
cmp eax, edx
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x5c]
subss xmm4, xmm2
movss dword [esp + 0xb0], xmm4
movss dword [esp + 0x5c], xmm0
mov dword [esp + 0xcc], eax
jb 0x587551
cmp dword [esp + 0xc4], 0
je 0x58e23a
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x554]
lea esi, [eax + ecx*4 + 0x514]
lea edi, [eax + 0x514]
cmp esi, edi
je 0x58e23a
jmp 0x58e220
mov eax, dword [esi - 4]
sub esi, 4
cmp word [eax + 0x5a], 0
je 0x58e236
push eax
call fcn.00581340
add esp, 4
cmp esi, edi
jne 0x58e220
call fcn.00581110
call fcn.00581110
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.00586d20
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret