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

Disassembly:
sub esp, 0x58
fld dword [0x570898]
push ebx
fidiv dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
push ebp
mov ebp, dword [esp + 0x70]
push esi
push edi
mov esi, eax
mov edi, ecx
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
call fcn.004aa2e0
fstp dword [esp + 0x60]
fld dword [esp + 0x6c]
call fcn.004aa410
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
lea eax, [ecx + 1]
sar eax, 1
mov dword [esp + 0x14], eax
lea eax, [ebx - 1]
sar eax, 1
mov dword [esp + 0x4c], eax
mov eax, ebx
imul eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov eax, ebx
imul eax, ecx
mov dword [esp + 0x20], eax
cmp ebx, 1
je 0x467a0e
xor edx, edx
cmp ebp, 4
jl 0x466f5d
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
lea ecx, [edx + 0xc]
sub edx, dword [esp + 0x84]
add eax, 4
mov dword [esp + 0x6c], edx
lea edx, [ebp - 4]
shr edx, 2
inc edx
mov dword [esp + 0x48], edx
add edx, edx
add edx, edx
mov dword [esp + 0x44], edx
jmp 0x466f30
fld dword [ecx - 0xc]
mov edx, dword [esp + 0x6c]
fstp dword [eax - 4]
add eax, 0x10
fld dword [edx + eax - 0x10]
add ecx, 0x10
dec dword [esp + 0x48]
fstp dword [eax - 0x10]
fld dword [ecx - 0x14]
fstp dword [eax - 0xc]
fld dword [ecx - 0x10]
fstp dword [eax - 8]
jne 0x466f30
mov edx, dword [esp + 0x44]
cmp edx, ebp
jge 0x466f91
mov ecx, dword [esp + 0x80]
sub ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x6c], ecx
mov ecx, ebp
lea eax, [eax + edx*4]
sub ecx, edx
mov edx, dword [esp + 0x6c]
fld dword [eax + edx]
add eax, 4
dec ecx
fstp dword [eax - 4]
jne 0x466f85
mov ecx, dword [esp + 0x70]
xor eax, eax
cmp ecx, 1
jle 0x467045
dec ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x74]
jmp 0x466fb4
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x10], eax
cmp ecx, 4
jl 0x467007
lea edx, [ecx - 4]
shr edx, 2
inc edx
lea ecx, [edx*4]
mov dword [esp + 0x6c], ecx
jmp 0x466fe0
fld dword [edi + eax*4]
fstp dword [esi + eax*4]
add eax, ebx
fld dword [edi + eax*4]
fstp dword [esi + eax*4]
add eax, ebx
fld dword [edi + eax*4]
fstp dword [esi + eax*4]
add eax, ebx
fld dword [edi + eax*4]
fstp dword [esi + eax*4]
add eax, ebx
dec edx
jne 0x466fe0
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0x6c], ecx
jge 0x467039
mov edx, edi
sub edx, esi
sub ecx, dword [esp + 0x6c]
lea eax, [esi + eax*4]
mov dword [esp + 0x24], edx
jmp 0x467024
mov edx, dword [esp + 0x24]
fld dword [edx + eax]
lea edx, [ebx*4]
fstp dword [eax]
add eax, edx
dec ecx
jne 0x467020
mov ecx, dword [esp + 0x74]
dec dword [esp + 0x48]
jne 0x466fb0
jmp 0x467049
mov ecx, dword [esp + 0x74]
mov eax, ebx
neg eax
xor edx, edx
mov dword [esp + 0x50], eax
cmp dword [esp + 0x4c], ecx
jle 0x4671b5
cmp dword [esp + 0x70], 1
jle 0x4674f7
mov edx, dword [esp + 0x88]
lea eax, [edx + eax*4 - 4]
mov dword [esp + 0x6c], eax
lea ecx, [ebx*4]
mov edx, esi
mov eax, edi
sub eax, ecx
sub edx, ecx
mov ecx, dword [esp + 0x70]
sub eax, 4
dec ecx
mov dword [esp + 0x34], ecx
jmp 0x467098
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
add ecx, ecx
add ecx, ecx
add edx, ecx
add eax, ecx
lea ecx, [ebx*4]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], eax
test ecx, ecx
jle 0x4671a6
mov dword [esp + 0x38], ecx
jmp 0x4670d0
lea ecx, [ebx*4]
add edx, ecx
add eax, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], eax
cmp ebx, 2
jle 0x467198
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x44], edx
mov edx, esi
sub edx, edi
mov dword [esp + 0x3c], edx
lea edx, [ebx - 3]
shr edx, 1
inc edx
mov dword [esp + 0x40], edx
jmp 0x467110
movss xmm0, dword [eax + 0xc]
movss xmm1, dword [ecx + 8]
movss xmm2, dword [eax + 8]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x44], 8
add eax, 8
cvtps2pd xmm1, xmm1
add ecx, 8
dec dword [esp + 0x40]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [ecx - 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + edx], xmm0
movss xmm0, dword [eax + 4]
movss xmm1, dword [ecx - 4]
movss xmm2, dword [eax]
mov edx, dword [esp + 0x44]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edx], xmm0
jne 0x467110
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x58]
dec dword [esp + 0x38]
jne 0x4670d0
mov eax, dword [esp + 0x54]
dec dword [esp + 0x34]
jne 0x467094
jmp 0x4674f7
cmp dword [esp + 0x70], 1
jle 0x4674f7
lea ecx, [eax - 1]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x88]
lea ecx, [ecx + eax*4 - 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x70]
dec ecx
mov dword [esp + 0x30], ecx
jmp 0x4671e9
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x1c]
add dword [esp + 0x44], ebx
add eax, ebx
mov dword [esp + 0x48], eax
lea eax, [ebx*4]
add dword [esp + 0x40], eax
mov dword [esp + 0x10], edx
cmp ebx, 2
jle 0x4674ed
mov edx, dword [esp + 0x44]
sub edx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
lea ecx, [edx + eax + 1]
mov edx, dword [esp + 0x74]
lea eax, [ebx - 3]
shr eax, 1
inc eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
add eax, 2
add ecx, 8
mov dword [esp + 0x38], eax
mov dword [esp + 0x6c], 0
cmp edx, 4
jl 0x46742f
add edx, 0xfffffffc
shr edx, 2
inc edx
mov dword [esp + 0x64], edx
add edx, edx
add edx, edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x64]
jmp 0x467270
movss xmm0, dword [edi + eax*4 - 4]
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4 - 4], xmm0
movss xmm0, dword [edi + eax*4]
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4 - 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4], xmm0
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm1, xmm1
add eax, ebx
movss xmm0, dword [edi + eax*4 - 4]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4 - 4], xmm0
movss xmm0, dword [edi + eax*4]
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4 - 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4], xmm0
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
add eax, ebx
movss xmm0, dword [edi + eax*4 - 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4 - 4], xmm0
movss xmm0, dword [edi + eax*4]
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4 - 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4], xmm0
add eax, ebx
movss xmm0, dword [edi + eax*4 - 4]
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4 - 4], xmm0
movss xmm0, dword [edi + eax*4]
movss xmm1, dword [ecx - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [edi + eax*4 - 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4], xmm0
add eax, ebx
dec edx
jne 0x467270
mov edx, dword [esp + 0x74]
cmp dword [esp + 0x6c], edx
jge 0x4674e3
mov edx, esi
sub edx, edi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x6c]
lea ebp, [esi + eax*4]
lea eax, [edi + eax*4 - 4]
mov dword [esp + 0x6c], edx
jmp 0x467460
movss xmm1, dword [eax + 4]
movss xmm0, dword [ecx]
movss xmm2, dword [ecx - 4]
mov edx, dword [esp + 0x3c]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [eax]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + edx], xmm0
movss xmm1, dword [eax + 4]
movss xmm0, dword [ecx - 4]
movss xmm2, dword [eax]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [ecx]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
lea edx, [ebx*4]
cvtpd2ps xmm0, xmm0
movss dword [ebp], xmm0
add eax, edx
add ebp, edx
dec dword [esp + 0x6c]
jne 0x467460
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
dec dword [esp + 0x34]
jne 0x467235
dec dword [esp + 0x30]
jne 0x4671e1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x74]
imul edx, dword [esp + 0x70]
mov dword [esp + 0x10], 0
cmp dword [esp + 0x4c], eax
jge 0x467899
cmp dword [esp + 0x14], 1
jle 0x467a0e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
dec eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
add dword [esp + 0x10], eax
add dword [esp + 0x44], eax
sub edx, eax
mov dword [esp + 0x18], edx
cmp ebx, 2
jle 0x46788a
sub edx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
lea ecx, [ebx - 3]
shr ecx, 1
inc ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x38], ecx
jmp 0x467569
mov edx, dword [esp + 0x64]
add eax, 2
lea ecx, [eax + edx]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], 0
cmp edx, 4
jl 0x4677a3
add edx, 0xfffffffc
shr edx, 2
inc edx
mov dword [esp + 0x58], edx
add edx, edx
add edx, edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
nop
add eax, ebx
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm1, xmm1
add ecx, ebx
movss xmm0, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4 - 4]
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
add eax, ebx
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm1, xmm1
add ecx, ebx
movss xmm0, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4 - 4]
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
add eax, ebx
movss xmm1, dword [esi + eax*4 - 4]
add ecx, ebx
movss xmm0, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4 - 4]
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
add eax, ebx
movss xmm1, dword [esi + eax*4 - 4]
add ecx, ebx
dec edx
movss xmm0, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4 - 4]
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
jne 0x4675a0
mov edx, dword [esp + 0x74]
cmp dword [esp + 0x6c], edx
jge 0x467878
lea ebp, [edi + eax*4]
mov dword [esp + 0x40], ebp
lea ebp, [edi + ecx*4]
mov dword [esp + 0x3c], ebp
mov ebp, edi
sub ebp, esi
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x74]
sub ebp, dword [esp + 0x6c]
lea edx, [ebx*4]
lea eax, [esi + eax*4 - 4]
lea ecx, [esi + ecx*4 - 4]
mov dword [esp + 0x6c], ebp
mov edi, edi
movss xmm0, dword [ecx + edx]
movss xmm1, dword [eax + edx]
mov ebp, dword [esp + 0x24]
add dword [esp + 0x40], edx
add dword [esp + 0x3c], edx
cvtps2pd xmm0, xmm0
add eax, edx
add ecx, edx
dec dword [esp + 0x6c]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + ebp], xmm0
movss xmm0, dword [eax + 4]
movss xmm1, dword [ecx + 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ecx + ebp], xmm0
movss xmm0, dword [ecx + 4]
movss xmm1, dword [eax + 4]
mov ebp, dword [esp + 0x40]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp], xmm0
movss xmm0, dword [ecx]
movss xmm1, dword [eax]
mov ebp, dword [esp + 0x3c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp], xmm0
jne 0x4677e0
mov ebp, dword [esp + 0x78]
dec dword [esp + 0x38]
mov eax, dword [esp + 0x48]
jne 0x467565
mov edx, dword [esp + 0x18]
dec dword [esp + 0x34]
jne 0x467532
jmp 0x467a0e
cmp dword [esp + 0x14], 1
jle 0x467a0e
lea eax, [edi + edx*4]
lea edx, [esi + edx*4 - 4]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
lea eax, [esi - 4]
dec edx
mov ecx, edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x1c]
add eax, eax
add eax, eax
add dword [esp + 0x6c], eax
sub dword [esp + 0x44], eax
sub dword [esp + 0x40], eax
add ecx, eax
cmp dword [esp + 0x74], 0
mov dword [esp + 0x64], ecx
jle 0x467a04
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], edx
mov edi, edi
cmp ebx, 2
jle 0x4679d9
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], edx
mov edx, edi
sub edx, esi
mov dword [esp + 0x24], edx
lea edx, [ebx - 3]
shr edx, 1
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
inc edx
jmp 0x467940
movss xmm0, dword [ecx + 8]
movss xmm1, dword [eax + 8]
mov ebp, dword [esp + 0x24]
add dword [esp + 0x3c], 8
add dword [esp + 0x38], 8
cvtps2pd xmm0, xmm0
add eax, 8
add ecx, 8
dec edx
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + ebp], xmm0
movss xmm0, dword [eax + 4]
movss xmm1, dword [ecx + 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ecx + ebp], xmm0
movss xmm0, dword [ecx + 4]
movss xmm1, dword [eax + 4]
mov ebp, dword [esp + 0x3c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp], xmm0
movss xmm0, dword [ecx]
movss xmm1, dword [eax]
mov ebp, dword [esp + 0x38]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp], xmm0
jne 0x467940
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x48]
lea eax, [ebx*4]
add dword [esp + 0x34], eax
add dword [esp + 0x30], eax
add dword [esp + 0x2c], eax
add ecx, eax
dec dword [esp + 0x28]
mov dword [esp + 0x48], ecx
jne 0x467910
mov ecx, dword [esp + 0x64]
dec dword [esp + 0x18]
jne 0x4678c5
xor edx, edx
cmp ebp, 4
jl 0x467a7d
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
lea ecx, [edx + 0xc]
sub edx, dword [esp + 0x80]
add eax, 4
mov dword [esp + 0x6c], edx
lea edx, [ebp - 4]
shr edx, 2
inc edx
mov dword [esp + 0x48], edx
add edx, edx
add edx, edx
mov dword [esp + 0x44], edx
jmp 0x467a50
fld dword [ecx - 0xc]
mov edx, dword [esp + 0x6c]
fstp dword [eax - 4]
add eax, 0x10
fld dword [edx + eax - 0x10]
add ecx, 0x10
dec dword [esp + 0x48]
fstp dword [eax - 0x10]
fld dword [ecx - 0x14]
fstp dword [eax - 0xc]
fld dword [ecx - 0x10]
fstp dword [eax - 8]
jne 0x467a50
mov edx, dword [esp + 0x44]
cmp edx, ebp
jge 0x467ab1
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x6c], ecx
mov ecx, ebp
lea eax, [eax + edx*4]
sub ecx, edx
mov edx, dword [esp + 0x6c]
fld dword [eax + edx]
add eax, 4
dec ecx
fstp dword [eax - 4]
jne 0x467aa5
mov ecx, dword [esp + 0x70]
imul ecx, ebp
cmp dword [esp + 0x14], 1
mov dword [esp + 0x50], ecx
jle 0x467ca2
mov edx, dword [esp + 0x14]
mov eax, ebx
sub ecx, ebx
neg eax
dec edx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x74]
jmp 0x467ae8
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
add eax, dword [esp + 0x1c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x6c], 0
cmp edx, 4
jl 0x467c23
add edx, 0xfffffffc
shr edx, 2
inc edx
mov dword [esp + 0x54], edx
add edx, edx
add edx, edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x54]
add eax, ebx
movss xmm0, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
add ecx, ebx
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
add eax, ebx
movss xmm0, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
add ecx, ebx
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
add eax, ebx
movss xmm0, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
add ecx, ebx
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
add eax, ebx
movss xmm0, dword [esi + eax*4]
add ecx, ebx
dec edx
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + ecx*4], xmm0
jne 0x467b20
mov edx, dword [esp + 0x74]
cmp dword [esp + 0x6c], edx
jge 0x467c94
mov edx, edi
sub edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x6c]
lea eax, [esi + eax*4]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x6c], edx
lea edx, [ebx*4]
movss xmm0, dword [ecx + edx]
movss xmm1, dword [eax + edx]
add eax, edx
add ecx, edx
dec dword [esp + 0x6c]
mov edx, dword [esp + 0x24]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edx + eax], xmm0
movss xmm0, dword [ecx]
movss xmm1, dword [eax]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edx + ecx], xmm0
jne 0x467c43
mov edx, dword [esp + 0x74]
dec dword [esp + 0x48]
jne 0x467ae0
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x70]
movss xmm5, dword [0x4c5c5c]
xorps xmm2, xmm2
dec eax
imul eax, ebp
cmp dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov edi, ecx
mov dword [esp + 0x3c], eax
jle 0x468365
mov eax, dword [esp + 0x84]
movss xmm1, dword [esp + 0x60]
movss xmm6, dword [esp + 0x5c]
lea ecx, [eax + 8]
lea edx, [eax + edi*4 + 8]
mov eax, dword [esp + 0x14]
dec eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x64], eax
jmp 0x467d04
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm5
xorps xmm3, xmm3
cvtss2sd xmm3, xmm1
mulsd xmm0, xmm3
xorps xmm4, xmm4
xorps xmm3, xmm3
cvtss2sd xmm3, xmm2
cvtss2sd xmm4, xmm6
mulsd xmm3, xmm4
subsd xmm0, xmm3
xorps xmm3, xmm3
cvtpd2ps xmm3, xmm0
xorps xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm0, xmm5
cvtss2sd xmm4, xmm6
mulsd xmm0, xmm4
lea edx, [ebp*4]
add dword [esp + 0x44], edx
sub dword [esp + 0x40], edx
cvtss2sd xmm2, xmm2
xorps xmm4, xmm4
add ecx, ebp
cvtss2sd xmm4, xmm1
mulsd xmm2, xmm4
sub edi, ebp
addsd xmm0, xmm2
xor edx, edx
xorps xmm2, xmm2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edi
cvtpd2ps xmm2, xmm0
movaps xmm5, xmm3
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebp
cmp ebp, 4
jl 0x467f64
mov edx, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x80]
lea edi, [edx + 8]
mov dword [esp + 0x30], edi
lea eax, [edx + eax*4 + 8]
lea edi, [ebp - 4]
shr edi, 2
lea edx, [edx + ebp*4 + 8]
inc edi
mov dword [esp + 0x2c], edx
lea edx, [edi*4]
add ecx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18]
add ecx, edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x3c]
add ecx, edx
mov dword [esp + 0x48], ecx
lea ecx, [edx + ebp]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
movss xmm0, dword [ecx - 8]
mov ecx, dword [esp + 0x30]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm3
mulsd xmm0, xmm4
movss xmm4, dword [ecx - 8]
mov ecx, dword [esp + 0x6c]
cvtps2pd xmm4, xmm4
addsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [eax - 8], xmm0
movss xmm0, dword [ecx - 8]
mov ecx, dword [esp + 0x38]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm2
mulsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [ecx - 8], xmm0
mov ecx, dword [esp + 0x2c]
movss xmm0, dword [ecx - 4]
mov ecx, dword [esp + 0x30]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm3
mulsd xmm0, xmm4
movss xmm4, dword [ecx - 4]
mov ecx, dword [esp + 0x6c]
cvtps2pd xmm4, xmm4
addsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [eax - 4], xmm0
movss xmm0, dword [ecx - 4]
mov ecx, dword [esp + 0x38]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm2
mulsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [ecx - 4], xmm0
mov ecx, dword [esp + 0x2c]
movss xmm0, dword [ecx]
mov ecx, dword [esp + 0x30]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm3
mulsd xmm0, xmm4
movss xmm4, dword [ecx]
mov ecx, dword [esp + 0x6c]
cvtps2pd xmm4, xmm4
addsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [eax], xmm0
movss xmm0, dword [ecx]
mov ecx, dword [esp + 0x38]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm2
mulsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [ecx], xmm0
mov ecx, dword [esp + 0x2c]
movss xmm0, dword [ecx + 4]
mov ecx, dword [esp + 0x30]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm3
mulsd xmm0, xmm4
movss xmm4, dword [ecx + 4]
mov ecx, dword [esp + 0x6c]
cvtps2pd xmm4, xmm4
addsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
movss xmm0, dword [ecx + 4]
xorps xmm4, xmm4
cvtps2pd xmm0, xmm0
cvtss2sd xmm4, xmm2
mulsd xmm0, xmm4
mov ecx, dword [esp + 0x38]
add dword [esp + 0x6c], 0x10
add dword [esp + 0x2c], 0x10
add dword [esp + 0x30], 0x10
cvtpd2ps xmm0, xmm0
movss dword [ecx + 4], xmm0
add ecx, 0x10
add eax, 0x10
dec edi
mov dword [esp + 0x38], ecx
jne 0x467df1
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x80]
cmp edx, ebp
jge 0x468004
lea eax, [ecx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
lea edi, [eax + edi*4]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*4]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
lea edi, [ecx + edx*4]
lea ecx, [ecx + eax*4]
mov eax, ebp
sub eax, edx
movss xmm0, dword [ecx]
mov edx, dword [esp + 0x6c]
add dword [esp + 0x6c], 4
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm3
mulsd xmm0, xmm4
movss xmm4, dword [edi]
cvtps2pd xmm4, xmm4
addsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [edx], xmm0
mov edx, dword [esp + 0x38]
movss xmm0, dword [edx]
mov edx, dword [esp + 0x34]
add dword [esp + 0x38], 4
add dword [esp + 0x34], 4
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm2
mulsd xmm0, xmm4
add ecx, 4
add edi, 4
dec eax
cvtpd2ps xmm0, xmm0
movss dword [edx], xmm0
jne 0x467fa1
cmp dword [esp + 0x14], 2
mov edx, dword [esp + 0x3c]
movaps xmm4, xmm3
movaps xmm0, xmm2
mov edi, ebp
jle 0x46835b
mov eax, dword [esp + 0x80]
lea ecx, [eax + ebp*4 + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
lea eax, [eax + edx*4 + 8]
add ecx, 0xfffffffe
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], ecx
jmp 0x468048
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
xorps xmm6, xmm6
cvtss2sd xmm6, xmm3
xorps xmm1, xmm1
cvtss2sd xmm1, xmm4
mulsd xmm1, xmm6
xorps xmm6, xmm6
cvtss2sd xmm6, xmm0
xorps xmm7, xmm7
cvtss2sd xmm7, xmm2
mulsd xmm6, xmm7
subsd xmm1, xmm6
xorps xmm6, xmm6
sub edx, ebp
cvtss2sd xmm0, xmm0
cvtss2sd xmm6, xmm3
mulsd xmm0, xmm6
lea eax, [ebp*4]
add dword [esp + 0x2c], eax
sub dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
add edi, ebp
cvtss2sd xmm4, xmm4
xorps xmm6, xmm6
mov dword [esp + 0x34], edx
cvtss2sd xmm6, xmm2
mulsd xmm4, xmm6
mov dword [esp + 0x54], edx
addsd xmm0, xmm4
xor edx, edx
cvtpd2ps xmm1, xmm1
mov dword [esp + 0x24], edi
cvtsd2ss xmm0, xmm0
movaps xmm4, xmm1
mov dword [esp + 0x50], edi
cmp ebp, 4
jl 0x4682a0
mov edx, dword [esp + 0x38]
lea edi, [ebp - 4]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x2c]
shr edi, 2
inc edi
mov dword [esp + 0x6c], edx
lea edx, [edi*4]
add ebp, edx
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x18]
add ebp, edx
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
add ebp, edx
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x34]
add ebp, edx
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x6c]
movss xmm6, dword [ebp - 8]
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
mov ebp, dword [esp + 0x30]
cvtss2sd xmm7, xmm1
mulsd xmm6, xmm7
movss xmm7, dword [eax - 8]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [eax - 8], xmm6
movss xmm6, dword [ebp - 8]
cvtps2pd xmm6, xmm6
mov ebp, dword [esp + 0x6c]
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
movss xmm7, dword [ecx - 8]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [ecx - 8], xmm6
movss xmm6, dword [ebp - 4]
mov ebp, dword [esp + 0x30]
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm1
mulsd xmm6, xmm7
movss xmm7, dword [eax - 4]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [eax - 4], xmm6
movss xmm6, dword [ebp - 4]
mov ebp, dword [esp + 0x6c]
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
movss xmm7, dword [ecx - 4]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [ecx - 4], xmm6
movss xmm6, dword [ebp]
mov ebp, dword [esp + 0x30]
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm1
mulsd xmm6, xmm7
movss xmm7, dword [eax]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [eax], xmm6
movss xmm6, dword [ebp]
mov ebp, dword [esp + 0x6c]
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
movss xmm7, dword [ecx]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [ecx], xmm6
movss xmm6, dword [ebp + 4]
mov ebp, dword [esp + 0x30]
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm1
mulsd xmm6, xmm7
movss xmm7, dword [eax + 4]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [eax + 4], xmm6
movss xmm6, dword [ebp + 4]
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
add dword [esp + 0x6c], 0x10
add dword [esp + 0x30], 0x10
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
movss xmm7, dword [ecx + 4]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [ecx + 4], xmm6
add eax, 0x10
add ecx, 0x10
dec edi
jne 0x468121
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x78]
cmp edx, ebp
jge 0x468345
mov edi, dword [esp + 0x84]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x30], ecx
lea ecx, [edi + eax*4]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x50]
lea edi, [eax + edi*4]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x54]
lea eax, [eax + edi*4]
mov dword [esp + 0x48], eax
mov eax, ebp
sub eax, edx
mov edx, dword [esp + 0x30]
mov edi, edi
mov edi, dword [esp + 0x6c]
movss xmm6, dword [edi]
mov edi, dword [esp + 0x48]
add dword [esp + 0x6c], 4
add dword [esp + 0x48], 4
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm1
mulsd xmm6, xmm7
movss xmm7, dword [ecx]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [ecx], xmm6
movss xmm6, dword [edi]
xorps xmm7, xmm7
cvtps2pd xmm6, xmm6
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
movss xmm7, dword [edx]
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [edx], xmm6
add ecx, 4
add edx, 4
dec eax
jne 0x4682e0
dec dword [esp + 0x58]
jne 0x468040
movss xmm6, dword [esp + 0x5c]
movss xmm1, dword [esp + 0x60]
dec dword [esp + 0x64]
jne 0x467d00
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, 1
jle 0x4684a2
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
add ecx, 8
dec eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x6c], eax
mov edi, edi
lea eax, [ebp*4]
add dword [esp + 0x78], eax
add edi, ebp
xor ecx, ecx
mov dword [esp + 0x10], edi
mov eax, edi
cmp ebp, 4
jl 0x468459
lea ecx, [ebp - 4]
shr ecx, 2
inc ecx
mov dword [esp + 0x64], ecx
add ecx, ecx
add ecx, ecx
add edi, ecx
lea eax, [edx + 8]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x64]
mov edi, edi
movss xmm0, dword [edx - 8]
movss xmm1, dword [eax - 8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
movss xmm1, dword [eax - 4]
cvtpd2ps xmm0, xmm0
movss dword [eax - 8], xmm0
movss xmm0, dword [edx - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
movss xmm1, dword [eax]
cvtpd2ps xmm0, xmm0
movss dword [eax - 4], xmm0
movss xmm0, dword [edx]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
movss xmm1, dword [eax + 4]
cvtpd2ps xmm0, xmm0
movss dword [eax], xmm0
movss xmm0, dword [edx + 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
add edx, 0x10
add eax, 0x10
dec edi
jne 0x4683d0
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
cmp ecx, ebp
jge 0x468498
mov edi, dword [esp + 0x80]
lea eax, [edi + eax*4]
jmp 0x468470
movss xmm0, dword [eax]
movss xmm1, dword [edx + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edx + ecx*4], xmm0
inc ecx
add eax, 4
cmp ecx, ebp
jl 0x468470
mov edi, dword [esp + 0x10]
dec dword [esp + 0x6c]
jne 0x468390
mov ebp, dword [esp + 0x74]
xor eax, eax
cmp ebx, ebp
jge 0x468582
mov dword [esp + 0x44], eax
test ebx, ebx
jle 0x468658
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x20]
jmp 0x4684d0
mov ecx, eax
mov dword [esp + 0x6c], 0
cmp ebp, 4
jl 0x468525
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x78], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x78]
fld dword [esi + eax*4]
add eax, ebx
fstp dword [edx + ecx*4]
add ecx, edi
fld dword [esi + eax*4]
add eax, ebx
fstp dword [edx + ecx*4]
add ecx, edi
fld dword [esi + eax*4]
add eax, ebx
fstp dword [edx + ecx*4]
add ecx, edi
fld dword [esi + eax*4]
add eax, ebx
fstp dword [edx + ecx*4]
add ecx, edi
dec ebp
jne 0x4684f6
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x6c], ebp
jge 0x46856c
lea ecx, [edx + ecx*4]
mov dword [esp + 0x78], ecx
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x6c]
jmp 0x468544
mov ecx, dword [esp + 0x6c]
fld dword [ecx]
mov ebp, dword [esp + 0x78]
fstp dword [ebp]
lea ebp, [ebx*4]
add ecx, ebp
mov dword [esp + 0x6c], ecx
lea ecx, [edi*4]
add dword [esp + 0x78], ecx
dec eax
jne 0x468540
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, ebx
jl 0x4684d0
jmp 0x468658
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
cmp ebp, eax
jle 0x468658
mov eax, dword [esp + 0x7c]
lea edx, [esi + 8]
add eax, 8
mov dword [esp + 0x6c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x64], ebp
jmp 0x4685b0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
xor ebp, ebp
cmp ebx, 4
jl 0x468610
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
lea eax, [ebx - 4]
shr eax, 2
inc eax
lea edi, [eax*4]
add ebp, edi
mov dword [esp + 0x44], edi
add edi, dword [esp + 0x18]
mov dword [esp + 0x78], ebp
fld dword [ecx - 8]
add ecx, 0x10
fstp dword [edx - 8]
add edx, 0x10
dec eax
fld dword [ecx - 0x14]
fstp dword [edx - 0x14]
fld dword [ecx - 0x10]
fstp dword [edx - 0x10]
fld dword [ecx - 0xc]
fstp dword [edx - 0xc]
jne 0x4685e7
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x78]
cmp ebp, ebx
jge 0x46862f
mov ecx, dword [esp + 0x7c]
lea edx, [ecx + edi*4]
lea ecx, [esi + eax*4]
mov eax, ebx
sub eax, ebp
fld dword [ecx]
add ecx, 4
fstp dword [edx]
add edx, 4
dec eax
jne 0x468622
add dword [esp + 0x10], ebx
lea eax, [ebx*4]
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x18], eax
add eax, eax
add eax, eax
add dword [esp + 0x48], eax
dec dword [esp + 0x64]
jne 0x4685b0
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x70]
xor ecx, ecx
xor edx, edx
cmp dword [esp + 0x14], 1
mov dword [esp + 0x60], eax
mov ebp, eax
jle 0x46879e
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x7c]
dec eax
mov dword [esp + 0x64], eax
jmp 0x46869c
mov edx, dword [esp + 0x78]
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
add edx, dword [esp + 0x1c]
sub ebp, dword [esp + 0x1c]
lea ecx, [ecx + ebx*2]
mov dword [esp + 0x10], ecx
mov eax, ecx
mov dword [esp + 0x78], edx
mov ecx, edx
mov dword [esp + 0x24], ebp
mov edx, ebp
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x6c], 0
cmp ebp, 4
jl 0x46873b
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x70], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
fld dword [esi + ecx*4]
mov ebp, dword [esp + 0x20]
fstp dword [edi + eax*4 - 4]
add ecx, ebx
fld dword [esi + edx*4]
add edx, ebx
fstp dword [edi + eax*4]
add eax, ebp
fld dword [esi + ecx*4]
add ecx, ebx
fstp dword [edi + eax*4 - 4]
fld dword [esi + edx*4]
add edx, ebx
fstp dword [edi + eax*4]
add eax, ebp
fld dword [esi + ecx*4]
add ecx, ebx
fstp dword [edi + eax*4 - 4]
fld dword [esi + edx*4]
add edx, ebx
fstp dword [edi + eax*4]
add eax, ebp
fld dword [esi + ecx*4]
add ecx, ebx
fstp dword [edi + eax*4 - 4]
fld dword [esi + edx*4]
add edx, ebx
fstp dword [edi + eax*4]
add eax, ebp
dec dword [esp + 0x70]
jne 0x4686e1
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x6c], ebp
jge 0x468790
lea edx, [esi + edx*4]
mov dword [esp + 0x70], edx
lea edx, [esi + ecx*4]
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x6c]
lea eax, [edi + eax*4]
jmp 0x468764
mov edx, dword [esp + 0x6c]
fld dword [edx]
mov ebp, dword [esp + 0x70]
fstp dword [eax - 4]
fld dword [ebp]
mov ebp, dword [esp + 0x20]
add ebp, ebp
fstp dword [eax]
add ebp, ebp
add eax, ebp
lea ebp, [ebx*4]
add dword [esp + 0x70], ebp
add edx, ebp
dec ecx
mov dword [esp + 0x6c], edx
jne 0x468760
dec dword [esp + 0x64]
jne 0x468690
mov eax, dword [esp + 0x60]
cmp ebx, 1
je 0x468d2e
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x74]
jge 0x468bb5
mov ebp, ebx
mov ecx, eax
mov eax, dword [esp + 0x14]
neg ebp
xor edi, edi
xor edx, edx
cmp eax, 1
jle 0x468d2e
dec eax
lea ebp, [ebx + ebp - 2]
mov dword [esp + 0x54], eax
lea eax, [ebx + ebx]
add edi, eax
mov eax, dword [esp + 0x1c]
add edx, eax
sub ecx, eax
lea ebp, [ebp + ebx*2]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x78], edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], ecx
cmp ebx, 2
jle 0x468ba3
lea eax, [edx + 2]
sub edi, edx
sub ecx, edx
lea edx, [ebx - 3]
shr edx, 1
inc edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x70], ebp
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], edx
jmp 0x46882a
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
add edi, eax
add ecx, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x6c], 0
cmp ebp, 4
jl 0x468aa2
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x64], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
mov edi, edi
movss xmm0, dword [esi + ecx*4 - 4]
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm0, xmm0
mov ebp, dword [esp + 0x7c]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [esi + eax*4 - 4]
movss xmm1, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edi*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4], xmm0
mov ebp, dword [esp + 0x20]
add eax, ebx
movss xmm1, dword [esi + eax*4 - 4]
cvtps2pd xmm1, xmm1
add ecx, ebx
movss xmm0, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
add edx, ebp
add edi, ebp
mov ebp, dword [esp + 0x7c]
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [esi + eax*4 - 4]
movss xmm1, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edi*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4], xmm0
mov ebp, dword [esp + 0x20]
add edi, ebp
add eax, ebx
movss xmm1, dword [esi + eax*4 - 4]
add edx, ebp
mov ebp, dword [esp + 0x7c]
add ecx, ebx
movss xmm0, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [esi + eax*4 - 4]
movss xmm1, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edi*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4], xmm0
mov ebp, dword [esp + 0x20]
add eax, ebx
movss xmm1, dword [esi + eax*4 - 4]
add ecx, ebx
movss xmm0, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
add edx, ebp
add edi, ebp
mov ebp, dword [esp + 0x7c]
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [esi + eax*4 - 4]
movss xmm1, dword [esi + ecx*4 - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4 - 4], xmm0
movss xmm0, dword [esi + eax*4]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edi*4], xmm0
movss xmm0, dword [esi + ecx*4]
movss xmm1, dword [esi + eax*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + edx*4], xmm0
mov ebp, dword [esp + 0x20]
add edx, ebp
add edi, ebp
add eax, ebx
add ecx, ebx
dec dword [esp + 0x64]
jne 0x468860
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x28], edi
cmp dword [esp + 0x6c], ebp
jge 0x468b79
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
add edi, edi
add edi, edi
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x7c]
lea ebp, [edi + ebp*4]
lea edx, [edi + edx*4]
mov edi, dword [esp + 0x74]
sub edi, dword [esp + 0x6c]
lea eax, [esi + eax*4]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x60], ebp
jmp 0x468ae4
mov edx, dword [esp + 0x6c]
movss xmm0, dword [ecx - 4]
movss xmm1, dword [eax - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp - 4], xmm0
movss xmm0, dword [eax - 4]
movss xmm1, dword [ecx - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edx - 4], xmm0
movss xmm0, dword [ecx]
movss xmm1, dword [eax]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp], xmm0
movss xmm0, dword [ecx]
movss xmm1, dword [eax]
mov ebp, dword [esp + 0x60]
add ebp, dword [esp + 0x64]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edx], xmm0
add edx, dword [esp + 0x64]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x6c], edx
lea edx, [ebx*4]
add eax, edx
add ecx, edx
dec edi
jne 0x468ae0
mov eax, dword [esp + 0x5c]
sub dword [esp + 0x70], 2
add eax, 2
dec dword [esp + 0x58]
mov dword [esp + 0x5c], eax
jne 0x468822
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x78]
dec dword [esp + 0x54]
jne 0x4687d5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov edi, ebx
neg edi
cmp dword [esp + 0x14], 1
jle 0x468d2e
mov ecx, dword [esp + 0x1c]
lea eax, [esi + eax*4 + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x7c]
lea ebp, [eax + 8]
add edi, ebx
lea eax, [eax + edi*4 - 8]
lea edx, [ebx + ebx]
add ecx, ecx
add edx, edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
add ecx, ecx
add edx, edx
add esi, 8
dec eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], esi
mov dword [esp + 0x60], eax
jmp 0x468c18
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
add dword [esp + 0x78], edx
add dword [esp + 0x6c], edx
add dword [esp + 0x70], ecx
sub dword [esp + 0x4c], ecx
cmp dword [esp + 0x74], 0
jle 0x468d24
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], ecx
cmp ebx, 2
jle 0x468cfd
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
lea edx, [ebx - 3]
shr edx, 1
mov edi, ebp
inc edx
jmp 0x468c80
movss xmm0, dword [eax - 4]
movss xmm1, dword [ecx - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi - 4], xmm0
movss xmm0, dword [ecx - 4]
movss xmm1, dword [eax - 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi - 4], xmm0
movss xmm0, dword [ecx]
movss xmm1, dword [eax]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi], xmm0
movss xmm0, dword [eax]
movss xmm1, dword [ecx]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
add edi, 8
add eax, 8
add ecx, 8
sub esi, 8
dec edx
jne 0x468c80
mov eax, dword [esp + 0x20]
add eax, eax
add eax, eax
add dword [esp + 0x48], eax
add ebp, eax
lea eax, [ebx*4]
add dword [esp + 0x44], eax
add dword [esp + 0x40], eax
dec dword [esp + 0x64]
jne 0x468c57
dec dword [esp + 0x60]
jne 0x468c10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret