Function at 0x589a00
Capabilities:
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x178
push esi
push edi
mov edi, ecx
movaps xmm0, xmm1
mov eax, dword [edi + 0x2d4]
lea esi, [edi + 0x2d4]
movss dword [esp + 0xd4], xmm0
mov dword [esp + 0x38], edi
cmp eax, dword [esi + 4]
je 0x589a34
mov dword [esi + 4], eax
test byte [edi + 0x2ad], 5
movaps xmm3, xmm0
shufps xmm3, xmm3, 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x40], xmm3
jne 0x589a5a
cmp dword [edi + 0x294], 0
mov byte [esp + 0x27], 0
je 0x589a5f
mov byte [esp + 0x27], 1
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
cmp dword [edi + 0x258], edx
jbe case.default.0x589aff
xor ecx, ecx
mov eax, dword [edi + 0x1e4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], ecx
movups xmm2, xmmword [eax + ecx*4]
mov eax, dword [edi + 0x1e0]
movaps xmm1, xmm2
cmpneqps xmm1, xmm0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xc0], ecx
movups xmm0, xmmword [eax + ecx*4]
addps xmm0, xmm3
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], ecx
cmpltps xmm2, xmm0
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ecx
movups xmmword [eax + ecx*4], xmm0
andps xmm2, xmm1
movmskps eax, xmm2
mov dword [esp + 0x10], eax
jmp dword [eax*4 + 0x58ac0c]
mov eax, dword [edi + 0x1e4]
mov dword [eax + ecx*4], 0
dec dword [edi + 0x25c]
jmp 0x589dbe
mov eax, dword [edi + 0x1e4]
mov dword [eax + ecx*4 + 4], 0
dec dword [edi + 0x25c]
jmp 0x589dbe
mov eax, dword [edi + 0x1e4]
mov dword [eax + ecx*4], 0
mov eax, dword [edi + 0x1e4]
mov dword [eax + ecx*4 + 4], 0
add dword [edi + 0x25c], 0xfffffffe
jmp 0x589dbe
mov eax, dword [edi + 0x1e4]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], 0
dec dword [edi + 0x25c]
jmp 0x589dbe
mov eax, dword [esp + 0x10]
cmp byte [esp + 0x27], 0
je case.0x589dcd.0
jmp dword [eax*4 + 0x58ac4c]
mov eax, dword [esp + 0x14]
add eax, 4
mov ecx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
cmp ecx, dword [edi + 0x258]
jae case.default.0x589aff
xorps xmm0, xmm0
mov edx, eax
jmp 0x589a77
test byte [edi + 0x29c], 0x40
lea eax, [edi + 0x29c]
mov dword [esp + 0x10], eax
je 0x589fb0
cmp dword [edi + 0x2a8], 0
lea eax, [edi + 0x29c]
mov dword [esp + 0x10], eax
jne 0x589fb0
movss xmm2, dword [edi + 0x2a4]
lea eax, [edi + 0x29c]
xor edx, edx
shufps xmm2, xmm2, 0
mov dword [esp + 0x10], eax
cmp dword [edi + 0x258], edx
jbe 0x589fb0
nop
mov eax, dword [edi + 0x1e4]
lea ecx, [edx*4]
add edx, 4
rcpps xmm0, xmmword [eax + ecx]
mov eax, dword [edi + 0x1e0]
movups xmm1, xmmword [eax + ecx]
mov eax, dword [edi + 0x1e8]
mulps xmm1, xmm0
mulps xmm1, xmm2
movups xmmword [eax + ecx], xmm1
cmp edx, dword [edi + 0x258]
jb 0x589f70
lea eax, [edi + 0x29c]
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x2e4]
xor esi, esi
mov edx, dword [edi + 0x2e0]
mov dword [esp + 0x1c], esi
cmp edx, ecx
je 0x589ff7
cmp dword [edx + 0x20], 2
jne 0x589fe2
mov ecx, dword [edx + 0x30]
sub ecx, dword [edx + 0x2c]
mov eax, dword [edx + 0x28]
sar ecx, 3
sub eax, ecx
mov ecx, dword [edi + 0x2e4]
add esi, eax
add edx, 0x38
cmp edx, ecx
jne 0x589fc6
lea eax, [edi + 0x29c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x2d4]
mov edx, dword [edi + 0x2d8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], edx
cmp ecx, edx
je 0x58a441
lea esi, [edi + 0x2ec]
mov dword [esp + 0xc], esi
nop dword [eax]
mov edx, dword [ecx]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [esp + 0x30], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [esp + 0x18], edx
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, esi
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.004301e0
mov esi, dword [eax + 4]
test esi, esi
je 0x58a184
cmp esi, dword [edi + 0x2f0]
lea ecx, [edi + 0x2ec]
je 0x58a184
add dword [esi + 0xc], 0xffffffff
jne 0x58a11f
lea eax, [esi + 8]
push eax
call fcn.00591240
mov edx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea ecx, [eax + edx*8]
mov dword [esp + 0x28], eax
mov edi, dword [eax + edx*8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x38]
cmp dword [ecx + 4], esi
jne 0x58a0f2
cmp dword [eax + edx*8], esi
jne 0x58a0ea
mov edi, dword [esp + 0xc]
mov edi, dword [edi + 4]
mov dword [esp + 0x18], edi
mov dword [eax + edx*8], edi
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov dword [ecx + 4], eax
jmp 0x58a101
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
jmp 0x58a101
cmp dword [esp + 0x18], esi
jne 0x58a101
mov ecx, dword [esp + 0x28]
mov eax, dword [esi]
mov dword [ecx + edx*8], eax
mov ecx, dword [esi]
dec dword [edi + 0x2f4]
mov eax, dword [esi + 4]
push 0x10
push esi
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
call fcn.005ab85c
add esp, 8
mov edx, dword [edi + 0x2e4]
mov eax, dword [edi + 0x2e0]
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], eax
cmp eax, edx
je 0x58a184
cmp dword [eax + 0x20], 0
jne 0x58a179
mov ecx, dword [eax + 0x30]
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x28], ecx
cmp esi, ecx
je 0x58a179
mov eax, dword [esp + 0x30]
nop
cmp dword [esi], eax
jne 0x58a16a
mov ecx, dword [esi + 4]
mov dword [esi], 0xffffffff
call fcn.0057aa90
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
add esi, 8
cmp esi, ecx
jne 0x58a150
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
add eax, 0x38
mov dword [esp + 0x18], eax
cmp eax, edx
jne 0x58a137
cmp dword [esp + 0x1c], 0
jbe 0x58a41c
mov esi, dword [edi + 0x2e0]
mov eax, dword [edi + 0x2e4]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], eax
cmp esi, eax
je 0x58a41c
nop dword [eax + eax]
cmp dword [esi + 0x20], 2
jne 0x58a3e9
call fcn.005ceee5
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x739a80]
comiss xmm0, dword [esi + 0x24]
ja 0x58a3e5
push esi
lea ecx, [esp + 0xdc]
mov dword [esp + 0xc4], 0xffffffff
call fcn.00464b00
lea ecx, [esp + 0xd8]
call fcn.00571eb0
mov esi, dword [edi + 0x70]
push dword [esp + 0x38]
lea edi, [esi + 0x29e0]
mov ecx, edi
call fcn.0050bc50
push 0x448
call fcn.005ab82c
add esp, 4
lea ecx, [esp + 0xd8]
push ecx
push esi
mov ecx, eax
call fcn.005720e0
mov esi, eax
lea eax, [esp + 0xd8]
push eax
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x20]
push esi
mov ecx, edi
call fcn.0050bc50
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc4], esi
mov eax, dword [edi + 0x20c]
movss xmm0, dword [eax + ecx*4]
mov eax, dword [edi + 0x210]
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [eax + ecx*4]
mov eax, dword [edi + 0x214]
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x60], xmm0
movss xmm0, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
movss dword [esp + 0x34], xmm0
movss dword [esp + 0x64], xmm0
test byte [eax], 1
je 0x58a375
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x40]
call eax
mov edx, eax
lea ecx, [esp + 0x68]
call fcn.0044a150
movss xmm4, dword [esp + 0x28]
movss xmm5, dword [esp + 0x18]
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0x68]
movss xmm3, dword [esp + 0x78]
movss xmm6, dword [esp + 0x34]
movss xmm2, dword [esp + 0x7c]
mulss xmm3, xmm5
movss xmm1, dword [esp + 0x80]
mulss xmm2, xmm5
addss xmm3, xmm0
mulss xmm1, xmm5
movss xmm0, dword [esp + 0x88]
mulss xmm0, xmm6
addss xmm0, dword [esp + 0x98]
addss xmm3, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0x6c]
mulss xmm4, dword [esp + 0x70]
addss xmm2, xmm0
movss xmm0, dword [esp + 0x8c]
mulss xmm0, xmm6
addss xmm1, xmm4
addss xmm0, dword [esp + 0x9c]
addss xmm2, xmm0
movss xmm0, dword [esp + 0x90]
mulss xmm0, xmm6
addss xmm0, dword [esp + 0xa0]
unpcklps xmm3, xmm2
movq qword [esp + 0x5c], xmm3
addss xmm1, xmm0
movss dword [esp + 0x48], xmm1
mov eax, dword [esp + 0x48]
jmp 0x58a37f
mov eax, dword [esp + 0x64]
movq xmm3, qword [esp + 0x5c]
movq qword [esi + 0xc0], xmm3
mov dword [esi + 0xc8], eax
lea eax, [esp + 0xc0]
mov dword [esi + 0x74], 0
mov esi, dword [esp + 0x14]
push eax
lea ecx, [esi + 0x2c]
call fcn.004e0af0
dec dword [esp + 0x1c]
lea ecx, [esp + 0xd8]
mov eax, esi
mov eax, dword [eax + 0x30]
sub eax, dword [esi + 0x2c]
sar eax, 3
cmp eax, dword [esi + 0x28]
je 0x58a3fa
call fcn.00465f40
mov eax, dword [esp + 0xe4]
xorps xmm0, xmm0
movlpd qword [esp + 0xd8], xmm0
test eax, eax
je 0x58a3e5
push eax
call fcn.004672a0
mov eax, dword [esp + 0x20]
add esi, 0x38
mov dword [esp + 0x14], esi
cmp esi, eax
jne 0x58a1b0
jmp 0x58a41c
call fcn.00465f40
mov eax, dword [esp + 0xe4]
xorps xmm0, xmm0
movlpd qword [esp + 0xd8], xmm0
test eax, eax
je 0x58a41c
push eax
call fcn.004672a0
mov ecx, dword [esp + 0x2c]
lea esi, [edi + 0x2ec]
add ecx, 4
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x3c]
jne 0x58a020
lea eax, [edi + 0x29c]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x294], 0
je 0x58a72c
mov edx, dword [edi + 0x2d4]
mov dword [esp + 0x10], eax
cmp edx, dword [edi + 0x2d8]
je 0x58a72c
mov edx, dword [edx]
xorps xmm1, xmm1
mov dword [esp + 0x20], edx
lea esi, [edx + 1]
cmp esi, dword [edi + 0x258]
jae 0x58a49a
mov eax, dword [edi + 0x1e4]
lea ecx, [eax + esi*4]
movss xmm0, dword [ecx]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x58a49a
inc esi
add ecx, 4
cmp esi, dword [edi + 0x258]
jb 0x58a481
cmp edx, dword [edi + 0x25c]
jae 0x58a6f5
nop word [eax + eax]
cmp esi, dword [edi + 0x258]
jae 0x58a6f5
mov eax, dword [edi + 0x1e4]
movss xmm0, dword [eax + esi*4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x58a6bb
cmp edx, dword [edi + 0x25c]
jae 0x58a6bb
mov ecx, dword [edi + 0x1e0]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1e4]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1e8]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1ec]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1f0]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1f4]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1f8]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1fc]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x200]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x204]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x208]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x20c]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x210]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x214]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x218]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x21c]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x220]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x224]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x228]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x22c]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x230]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x234]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x238]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x23c]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x240]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x244]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x248]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x24c]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x250]
mov ax, word [ecx + esi*2]
mov word [ecx + edx*2], ax
mov ecx, dword [edi + 0x254]
mov eax, dword [ecx + esi*4]
mov dword [ecx + edx*4], eax
cmp word [edi + 0x2bc], 0
jbe 0x58a69d
mov ecx, dword [edi + 0x2b8]
mov ax, word [ecx + esi*2]
mov word [ecx + edx*2], ax
movzx edx, word [edi + 0x2bc]
mov ecx, dword [edi + 0x2b4]
lea eax, [edx + edx*2]
shl eax, 2
push eax
mov eax, edx
imul edx, dword [esp + 0x24]
imul eax, esi
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
push eax
lea eax, [edx + edx*2]
lea eax, [ecx + eax*4]
push eax
call fcn.005c3580
mov edx, dword [esp + 0x2c]
add esp, 0xc
xorps xmm1, xmm1
mov eax, dword [edi + 0x1e4]
inc esi
inc edx
mov dword [esp + 0x20], edx
movss xmm0, dword [eax + esi*4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x58a4d4
cmp esi, dword [edi + 0x258]
jae 0x58a6e9
mov eax, dword [edi + 0x1e4]
lea ecx, [eax + esi*4]
nop dword [eax]
movss xmm0, dword [ecx]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x58a6e9
inc esi
add ecx, 4
cmp esi, dword [edi + 0x258]
jb 0x58a6d0
cmp edx, dword [edi + 0x25c]
jb 0x58a4b0
cmp edx, dword [edi + 0x258]
jae 0x58a716
nop dword [eax]
mov eax, dword [edi + 0x1e4]
mov dword [eax + edx*4], 0
inc edx
cmp edx, dword [edi + 0x258]
jb 0x58a700
mov eax, dword [edi + 0x25c]
mov dword [edi + 0x258], eax
lea eax, [edi + 0x29c]
mov dword [esp + 0x10], eax
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x40]
call eax
mov edx, dword [edi + 0x70]
lea ecx, [esp + 0x100]
push eax
mov edx, dword [edx]
call fcn.00449900
movss xmm5, dword [0x739900]
xor ecx, ecx
add esp, 4
mov dword [esp + 0x20], ecx
xor eax, eax
mov dword [esp + 0xc], eax
nop
mov esi, dword [edi + 0x2b0]
add esi, eax
mov eax, dword [esi + 0x40]
test al, 1
je 0x58a9d1
movss xmm0, dword [esi + 0x30]
lea ecx, [esp + 0x140]
shufps xmm0, xmm0, 0
movups xmmword [esi], xmm0
movss xmm0, dword [esi + 0x34]
shufps xmm0, xmm0, 0
movups xmmword [esi + 0x10], xmm0
movss xmm0, dword [esi + 0x38]
shufps xmm0, xmm0, 0
movups xmmword [esi + 0x20], xmm0
movaps xmm0, xmm5
mov eax, dword [edi + 0x70]
subss xmm0, dword [eax + 0x48]
movss xmm4, dword [eax + 0x44]
push dword [eax + 4]
mov edx, dword [eax + 8]
movups xmmword [esp + 0xc4], xmm4
movss dword [esp + 0x1c], xmm0
call fcn.00449900
add esp, 4
lea ecx, [esp + 0x68]
mov edx, eax
call fcn.0044a150
movups xmm3, xmmword [esp + 0xc0]
mov eax, dword [esp + 0x10]
movss xmm2, dword [esp + 0x18]
xorps xmm6, xmm6
movss xmm5, dword [0x739900]
subss xmm3, xmm6
movss xmm0, dword [esp + 0x84]
subss xmm2, xmm6
test byte [eax], 1
addss xmm3, xmm3
addss xmm2, xmm2
subss xmm3, xmm5
subss xmm2, xmm5
movaps xmm1, xmm3
movaps xmm4, xmm3
mulss xmm1, dword [esp + 0x74]
mulss xmm0, xmm2
mulss xmm4, dword [esp + 0x68]
addss xmm1, xmm0
mulss xmm3, dword [esp + 0x6c]
movss xmm0, dword [esp + 0x94]
mulss xmm0, xmm6
addss xmm0, dword [esp + 0xa4]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x78]
mulss xmm0, xmm2
addss xmm4, xmm0
movss xmm0, dword [esp + 0x88]
mulss xmm0, xmm6
addss xmm0, dword [esp + 0x98]
addss xmm4, xmm0
movss xmm0, dword [esp + 0x7c]
mulss xmm0, xmm2
addss xmm3, xmm0
movss xmm0, dword [esp + 0x8c]
mulss xmm0, xmm6
divss xmm4, xmm1
addss xmm0, dword [esp + 0x9c]
movups xmmword [esp + 0xf0], xmm4
addss xmm3, xmm0
divss xmm3, xmm1
movups xmmword [esp + 0xc0], xmm3
jne 0x58a9ad
lea edx, [esp + 0x100]
lea ecx, [esp + 0x68]
call fcn.0044a150
movups xmm4, xmmword [esp + 0xc0]
movups xmm5, xmmword [esp + 0xf0]
movss xmm3, dword [esp + 0x78]
xorps xmm6, xmm6
movss xmm0, dword [esp + 0x68]
mulss xmm0, xmm5
movss xmm2, dword [esp + 0x7c]
mulss xmm3, xmm4
movss xmm1, dword [esp + 0x80]
mulss xmm2, xmm4
addss xmm3, xmm0
mulss xmm1, xmm4
movss xmm0, dword [esp + 0x88]
mulss xmm0, xmm6
addss xmm0, dword [esp + 0x98]
addss xmm3, xmm0
movss xmm0, dword [esp + 0x6c]
mulss xmm0, xmm5
addss xmm2, xmm0
movss xmm0, dword [esp + 0x8c]
mulss xmm0, xmm6
addss xmm0, dword [esp + 0x9c]
addss xmm2, xmm0
movss xmm0, dword [esp + 0x70]
mulss xmm0, xmm5
movss xmm5, dword [0x739900]
addss xmm1, xmm0
unpcklps xmm3, xmm2
movss xmm0, dword [esp + 0x90]
mulss xmm0, xmm6
movq qword [esp + 0x5c], xmm3
movss xmm3, dword [esp + 0x60]
addss xmm0, dword [esp + 0xa0]
movss xmm4, dword [esp + 0x5c]
addss xmm1, xmm0
movss dword [esp + 0x48], xmm1
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
movss xmm6, dword [esp + 0x64]
shufps xmm3, xmm3, 0
addps xmm3, xmmword [esi + 0x10]
shufps xmm6, xmm6, 0
addps xmm6, xmmword [esi + 0x20]
shufps xmm4, xmm4, 0
addps xmm4, xmmword [esi]
movups xmmword [esi + 0x10], xmm3
movups xmmword [esi + 0x20], xmm6
jmp 0x58abc1
and eax, 2
je 0x58a9de
test ecx, ecx
jne 0x58aac2
mov edx, dword [esp + 0x10]
test byte [edx], 1
je 0x58aac6
movss xmm2, dword [esi + 0x30]
movss xmm3, dword [esi + 0x34]
movss xmm6, dword [esp + 0x100]
movss xmm0, dword [esp + 0x110]
movss xmm4, dword [esi + 0x38]
movss xmm5, dword [esp + 0x104]
mulss xmm0, xmm3
mulss xmm6, xmm2
movss xmm1, dword [esp + 0x108]
mulss xmm5, xmm2
addss xmm6, xmm0
mulss xmm1, xmm2
movss xmm0, dword [esp + 0x120]
mulss xmm0, xmm4
addss xmm0, dword [esp + 0x130]
addss xmm6, xmm0
movss xmm0, dword [esp + 0x114]
mulss xmm0, xmm3
addss xmm5, xmm0
shufps xmm6, xmm6, 0
movss xmm0, dword [esp + 0x124]
mulss xmm0, xmm4
mulss xmm4, dword [esp + 0x128]
addss xmm0, dword [esp + 0x134]
addss xmm4, dword [esp + 0x138]
addss xmm5, xmm0
movss xmm0, dword [esp + 0x118]
mulss xmm0, xmm3
movups xmmword [esi], xmm6
addss xmm1, xmm0
shufps xmm5, xmm5, 0
movups xmmword [esi + 0x10], xmm5
movss xmm5, dword [0x739900]
addss xmm1, xmm4
shufps xmm1, xmm1, 0
movups xmmword [esi + 0x20], xmm1
jmp 0x58abc8
mov edx, dword [esp + 0x10]
test eax, eax
je 0x58abc8
test byte [edx], 1
jne 0x58abc8
movss xmm0, dword [esi + 0x30]
lea edx, [esp + 0x100]
movaps xmmword [esp + 0xc0], xmm0
lea ecx, [esp + 0x68]
movss xmm0, dword [esi + 0x34]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x38]
movss dword [esp + 0x2c], xmm0
call fcn.0044a150
movaps xmm5, xmmword [esp + 0xc0]
movss xmm1, dword [esp + 0x18]
movaps xmm4, xmm5
mulss xmm4, dword [esp + 0x68]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x78]
movaps xmm2, xmm5
movss xmm3, dword [esp + 0x2c]
mulss xmm2, dword [esp + 0x6c]
mulss xmm5, dword [esp + 0x70]
addss xmm4, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esp + 0x88]
addss xmm0, dword [esp + 0x98]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x7c]
mulss xmm1, dword [esp + 0x80]
addss xmm2, xmm0
shufps xmm4, xmm4, 0
movaps xmm0, xmm3
mulss xmm3, dword [esp + 0x90]
mulss xmm0, dword [esp + 0x8c]
addss xmm5, xmm1
addss xmm3, dword [esp + 0xa0]
addss xmm0, dword [esp + 0x9c]
addss xmm5, xmm3
addss xmm2, xmm0
shufps xmm5, xmm5, 0
movups xmmword [esi + 0x20], xmm5
movss xmm5, dword [0x739900]
shufps xmm2, xmm2, 0
movups xmmword [esi + 0x10], xmm2
mov ecx, dword [esp + 0x20]
movups xmmword [esi], xmm4
mov eax, dword [esp + 0xc]
inc ecx
add eax, 0x50
mov dword [esp + 0x20], ecx
mov dword [esp + 0xc], eax
cmp eax, 0x280
jl 0x58a760
movss xmm1, dword [esp + 0xd4]
mov ecx, edi
push 0
call fcn.0058ac90
movss xmm1, dword [esp + 0xd4]
mov ecx, edi
call fcn.0058d7a0
pop edi
pop esi
mov esp, ebp
pop ebp
ret