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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xc04
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x1c]
mov esi, dword [eax]
mov eax, dword [edx]
mov ebx, dword [ebx]
test ebx, ebx
lea ecx, [esi*8]
lea edx, [eax*8]
jle 0x438c1d
mov edi, dword [ebp + 0x20]
mov dword [esp + 0x5a0], 1
mov edi, dword [edi]
test edi, edi
mov dword [esp + 0xba4], edi
jle 0x438c1d
mov dword [esp + 0x5a4], edx
lea edi, [eax + eax*2]
mov dword [esp + 0x118], edi
lea edi, [ecx + ecx*2]
mov dword [esp + 0x114], edi
mov dword [esp + 4], ecx
mov dword [esp], esi
mov edx, dword [esp + 0x5a0]
mov esi, edx
neg esi
mov dword [esp + 0x11c], ebx
mov edi, dword [esp + 0x5a4]
mov dword [esp + 0xba8], eax
shl eax, 4
lea ecx, [esi + ebx + 1]
push 4
pop ebx
cmp ecx, 4
mov esi, dword [ebp + 0xc]
cmovge ecx, ebx
mov ebx, edi
imul ebx, edx
mov dword [esp + 0xba0], ecx
mov ecx, esi
sub ecx, edi
add esi, ebx
mov dword [esp + 0xbf0], esi
mov esi, dword [ebp + 0x10]
sub esi, edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x10c], ebx
add ebx, ecx
mov dword [esp + 0xbec], ebx
mov ebx, edi
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 4]
sub ebx, ecx
imul ecx, edx
mov dword [esp + 0x5a0], edx
lea edx, [ebx + ecx]
mov dword [esp + 0x728], edx
lea edx, [edi + ecx]
mov edi, dword [esp + 0x110]
mov dword [esp + 0x724], edx
lea edx, [esi + eax]
mov dword [esp + 0x720], edx
mov dword [esp + 0x108], eax
add eax, edi
mov edx, dword [esp + 0x10c]
add eax, edx
mov dword [esp + 0xbf4], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x730], esi
mov dword [esp + 0x6f8], 1
lea esi, [esi + eax*8]
mov dword [esp + 0x71c], esi
lea edi, [edi + eax*8]
mov dword [esp + 0x104], edi
mov eax, dword [esp]
add edx, edi
shl eax, 4
add eax, ebx
add ebx, dword [esp + 0x114]
add eax, ecx
mov dword [esp + 0xbe8], edx
add ecx, ebx
mov dword [esp + 0x72c], eax
mov eax, dword [esp + 0xba8]
mov edx, dword [esp + 0x6f8]
mov dword [esp + 0x734], ecx
mov ecx, edx
mov esi, 4
neg ecx
mov ebx, dword [esp + 0xba4]
lea ecx, [ecx + ebx + 1]
cmp ecx, 4
cmovge ecx, esi
cmp dword [esp + 0xba0], 4
jne 0x439871
cmp ecx, 4
je 0x438c93
cmp ecx, 3
je 0x4382c4
cmp ecx, 2
jne 0x437e72
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
mov edi, dword [esp + 0x734]
mov esi, dword [esp + 0x72c]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd xmm2, qword [ebx + edx*8 - 8]
movsd xmm4, qword [ebx + edx*8]
movsd xmm1, qword [edi + edx*8]
movsd qword [esp + 0xab0], xmm0
movsd qword [esp + 0xaa8], xmm2
movsd qword [esp + 0xaa0], xmm4
movsd xmm0, qword [ecx + edx*8]
movsd xmm5, qword [esi + edx*8 - 8]
movsd xmm4, qword [esi + edx*8]
movsd xmm2, qword [edi + edx*8 - 8]
movsd qword [esp + 0x738], xmm1
jle 0x437e5d
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [ebp + 0x10]
lea ebx, [ecx + esi]
and ebx, 0xf
je 0x4377ff
test bl, 7
jne 0x438c3e
mov ebx, 1
lea ecx, [ebx + 2]
cmp eax, ecx
jl 0x438c3e
mov ecx, dword [ebp + 0x10]
mov edi, eax
sub edi, ebx
and edi, 1
neg edi
add ecx, esi
mov dword [esp + 0xbac], ecx
add edi, eax
mov ecx, dword [esp + 0x730]
test ebx, ebx
lea ecx, [ecx + esi]
jbe 0x437934
mov dword [esp + 0x718], 0
mov dword [esp + 0x6fc], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov dword [esp + 0x700], edi
mov edx, dword [esp + 0x718]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
movsd xmm6, qword [ecx + edx*8]
movaps xmm1, xmm0
movsd xmm7, qword [esp + 0xab0]
mulsd xmm7, xmm6
mov edi, dword [esp + 0xbac]
addsd xmm7, qword [eax + edx*8]
movsd xmm3, qword [edi + edx*8]
mulsd xmm1, xmm3
mov edi, dword [esp + 0xbf4]
addsd xmm7, xmm1
movsd xmm1, qword [esp + 0xaa8]
mulsd xmm1, xmm6
movsd qword [eax + edx*8], xmm7
movsd xmm7, qword [esp + 0xaa0]
mulsd xmm7, xmm3
addsd xmm1, qword [esi + edx*8]
addsd xmm1, xmm7
movaps xmm7, xmm5
mulsd xmm7, xmm6
mulsd xmm6, xmm2
movsd qword [esi + edx*8], xmm1
movaps xmm1, xmm4
mulsd xmm1, xmm3
addsd xmm7, qword [edi + edx*8]
mulsd xmm3, qword [esp + 0x738]
addsd xmm7, xmm1
movsd qword [edi + edx*8], xmm7
mov edi, dword [esp + 0xbe8]
addsd xmm6, qword [edi + edx*8]
addsd xmm6, xmm3
movsd qword [edi + edx*8], xmm6
inc edx
cmp edx, ebx
jb 0x43786f
mov esi, dword [esp + 0x6fc]
mov edi, dword [esp + 0x700]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
test byte [esp + 0x5a4], 0xf
jne 0x437b24
movsd xmm1, qword [esp + 0xab0]
movaps xmm3, xmm0
movsd xmm7, qword [esp + 0xaa0]
movsd xmm6, qword [esp + 0xaa8]
unpcklpd xmm1, xmm1
movaps xmmword [esp + 0xa10], xmm1
movaps xmm1, xmm5
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x670], xmm7
movaps xmm7, xmm2
unpcklpd xmm3, xmm3
unpcklpd xmm6, xmm6
movaps xmmword [esp + 0x6a0], xmm3
movaps xmm3, xmm4
movaps xmmword [esp + 0x650], xmm6
movsd xmm6, qword [esp + 0x738]
unpcklpd xmm1, xmm1
movaps xmmword [esp + 0x6c0], xmm1
unpcklpd xmm7, xmm7
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0xa90], xmm3
unpcklpd xmm6, xmm6
movsd qword [esp + 0xac0], xmm4
movsd qword [esp + 0xac8], xmm5
movsd qword [esp + 0x5a8], xmm0
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movaps xmmword [esp + 0xa60], xmm6
movaps xmmword [esp + 0x740], xmm7
movsd qword [esp + 0xab8], xmm2
mov dword [esp + 0x6fc], esi
movaps xmm4, xmmword [esp + 0x6c0]
movaps xmm3, xmmword [esp + 0x670]
movaps xmm0, xmmword [esp + 0x650]
movaps xmm5, xmmword [esp + 0x6a0]
mov eax, dword [esp + 0xbac]
mov edx, dword [esp + 0xbec]
movaps xmm2, xmmword [ecx + ebx*8]
movaps xmm7, xmm5
movaps xmm1, xmmword [esp + 0xa10]
mulpd xmm1, xmm2
movsd xmm6, qword [edx + ebx*8]
movhpd xmm6, qword [edx + ebx*8 + 8]
addpd xmm6, xmm1
movaps xmm1, xmmword [eax + ebx*8]
mulpd xmm7, xmm1
addpd xmm6, xmm7
movsd qword [edx + ebx*8], xmm6
movhpd qword [edx + ebx*8 + 8], xmm6
movaps xmm6, xmm0
mulpd xmm6, xmm2
mov esi, dword [esp + 0xbf0]
movsd xmm7, qword [esi + ebx*8]
movhpd xmm7, qword [esi + ebx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmm3
mulpd xmm6, xmm1
addpd xmm7, xmm6
movsd qword [esi + ebx*8], xmm7
movhpd qword [esi + ebx*8 + 8], xmm7
movaps xmm7, xmm4
mulpd xmm7, xmm2
mulpd xmm2, xmmword [esp + 0x740]
mov esi, dword [esp + 0xbf4]
movsd xmm6, qword [esi + ebx*8]
movhpd xmm6, qword [esi + ebx*8 + 8]
addpd xmm6, xmm7
movaps xmm7, xmmword [esp + 0xa90]
mulpd xmm7, xmm1
mulpd xmm1, xmmword [esp + 0xa60]
addpd xmm6, xmm7
movsd qword [esi + ebx*8], xmm6
movhpd qword [esi + ebx*8 + 8], xmm6
mov esi, dword [esp + 0xbe8]
movsd xmm6, qword [esi + ebx*8]
movhpd xmm6, qword [esi + ebx*8 + 8]
addpd xmm6, xmm2
addpd xmm6, xmm1
movsd qword [esi + ebx*8], xmm6
movhpd qword [esi + ebx*8 + 8], xmm6
add ebx, 2
cmp ebx, edi
jb 0x437a39
jmp 0x437d08
movsd xmm1, qword [esp + 0xab0]
movaps xmm3, xmm0
movsd xmm7, qword [esp + 0xaa0]
movsd xmm6, qword [esp + 0xaa8]
unpcklpd xmm1, xmm1
movaps xmmword [esp + 0xa50], xmm1
movaps xmm1, xmm5
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x620], xmm7
movaps xmm7, xmm4
unpcklpd xmm3, xmm3
unpcklpd xmm6, xmm6
movaps xmmword [esp + 0x680], xmm3
movaps xmm3, xmm2
movaps xmmword [esp + 0x640], xmm6
movsd xmm6, qword [esp + 0x738]
unpcklpd xmm1, xmm1
movaps xmmword [esp + 0x6b0], xmm1
unpcklpd xmm7, xmm7
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0xa70], xmm3
unpcklpd xmm6, xmm6
movsd qword [esp + 0xac0], xmm4
movsd qword [esp + 0xac8], xmm5
movsd qword [esp + 0x5a8], xmm0
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movaps xmmword [esp + 0xa80], xmm6
movaps xmmword [esp + 0x750], xmm7
movsd qword [esp + 0xab8], xmm2
mov dword [esp + 0x6fc], esi
movaps xmm4, xmmword [esp + 0x6b0]
movaps xmm3, xmmword [esp + 0x620]
movaps xmm0, xmmword [esp + 0x640]
movaps xmm5, xmmword [esp + 0x680]
mov eax, dword [esp + 0xbac]
mov edx, dword [esp + 0xbec]
movsd xmm2, qword [ecx + ebx*8]
movaps xmm7, xmm5
movhpd xmm2, qword [ecx + ebx*8 + 8]
movaps xmm1, xmmword [esp + 0xa50]
mulpd xmm1, xmm2
movsd xmm6, qword [edx + ebx*8]
movhpd xmm6, qword [edx + ebx*8 + 8]
addpd xmm6, xmm1
movaps xmm1, xmmword [eax + ebx*8]
mulpd xmm7, xmm1
addpd xmm6, xmm7
movsd qword [edx + ebx*8], xmm6
movhpd qword [edx + ebx*8 + 8], xmm6
movaps xmm6, xmm0
mulpd xmm6, xmm2
mov esi, dword [esp + 0xbf0]
movsd xmm7, qword [esi + ebx*8]
movhpd xmm7, qword [esi + ebx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmm3
mulpd xmm6, xmm1
addpd xmm7, xmm6
movsd qword [esi + ebx*8], xmm7
movhpd qword [esi + ebx*8 + 8], xmm7
movaps xmm7, xmm4
mulpd xmm7, xmm2
mulpd xmm2, xmmword [esp + 0xa70]
mov esi, dword [esp + 0xbf4]
movsd xmm6, qword [esi + ebx*8]
movhpd xmm6, qword [esi + ebx*8 + 8]
addpd xmm6, xmm7
movaps xmm7, xmmword [esp + 0x750]
mulpd xmm7, xmm1
mulpd xmm1, xmmword [esp + 0xa80]
addpd xmm6, xmm7
movsd qword [esi + ebx*8], xmm6
movhpd qword [esi + ebx*8 + 8], xmm6
mov esi, dword [esp + 0xbe8]
movsd xmm6, qword [esi + ebx*8]
movhpd xmm6, qword [esi + ebx*8 + 8]
addpd xmm6, xmm2
addpd xmm6, xmm1
movsd qword [esi + ebx*8], xmm6
movhpd qword [esi + ebx*8 + 8], xmm6
add ebx, 2
cmp ebx, edi
jb 0x437c1b
movsd xmm2, qword [esp + 0xab8]
movsd xmm4, qword [esp + 0xac0]
movsd xmm5, qword [esp + 0xac8]
movsd xmm0, qword [esp + 0x5a8]
mov esi, dword [esp + 0x6fc]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp edi, eax
jae 0x438c2c
mov ecx, dword [ebp + 0x10]
movsd qword [esp + 0xab8], xmm2
movsd qword [esp + 0xac0], xmm4
mov dword [esp + 0x6f8], edx
add ecx, esi
add esi, dword [esp + 0x730]
movsd xmm4, qword [esp + 0xaa0]
movsd xmm2, qword [esp + 0xaa8]
movsd xmm6, qword [esp + 0xab0]
mov edx, dword [esp + 0xbf0]
movsd qword [esp + 0xac8], xmm5
movsd xmm5, qword [esi + edi*8]
movaps xmm1, xmm6
mulsd xmm1, xmm5
movaps xmm7, xmm0
mov ebx, dword [esp + 0xbec]
movsd xmm3, qword [ecx + edi*8]
mulsd xmm7, xmm3
addsd xmm1, qword [ebx + edi*8]
addsd xmm1, xmm7
movaps xmm7, xmm4
mulsd xmm7, xmm3
movsd qword [ebx + edi*8], xmm1
movaps xmm1, xmm2
mulsd xmm1, xmm5
mov ebx, dword [esp + 0xbf4]
addsd xmm1, qword [edx + edi*8]
addsd xmm1, xmm7
movsd xmm7, qword [esp + 0xac0]
mulsd xmm7, xmm3
mulsd xmm3, qword [esp + 0x738]
movsd qword [edx + edi*8], xmm1
movsd xmm1, qword [esp + 0xac8]
mulsd xmm1, xmm5
mulsd xmm5, qword [esp + 0xab8]
addsd xmm1, qword [ebx + edi*8]
addsd xmm1, xmm7
movsd qword [ebx + edi*8], xmm1
mov ebx, dword [esp + 0xbe8]
addsd xmm5, qword [ebx + edi*8]
addsd xmm5, xmm3
movsd qword [ebx + edi*8], xmm5
inc edi
cmp edi, eax
jb 0x437d99
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
cmp ecx, 1
jne 0x4382af
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
mov esi, dword [esp + 0x72c]
mov edi, dword [esp + 0x734]
movsd xmm2, qword [ecx + edx*8 - 8]
movsd xmm1, qword [ebx + edx*8 - 8]
movsd xmm3, qword [esi + edx*8 - 8]
movsd xmm0, qword [edi + edx*8 - 8]
jle 0x43829a
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x730]
lea ebx, [ecx + esi]
and ebx, 0xf
je 0x437ede
test bl, 7
jne 0x438c45
mov ebx, 1
lea ecx, [ebx + 2]
cmp eax, ecx
jl 0x438c45
mov ecx, eax
sub ecx, ebx
mov edi, dword [esp + 0x730]
and ecx, 1
neg ecx
add ecx, eax
mov dword [esp + 0xbb0], ecx
lea ecx, [edi + esi]
mov dword [esp + 0xbb4], ecx
test ebx, ebx
jbe 0x437fae
mov dword [esp + 0x704], esi
xor ecx, ecx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov esi, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov edx, dword [esp + 0xbf0]
mov edi, dword [esp + 0xbb4]
movaps xmm4, xmm2
movaps xmm5, xmm1
movaps xmm6, xmm3
movsd xmm7, qword [edi + ecx*8]
mulsd xmm4, xmm7
mulsd xmm5, xmm7
mulsd xmm6, xmm7
addsd xmm4, qword [eax + ecx*8]
mulsd xmm7, xmm0
movsd qword [eax + ecx*8], xmm4
mov edi, dword [esp + 0xbe8]
addsd xmm5, qword [edx + ecx*8]
movsd qword [edx + ecx*8], xmm5
addsd xmm6, qword [esi + ecx*8]
movsd qword [esi + ecx*8], xmm6
addsd xmm7, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm7
inc ecx
cmp ecx, ebx
jb 0x437f40
mov esi, dword [esp + 0x704]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
mov ecx, dword [esp + 0x104]
mov edi, dword [esp + 0x10c]
add ecx, edi
lea edi, [ecx + ebx*8]
test edi, 0xf
je 0x4380d6
movaps xmm6, xmm2
movaps xmm5, xmm1
movaps xmm4, xmm3
movaps xmm7, xmm0
mov dword [esp + 0x704], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
unpcklpd xmm7, xmm7
movsd qword [esp + 0x6d0], xmm3
movsd qword [esp + 0x6d8], xmm1
movsd qword [esp + 0x6e0], xmm2
mov eax, dword [esp + 0xbb4]
mov edx, dword [esp + 0xbe8]
mov ecx, dword [esp + 0xbf4]
mov esi, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movaps xmm1, xmmword [eax + ebx*8]
movaps xmm2, xmm6
mulpd xmm2, xmm1
movsd xmm3, qword [esi + ebx*8]
movhpd xmm3, qword [esi + ebx*8 + 8]
addpd xmm3, xmm2
movaps xmm2, xmm5
mulpd xmm2, xmm1
movsd qword [esi + ebx*8], xmm3
movhpd qword [esi + ebx*8 + 8], xmm3
movsd xmm3, qword [edi + ebx*8]
movhpd xmm3, qword [edi + ebx*8 + 8]
addpd xmm3, xmm2
movaps xmm2, xmm4
mulpd xmm2, xmm1
mulpd xmm1, xmm7
movsd qword [edi + ebx*8], xmm3
movhpd qword [edi + ebx*8 + 8], xmm3
movsd xmm3, qword [ecx + ebx*8]
movhpd xmm3, qword [ecx + ebx*8 + 8]
addpd xmm3, xmm2
movsd qword [ecx + ebx*8], xmm3
movhpd qword [ecx + ebx*8 + 8], xmm3
movsd xmm2, qword [edx + ebx*8]
movhpd xmm2, qword [edx + ebx*8 + 8]
addpd xmm2, xmm1
movsd qword [edx + ebx*8], xmm2
movhpd qword [edx + ebx*8 + 8], xmm2
add ebx, 2
cmp ebx, dword [esp + 0xbb0]
jb 0x43803c
jmp 0x4381c5
movaps xmm6, xmm2
movaps xmm5, xmm1
movaps xmm4, xmm3
movaps xmm7, xmm0
mov dword [esp + 0x704], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
unpcklpd xmm7, xmm7
movsd qword [esp + 0x6d0], xmm3
movsd qword [esp + 0x6d8], xmm1
movsd qword [esp + 0x6e0], xmm2
mov eax, dword [esp + 0xbb4]
mov edx, dword [esp + 0xbe8]
mov ecx, dword [esp + 0xbf4]
mov esi, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movaps xmm1, xmmword [eax + ebx*8]
movaps xmm2, xmm6
mulpd xmm2, xmm1
movsd xmm3, qword [esi + ebx*8]
movhpd xmm3, qword [esi + ebx*8 + 8]
addpd xmm3, xmm2
movaps xmm2, xmm5
mulpd xmm2, xmm1
movsd qword [esi + ebx*8], xmm3
movhpd qword [esi + ebx*8 + 8], xmm3
movsd xmm3, qword [edi + ebx*8]
movhpd xmm3, qword [edi + ebx*8 + 8]
addpd xmm3, xmm2
movaps xmm2, xmm4
mulpd xmm2, xmm1
mulpd xmm1, xmm7
movsd qword [edi + ebx*8], xmm3
movhpd qword [edi + ebx*8 + 8], xmm3
movsd xmm3, qword [ecx + ebx*8]
movhpd xmm3, qword [ecx + ebx*8 + 8]
addpd xmm3, xmm2
movsd qword [ecx + ebx*8], xmm3
movhpd qword [ecx + ebx*8 + 8], xmm3
addpd xmm1, xmmword [edx + ebx*8]
movaps xmmword [edx + ebx*8], xmm1
add ebx, 2
cmp ebx, dword [esp + 0xbb0]
jb 0x438145
movsd xmm3, qword [esp + 0x6d0]
movsd xmm1, qword [esp + 0x6d8]
movsd xmm2, qword [esp + 0x6e0]
mov esi, dword [esp + 0x704]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp eax, dword [esp + 0xbb0]
jbe 0x438c55
mov dword [esp + 0x6f8], edx
add esi, dword [esp + 0x730]
mov ecx, dword [esp + 0xbb0]
mov ebx, dword [esp + 0xbec]
mov edx, dword [esp + 0xbf0]
movsd xmm7, qword [esi + ecx*8]
movaps xmm4, xmm2
mulsd xmm4, xmm7
movaps xmm5, xmm1
mulsd xmm5, xmm7
addsd xmm4, qword [ebx + ecx*8]
movsd qword [ebx + ecx*8], xmm4
movaps xmm6, xmm3
mulsd xmm6, xmm7
addsd xmm5, qword [edx + ecx*8]
mulsd xmm7, xmm0
mov edi, dword [esp + 0xbf4]
movsd qword [edx + ecx*8], xmm5
addsd xmm6, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm6
mov edi, dword [esp + 0xbe8]
addsd xmm7, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm7
inc ecx
cmp ecx, eax
jb 0x438225
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov ebx, dword [esp + 0x724]
test eax, eax
mov ecx, dword [esp + 0x728]
mov esi, dword [esp + 0x72c]
mov edi, dword [esp + 0x734]
movsd xmm1, qword [ebx + edx*8 - 8]
movsd xmm2, qword [ebx + edx*8]
movsd xmm3, qword [ebx + edx*8 + 8]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd qword [esp + 0x6e8], xmm1
movsd qword [esp + 0xb10], xmm2
movsd qword [esp + 0xb08], xmm3
movsd xmm4, qword [esi + edx*8 - 8]
movsd xmm6, qword [esi + edx*8]
movsd xmm7, qword [esi + edx*8 + 8]
movsd xmm1, qword [edi + edx*8 - 8]
movsd xmm2, qword [edi + edx*8]
movsd xmm3, qword [edi + edx*8 + 8]
movsd qword [esp + 0xb00], xmm0
movsd xmm5, qword [ecx + edx*8]
movsd xmm0, qword [ecx + edx*8 + 8]
movsd qword [esp + 0xaf8], xmm4
movsd qword [esp + 0xaf0], xmm6
movsd qword [esp + 0xae8], xmm7
movsd qword [esp + 0xae0], xmm1
movsd qword [esp + 0xad8], xmm2
movsd qword [esp + 0xad0], xmm3
jle 0x438bf4
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x720]
add ecx, esi
and ecx, 0xf
je 0x4383ac
test cl, 7
jne 0x438c77
mov ecx, 1
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x438c77
mov edi, dword [ebp + 0x10]
mov ebx, eax
sub ebx, ecx
and ebx, 1
neg ebx
add edi, esi
mov dword [esp + 0xbc0], edi
add ebx, eax
mov edi, dword [esp + 0x730]
test ecx, ecx
lea edi, [edi + esi]
mov dword [esp + 0xbb8], edi
mov edi, dword [esp + 0x720]
lea edi, [esi + edi]
mov dword [esp + 0xbbc], edi
jbe 0x43855a
mov dword [esp + 0x714], 0
mov dword [esp + 0x708], esi
mov dword [esp + 0x70c], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd xmm1, qword [esp + 0x6e8]
mov ebx, dword [esp + 0x714]
mov esi, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov edx, dword [esp + 0xbf0]
mov edi, dword [esp + 0xbb8]
movaps xmm7, xmm5
movsd xmm6, qword [esp + 0xb00]
movsd xmm4, qword [edi + ebx*8]
mulsd xmm6, xmm4
mov edi, dword [esp + 0xbc0]
addsd xmm6, qword [eax + ebx*8]
movsd xmm2, qword [edi + ebx*8]
mulsd xmm7, xmm2
mov edi, dword [esp + 0xbbc]
addsd xmm6, xmm7
movsd xmm3, qword [edi + ebx*8]
movaps xmm7, xmm0
mulsd xmm7, xmm3
mov edi, dword [esp + 0xbe8]
addsd xmm6, xmm7
movaps xmm7, xmm1
mulsd xmm7, xmm4
movsd qword [eax + ebx*8], xmm6
movsd xmm6, qword [esp + 0xb10]
mulsd xmm6, xmm2
addsd xmm7, qword [edx + ebx*8]
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xb08]
mulsd xmm6, xmm3
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xaf8]
mulsd xmm6, xmm4
mulsd xmm4, qword [esp + 0xae0]
movsd qword [edx + ebx*8], xmm7
movsd xmm7, qword [esp + 0xaf0]
mulsd xmm7, xmm2
addsd xmm6, qword [esi + ebx*8]
mulsd xmm2, qword [esp + 0xad8]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xae8]
mulsd xmm7, xmm3
mulsd xmm3, qword [esp + 0xad0]
addsd xmm6, xmm7
movsd qword [esi + ebx*8], xmm6
addsd xmm4, qword [edi + ebx*8]
addsd xmm4, xmm2
addsd xmm4, xmm3
movsd qword [edi + ebx*8], xmm4
inc ebx
cmp ebx, ecx
jb 0x438444
mov esi, dword [esp + 0x708]
mov ebx, dword [esp + 0x70c]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
test byte [esp + 0x5a4], 0xf
jne 0x4387e4
movsd xmm1, qword [esp + 0xb00]
movaps xmm2, xmm5
movsd xmm7, qword [esp + 0xb08]
movaps xmm3, xmm0
movsd xmm4, qword [esp + 0x6e8]
movsd xmm6, qword [esp + 0xb10]
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x9a0], xmm1
movaps xmmword [esp + 0x890], xmm2
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x960], xmm7
movsd xmm1, qword [esp + 0xaf8]
movsd xmm2, qword [esp + 0xaf0]
movsd xmm7, qword [esp + 0xae8]
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x8d0], xmm3
unpcklpd xmm4, xmm4
unpcklpd xmm6, xmm6
movaps xmmword [esp + 0x5f0], xmm4
movaps xmmword [esp + 0x920], xmm6
movsd xmm3, qword [esp + 0xae0]
movsd xmm4, qword [esp + 0xad8]
movsd xmm6, qword [esp + 0xad0]
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x690], xmm1
movaps xmmword [esp + 0x660], xmm2
unpcklpd xmm7, xmm7
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0xa20], xmm3
unpcklpd xmm4, xmm4
unpcklpd xmm6, xmm6
movsd qword [esp + 0xb18], xmm0
movsd qword [esp + 0xb20], xmm5
mov dword [esp + 0x708], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movaps xmmword [esp + 0xa00], xmm4
movaps xmmword [esp + 0x9c0], xmm6
movaps xmmword [esp + 0x760], xmm7
movaps xmm3, xmmword [esp + 0x660]
movaps xmm5, xmmword [esp + 0x690]
movaps xmm0, xmmword [esp + 0x5f0]
mov esi, dword [esp + 0xbbc]
mov eax, dword [esp + 0xbb8]
mov edx, dword [esp + 0xbc0]
movaps xmm4, xmmword [eax + ecx*8]
movaps xmm1, xmmword [esp + 0x9a0]
mulpd xmm1, xmm4
mov edi, dword [esp + 0xbec]
movaps xmm2, xmmword [esp + 0x890]
movaps xmm7, xmmword [esp + 0x8d0]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm1
movaps xmm1, xmmword [edx + ecx*8]
mulpd xmm2, xmm1
addpd xmm6, xmm2
movaps xmm2, xmmword [esi + ecx*8]
mulpd xmm7, xmm2
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
movaps xmm6, xmm0
mulpd xmm6, xmm4
mov edi, dword [esp + 0xbf0]
movsd xmm7, qword [edi + ecx*8]
movhpd xmm7, qword [edi + ecx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x920]
mulpd xmm6, xmm1
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x960]
mulpd xmm6, xmm2
addpd xmm7, xmm6
movsd qword [edi + ecx*8], xmm7
movhpd qword [edi + ecx*8 + 8], xmm7
movaps xmm7, xmm5
mulpd xmm7, xmm4
mulpd xmm4, xmmword [esp + 0xa20]
mov edi, dword [esp + 0xbf4]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm7
movaps xmm7, xmm3
mulpd xmm7, xmm1
mulpd xmm1, xmmword [esp + 0xa00]
addpd xmm6, xmm7
movaps xmm7, xmmword [esp + 0x760]
mulpd xmm7, xmm2
mulpd xmm2, xmmword [esp + 0x9c0]
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
mov edi, dword [esp + 0xbe8]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm4
addpd xmm6, xmm1
addpd xmm6, xmm2
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
add ecx, 2
cmp ecx, ebx
jb 0x4386ac
jmp 0x438a69
movsd xmm1, qword [esp + 0xb00]
movaps xmm2, xmm5
movsd xmm7, qword [esp + 0xb08]
movaps xmm3, xmm0
movsd xmm4, qword [esp + 0x6e8]
movsd xmm6, qword [esp + 0xb10]
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x910], xmm1
movaps xmmword [esp + 0x950], xmm2
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x880], xmm7
movsd xmm1, qword [esp + 0xaf8]
movsd xmm2, qword [esp + 0xaf0]
movsd xmm7, qword [esp + 0xae0]
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x990], xmm3
unpcklpd xmm4, xmm4
unpcklpd xmm6, xmm6
movaps xmmword [esp + 0x5e0], xmm4
movaps xmmword [esp + 0x8c0], xmm6
movsd xmm3, qword [esp + 0xae8]
movsd xmm4, qword [esp + 0xad8]
movsd xmm6, qword [esp + 0xad0]
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x610], xmm1
movaps xmmword [esp + 0x630], xmm2
unpcklpd xmm7, xmm7
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x9f0], xmm3
unpcklpd xmm4, xmm4
unpcklpd xmm6, xmm6
movsd qword [esp + 0xb18], xmm0
movsd qword [esp + 0xb20], xmm5
mov dword [esp + 0x708], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movaps xmmword [esp + 0xa30], xmm4
movaps xmmword [esp + 0xa40], xmm6
movaps xmmword [esp + 0x770], xmm7
movaps xmm3, xmmword [esp + 0x630]
movaps xmm5, xmmword [esp + 0x610]
movaps xmm0, xmmword [esp + 0x5e0]
mov esi, dword [esp + 0xbbc]
mov eax, dword [esp + 0xbb8]
mov edx, dword [esp + 0xbc0]
movsd xmm4, qword [eax + ecx*8]
movhpd xmm4, qword [eax + ecx*8 + 8]
movaps xmm1, xmmword [esp + 0x910]
mulpd xmm1, xmm4
mov edi, dword [esp + 0xbec]
movaps xmm2, xmmword [esp + 0x950]
movaps xmm7, xmmword [esp + 0x990]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm1
movsd xmm1, qword [edx + ecx*8]
movhpd xmm1, qword [edx + ecx*8 + 8]
mulpd xmm2, xmm1
addpd xmm6, xmm2
movaps xmm2, xmmword [esi + ecx*8]
mulpd xmm7, xmm2
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
movaps xmm6, xmm0
mulpd xmm6, xmm4
mov edi, dword [esp + 0xbf0]
movsd xmm7, qword [edi + ecx*8]
movhpd xmm7, qword [edi + ecx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x8c0]
mulpd xmm6, xmm1
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x880]
mulpd xmm6, xmm2
addpd xmm7, xmm6
movsd qword [edi + ecx*8], xmm7
movhpd qword [edi + ecx*8 + 8], xmm7
movaps xmm7, xmm5
mulpd xmm7, xmm4
mulpd xmm4, xmmword [esp + 0x770]
mov edi, dword [esp + 0xbf4]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm7
movaps xmm7, xmm3
mulpd xmm7, xmm1
mulpd xmm1, xmmword [esp + 0xa30]
addpd xmm6, xmm7
movaps xmm7, xmmword [esp + 0x9f0]
mulpd xmm7, xmm2
mulpd xmm2, xmmword [esp + 0xa40]
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
mov edi, dword [esp + 0xbe8]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm4
addpd xmm6, xmm1
addpd xmm6, xmm2
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
add ecx, 2
cmp ecx, ebx
jb 0x438928
movsd xmm0, qword [esp + 0xb18]
movsd xmm5, qword [esp + 0xb20]
mov esi, dword [esp + 0x708]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ebx, eax
jae 0x438c7e
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x730]
movsd qword [esp + 0xb18], xmm0
movsd qword [esp + 0xb20], xmm5
add edi, esi
mov dword [esp + 0x6f8], edx
add ecx, esi
add esi, dword [esp + 0x720]
movsd xmm3, qword [esp + 0xb08]
movsd xmm4, qword [esp + 0xb10]
movsd xmm0, qword [esp + 0x6e8]
movsd xmm5, qword [ecx + ebx*8]
movsd xmm6, qword [esp + 0xb00]
mulsd xmm6, xmm5
mov edx, dword [esp + 0xbec]
movsd xmm7, qword [esp + 0xb20]
movsd xmm1, qword [edi + ebx*8]
mulsd xmm7, xmm1
addsd xmm6, qword [edx + ebx*8]
movsd xmm2, qword [esi + ebx*8]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb18]
mulsd xmm7, xmm2
addsd xmm6, xmm7
movaps xmm7, xmm0
mulsd xmm7, xmm5
movsd qword [edx + ebx*8], xmm6
movaps xmm6, xmm4
mov edx, dword [esp + 0xbf0]
mulsd xmm6, xmm1
addsd xmm7, qword [edx + ebx*8]
addsd xmm7, xmm6
movaps xmm6, xmm3
mulsd xmm6, xmm2
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xaf8]
mulsd xmm6, xmm5
mulsd xmm5, qword [esp + 0xae0]
movsd qword [edx + ebx*8], xmm7
mov edx, dword [esp + 0xbf4]
movsd xmm7, qword [esp + 0xaf0]
mulsd xmm7, xmm1
addsd xmm6, qword [edx + ebx*8]
mulsd xmm1, qword [esp + 0xad8]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xae8]
mulsd xmm7, xmm2
mulsd xmm2, qword [esp + 0xad0]
addsd xmm6, xmm7
movsd qword [edx + ebx*8], xmm6
mov edx, dword [esp + 0xbe8]
addsd xmm5, qword [edx + ebx*8]
addsd xmm5, xmm1
addsd xmm5, xmm2
movsd qword [edx + ebx*8], xmm5
inc ebx
cmp ebx, eax
jb 0x438ae1
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
mov edx, dword [esp + 0x5a0]
mov ebx, dword [esp + 0x11c]
add edx, 4
cmp edx, ebx
jle 0x43760c
add esp, 0xc04
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x1c
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
xor edi, edi
jmp 0x437d41
mov dword [esp + 0xbb0], 0
jmp 0x4381f5
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov edx, dword [esp + 0x5a0]
mov ebx, dword [esp + 0x11c]
jmp 0x438c12
xor ebx, ebx
jmp 0x438a90
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
mov esi, dword [esp + 0x72c]
mov edi, dword [esp + 0x734]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd xmm1, qword [ecx + edx*8]
movsd xmm2, qword [ecx + edx*8 + 8]
movsd xmm3, qword [ecx + edx*8 + 0x10]
movsd xmm4, qword [ebx + edx*8 - 8]
movsd xmm5, qword [ebx + edx*8]
movsd xmm6, qword [ebx + edx*8 + 8]
movsd xmm7, qword [ebx + edx*8 + 0x10]
movsd qword [esp + 0xb48], xmm0
movsd qword [esp + 0xb50], xmm1
movsd qword [esp + 0xb58], xmm2
movsd qword [esp + 0xb60], xmm3
movsd qword [esp + 0xb68], xmm4
movsd qword [esp + 0xb70], xmm5
movsd qword [esp + 0xb78], xmm6
movsd qword [esp + 0xb80], xmm7
movsd xmm0, qword [esi + edx*8 - 8]
movsd xmm1, qword [esi + edx*8]
movsd xmm2, qword [esi + edx*8 + 8]
movsd xmm3, qword [esi + edx*8 + 0x10]
movsd xmm4, qword [edi + edx*8 - 8]
movsd xmm5, qword [edi + edx*8]
movsd xmm6, qword [edi + edx*8 + 8]
movsd xmm7, qword [edi + edx*8 + 0x10]
movsd qword [esp + 0xb88], xmm0
movsd qword [esp + 0xb90], xmm1
movsd qword [esp + 0x6f0], xmm2
movsd qword [esp + 0xb98], xmm3
movsd qword [esp + 0xb40], xmm4
movsd qword [esp + 0xb38], xmm5
movsd qword [esp + 0xb30], xmm6
movsd qword [esp + 0xb28], xmm7
jle 0x439840
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x71c]
add ecx, esi
and ecx, 0xf
je 0x438dc9
test cl, 7
jne 0x43986a
mov ecx, 1
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x43986a
mov edi, dword [ebp + 0x10]
mov ebx, eax
sub ebx, ecx
and ebx, 1
neg ebx
add edi, esi
mov dword [esp + 0xbd8], edi
add ebx, eax
mov edi, dword [esp + 0x730]
test ecx, ecx
lea edi, [edi + esi]
mov dword [esp + 0xbd4], edi
mov edi, dword [esp + 0x720]
lea edi, [esi + edi]
mov dword [esp + 0xbcc], edi
mov edi, dword [esp + 0x71c]
lea edi, [esi + edi]
mov dword [esp + 0xbd0], edi
jbe 0x438fe3
mov dword [esp + 0x710], 0
mov dword [esp + 0xbc4], esi
mov dword [esp + 0xbc8], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd xmm4, qword [esp + 0xb98]
movsd xmm5, qword [esp + 0x6f0]
mov ebx, dword [esp + 0x710]
mov esi, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov edx, dword [esp + 0xbf0]
mov edi, dword [esp + 0xbd4]
movsd xmm6, qword [esp + 0xb48]
movsd xmm7, qword [esp + 0xb50]
movsd xmm0, qword [edi + ebx*8]
mulsd xmm6, xmm0
mov edi, dword [esp + 0xbd8]
addsd xmm6, qword [eax + ebx*8]
movsd xmm1, qword [edi + ebx*8]
mulsd xmm7, xmm1
mov edi, dword [esp + 0xbcc]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb58]
movsd xmm2, qword [edi + ebx*8]
mulsd xmm7, xmm2
mov edi, dword [esp + 0xbd0]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb60]
movsd xmm3, qword [edi + ebx*8]
mulsd xmm7, xmm3
mov edi, dword [esp + 0xbe8]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb68]
mulsd xmm7, xmm0
movsd qword [eax + ebx*8], xmm6
movsd xmm6, qword [esp + 0xb70]
mulsd xmm6, xmm1
addsd xmm7, qword [edx + ebx*8]
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xb78]
mulsd xmm6, xmm2
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xb80]
mulsd xmm6, xmm3
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xb88]
mulsd xmm6, xmm0
mulsd xmm0, qword [esp + 0xb40]
movsd qword [edx + ebx*8], xmm7
movsd xmm7, qword [esp + 0xb90]
mulsd xmm7, xmm1
addsd xmm6, qword [esi + ebx*8]
mulsd xmm1, qword [esp + 0xb38]
addsd xmm6, xmm7
movaps xmm7, xmm5
mulsd xmm7, xmm2
mulsd xmm2, qword [esp + 0xb30]
addsd xmm6, xmm7
movaps xmm7, xmm4
mulsd xmm7, xmm3
mulsd xmm3, qword [esp + 0xb28]
addsd xmm6, xmm7
movsd qword [esi + ebx*8], xmm6
addsd xmm0, qword [edi + ebx*8]
addsd xmm0, xmm1
addsd xmm0, xmm2
addsd xmm0, xmm3
movsd qword [edi + ebx*8], xmm0
inc ebx
cmp ebx, ecx
jb 0x438e7b
mov esi, dword [esp + 0xbc4]
mov ebx, dword [esp + 0xbc8]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
test byte [esp + 0x5a4], 0xf
jne 0x43930c
movsd xmm1, qword [esp + 0xb50]
movsd xmm7, qword [esp + 0xb80]
movsd xmm4, qword [esp + 0xb68]
movsd xmm5, qword [esp + 0xb70]
movsd xmm0, qword [esp + 0xb48]
movsd xmm2, qword [esp + 0xb58]
movsd xmm3, qword [esp + 0xb60]
movsd xmm6, qword [esp + 0xb78]
unpcklpd xmm1, xmm1
movaps xmmword [esp + 0x850], xmm1
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x5c0], xmm7
movsd xmm1, qword [esp + 0x6f0]
movsd xmm7, qword [esp + 0xb90]
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm0, xmm0
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x800], xmm4
movaps xmmword [esp + 0x820], xmm5
unpcklpd xmm6, xmm6
movaps xmmword [esp + 0x860], xmm0
movaps xmmword [esp + 0x7a0], xmm2
movaps xmmword [esp + 0x7b0], xmm3
movaps xmmword [esp + 0x7d0], xmm6
movsd xmm4, qword [esp + 0xb38]
movsd xmm5, qword [esp + 0xb30]
movsd xmm0, qword [esp + 0xb88]
movsd xmm2, qword [esp + 0xb98]
movsd xmm3, qword [esp + 0xb40]
movsd xmm6, qword [esp + 0xb28]
unpcklpd xmm1, xmm1
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x5d0], xmm1
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm0, xmm0
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x980], xmm4
movaps xmmword [esp + 0x9b0], xmm5
unpcklpd xmm6, xmm6
mov dword [esp + 0xbc4], esi
mov dword [esp + 0xbc8], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movaps xmmword [esp + 0x8b0], xmm0
movaps xmmword [esp + 0x8f0], xmm2
movaps xmmword [esp + 0x930], xmm3
movaps xmmword [esp + 0x9e0], xmm6
movaps xmmword [esp + 0x780], xmm7
movaps xmm4, xmmword [esp + 0x5d0]
movaps xmm5, xmmword [esp + 0x5c0]
mov edx, dword [esp + 0xbd0]
mov esi, dword [esp + 0xbcc]
mov eax, dword [esp + 0xbd4]
mov ebx, dword [esp + 0xbd8]
movaps xmm0, xmmword [eax + ecx*8]
movaps xmm1, xmmword [esp + 0x860]
mulpd xmm1, xmm0
mov edi, dword [esp + 0xbec]
movaps xmm2, xmmword [esp + 0x850]
movaps xmm3, xmmword [esp + 0x7a0]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm1
movaps xmm1, xmmword [ebx + ecx*8]
mulpd xmm2, xmm1
addpd xmm6, xmm2
movaps xmm2, xmmword [esi + ecx*8]
mulpd xmm3, xmm2
addpd xmm6, xmm3
movaps xmm3, xmmword [edx + ecx*8]
movaps xmm7, xmmword [esp + 0x7b0]
mulpd xmm7, xmm3
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
movaps xmm6, xmmword [esp + 0x800]
mulpd xmm6, xmm0
mov edi, dword [esp + 0xbf0]
movsd xmm7, qword [edi + ecx*8]
movhpd xmm7, qword [edi + ecx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x820]
mulpd xmm6, xmm1
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x7d0]
mulpd xmm6, xmm2
addpd xmm7, xmm6
movaps xmm6, xmm5
mulpd xmm6, xmm3
addpd xmm7, xmm6
movsd qword [edi + ecx*8], xmm7
movhpd qword [edi + ecx*8 + 8], xmm7
movaps xmm7, xmmword [esp + 0x8b0]
mulpd xmm7, xmm0
mulpd xmm0, xmmword [esp + 0x930]
mov edi, dword [esp + 0xbf4]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm7
movaps xmm7, xmmword [esp + 0x780]
mulpd xmm7, xmm1
mulpd xmm1, xmmword [esp + 0x980]
addpd xmm6, xmm7
movaps xmm7, xmm4
mulpd xmm7, xmm2
mulpd xmm2, xmmword [esp + 0x9b0]
addpd xmm6, xmm7
movaps xmm7, xmmword [esp + 0x8f0]
mulpd xmm7, xmm3
mulpd xmm3, xmmword [esp + 0x9e0]
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
mov edi, dword [esp + 0xbe8]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm0
addpd xmm6, xmm1
addpd xmm6, xmm2
addpd xmm6, xmm3
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
add ecx, 2
cmp ecx, dword [esp + 0xbc8]
jb 0x439189
jmp 0x439639
movsd xmm2, qword [esp + 0xb58]
movsd xmm7, qword [esp + 0xb80]
movsd xmm4, qword [esp + 0xb68]
movsd xmm5, qword [esp + 0xb70]
movsd xmm0, qword [esp + 0xb48]
movsd xmm1, qword [esp + 0xb50]
movsd xmm3, qword [esp + 0xb60]
movsd xmm6, qword [esp + 0xb78]
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x810], xmm2
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x5b0], xmm7
movsd xmm2, qword [esp + 0x6f0]
movsd xmm7, qword [esp + 0xb30]
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x870], xmm4
movaps xmmword [esp + 0x7c0], xmm5
unpcklpd xmm6, xmm6
movaps xmmword [esp + 0x7e0], xmm0
movaps xmmword [esp + 0x830], xmm1
movaps xmmword [esp + 0x7f0], xmm3
movaps xmmword [esp + 0x840], xmm6
movsd xmm4, qword [esp + 0xb40]
movsd xmm5, qword [esp + 0xb38]
movsd xmm0, qword [esp + 0xb88]
movsd xmm1, qword [esp + 0xb90]
movsd xmm3, qword [esp + 0xb98]
movsd xmm6, qword [esp + 0xb28]
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x600], xmm2
unpcklpd xmm7, xmm7
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x940], xmm4
movaps xmmword [esp + 0x8a0], xmm5
unpcklpd xmm6, xmm6
mov dword [esp + 0xbc4], esi
mov dword [esp + 0xbc8], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movaps xmmword [esp + 0x900], xmm0
movaps xmmword [esp + 0x8e0], xmm1
movaps xmmword [esp + 0x970], xmm3
movaps xmmword [esp + 0x9d0], xmm6
movaps xmmword [esp + 0x790], xmm7
movaps xmm4, xmmword [esp + 0x600]
movaps xmm5, xmmword [esp + 0x5b0]
mov edx, dword [esp + 0xbd0]
mov esi, dword [esp + 0xbcc]
mov eax, dword [esp + 0xbd4]
mov ebx, dword [esp + 0xbd8]
movsd xmm0, qword [eax + ecx*8]
movhpd xmm0, qword [eax + ecx*8 + 8]
movaps xmm1, xmmword [esp + 0x7e0]
mulpd xmm1, xmm0
mov edi, dword [esp + 0xbec]
movaps xmm2, xmmword [esp + 0x830]
movaps xmm3, xmmword [esp + 0x810]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm1
movsd xmm1, qword [ebx + ecx*8]
movhpd xmm1, qword [ebx + ecx*8 + 8]
mulpd xmm2, xmm1
addpd xmm6, xmm2
movsd xmm2, qword [esi + ecx*8]
movhpd xmm2, qword [esi + ecx*8 + 8]
mulpd xmm3, xmm2
addpd xmm6, xmm3
movaps xmm3, xmmword [edx + ecx*8]
movaps xmm7, xmmword [esp + 0x7f0]
mulpd xmm7, xmm3
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
movaps xmm6, xmmword [esp + 0x870]
mulpd xmm6, xmm0
mov edi, dword [esp + 0xbf0]
movsd xmm7, qword [edi + ecx*8]
movhpd xmm7, qword [edi + ecx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x7c0]
mulpd xmm6, xmm1
addpd xmm7, xmm6
movaps xmm6, xmmword [esp + 0x840]
mulpd xmm6, xmm2
addpd xmm7, xmm6
movaps xmm6, xmm5
mulpd xmm6, xmm3
addpd xmm7, xmm6
movsd qword [edi + ecx*8], xmm7
movhpd qword [edi + ecx*8 + 8], xmm7
movaps xmm7, xmmword [esp + 0x900]
mulpd xmm7, xmm0
mulpd xmm0, xmmword [esp + 0x940]
mov edi, dword [esp + 0xbf4]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm7
mov esi, esi
movaps xmm7, xmmword [esp + 0x8e0]
mulpd xmm7, xmm1
mulpd xmm1, xmmword [esp + 0x8a0]
addpd xmm6, xmm7
movaps xmm7, xmm4
mulpd xmm7, xmm2
mulpd xmm2, xmmword [esp + 0x790]
addpd xmm6, xmm7
movaps xmm7, xmmword [esp + 0x970]
mulpd xmm7, xmm3
mulpd xmm3, xmmword [esp + 0x9d0]
addpd xmm6, xmm7
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
mov edi, dword [esp + 0xbe8]
movsd xmm6, qword [edi + ecx*8]
movhpd xmm6, qword [edi + ecx*8 + 8]
addpd xmm6, xmm0
addpd xmm6, xmm1
addpd xmm6, xmm2
addpd xmm6, xmm3
movsd qword [edi + ecx*8], xmm6
movhpd qword [edi + ecx*8 + 8], xmm6
add ecx, 2
cmp ecx, dword [esp + 0xbc8]
jb 0x4394a4
mov esi, dword [esp + 0xbc4]
mov ebx, dword [esp + 0xbc8]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ebx, eax
jae 0x439855
mov edi, dword [esp + 0x730]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
add edi, esi
mov dword [esp + 0xbe4], edi
add ecx, esi
mov edi, dword [esp + 0x720]
mov dword [esp + 0xbdc], ecx
movsd xmm4, qword [esp + 0x6f0]
movsd xmm5, qword [esp + 0xb90]
add edi, esi
add esi, dword [esp + 0x71c]
mov dword [esp + 0xbc4], esi
mov dword [esp + 0xbe0], edi
mov ecx, dword [esp + 0xbe8]
mov edx, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
mov edi, dword [esp + 0xbdc]
movsd xmm6, qword [esp + 0xb48]
movsd xmm7, qword [esp + 0xb50]
movsd xmm1, qword [edi + ebx*8]
mov edi, dword [esp + 0xbe4]
mulsd xmm7, xmm1
movsd xmm0, qword [edi + ebx*8]
mulsd xmm6, xmm0
mov edi, dword [esp + 0xbe0]
addsd xmm6, qword [eax + ebx*8]
movsd xmm2, qword [edi + ebx*8]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb58]
mulsd xmm7, xmm2
mov edi, dword [esp + 0xbc4]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb60]
movsd xmm3, qword [edi + ebx*8]
mulsd xmm7, xmm3
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb68]
mulsd xmm7, xmm0
movsd qword [eax + ebx*8], xmm6
movsd xmm6, qword [esp + 0xb70]
mulsd xmm6, xmm1
addsd xmm7, qword [esi + ebx*8]
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xb78]
mulsd xmm6, xmm2
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xb80]
mulsd xmm6, xmm3
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0xb88]
mulsd xmm6, xmm0
mulsd xmm0, qword [esp + 0xb40]
movsd qword [esi + ebx*8], xmm7
movaps xmm7, xmm5
mulsd xmm7, xmm1
addsd xmm6, qword [edx + ebx*8]
mulsd xmm1, qword [esp + 0xb38]
addsd xmm6, xmm7
movaps xmm7, xmm4
mulsd xmm7, xmm2
mulsd xmm2, qword [esp + 0xb30]
addsd xmm6, xmm7
movsd xmm7, qword [esp + 0xb98]
mulsd xmm7, xmm3
mulsd xmm3, qword [esp + 0xb28]
addsd xmm6, xmm7
movsd qword [edx + ebx*8], xmm6
addsd xmm0, qword [ecx + ebx*8]
addsd xmm0, xmm1
addsd xmm0, xmm2
addsd xmm0, xmm3
movsd qword [ecx + ebx*8], xmm0
inc ebx
cmp ebx, dword [esp + 0xba8]
jb 0x4396d3
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
xor ebx, ebx
jmp 0x439655
cmp dword [esp + 0xba0], 3
je 0x43a9dd
cmp dword [esp + 0xba0], 2
jne 0x43a1e4
cmp ecx, 4
je 0x43b9c4
cmp ecx, 3
je 0x439e4c
cmp ecx, 2
jne 0x439b50
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
movsd xmm6, qword [ecx + edx*8 - 8]
movsd xmm5, qword [ecx + edx*8]
movsd xmm7, qword [ebx + edx*8 - 8]
movsd xmm4, qword [ebx + edx*8]
jle 0x439b3b
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
lea esi, [ecx + ebx]
and esi, 0xf
mov dword [esp + 0xfc], esi
je 0x439906
test byte [esp + 0xfc], 7
jne 0x43b72e
mov dword [esp + 0xfc], 1
mov ecx, dword [esp + 0xfc]
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x43b72e
mov esi, dword [esp + 0x5a4]
mov ecx, eax
imul esi, edx
mov ebx, dword [esp + 0xfc]
sub ecx, ebx
mov edi, dword [ebp + 0x10]
and ecx, 1
neg ecx
add ecx, eax
add edi, esi
add esi, dword [esp + 0x730]
mov dword [esp + 0xcc], edi
test ebx, ebx
ja 0x43b6ab
mov edi, dword [esp + 0x10c]
mov ebx, dword [esp + 0x110]
add ebx, edi
mov edi, dword [esp + 0xfc]
lea ebx, [ebx + edi*8]
test bl, 0xf
je 0x439a3a
movaps xmm3, xmm6
movaps xmm2, xmm5
movaps xmm1, xmm7
movaps xmm0, xmm4
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm3, xmm3
unpcklpd xmm2, xmm2
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
movsd qword [esp + 0x138], xmm4
movsd qword [esp + 0x130], xmm7
movsd qword [esp + 0x128], xmm5
movsd qword [esp + 0x120], xmm6
mov eax, dword [esp + 0xcc]
mov edx, edi
mov ebx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm4, qword [esi + edx*8]
movaps xmm6, xmm3
movhpd xmm4, qword [esi + edx*8 + 8]
movaps xmm7, xmm2
mulpd xmm6, xmm4
mulpd xmm4, xmm1
movsd xmm5, qword [ebx + edx*8]
movhpd xmm5, qword [ebx + edx*8 + 8]
addpd xmm5, xmm6
movsd xmm6, qword [eax + edx*8]
movhpd xmm6, qword [eax + edx*8 + 8]
mulpd xmm7, xmm6
mulpd xmm6, xmm0
addpd xmm5, xmm7
movsd qword [ebx + edx*8], xmm5
movhpd qword [ebx + edx*8 + 8], xmm5
addpd xmm4, xmmword [edi + edx*8]
addpd xmm4, xmm6
movaps xmmword [edi + edx*8], xmm4
add edx, 2
cmp edx, ecx
jb 0x4399d7
jmp 0x439aec
movaps xmm3, xmm6
movaps xmm2, xmm5
movaps xmm1, xmm7
movaps xmm0, xmm4
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm3, xmm3
unpcklpd xmm2, xmm2
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
movsd qword [esp + 0x138], xmm4
movsd qword [esp + 0x130], xmm7
movsd qword [esp + 0x128], xmm5
movsd qword [esp + 0x120], xmm6
mov eax, dword [esp + 0xcc]
mov edx, edi
mov ebx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm7, qword [esi + edx*8]
movaps xmm5, xmm3
movhpd xmm7, qword [esi + edx*8 + 8]
movaps xmm4, xmm2
mulpd xmm5, xmm7
mulpd xmm7, xmm1
addpd xmm5, xmmword [ebx + edx*8]
movsd xmm6, qword [eax + edx*8]
movhpd xmm6, qword [eax + edx*8 + 8]
mulpd xmm4, xmm6
mulpd xmm6, xmm0
addpd xmm5, xmm4
movaps xmmword [ebx + edx*8], xmm5
addpd xmm7, xmmword [edi + edx*8]
addpd xmm7, xmm6
movaps xmmword [edi + edx*8], xmm7
add edx, 2
cmp edx, ecx
jb 0x439a9f
movsd xmm4, qword [esp + 0x138]
movsd xmm7, qword [esp + 0x130]
movsd xmm5, qword [esp + 0x128]
movsd xmm6, qword [esp + 0x120]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ecx, eax
jb 0x43b623
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
cmp ecx, 1
jne 0x439e37
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
movsd xmm3, qword [ecx + edx*8 - 8]
movsd xmm2, qword [ebx + edx*8 - 8]
jle 0x439e22
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
add ebx, ecx
and ebx, 0xf
je 0x439b98
test bl, 7
jne 0x43b735
push 1
pop ebx
lea ecx, [ebx + 8]
cmp eax, ecx
jl 0x43b735
mov ecx, dword [esp + 0x5a4]
mov esi, eax
imul ecx, edx
sub esi, ebx
and esi, 7
neg esi
add ecx, dword [esp + 0x730]
add esi, eax
mov dword [esp + 0x100], ecx
test ebx, ebx
ja 0x43b799
mov edi, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
add ecx, edi
lea edi, [ecx + ebx*8]
test edi, 0xf
je 0x439d1a
movaps xmm1, xmm3
movaps xmm0, xmm2
mov dword [esp + 0xba8], eax
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm6, qword [eax + ebx*8]
movaps xmm4, xmm1
movhpd xmm6, qword [eax + ebx*8 + 8]
movaps xmm7, xmm1
mulpd xmm4, xmm6
mulpd xmm6, xmm0
movsd xmm5, qword [ecx + ebx*8]
movhpd xmm5, qword [ecx + ebx*8 + 8]
addpd xmm5, xmm4
movsd qword [ecx + ebx*8], xmm5
movhpd qword [ecx + ebx*8 + 8], xmm5
movsd xmm5, qword [eax + ebx*8 + 0x10]
movhpd xmm5, qword [eax + ebx*8 + 0x18]
mulpd xmm7, xmm5
addpd xmm6, xmmword [edi + ebx*8]
mulpd xmm5, xmm0
movaps xmmword [edi + ebx*8], xmm6
movaps xmm6, xmm1
movsd xmm4, qword [ecx + ebx*8 + 0x10]
movhpd xmm4, qword [ecx + ebx*8 + 0x18]
addpd xmm4, xmm7
movsd qword [ecx + ebx*8 + 0x10], xmm4
movaps xmm7, xmm1
movhpd qword [ecx + ebx*8 + 0x18], xmm4
addpd xmm5, xmmword [edi + ebx*8 + 0x10]
movaps xmmword [edi + ebx*8 + 0x10], xmm5
movsd xmm5, qword [eax + ebx*8 + 0x20]
movhpd xmm5, qword [eax + ebx*8 + 0x28]
mulpd xmm6, xmm5
mulpd xmm5, xmm0
movsd xmm4, qword [ecx + ebx*8 + 0x20]
movhpd xmm4, qword [ecx + ebx*8 + 0x28]
addpd xmm4, xmm6
movsd qword [ecx + ebx*8 + 0x20], xmm4
movhpd qword [ecx + ebx*8 + 0x28], xmm4
addpd xmm5, xmmword [edi + ebx*8 + 0x20]
movaps xmmword [edi + ebx*8 + 0x20], xmm5
movsd xmm5, qword [eax + ebx*8 + 0x30]
movhpd xmm5, qword [eax + ebx*8 + 0x38]
mulpd xmm7, xmm5
mulpd xmm5, xmm0
movsd xmm4, qword [ecx + ebx*8 + 0x30]
movhpd xmm4, qword [ecx + ebx*8 + 0x38]
addpd xmm4, xmm7
movsd qword [ecx + ebx*8 + 0x30], xmm4
movhpd qword [ecx + ebx*8 + 0x38], xmm4
addpd xmm5, xmmword [edi + ebx*8 + 0x30]
movaps xmmword [edi + ebx*8 + 0x30], xmm5
add ebx, 8
cmp ebx, esi
jb 0x439c17
jmp 0x439dfe
movaps xmm0, xmm3
movaps xmm1, xmm2
mov dword [esp + 0xba8], eax
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm5, qword [eax + ebx*8]
movaps xmm4, xmm0
movhpd xmm5, qword [eax + ebx*8 + 8]
movaps xmm6, xmm0
mulpd xmm4, xmm5
mulpd xmm5, xmm1
addpd xmm4, xmmword [ecx + ebx*8]
movsd xmm7, qword [eax + ebx*8 + 0x10]
movhpd xmm7, qword [eax + ebx*8 + 0x18]
mulpd xmm6, xmm7
mulpd xmm7, xmm1
movaps xmmword [ecx + ebx*8], xmm4
movaps xmm4, xmm0
addpd xmm5, xmmword [edi + ebx*8]
movaps xmmword [edi + ebx*8], xmm5
addpd xmm6, xmmword [ecx + ebx*8 + 0x10]
movsd xmm5, qword [eax + ebx*8 + 0x20]
movhpd xmm5, qword [eax + ebx*8 + 0x28]
mulpd xmm4, xmm5
mulpd xmm5, xmm1
movaps xmmword [ecx + ebx*8 + 0x10], xmm6
movaps xmm6, xmm0
addpd xmm7, xmmword [edi + ebx*8 + 0x10]
movaps xmmword [edi + ebx*8 + 0x10], xmm7
addpd xmm4, xmmword [ecx + ebx*8 + 0x20]
movaps xmmword [ecx + ebx*8 + 0x20], xmm4
movsd xmm4, qword [eax + ebx*8 + 0x30]
movhpd xmm4, qword [eax + ebx*8 + 0x38]
mulpd xmm6, xmm4
addpd xmm5, xmmword [edi + ebx*8 + 0x20]
mulpd xmm4, xmm1
movaps xmmword [edi + ebx*8 + 0x20], xmm5
addpd xmm6, xmmword [ecx + ebx*8 + 0x30]
movaps xmmword [ecx + ebx*8 + 0x30], xmm6
addpd xmm4, xmmword [edi + ebx*8 + 0x30]
movaps xmmword [edi + ebx*8 + 0x30], xmm4
add ebx, 8
cmp ebx, esi
jb 0x439d44
mov eax, dword [esp + 0xba8]
cmp esi, eax
jb 0x43b73c
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd xmm1, qword [ecx + edx*8]
movsd xmm2, qword [ecx + edx*8 + 8]
movsd xmm3, qword [ebx + edx*8 - 8]
movsd qword [esp + 0x140], xmm0
movsd qword [esp + 0x148], xmm1
movsd qword [esp + 0x150], xmm2
movsd qword [esp + 0x158], xmm3
movsd xmm1, qword [ebx + edx*8]
movsd xmm0, qword [ebx + edx*8 + 8]
jle 0x43a1cf
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
lea esi, [ecx + ebx]
and esi, 0xf
mov dword [esp + 0x24], esi
je 0x439ed1
test byte [esp + 0x24], 7
jne 0x43b7fa
mov dword [esp + 0x24], 1
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x43b7fa
mov esi, dword [esp + 0x5a4]
mov ecx, eax
imul esi, edx
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x24]
sub ecx, ebx
and ecx, 1
neg ecx
add edi, esi
mov dword [esp + 0xd0], edi
add ecx, eax
mov edi, dword [esp + 0x730]
add edi, esi
add esi, dword [esp + 0x720]
mov dword [esp + 0xd4], edi
test ebx, ebx
ja 0x43b8d8
mov edi, dword [esp + 0x10c]
mov ebx, dword [esp + 0x110]
add ebx, edi
mov edi, dword [esp + 0x24]
lea ebx, [ebx + edi*8]
test bl, 0xf
je 0x43a076
movsd xmm7, qword [esp + 0x158]
movaps xmm6, xmm1
movaps xmm2, xmm0
movsd xmm4, qword [esp + 0x140]
movsd xmm5, qword [esp + 0x148]
movsd xmm3, qword [esp + 0x150]
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
unpcklpd xmm2, xmm2
mov dword [esp + 8], ecx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x2a0], xmm2
movaps xmmword [esp + 0x2b0], xmm6
movaps xmmword [esp + 0x2c0], xmm7
movsd qword [esp + 0x168], xmm0
movsd qword [esp + 0x160], xmm1
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
mov ecx, edi
mov ebx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm1, qword [eax + ecx*8]
movaps xmm6, xmm4
movhpd xmm1, qword [eax + ecx*8 + 8]
movaps xmm7, xmm5
mulpd xmm6, xmm1
mulpd xmm1, xmmword [esp + 0x2c0]
movsd xmm0, qword [edx + ecx*8]
movhpd xmm0, qword [edx + ecx*8 + 8]
mulpd xmm7, xmm0
mulpd xmm0, xmmword [esp + 0x2b0]
movsd xmm2, qword [ebx + ecx*8]
movhpd xmm2, qword [ebx + ecx*8 + 8]
addpd xmm2, xmm6
addpd xmm2, xmm7
movsd xmm7, qword [esi + ecx*8]
movaps xmm6, xmm3
movhpd xmm7, qword [esi + ecx*8 + 8]
mulpd xmm6, xmm7
mulpd xmm7, xmmword [esp + 0x2a0]
addpd xmm2, xmm6
movsd qword [ebx + ecx*8], xmm2
movhpd qword [ebx + ecx*8 + 8], xmm2
addpd xmm1, xmmword [edi + ecx*8]
addpd xmm1, xmm0
addpd xmm1, xmm7
movaps xmmword [edi + ecx*8], xmm1
add ecx, 2
cmp ecx, dword [esp + 8]
jb 0x439fe0
jmp 0x43a18e
movsd xmm7, qword [esp + 0x158]
movaps xmm6, xmm1
movaps xmm2, xmm0
movsd xmm5, qword [esp + 0x140]
movsd xmm4, qword [esp + 0x148]
movsd xmm3, qword [esp + 0x150]
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
unpcklpd xmm2, xmm2
mov dword [esp + 8], ecx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
unpcklpd xmm3, xmm3
movaps xmmword [esp + 0x2d0], xmm2
movaps xmmword [esp + 0x2e0], xmm6
movaps xmmword [esp + 0x2f0], xmm7
movsd qword [esp + 0x168], xmm0
movsd qword [esp + 0x160], xmm1
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
mov ecx, edi
mov ebx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm1, qword [eax + ecx*8]
movaps xmm2, xmm5
movhpd xmm1, qword [eax + ecx*8 + 8]
movaps xmm6, xmm4
mulpd xmm2, xmm1
mulpd xmm1, xmmword [esp + 0x2f0]
addpd xmm2, xmmword [ebx + ecx*8]
movsd xmm0, qword [edx + ecx*8]
movaps xmm7, xmm3
movhpd xmm0, qword [edx + ecx*8 + 8]
mulpd xmm6, xmm0
mulpd xmm0, xmmword [esp + 0x2e0]
addpd xmm2, xmm6
movsd xmm6, qword [esi + ecx*8]
movhpd xmm6, qword [esi + ecx*8 + 8]
mulpd xmm7, xmm6
mulpd xmm6, xmmword [esp + 0x2d0]
addpd xmm2, xmm7
movaps xmmword [ebx + ecx*8], xmm2
addpd xmm1, xmmword [edi + ecx*8]
addpd xmm1, xmm0
addpd xmm1, xmm6
movaps xmmword [edi + ecx*8], xmm1
add ecx, 2
cmp ecx, dword [esp + 8]
jb 0x43a112
movsd xmm0, qword [esp + 0x168]
movsd xmm1, qword [esp + 0x160]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ecx, eax
jb 0x43b801
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
cmp dword [esp + 0xba0], 1
jne 0x43a9c8
cmp ecx, 4
je 0x43c136
cmp ecx, 3
je 0x43a64e
cmp ecx, 2
jne 0x43a488
mov ecx, dword [esp + 0x728]
test eax, eax
movsd xmm3, qword [ecx + edx*8 - 8]
movsd xmm2, qword [ecx + edx*8]
jle 0x43a473
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
lea edi, [ecx + ebx]
and edi, 0xf
je 0x43a24c
test edi, 7
jne 0x43bed2
push 1
pop edi
lea ecx, [edi + 8]
cmp eax, ecx
jl 0x43bed2
mov ebx, dword [esp + 0x5a4]
mov ecx, eax
imul ebx, edx
sub ecx, edi
mov esi, dword [ebp + 0x10]
and ecx, 7
neg ecx
add ecx, eax
test edi, edi
lea esi, [esi + ebx]
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0x730]
lea esi, [esi + ebx]
ja 0x43bf30
add ebx, dword [ebp + 0x10]
lea ebx, [ebx + edi*8]
test bl, 0xf
je 0x43a385
movaps xmm1, xmm3
movaps xmm0, xmm2
mov dword [esp + 0xba8], eax
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
mov eax, dword [esp + 0xc8]
mov ebx, dword [esp + 0xbec]
movsd xmm5, qword [esi + edi*8]
movhpd xmm5, qword [esi + edi*8 + 8]
mulpd xmm5, xmm1
movsd xmm4, qword [eax + edi*8]
movhpd xmm4, qword [eax + edi*8 + 8]
mulpd xmm4, xmm0
addpd xmm5, xmmword [ebx + edi*8]
addpd xmm5, xmm4
movaps xmmword [ebx + edi*8], xmm5
movsd xmm5, qword [esi + edi*8 + 0x20]
movhpd xmm5, qword [esi + edi*8 + 0x28]
mulpd xmm5, xmm1
movsd xmm7, qword [esi + edi*8 + 0x10]
movsd xmm4, qword [eax + edi*8 + 0x20]
movhpd xmm4, qword [eax + edi*8 + 0x28]
movhpd xmm7, qword [esi + edi*8 + 0x18]
mulpd xmm7, xmm1
mulpd xmm4, xmm0
addpd xmm5, xmmword [ebx + edi*8 + 0x20]
addpd xmm7, xmmword [ebx + edi*8 + 0x10]
addpd xmm5, xmm4
movsd xmm6, qword [eax + edi*8 + 0x10]
movhpd xmm6, qword [eax + edi*8 + 0x18]
mulpd xmm6, xmm0
movsd xmm4, qword [esi + edi*8 + 0x30]
movhpd xmm4, qword [esi + edi*8 + 0x38]
mulpd xmm4, xmm1
addpd xmm7, xmm6
addpd xmm4, xmmword [ebx + edi*8 + 0x30]
movsd xmm6, qword [eax + edi*8 + 0x30]
movhpd xmm6, qword [eax + edi*8 + 0x38]
mulpd xmm6, xmm0
addpd xmm4, xmm6
movaps xmmword [ebx + edi*8 + 0x10], xmm7
movaps xmmword [ebx + edi*8 + 0x20], xmm5
movaps xmmword [ebx + edi*8 + 0x30], xmm4
add edi, 8
cmp edi, ecx
jb 0x43a2bd
jmp 0x43a44f
movaps xmm0, xmm3
movaps xmm1, xmm2
mov dword [esp + 0xba8], eax
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
mov eax, dword [esp + 0xc8]
mov ebx, dword [esp + 0xbec]
movsd xmm5, qword [esi + edi*8]
movhpd xmm5, qword [esi + edi*8 + 8]
mulpd xmm5, xmm0
movaps xmm4, xmmword [eax + edi*8]
mulpd xmm4, xmm1
addpd xmm5, xmmword [ebx + edi*8]
addpd xmm5, xmm4
movaps xmmword [ebx + edi*8], xmm5
movsd xmm5, qword [esi + edi*8 + 0x20]
movhpd xmm5, qword [esi + edi*8 + 0x28]
mulpd xmm5, xmm0
movsd xmm7, qword [esi + edi*8 + 0x10]
movaps xmm4, xmmword [eax + edi*8 + 0x20]
movhpd xmm7, qword [esi + edi*8 + 0x18]
mulpd xmm4, xmm1
mulpd xmm7, xmm0
addpd xmm5, xmmword [ebx + edi*8 + 0x20]
addpd xmm7, xmmword [ebx + edi*8 + 0x10]
addpd xmm5, xmm4
movaps xmm6, xmmword [eax + edi*8 + 0x10]
mulpd xmm6, xmm1
movsd xmm4, qword [esi + edi*8 + 0x30]
movhpd xmm4, qword [esi + edi*8 + 0x38]
mulpd xmm4, xmm0
addpd xmm7, xmm6
addpd xmm4, xmmword [ebx + edi*8 + 0x30]
movaps xmm6, xmmword [eax + edi*8 + 0x30]
mulpd xmm6, xmm1
addpd xmm4, xmm6
movaps xmmword [ebx + edi*8 + 0x10], xmm7
movaps xmmword [ebx + edi*8 + 0x20], xmm5
movaps xmmword [ebx + edi*8 + 0x30], xmm4
add edi, 8
cmp edi, ecx
jb 0x43a3a8
mov eax, dword [esp + 0xba8]
cmp ecx, eax
jb 0x43bed9
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
cmp ecx, 1
jne 0x43a639
mov ecx, dword [esp + 0x728]
test eax, eax
movsd xmm0, qword [ecx + edx*8 - 8]
jle 0x43a624
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
lea esi, [ecx + ebx]
and esi, 0xf
je 0x43a4cb
test esi, 7
jne 0x43bf9e
push 1
pop esi
lea ecx, [esi + 8]
cmp eax, ecx
jl 0x43bf9e
mov ecx, dword [esp + 0x5a4]
mov edi, eax
imul ecx, edx
sub edi, esi
mov ebx, dword [esp + 0x730]
and edi, 7
neg edi
add edi, eax
test esi, esi
lea ebx, [ebx + ecx]
mov dword [esp + 0xa8], ebx
ja 0x43bfea
add ecx, dword [esp + 0x730]
lea ecx, [ecx + esi*8]
test cl, 0xf
je 0x43a59e
movaps xmm1, xmm0
unpcklpd xmm1, xmm1
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xbec]
movsd xmm2, qword [ecx + esi*8]
movsd xmm3, qword [ecx + esi*8 + 0x10]
movsd xmm4, qword [ecx + esi*8 + 0x20]
movsd xmm5, qword [ecx + esi*8 + 0x30]
movhpd xmm2, qword [ecx + esi*8 + 8]
movhpd xmm3, qword [ecx + esi*8 + 0x18]
movhpd xmm4, qword [ecx + esi*8 + 0x28]
movhpd xmm5, qword [ecx + esi*8 + 0x38]
mulpd xmm2, xmm1
mulpd xmm3, xmm1
mulpd xmm4, xmm1
mulpd xmm5, xmm1
addpd xmm2, xmmword [ebx + esi*8]
addpd xmm3, xmmword [ebx + esi*8 + 0x10]
addpd xmm4, xmmword [ebx + esi*8 + 0x20]
addpd xmm5, xmmword [ebx + esi*8 + 0x30]
movaps xmmword [ebx + esi*8], xmm2
movaps xmmword [ebx + esi*8 + 0x10], xmm3
movaps xmmword [ebx + esi*8 + 0x20], xmm4
movaps xmmword [ebx + esi*8 + 0x30], xmm5
add esi, 8
cmp esi, edi
jb 0x43a52c
jmp 0x43a607
movaps xmm1, xmm0
unpcklpd xmm1, xmm1
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xbec]
movaps xmm2, xmmword [ecx + esi*8]
movaps xmm3, xmmword [ecx + esi*8 + 0x10]
movaps xmm4, xmmword [ecx + esi*8 + 0x20]
movaps xmm5, xmmword [ecx + esi*8 + 0x30]
mulpd xmm2, xmm1
mulpd xmm3, xmm1
mulpd xmm4, xmm1
mulpd xmm5, xmm1
addpd xmm2, xmmword [ebx + esi*8]
addpd xmm3, xmmword [ebx + esi*8 + 0x10]
addpd xmm4, xmmword [ebx + esi*8 + 0x20]
addpd xmm5, xmmword [ebx + esi*8 + 0x30]
movaps xmmword [ebx + esi*8], xmm2
movaps xmmword [ebx + esi*8 + 0x10], xmm3
movaps xmmword [ebx + esi*8 + 0x20], xmm4
movaps xmmword [ebx + esi*8 + 0x30], xmm5
add esi, 8
cmp esi, edi
jb 0x43a5b3
cmp edi, eax
jb 0x43bfa5
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov ecx, dword [esp + 0x728]
test eax, eax
movsd xmm2, qword [ecx + edx*8 - 8]
movsd xmm1, qword [ecx + edx*8]
movsd xmm0, qword [ecx + edx*8 + 8]
jle 0x43a9b3
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
lea edi, [ecx + ebx]
and edi, 0xf
je 0x43a693
test edi, 7
jne 0x43c033
push 1
pop edi
lea ecx, [edi + 8]
cmp eax, ecx
jl 0x43c033
mov ebx, dword [esp + 0x5a4]
mov ecx, eax
imul ebx, edx
sub ecx, edi
mov esi, dword [ebp + 0x10]
and ecx, 7
neg ecx
add ecx, eax
test edi, edi
lea esi, [esi + ebx]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x730]
lea esi, [esi + ebx]
mov dword [esp + 0xa0], esi
mov esi, dword [esp + 0x720]
lea esi, [esi + ebx]
mov dword [esp + 0xa4], esi
ja 0x43c0b5
add ebx, dword [esp + 0x720]
lea ebx, [ebx + edi*8]
test bl, 0xf
je 0x43a853
movaps xmm5, xmm2
movaps xmm4, xmm1
movaps xmm3, xmm0
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
unpcklpd xmm3, xmm3
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
mov esi, dword [esp + 0xbec]
movsd xmm7, qword [edx + edi*8]
movhpd xmm7, qword [edx + edi*8 + 8]
mulpd xmm7, xmm5
movsd xmm6, qword [ebx + edi*8]
movhpd xmm6, qword [ebx + edi*8 + 8]
mulpd xmm6, xmm4
addpd xmm7, xmmword [esi + edi*8]
addpd xmm7, xmm6
movsd xmm6, qword [eax + edi*8]
movhpd xmm6, qword [eax + edi*8 + 8]
mulpd xmm6, xmm3
addpd xmm7, xmm6
movsd xmm6, qword [edx + edi*8 + 0x10]
movhpd xmm6, qword [edx + edi*8 + 0x18]
mulpd xmm6, xmm5
movaps xmmword [esi + edi*8], xmm7
movsd xmm7, qword [ebx + edi*8 + 0x10]
movhpd xmm7, qword [ebx + edi*8 + 0x18]
mulpd xmm7, xmm4
addpd xmm6, xmmword [esi + edi*8 + 0x10]
addpd xmm6, xmm7
movsd xmm7, qword [eax + edi*8 + 0x10]
movhpd xmm7, qword [eax + edi*8 + 0x18]
mulpd xmm7, xmm3
addpd xmm6, xmm7
movsd xmm7, qword [edx + edi*8 + 0x20]
movhpd xmm7, qword [edx + edi*8 + 0x28]
mulpd xmm7, xmm5
movaps xmmword [esi + edi*8 + 0x10], xmm6
movsd xmm6, qword [ebx + edi*8 + 0x20]
movhpd xmm6, qword [ebx + edi*8 + 0x28]
mulpd xmm6, xmm4
addpd xmm7, xmmword [esi + edi*8 + 0x20]
addpd xmm7, xmm6
movsd xmm6, qword [eax + edi*8 + 0x20]
movhpd xmm6, qword [eax + edi*8 + 0x28]
mulpd xmm6, xmm3
addpd xmm7, xmm6
movsd xmm6, qword [edx + edi*8 + 0x30]
movhpd xmm6, qword [edx + edi*8 + 0x38]
mulpd xmm6, xmm5
movaps xmmword [esi + edi*8 + 0x20], xmm7
movsd xmm7, qword [ebx + edi*8 + 0x30]
movhpd xmm7, qword [ebx + edi*8 + 0x38]
mulpd xmm7, xmm4
addpd xmm6, xmmword [esi + edi*8 + 0x30]
addpd xmm6, xmm7
movsd xmm7, qword [eax + edi*8 + 0x30]
movhpd xmm7, qword [eax + edi*8 + 0x38]
mulpd xmm7, xmm3
addpd xmm6, xmm7
movaps xmmword [esi + edi*8 + 0x30], xmm6
add edi, 8
cmp edi, ecx
jb 0x43a73c
jmp 0x43a988
movaps xmm4, xmm2
movaps xmm3, xmm1
movaps xmm5, xmm0
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm4, xmm4
unpcklpd xmm3, xmm3
unpcklpd xmm5, xmm5
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
mov esi, dword [esp + 0xbec]
movsd xmm7, qword [edx + edi*8]
movhpd xmm7, qword [edx + edi*8 + 8]
mulpd xmm7, xmm4
movsd xmm6, qword [ebx + edi*8]
movhpd xmm6, qword [ebx + edi*8 + 8]
mulpd xmm6, xmm3
addpd xmm7, xmmword [esi + edi*8]
addpd xmm7, xmm6
movaps xmm6, xmmword [eax + edi*8]
mulpd xmm6, xmm5
addpd xmm7, xmm6
movsd xmm6, qword [edx + edi*8 + 0x10]
movhpd xmm6, qword [edx + edi*8 + 0x18]
mulpd xmm6, xmm4
movaps xmmword [esi + edi*8], xmm7
movsd xmm7, qword [ebx + edi*8 + 0x10]
movhpd xmm7, qword [ebx + edi*8 + 0x18]
mulpd xmm7, xmm3
addpd xmm6, xmmword [esi + edi*8 + 0x10]
addpd xmm6, xmm7
movaps xmm7, xmmword [eax + edi*8 + 0x10]
mulpd xmm7, xmm5
addpd xmm6, xmm7
movsd xmm7, qword [edx + edi*8 + 0x20]
movhpd xmm7, qword [edx + edi*8 + 0x28]
mulpd xmm7, xmm4
movaps xmmword [esi + edi*8 + 0x10], xmm6
movsd xmm6, qword [ebx + edi*8 + 0x20]
movhpd xmm6, qword [ebx + edi*8 + 0x28]
mulpd xmm6, xmm3
addpd xmm7, xmmword [esi + edi*8 + 0x20]
addpd xmm7, xmm6
movaps xmm6, xmmword [eax + edi*8 + 0x20]
mulpd xmm6, xmm5
addpd xmm7, xmm6
movsd xmm6, qword [edx + edi*8 + 0x30]
movhpd xmm6, qword [edx + edi*8 + 0x38]
mulpd xmm6, xmm4
movaps xmmword [esi + edi*8 + 0x20], xmm7
movsd xmm7, qword [ebx + edi*8 + 0x30]
movhpd xmm7, qword [ebx + edi*8 + 0x38]
mulpd xmm7, xmm3
addpd xmm6, xmmword [esi + edi*8 + 0x30]
addpd xmm6, xmm7
movaps xmm7, xmmword [eax + edi*8 + 0x30]
mulpd xmm7, xmm5
addpd xmm6, xmm7
movaps xmmword [esi + edi*8 + 0x30], xmm6
add edi, 8
cmp edi, ecx
jb 0x43a892
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ecx, eax
jb 0x43c03a
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
cmp ecx, 4
je 0x43cc23
cmp ecx, 3
je 0x43b13b
cmp ecx, 2
jne 0x43ac4a
mov ebx, dword [esp + 0x724]
test eax, eax
mov esi, dword [esp + 0x72c]
mov ecx, dword [esp + 0x728]
movsd xmm0, qword [ebx + edx*8 - 8]
movsd xmm1, qword [ebx + edx*8]
movsd xmm2, qword [esi + edx*8 - 8]
movsd xmm3, qword [esi + edx*8]
movsd xmm5, qword [ecx + edx*8 - 8]
movsd xmm4, qword [ecx + edx*8]
movsd qword [esp + 0x180], xmm0
movsd qword [esp + 0x188], xmm1
movsd qword [esp + 0x190], xmm2
movsd qword [esp + 0x198], xmm3
jle 0x43ac35
mov ebx, dword [esp + 0x5a4]
imul ebx, edx
mov ecx, dword [ebp + 0x10]
add ecx, ebx
and ecx, 0xf
je 0x43aa7a
test cl, 7
jne 0x43c6e5
push 1
pop ecx
lea esi, [ecx + 2]
cmp eax, esi
jl 0x43c6e5
mov edi, dword [ebp + 0x10]
mov esi, eax
sub esi, ecx
and esi, 1
neg esi
add edi, ebx
mov dword [esp + 0xec], edi
add esi, eax
mov edi, dword [esp + 0x730]
test ecx, ecx
lea edi, [edi + ebx]
mov dword [esp + 0x64], edi
ja 0x43c7cf
movsd xmm7, qword [esp + 0x190]
movaps xmm3, xmm5
movsd xmm6, qword [esp + 0x198]
movaps xmm1, xmm4
movsd xmm2, qword [esp + 0x180]
movsd xmm0, qword [esp + 0x188]
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x6f8], edx
unpcklpd xmm3, xmm3
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
unpcklpd xmm0, xmm0
movaps xmmword [esp + 0x300], xmm6
movaps xmmword [esp + 0x310], xmm7
movsd qword [esp + 0x178], xmm4
movsd qword [esp + 0x170], xmm5
mov dword [esp + 0xba8], eax
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0xbf4]
mov esi, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm7, qword [edx + ecx*8]
movaps xmm5, xmm3
movhpd xmm7, qword [edx + ecx*8 + 8]
movaps xmm4, xmm1
mulpd xmm5, xmm7
mov eax, dword [esp + 0xec]
movsd xmm6, qword [esi + ecx*8]
movhpd xmm6, qword [esi + ecx*8 + 8]
addpd xmm6, xmm5
movaps xmm5, xmmword [eax + ecx*8]
mulpd xmm4, xmm5
addpd xmm6, xmm4
movsd qword [esi + ecx*8], xmm6
movhpd qword [esi + ecx*8 + 8], xmm6
movaps xmm6, xmm2
mulpd xmm6, xmm7
mulpd xmm7, xmmword [esp + 0x310]
movsd xmm4, qword [edi + ecx*8]
movhpd xmm4, qword [edi + ecx*8 + 8]
addpd xmm4, xmm6
movaps xmm6, xmm0
mulpd xmm6, xmm5
mulpd xmm5, xmmword [esp + 0x300]
addpd xmm4, xmm6
movsd qword [edi + ecx*8], xmm4
movhpd qword [edi + ecx*8 + 8], xmm4
movsd xmm4, qword [ebx + ecx*8]
movhpd xmm4, qword [ebx + ecx*8 + 8]
addpd xmm4, xmm7
addpd xmm4, xmm5
movsd qword [ebx + ecx*8], xmm4
movhpd qword [ebx + ecx*8 + 8], xmm4
add ecx, 2
cmp ecx, dword [esp + 0x10]
jb 0x43ab45
movsd xmm4, qword [esp + 0x178]
movsd xmm5, qword [esp + 0x170]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp esi, eax
jb 0x43c6ec
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
cmp ecx, 1
jne 0x43b126
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
mov esi, dword [esp + 0x72c]
movsd xmm2, qword [ecx + edx*8 - 8]
movsd xmm1, qword [ebx + edx*8 - 8]
movsd xmm0, qword [esi + edx*8 - 8]
jle 0x43b111
mov ebx, dword [esp + 0x5a4]
imul ebx, edx
mov ecx, dword [esp + 0x730]
lea esi, [ecx + ebx]
and esi, 0xf
mov dword [esp + 0xf8], esi
je 0x43acbb
test byte [esp + 0xf8], 7
jne 0x43c8b5
mov dword [esp + 0xf8], 1
mov ecx, dword [esp + 0xf8]
lea esi, [ecx + 8]
cmp eax, esi
jl 0x43c8b5
mov esi, eax
sub esi, ecx
mov edi, dword [esp + 0x730]
and esi, 7
neg esi
add esi, eax
test ecx, ecx
lea edi, [edi + ebx]
mov dword [esp + 0xe4], edi
ja 0x43c935
mov edi, dword [esp + 0x108]
mov ecx, dword [esp + 0x110]
add ecx, edi
mov edi, dword [esp + 0xf8]
add ecx, dword [esp + 0x10c]
lea ecx, [ecx + edi*8]
test cl, 0xf
je 0x43af1e
movaps xmm5, xmm2
movaps xmm4, xmm1
movaps xmm3, xmm0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
unpcklpd xmm3, xmm3
movsd qword [esp + 0x1a0], xmm2
mov eax, dword [esp + 0xe4]
mov edx, edi
mov ecx, dword [esp + 0xbf4]
mov ebx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movaps xmm2, xmmword [eax + edx*8]
movaps xmm6, xmm5
mulpd xmm6, xmm2
movsd xmm7, qword [ebx + edx*8]
movhpd xmm7, qword [ebx + edx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmm4
mulpd xmm6, xmm2
mulpd xmm2, xmm3
movsd qword [ebx + edx*8], xmm7
movhpd qword [ebx + edx*8 + 8], xmm7
movsd xmm7, qword [edi + edx*8]
movhpd xmm7, qword [edi + edx*8 + 8]
addpd xmm7, xmm6
movsd qword [edi + edx*8], xmm7
movhpd qword [edi + edx*8 + 8], xmm7
movsd xmm6, qword [ecx + edx*8]
movhpd xmm6, qword [ecx + edx*8 + 8]
addpd xmm6, xmm2
movaps xmm7, xmmword [eax + edx*8 + 0x10]
movaps xmm2, xmm5
mulpd xmm2, xmm7
movsd qword [ecx + edx*8], xmm6
movhpd qword [ecx + edx*8 + 8], xmm6
movsd xmm6, qword [ebx + edx*8 + 0x10]
movhpd xmm6, qword [ebx + edx*8 + 0x18]
addpd xmm6, xmm2
movaps xmm2, xmm4
mulpd xmm2, xmm7
mulpd xmm7, xmm3
movsd qword [ebx + edx*8 + 0x10], xmm6
movhpd qword [ebx + edx*8 + 0x18], xmm6
movsd xmm6, qword [edi + edx*8 + 0x10]
movhpd xmm6, qword [edi + edx*8 + 0x18]
addpd xmm6, xmm2
movsd qword [edi + edx*8 + 0x10], xmm6
movhpd qword [edi + edx*8 + 0x18], xmm6
movsd xmm2, qword [ecx + edx*8 + 0x10]
movhpd xmm2, qword [ecx + edx*8 + 0x18]
addpd xmm2, xmm7
movaps xmm6, xmmword [eax + edx*8 + 0x20]
movaps xmm7, xmm5
mulpd xmm7, xmm6
movsd qword [ecx + edx*8 + 0x10], xmm2
movhpd qword [ecx + edx*8 + 0x18], xmm2
movsd xmm2, qword [ebx + edx*8 + 0x20]
movhpd xmm2, qword [ebx + edx*8 + 0x28]
addpd xmm2, xmm7
movaps xmm7, xmm4
mulpd xmm7, xmm6
mulpd xmm6, xmm3
movsd qword [ebx + edx*8 + 0x20], xmm2
movhpd qword [ebx + edx*8 + 0x28], xmm2
movsd xmm2, qword [edi + edx*8 + 0x20]
movhpd xmm2, qword [edi + edx*8 + 0x28]
addpd xmm2, xmm7
movsd qword [edi + edx*8 + 0x20], xmm2
movhpd qword [edi + edx*8 + 0x28], xmm2
movsd xmm7, qword [ecx + edx*8 + 0x20]
movhpd xmm7, qword [ecx + edx*8 + 0x28]
addpd xmm7, xmm6
movaps xmm2, xmmword [eax + edx*8 + 0x30]
movaps xmm6, xmm5
mulpd xmm6, xmm2
movsd qword [ecx + edx*8 + 0x20], xmm7
movhpd qword [ecx + edx*8 + 0x28], xmm7
movsd xmm7, qword [ebx + edx*8 + 0x30]
movhpd xmm7, qword [ebx + edx*8 + 0x38]
addpd xmm7, xmm6
movaps xmm6, xmm4
mulpd xmm6, xmm2
mulpd xmm2, xmm3
movsd qword [ebx + edx*8 + 0x30], xmm7
movhpd qword [ebx + edx*8 + 0x38], xmm7
movsd xmm7, qword [edi + edx*8 + 0x30]
movhpd xmm7, qword [edi + edx*8 + 0x38]
addpd xmm7, xmm6
movsd qword [edi + edx*8 + 0x30], xmm7
movhpd qword [edi + edx*8 + 0x38], xmm7
movsd xmm6, qword [ecx + edx*8 + 0x30]
movhpd xmm6, qword [ecx + edx*8 + 0x38]
addpd xmm6, xmm2
movsd qword [ecx + edx*8 + 0x30], xmm6
movhpd qword [ecx + edx*8 + 0x38], xmm6
add edx, 8
cmp edx, esi
jb 0x43ad69
jmp 0x43b0d9
movaps xmm4, xmm2
movaps xmm3, xmm1
movaps xmm5, xmm0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm4, xmm4
unpcklpd xmm3, xmm3
unpcklpd xmm5, xmm5
movsd qword [esp + 0x1a0], xmm2
mov eax, dword [esp + 0xe4]
mov edx, edi
mov ecx, dword [esp + 0xbf4]
mov ebx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movaps xmm2, xmmword [eax + edx*8]
movaps xmm6, xmm4
mulpd xmm6, xmm2
movsd xmm7, qword [ebx + edx*8]
movhpd xmm7, qword [ebx + edx*8 + 8]
addpd xmm7, xmm6
movaps xmm6, xmm3
mulpd xmm6, xmm2
mulpd xmm2, xmm5
movsd qword [ebx + edx*8], xmm7
movhpd qword [ebx + edx*8 + 8], xmm7
movsd xmm7, qword [edi + edx*8]
movhpd xmm7, qword [edi + edx*8 + 8]
addpd xmm7, xmm6
movsd qword [edi + edx*8], xmm7
movhpd qword [edi + edx*8 + 8], xmm7
addpd xmm2, xmmword [ecx + edx*8]
movaps xmmword [ecx + edx*8], xmm2
movaps xmm2, xmm4
movaps xmm7, xmmword [eax + edx*8 + 0x10]
mulpd xmm2, xmm7
movsd xmm6, qword [ebx + edx*8 + 0x10]
movhpd xmm6, qword [ebx + edx*8 + 0x18]
addpd xmm6, xmm2
movaps xmm2, xmm3
mulpd xmm2, xmm7
mulpd xmm7, xmm5
movsd qword [ebx + edx*8 + 0x10], xmm6
movhpd qword [ebx + edx*8 + 0x18], xmm6
movsd xmm6, qword [edi + edx*8 + 0x10]
movhpd xmm6, qword [edi + edx*8 + 0x18]
addpd xmm6, xmm2
movsd qword [edi + edx*8 + 0x10], xmm6
movhpd qword [edi + edx*8 + 0x18], xmm6
addpd xmm7, xmmword [ecx + edx*8 + 0x10]
movaps xmmword [ecx + edx*8 + 0x10], xmm7
movaps xmm7, xmm4
movaps xmm6, xmmword [eax + edx*8 + 0x20]
mulpd xmm7, xmm6
movsd xmm2, qword [ebx + edx*8 + 0x20]
movhpd xmm2, qword [ebx + edx*8 + 0x28]
addpd xmm2, xmm7
movaps xmm7, xmm3
mulpd xmm7, xmm6
mulpd xmm6, xmm5
movsd qword [ebx + edx*8 + 0x20], xmm2
movhpd qword [ebx + edx*8 + 0x28], xmm2
movsd xmm2, qword [edi + edx*8 + 0x20]
movhpd xmm2, qword [edi + edx*8 + 0x28]
addpd xmm2, xmm7
movsd qword [edi + edx*8 + 0x20], xmm2
movhpd qword [edi + edx*8 + 0x28], xmm2
addpd xmm6, xmmword [ecx + edx*8 + 0x20]
movaps xmmword [ecx + edx*8 + 0x20], xmm6
movaps xmm6, xmm4
movaps xmm2, xmmword [eax + edx*8 + 0x30]
mulpd xmm6, xmm2
movsd xmm7, qword [ebx + edx*8 + 0x30]
movhpd xmm7, qword [ebx + edx*8 + 0x38]
addpd xmm7, xmm6
movaps xmm6, xmm3
mulpd xmm6, xmm2
mulpd xmm2, xmm5
movsd qword [ebx + edx*8 + 0x30], xmm7
movhpd qword [ebx + edx*8 + 0x38], xmm7
movsd xmm7, qword [edi + edx*8 + 0x30]
movhpd xmm7, qword [edi + edx*8 + 0x38]
addpd xmm7, xmm6
movsd qword [edi + edx*8 + 0x30], xmm7
movhpd qword [edi + edx*8 + 0x38], xmm7
nop
addpd xmm2, xmmword [ecx + edx*8 + 0x30]
movaps xmmword [ecx + edx*8 + 0x30], xmm2
add edx, 8
cmp edx, esi
jb 0x43af6c
movsd xmm2, qword [esp + 0x1a0]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp esi, eax
jb 0x43c8bc
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
mov esi, dword [esp + 0x72c]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd qword [esp + 0x1a8], xmm0
movsd xmm1, qword [ecx + edx*8]
movsd xmm2, qword [ecx + edx*8 + 8]
movsd xmm3, qword [ebx + edx*8 - 8]
movsd xmm4, qword [ebx + edx*8]
movsd xmm5, qword [ebx + edx*8 + 8]
movsd xmm6, qword [esi + edx*8 - 8]
movsd xmm7, qword [esi + edx*8]
movsd xmm0, qword [esi + edx*8 + 8]
movsd qword [esp + 0x1b0], xmm1
movsd qword [esp + 0x1b8], xmm2
movsd qword [esp + 0x1c0], xmm3
movsd qword [esp + 0x1c8], xmm4
movsd qword [esp + 0x1d0], xmm5
movsd qword [esp + 0x1d8], xmm6
movsd qword [esp + 0x1e0], xmm7
movsd qword [esp + 0x1e8], xmm0
jle 0x43b60e
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x720]
add ecx, esi
and ecx, 0xf
je 0x43b200
test cl, 7
jne 0x43c9c0
push 1
pop ecx
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x43c9c0
mov edi, dword [ebp + 0x10]
mov ebx, eax
sub ebx, ecx
and ebx, 1
neg ebx
add edi, esi
mov dword [esp + 0x78], edi
add ebx, eax
mov edi, dword [esp + 0x730]
test ecx, ecx
lea edi, [edi + esi]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x720]
lea edi, [esi + edi]
mov dword [esp + 0xdc], edi
ja 0x43caf7
test byte [esp + 0x5a4], 0xf
jne 0x43b41b
movsd xmm5, qword [esp + 0x1d0]
unpcklpd xmm5, xmm5
movsd xmm7, qword [esp + 0x1d8]
movaps xmmword [esp + 0x580], xmm5
movsd xmm3, qword [esp + 0x1b0]
movsd xmm2, qword [esp + 0x1c0]
movsd xmm4, qword [esp + 0x1c8]
movsd xmm6, qword [esp + 0x1e0]
movsd xmm5, qword [esp + 0x1e8]
unpcklpd xmm7, xmm7
movsd xmm1, qword [esp + 0x1a8]
movsd xmm0, qword [esp + 0x1b8]
unpcklpd xmm3, xmm3
unpcklpd xmm2, xmm2
unpcklpd xmm4, xmm4
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
movaps xmmword [esp + 0x340], xmm7
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
movaps xmmword [esp + 0x320], xmm5
movaps xmmword [esp + 0x330], xmm6
movaps xmmword [esp + 0x360], xmm4
movaps xmmword [esp + 0x370], xmm2
movaps xmmword [esp + 0x350], xmm3
movaps xmm7, xmmword [esp + 0x580]
mov ebx, dword [esp + 0xdc]
mov edx, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
mov edi, dword [esp + 0x7c]
movaps xmm4, xmm1
movsd xmm5, qword [eax + ecx*8]
movaps xmm2, xmm0
movhpd xmm5, qword [eax + ecx*8 + 8]
movaps xmm6, xmmword [edi + ecx*8]
mulpd xmm4, xmm6
mov edi, dword [esp + 0x78]
movaps xmm3, xmmword [esp + 0x350]
addpd xmm5, xmm4
movaps xmm4, xmmword [edi + ecx*8]
mulpd xmm3, xmm4
addpd xmm5, xmm3
movaps xmm3, xmmword [ebx + ecx*8]
mulpd xmm2, xmm3
addpd xmm5, xmm2
movsd qword [eax + ecx*8], xmm5
movhpd qword [eax + ecx*8 + 8], xmm5
movaps xmm5, xmmword [esp + 0x370]
mulpd xmm5, xmm6
mulpd xmm6, xmmword [esp + 0x340]
movsd xmm2, qword [esi + ecx*8]
movhpd xmm2, qword [esi + ecx*8 + 8]
addpd xmm2, xmm5
movaps xmm5, xmmword [esp + 0x360]
mulpd xmm5, xmm4
mulpd xmm4, xmmword [esp + 0x330]
addpd xmm2, xmm5
movaps xmm5, xmm7
mulpd xmm5, xmm3
mulpd xmm3, xmmword [esp + 0x320]
addpd xmm2, xmm5
movsd qword [esi + ecx*8], xmm2
movhpd qword [esi + ecx*8 + 8], xmm2
movsd xmm2, qword [edx + ecx*8]
movhpd xmm2, qword [edx + ecx*8 + 8]
addpd xmm2, xmm6
addpd xmm2, xmm4
addpd xmm2, xmm3
movsd qword [edx + ecx*8], xmm2
movhpd qword [edx + ecx*8 + 8], xmm2
add ecx, 2
cmp ecx, dword [esp + 0x1c]
jb 0x43b33b
jmp 0x43b5db
movsd xmm5, qword [esp + 0x1d0]
unpcklpd xmm5, xmm5
movaps xmmword [esp + 0x590], xmm5
movsd xmm4, qword [esp + 0x1a8]
movsd xmm3, qword [esp + 0x1b0]
movsd xmm7, qword [esp + 0x1d8]
movsd xmm6, qword [esp + 0x1e0]
movsd xmm5, qword [esp + 0x1e8]
movsd xmm1, qword [esp + 0x1b8]
movsd xmm2, qword [esp + 0x1c0]
movsd xmm0, qword [esp + 0x1c8]
unpcklpd xmm4, xmm4
unpcklpd xmm3, xmm3
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
unpcklpd xmm0, xmm0
movaps xmmword [esp + 0x380], xmm5
movaps xmmword [esp + 0x390], xmm6
movaps xmmword [esp + 0x3a0], xmm7
movaps xmmword [esp + 0x3c0], xmm3
movaps xmmword [esp + 0x3b0], xmm4
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
mov edi, dword [esp + 0x7c]
movaps xmm3, xmm1
movaps xmm5, xmmword [esp + 0x3b0]
movsd xmm6, qword [eax + ecx*8]
movsd xmm7, qword [edi + ecx*8]
movhpd xmm7, qword [edi + ecx*8 + 8]
mulpd xmm5, xmm7
movhpd xmm6, qword [eax + ecx*8 + 8]
addpd xmm6, xmm5
movsd xmm5, qword [ebx + ecx*8]
movhpd xmm5, qword [ebx + ecx*8 + 8]
movaps xmm4, xmmword [esp + 0x3c0]
mulpd xmm4, xmm5
mov edi, dword [esp + 0xdc]
addpd xmm6, xmm4
movaps xmm4, xmmword [edi + ecx*8]
mulpd xmm3, xmm4
addpd xmm6, xmm3
movsd qword [eax + ecx*8], xmm6
movhpd qword [eax + ecx*8 + 8], xmm6
movaps xmm6, xmm2
mulpd xmm6, xmm7
mulpd xmm7, xmmword [esp + 0x3a0]
movsd xmm3, qword [esi + ecx*8]
movhpd xmm3, qword [esi + ecx*8 + 8]
addpd xmm3, xmm6
movaps xmm6, xmm0
mulpd xmm6, xmm5
mulpd xmm5, xmmword [esp + 0x390]
addpd xmm3, xmm6
movaps xmm6, xmmword [esp + 0x590]
mulpd xmm6, xmm4
mulpd xmm4, xmmword [esp + 0x380]
addpd xmm3, xmm6
movsd qword [esi + ecx*8], xmm3
movhpd qword [esi + ecx*8 + 8], xmm3
movsd xmm3, qword [edx + ecx*8]
movhpd xmm3, qword [edx + ecx*8 + 8]
addpd xmm3, xmm7
addpd xmm3, xmm5
addpd xmm3, xmm4
movsd qword [edx + ecx*8], xmm3
movhpd qword [edx + ecx*8 + 8], xmm3
add ecx, 2
cmp ecx, dword [esp + 0x1c]
jb 0x43b4ef
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ebx, eax
jb 0x43c9c7
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov edx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
add ebx, esi
add esi, dword [esp + 0x730]
movsd xmm3, qword [esi + ecx*8]
movaps xmm1, xmm6
mulsd xmm1, xmm3
movaps xmm0, xmm5
mulsd xmm3, xmm7
addsd xmm1, qword [edx + ecx*8]
movsd xmm2, qword [ebx + ecx*8]
mulsd xmm0, xmm2
mulsd xmm2, xmm4
addsd xmm1, xmm0
movsd qword [edx + ecx*8], xmm1
addsd xmm3, qword [edi + ecx*8]
addsd xmm3, xmm2
movsd qword [edi + ecx*8], xmm3
inc ecx
cmp ecx, eax
jb 0x43b64e
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0x20], ecx
xor ebx, ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov eax, edi
mov edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm3, qword [esi + ebx*8]
movaps xmm1, xmm6
mulsd xmm1, xmm3
movaps xmm0, xmm5
mulsd xmm3, xmm7
addsd xmm1, qword [ecx + ebx*8]
movsd xmm2, qword [eax + ebx*8]
mulsd xmm0, xmm2
mulsd xmm2, xmm4
addsd xmm1, xmm0
movsd qword [ecx + ebx*8], xmm1
addsd xmm3, qword [edi + ebx*8]
addsd xmm3, xmm2
movsd qword [edi + ebx*8], xmm3
inc ebx
cmp ebx, edx
jb 0x43b6d6
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43994f
xor ecx, ecx
jmp 0x439b1e
xor esi, esi
jmp 0x439e05
mov ecx, dword [esp + 0x5a4]
imul ecx, edx
add ecx, dword [esp + 0x730]
mov ebx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm1, qword [ecx + esi*8]
movaps xmm0, xmm3
mulsd xmm0, xmm1
mulsd xmm1, xmm2
addsd xmm0, qword [ebx + esi*8]
movsd qword [ebx + esi*8], xmm0
addsd xmm1, qword [edi + esi*8]
movsd qword [edi + esi*8], xmm1
inc esi
cmp esi, eax
jb 0x43b75b
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0x6f8], edx
xor ecx, ecx
mov dword [esp + 0xba8], eax
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm1, qword [eax + ecx*8]
movaps xmm0, xmm3
mulsd xmm0, xmm1
mulsd xmm1, xmm2
addsd xmm0, qword [edx + ecx*8]
movsd qword [edx + ecx*8], xmm0
addsd xmm1, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm1
inc ecx
cmp ecx, ebx
jb 0x43b7be
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x439bce
xor ecx, ecx
jmp 0x43a1b2
mov ebx, dword [esp + 0x5a4]
imul ebx, edx
movsd xmm6, qword [esp + 0x158]
mov edi, dword [esp + 0x730]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
add edi, ebx
mov eax, dword [esp + 0xbec]
add esi, ebx
add ebx, dword [esp + 0x720]
mov edx, dword [esp + 0xbf0]
movsd xmm3, qword [edi + ecx*8]
movsd xmm2, qword [esp + 0x140]
mulsd xmm2, xmm3
mulsd xmm3, xmm6
addsd xmm2, qword [eax + ecx*8]
movsd xmm4, qword [esi + ecx*8]
movsd xmm7, qword [esp + 0x148]
mulsd xmm7, xmm4
mulsd xmm4, xmm1
addsd xmm2, xmm7
movsd xmm7, qword [esp + 0x150]
movsd xmm5, qword [ebx + ecx*8]
mulsd xmm7, xmm5
mulsd xmm5, xmm0
addsd xmm2, xmm7
movsd qword [eax + ecx*8], xmm2
addsd xmm3, qword [edx + ecx*8]
addsd xmm3, xmm4
addsd xmm3, xmm5
movsd qword [edx + ecx*8], xmm3
inc ecx
cmp ecx, dword [esp + 0xba8]
jb 0x43b845
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 8], ecx
xor ebx, ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd qword [esp + 0x168], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm4, qword [esp + 0x158]
movsd xmm5, qword [esp + 0x150]
movsd xmm6, qword [esp + 0x148]
mov eax, edi
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm1, qword [eax + ebx*8]
movaps xmm7, xmm6
movsd xmm0, qword [esp + 0x140]
mulsd xmm0, xmm1
mulsd xmm1, xmm4
addsd xmm0, qword [ecx + ebx*8]
movsd xmm2, qword [edx + ebx*8]
mulsd xmm7, xmm2
mulsd xmm2, qword [esp + 0x160]
addsd xmm0, xmm7
movsd xmm3, qword [esi + ebx*8]
movaps xmm7, xmm5
mulsd xmm7, xmm3
mulsd xmm3, qword [esp + 0x168]
addsd xmm0, xmm7
movsd qword [ecx + ebx*8], xmm0
addsd xmm1, qword [edi + ebx*8]
addsd xmm1, xmm2
addsd xmm1, xmm3
movsd qword [edi + ebx*8], xmm1
inc ebx
cmp ebx, dword [esp + 0x24]
jb 0x43b930
movsd xmm0, qword [esp + 0x168]
movsd xmm1, qword [esp + 0x160]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x439f24
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd xmm1, qword [ecx + edx*8]
movsd xmm2, qword [ecx + edx*8 + 8]
movsd xmm3, qword [ecx + edx*8 + 0x10]
movsd xmm4, qword [ebx + edx*8 - 8]
movsd xmm5, qword [ebx + edx*8]
movsd xmm6, qword [ebx + edx*8 + 8]
movsd xmm7, qword [ebx + edx*8 + 0x10]
movsd qword [esp + 0x1f0], xmm0
movsd qword [esp + 0x1f8], xmm1
movsd qword [esp + 0x200], xmm2
movsd qword [esp + 0x208], xmm3
movsd qword [esp + 0x210], xmm4
movsd qword [esp + 0x218], xmm5
movsd qword [esp + 0x220], xmm6
movsd qword [esp + 0x228], xmm7
jle 0x43bc72
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
add ebx, ecx
and ebx, 0xf
je 0x43ba6d
test bl, 7
jne 0x43becb
push 1
pop ebx
lea ecx, [ebx + 2]
cmp eax, ecx
jl 0x43becb
mov ecx, dword [esp + 0x5a4]
mov edi, eax
imul ecx, edx
sub edi, ebx
mov esi, dword [ebp + 0x10]
and edi, 1
neg edi
add edi, eax
add esi, ecx
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x730]
add esi, ecx
mov dword [esp + 0xe0], esi
mov esi, dword [esp + 0x720]
add esi, ecx
add ecx, dword [esp + 0x71c]
test ebx, ebx
ja 0x43bdba
movsd xmm7, qword [esp + 0x1f0]
movsd xmm6, qword [esp + 0x208]
movsd xmm5, qword [esp + 0x210]
movsd xmm3, qword [esp + 0x218]
movsd xmm1, qword [esp + 0x220]
movsd xmm0, qword [esp + 0x228]
movsd xmm4, qword [esp + 0x1f8]
movsd xmm2, qword [esp + 0x200]
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm3, xmm3
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
mov dword [esp + 0x2c], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm4, xmm4
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x3d0], xmm0
movaps xmmword [esp + 0x3e0], xmm1
movaps xmmword [esp + 0x3f0], xmm3
movaps xmmword [esp + 0x400], xmm5
movaps xmmword [esp + 0x410], xmm6
movaps xmmword [esp + 0x420], xmm7
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
movsd xmm3, qword [edx + ebx*8]
movaps xmm7, xmm4
movhpd xmm3, qword [edx + ebx*8 + 8]
movaps xmm6, xmmword [esp + 0x420]
mulpd xmm6, xmm3
mulpd xmm3, xmmword [esp + 0x400]
mov edi, dword [esp + 0x3c]
movsd xmm5, qword [eax + ebx*8]
movhpd xmm5, qword [eax + ebx*8 + 8]
movsd xmm1, qword [edi + ebx*8]
movhpd xmm1, qword [edi + ebx*8 + 8]
mulpd xmm7, xmm1
addpd xmm5, xmm6
mulpd xmm1, xmmword [esp + 0x3f0]
addpd xmm5, xmm7
mov edi, dword [esp + 0x2c]
movaps xmm6, xmm2
movaps xmm7, xmmword [esp + 0x410]
movsd xmm0, qword [edi + ebx*8]
movhpd xmm0, qword [edi + ebx*8 + 8]
mulpd xmm6, xmm0
mulpd xmm0, xmmword [esp + 0x3e0]
addpd xmm5, xmm6
movsd xmm6, qword [ecx + ebx*8]
movhpd xmm6, qword [ecx + ebx*8 + 8]
mulpd xmm7, xmm6
mulpd xmm6, xmmword [esp + 0x3d0]
addpd xmm5, xmm7
movsd qword [eax + ebx*8], xmm5
movhpd qword [eax + ebx*8 + 8], xmm5
addpd xmm3, xmmword [esi + ebx*8]
addpd xmm3, xmm1
addpd xmm3, xmm0
addpd xmm3, xmm6
movaps xmmword [esi + ebx*8], xmm3
add ebx, 2
cmp ebx, dword [esp + 0x28]
jb 0x43bb81
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp edi, eax
jb 0x43bc87
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov ebx, dword [esp + 0x5a4]
imul ebx, edx
movsd xmm5, qword [esp + 0x1f8]
movsd xmm6, qword [esp + 0x1f0]
mov esi, dword [esp + 0x730]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
add esi, ebx
mov dword [esp + 0xf4], esi
add ecx, ebx
mov esi, dword [esp + 0x720]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0xbec]
add esi, ebx
add ebx, dword [esp + 0x71c]
mov dword [esp + 0x34], ebx
mov edx, esi
mov ebx, dword [esp + 0xbf0]
movsd xmm1, qword [ecx + edi*8]
movaps xmm0, xmm6
mulsd xmm0, xmm1
movaps xmm7, xmm5
mulsd xmm1, qword [esp + 0x210]
addsd xmm0, qword [eax + edi*8]
mov esi, dword [esp + 0x30]
movsd xmm3, qword [edx + edi*8]
movsd xmm2, qword [esi + edi*8]
mulsd xmm7, xmm2
mulsd xmm2, qword [esp + 0x218]
addsd xmm0, xmm7
movsd xmm7, qword [esp + 0x200]
mulsd xmm7, xmm3
mulsd xmm3, qword [esp + 0x220]
addsd xmm0, xmm7
mov esi, dword [esp + 0x34]
movsd xmm7, qword [esp + 0x208]
movsd xmm4, qword [esi + edi*8]
mulsd xmm7, xmm4
mulsd xmm4, qword [esp + 0x228]
addsd xmm0, xmm7
movsd qword [eax + edi*8], xmm0
addsd xmm1, qword [ebx + edi*8]
addsd xmm1, xmm2
addsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [ebx + edi*8], xmm1
inc edi
cmp edi, dword [esp + 0xba8]
jb 0x43bcf5
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0xb8], 0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov dword [esp + 0x28], edi
movsd xmm5, qword [esp + 0x200]
movsd xmm6, qword [esp + 0x1f0]
mov ebx, dword [esp + 0xb8]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xbec]
mov ecx, dword [esp + 0xbf0]
movsd xmm1, qword [edx + ebx*8]
movaps xmm0, xmm6
mulsd xmm0, xmm1
mulsd xmm1, qword [esp + 0x210]
addsd xmm0, qword [eax + ebx*8]
mov edi, dword [esp + 0x3c]
movsd xmm7, qword [esp + 0x1f8]
movsd xmm3, qword [esi + ebx*8]
movsd xmm2, qword [edi + ebx*8]
mulsd xmm7, xmm2
mulsd xmm2, qword [esp + 0x218]
addsd xmm0, xmm7
movaps xmm7, xmm5
mulsd xmm7, xmm3
mulsd xmm3, qword [esp + 0x220]
addsd xmm0, xmm7
mov edi, dword [esp + 0x40]
movsd xmm7, qword [esp + 0x208]
movsd xmm4, qword [edi + ebx*8]
mulsd xmm7, xmm4
mulsd xmm4, qword [esp + 0x228]
addsd xmm0, xmm7
movsd qword [eax + ebx*8], xmm0
addsd xmm1, qword [ecx + ebx*8]
addsd xmm1, xmm2
addsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [ecx + ebx*8], xmm1
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x43be0d
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43babe
xor edi, edi
jmp 0x43bc59
xor ecx, ecx
jmp 0x43a456
mov ebx, dword [esp + 0x5a4]
imul ebx, edx
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0xbec]
add esi, ebx
add ebx, dword [esp + 0x730]
movsd xmm1, qword [ebx + ecx*8]
mulsd xmm1, xmm3
movsd xmm0, qword [esi + ecx*8]
mulsd xmm0, xmm2
addsd xmm1, qword [edi + ecx*8]
addsd xmm1, xmm0
movsd qword [edi + ecx*8], xmm1
inc ecx
cmp ecx, eax
jb 0x43bef6
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0xc0], 0
mov dword [esp + 0x44], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xbec]
movsd xmm1, qword [esi + eax*8]
mulsd xmm1, xmm3
movsd xmm0, qword [edx + eax*8]
mulsd xmm0, xmm2
addsd xmm1, qword [ebx + eax*8]
addsd xmm1, xmm0
movsd qword [ebx + eax*8], xmm1
inc eax
cmp eax, edi
jb 0x43bf62
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43a28b
xor edi, edi
jmp 0x43a607
mov ecx, dword [esp + 0x5a4]
imul ecx, edx
add ecx, dword [esp + 0x730]
mov ebx, dword [esp + 0xbec]
movsd xmm1, qword [ecx + edi*8]
mulsd xmm1, xmm0
addsd xmm1, qword [ebx + edi*8]
movsd qword [ebx + edi*8], xmm1
inc edi
cmp edi, eax
jb 0x43bfbd
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0x6f8], edx
xor ebx, ebx
mov dword [esp + 0xba8], eax
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xbec]
movsd xmm1, qword [eax + ebx*8]
mulsd xmm1, xmm0
addsd xmm1, qword [edx + ebx*8]
movsd qword [edx + ebx*8], xmm1
inc ebx
cmp ebx, esi
jb 0x43c008
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43a504
xor ecx, ecx
jmp 0x43a996
mov edi, dword [esp + 0x5a4]
imul edi, edx
mov esi, dword [esp + 0x730]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov edx, dword [esp + 0xbec]
add esi, edi
add ebx, edi
add edi, dword [esp + 0x720]
movsd xmm5, qword [esi + ecx*8]
mulsd xmm5, xmm2
movsd xmm3, qword [ebx + ecx*8]
mulsd xmm3, xmm1
addsd xmm5, qword [edx + ecx*8]
movsd xmm4, qword [edi + ecx*8]
addsd xmm5, xmm3
mulsd xmm4, xmm0
addsd xmm5, xmm4
movsd qword [edx + ecx*8], xmm5
inc ecx
cmp ecx, eax
jb 0x43c067
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0x4c], ecx
xor esi, esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0xbec]
movsd xmm5, qword [edx + esi*8]
mulsd xmm5, xmm2
movsd xmm3, qword [ecx + esi*8]
mulsd xmm3, xmm1
addsd xmm5, qword [ebx + esi*8]
movsd xmm4, qword [eax + esi*8]
addsd xmm5, xmm3
mulsd xmm4, xmm0
addsd xmm5, xmm4
movsd qword [ebx + esi*8], xmm5
inc esi
cmp esi, edi
jb 0x43c0e9
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43a6ea
mov ecx, dword [esp + 0x728]
test eax, eax
movsd xmm3, qword [ecx + edx*8 - 8]
movsd xmm2, qword [ecx + edx*8]
movsd xmm1, qword [ecx + edx*8 + 8]
movsd xmm0, qword [ecx + edx*8 + 0x10]
jle 0x43c588
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
add ebx, ecx
and ebx, 0xf
je 0x43c17d
test bl, 7
jne 0x43c6de
push 1
pop ebx
lea ecx, [ebx + 8]
cmp eax, ecx
jl 0x43c6de
mov edi, dword [esp + 0x5a4]
mov esi, eax
imul edi, edx
sub esi, ebx
mov ecx, dword [ebp + 0x10]
and esi, 7
neg esi
add esi, eax
test ebx, ebx
lea ecx, [ecx + edi]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x730]
lea ecx, [ecx + edi]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x720]
lea ecx, [ecx + edi]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x71c]
lea ecx, [ecx + edi]
ja 0x43c646
add edi, dword [esp + 0x71c]
lea edi, [edi + ebx*8]
test edi, 0xf
je 0x43c3ad
movaps xmm7, xmm3
movaps xmm6, xmm2
movaps xmm5, xmm1
movaps xmm4, xmm0
mov dword [esp + 0x50], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
movsd qword [esp + 0x238], xmm2
movsd qword [esp + 0x230], xmm3
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xc4]
mov edi, dword [esp + 0xbec]
movsd xmm3, qword [edx + ebx*8]
movhpd xmm3, qword [edx + ebx*8 + 8]
mulpd xmm3, xmm7
movsd xmm2, qword [esi + ebx*8]
movhpd xmm2, qword [esi + ebx*8 + 8]
mulpd xmm2, xmm6
addpd xmm3, xmmword [edi + ebx*8]
addpd xmm3, xmm2
movsd xmm2, qword [eax + ebx*8]
movhpd xmm2, qword [eax + ebx*8 + 8]
mulpd xmm2, xmm5
addpd xmm3, xmm2
movsd xmm2, qword [ecx + ebx*8]
movhpd xmm2, qword [ecx + ebx*8 + 8]
mulpd xmm2, xmm4
addpd xmm3, xmm2
movsd xmm2, qword [edx + ebx*8 + 0x10]
movhpd xmm2, qword [edx + ebx*8 + 0x18]
mulpd xmm2, xmm7
movaps xmmword [edi + ebx*8], xmm3
movsd xmm3, qword [esi + ebx*8 + 0x10]
movhpd xmm3, qword [esi + ebx*8 + 0x18]
mulpd xmm3, xmm6
addpd xmm2, xmmword [edi + ebx*8 + 0x10]
addpd xmm2, xmm3
movsd xmm3, qword [eax + ebx*8 + 0x10]
movhpd xmm3, qword [eax + ebx*8 + 0x18]
mulpd xmm3, xmm5
addpd xmm2, xmm3
movsd xmm3, qword [ecx + ebx*8 + 0x10]
movhpd xmm3, qword [ecx + ebx*8 + 0x18]
mulpd xmm3, xmm4
addpd xmm2, xmm3
movsd xmm3, qword [edx + ebx*8 + 0x20]
movhpd xmm3, qword [edx + ebx*8 + 0x28]
mulpd xmm3, xmm7
movaps xmmword [edi + ebx*8 + 0x10], xmm2
movsd xmm2, qword [esi + ebx*8 + 0x20]
movhpd xmm2, qword [esi + ebx*8 + 0x28]
mulpd xmm2, xmm6
addpd xmm3, xmmword [edi + ebx*8 + 0x20]
addpd xmm3, xmm2
movsd xmm2, qword [eax + ebx*8 + 0x20]
movhpd xmm2, qword [eax + ebx*8 + 0x28]
mulpd xmm2, xmm5
addpd xmm3, xmm2
movsd xmm2, qword [ecx + ebx*8 + 0x20]
movhpd xmm2, qword [ecx + ebx*8 + 0x28]
mulpd xmm2, xmm4
addpd xmm3, xmm2
movsd xmm2, qword [edx + ebx*8 + 0x30]
nop
movhpd xmm2, qword [edx + ebx*8 + 0x38]
mulpd xmm2, xmm7
movaps xmmword [edi + ebx*8 + 0x20], xmm3
movsd xmm3, qword [esi + ebx*8 + 0x30]
movhpd xmm3, qword [esi + ebx*8 + 0x38]
mulpd xmm3, xmm6
addpd xmm2, xmmword [edi + ebx*8 + 0x30]
addpd xmm2, xmm3
movsd xmm3, qword [eax + ebx*8 + 0x30]
movhpd xmm3, qword [eax + ebx*8 + 0x38]
mulpd xmm3, xmm5
addpd xmm2, xmm3
movsd xmm3, qword [ecx + ebx*8 + 0x30]
movhpd xmm3, qword [ecx + ebx*8 + 0x38]
mulpd xmm3, xmm4
addpd xmm2, xmm3
movaps xmmword [edi + ebx*8 + 0x30], xmm2
add ebx, 8
cmp ebx, dword [esp + 0x50]
jb 0x43c244
jmp 0x43c54b
movaps xmm6, xmm3
movaps xmm5, xmm2
movaps xmm4, xmm1
movaps xmm7, xmm0
mov dword [esp + 0x50], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
unpcklpd xmm7, xmm7
movsd qword [esp + 0x238], xmm2
movsd qword [esp + 0x230], xmm3
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xc4]
mov edi, dword [esp + 0xbec]
movsd xmm3, qword [edx + ebx*8]
movhpd xmm3, qword [edx + ebx*8 + 8]
mulpd xmm3, xmm6
movsd xmm2, qword [esi + ebx*8]
movhpd xmm2, qword [esi + ebx*8 + 8]
mulpd xmm2, xmm5
addpd xmm3, xmmword [edi + ebx*8]
addpd xmm3, xmm2
movsd xmm2, qword [eax + ebx*8]
movhpd xmm2, qword [eax + ebx*8 + 8]
mulpd xmm2, xmm4
addpd xmm3, xmm2
movaps xmm2, xmmword [ecx + ebx*8]
mulpd xmm2, xmm7
addpd xmm3, xmm2
movsd xmm2, qword [edx + ebx*8 + 0x10]
movhpd xmm2, qword [edx + ebx*8 + 0x18]
mulpd xmm2, xmm6
movaps xmmword [edi + ebx*8], xmm3
movsd xmm3, qword [esi + ebx*8 + 0x10]
movhpd xmm3, qword [esi + ebx*8 + 0x18]
mulpd xmm3, xmm5
addpd xmm2, xmmword [edi + ebx*8 + 0x10]
addpd xmm2, xmm3
movsd xmm3, qword [eax + ebx*8 + 0x10]
movhpd xmm3, qword [eax + ebx*8 + 0x18]
mulpd xmm3, xmm4
addpd xmm2, xmm3
movaps xmm3, xmmword [ecx + ebx*8 + 0x10]
mulpd xmm3, xmm7
addpd xmm2, xmm3
movsd xmm3, qword [edx + ebx*8 + 0x20]
movhpd xmm3, qword [edx + ebx*8 + 0x28]
mulpd xmm3, xmm6
movaps xmmword [edi + ebx*8 + 0x10], xmm2
movsd xmm2, qword [esi + ebx*8 + 0x20]
movhpd xmm2, qword [esi + ebx*8 + 0x28]
mulpd xmm2, xmm5
addpd xmm3, xmmword [edi + ebx*8 + 0x20]
addpd xmm3, xmm2
movsd xmm2, qword [eax + ebx*8 + 0x20]
movhpd xmm2, qword [eax + ebx*8 + 0x28]
mulpd xmm2, xmm4
addpd xmm3, xmm2
movaps xmm2, xmmword [ecx + ebx*8 + 0x20]
mulpd xmm2, xmm7
addpd xmm3, xmm2
movsd xmm2, qword [edx + ebx*8 + 0x30]
movhpd xmm2, qword [edx + ebx*8 + 0x38]
mulpd xmm2, xmm6
movaps xmmword [edi + ebx*8 + 0x20], xmm3
movsd xmm3, qword [esi + ebx*8 + 0x30]
nop
movhpd xmm3, qword [esi + ebx*8 + 0x38]
mulpd xmm3, xmm5
addpd xmm2, xmmword [edi + ebx*8 + 0x30]
addpd xmm2, xmm3
movsd xmm3, qword [eax + ebx*8 + 0x30]
movhpd xmm3, qword [eax + ebx*8 + 0x38]
mulpd xmm3, xmm4
addpd xmm2, xmm3
movaps xmm3, xmmword [ecx + ebx*8 + 0x30]
mulpd xmm3, xmm7
addpd xmm2, xmm3
movaps xmmword [edi + ebx*8 + 0x30], xmm2
add ebx, 8
cmp ebx, dword [esp + 0x50]
jb 0x43c403
movsd xmm2, qword [esp + 0x238]
movsd xmm3, qword [esp + 0x230]
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp esi, eax
jb 0x43c59d
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov ecx, dword [esp + 0x5a4]
imul ecx, edx
mov edi, dword [esp + 0x730]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov edx, dword [esp + 0xbec]
add edi, ecx
mov dword [esp + 0xe8], edi
add ebx, ecx
mov edi, dword [esp + 0x720]
mov dword [esp + 0x54], ebx
add edi, ecx
add ecx, dword [esp + 0x71c]
mov ebx, edi
mov edi, dword [esp + 0xe8]
movsd xmm5, qword [ebx + esi*8]
mulsd xmm5, xmm1
movsd xmm7, qword [edi + esi*8]
mulsd xmm7, xmm3
mov edi, dword [esp + 0x54]
movsd xmm6, qword [ecx + esi*8]
mulsd xmm6, xmm0
addsd xmm7, qword [edx + esi*8]
movsd xmm4, qword [edi + esi*8]
mulsd xmm4, xmm2
addsd xmm7, xmm4
addsd xmm7, xmm5
addsd xmm7, xmm6
movsd qword [edx + esi*8], xmm7
inc esi
cmp esi, eax
jb 0x43c5e0
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0xbc], 0
mov dword [esp + 0x50], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov dword [esp + 0x58], edi
mov esi, dword [esp + 0xbc]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xbec]
mov edi, dword [esp + 0x5c]
movsd xmm4, qword [edx + esi*8]
mulsd xmm4, xmm2
movsd xmm7, qword [edi + esi*8]
mulsd xmm7, xmm3
mov edi, dword [esp + 0x60]
movsd xmm6, qword [ecx + esi*8]
mulsd xmm6, xmm0
addsd xmm7, qword [eax + esi*8]
movsd xmm5, qword [edi + esi*8]
addsd xmm7, xmm4
mulsd xmm5, xmm1
addsd xmm7, xmm5
addsd xmm7, xmm6
movsd qword [eax + esi*8], xmm7
inc esi
cmp esi, ebx
jb 0x43c67c
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43c1d8
xor esi, esi
jmp 0x43c56f
xor esi, esi
jmp 0x43ac18
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd qword [esp + 0x170], xmm5
add ecx, ebx
add ebx, dword [esp + 0x730]
movsd xmm2, qword [esp + 0x190]
movsd xmm3, qword [esp + 0x188]
movsd xmm0, qword [esp + 0x180]
mov eax, dword [esp + 0xbf4]
mov edx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm5, qword [ebx + esi*8]
movaps xmm7, xmm4
movsd xmm6, qword [esp + 0x170]
mulsd xmm6, xmm5
movsd xmm1, qword [ecx + esi*8]
mulsd xmm7, xmm1
addsd xmm6, qword [edx + esi*8]
addsd xmm6, xmm7
movaps xmm7, xmm3
mulsd xmm7, xmm1
mulsd xmm1, qword [esp + 0x198]
movsd qword [edx + esi*8], xmm6
movaps xmm6, xmm0
mulsd xmm6, xmm5
mulsd xmm5, xmm2
addsd xmm6, qword [edi + esi*8]
addsd xmm6, xmm7
movsd qword [edi + esi*8], xmm6
addsd xmm5, qword [eax + esi*8]
addsd xmm5, xmm1
movsd qword [eax + esi*8], xmm5
inc esi
cmp esi, dword [esp + 0xba8]
jb 0x43c73f
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0xb4], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd xmm2, qword [esp + 0x188]
movsd xmm3, qword [esp + 0x180]
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xec]
mov ebx, dword [esp + 0xbf4]
mov esi, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
mov eax, dword [esp + 0x64]
movaps xmm7, xmm5
movsd xmm1, qword [ecx + edx*8]
movaps xmm6, xmm4
mulsd xmm6, xmm1
movsd xmm0, qword [eax + edx*8]
mulsd xmm7, xmm0
addsd xmm7, qword [esi + edx*8]
addsd xmm7, xmm6
movaps xmm6, xmm2
mulsd xmm6, xmm1
mulsd xmm1, qword [esp + 0x198]
movsd qword [esi + edx*8], xmm7
movaps xmm7, xmm3
mulsd xmm7, xmm0
mulsd xmm0, qword [esp + 0x190]
addsd xmm7, qword [edi + edx*8]
addsd xmm7, xmm6
movsd qword [edi + edx*8], xmm7
addsd xmm0, qword [ebx + edx*8]
addsd xmm0, xmm1
movsd qword [ebx + edx*8], xmm0
inc edx
cmp edx, dword [esp + 0x68]
jb 0x43c829
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43aab2
xor esi, esi
jmp 0x43b0f4
mov dword [esp + 0x6f8], edx
add ebx, dword [esp + 0x730]
mov edx, dword [esp + 0xbf4]
mov ecx, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm5, qword [ebx + esi*8]
movaps xmm3, xmm2
mulsd xmm3, xmm5
movaps xmm4, xmm1
mulsd xmm4, xmm5
mulsd xmm5, xmm0
addsd xmm3, qword [ecx + esi*8]
movsd qword [ecx + esi*8], xmm3
addsd xmm4, qword [edi + esi*8]
movsd qword [edi + esi*8], xmm4
addsd xmm5, qword [edx + esi*8]
movsd qword [edx + esi*8], xmm5
inc esi
cmp esi, eax
jb 0x43c8df
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0x14], ebx
xor ecx, ecx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
mov eax, edi
mov edx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xbf4]
mov esi, dword [esp + 0xbec]
mov edi, dword [esp + 0xbf0]
movsd xmm5, qword [eax + ecx*8]
movaps xmm3, xmm2
mulsd xmm3, xmm5
movaps xmm4, xmm1
mulsd xmm4, xmm5
mulsd xmm5, xmm0
addsd xmm3, qword [esi + ecx*8]
movsd qword [esi + ecx*8], xmm3
addsd xmm4, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm4
addsd xmm5, qword [ebx + ecx*8]
movsd qword [ebx + ecx*8], xmm5
inc ecx
cmp ecx, edx
jb 0x43c96b
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43acf1
xor ebx, ebx
jmp 0x43b5f1
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x730]
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
add edi, esi
mov dword [esp + 0x70], edi
add ecx, esi
add esi, dword [esp + 0x720]
mov dword [esp + 0x18], esi
movsd xmm5, qword [esp + 0x1c8]
movsd xmm6, qword [esp + 0x1b8]
movsd xmm7, qword [esp + 0x1a8]
mov edx, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
movsd xmm2, qword [ecx + ebx*8]
movaps xmm1, xmm7
mulsd xmm1, xmm2
mov edi, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x1b0]
addsd xmm1, qword [eax + ebx*8]
movsd xmm3, qword [edi + ebx*8]
mulsd xmm0, xmm3
mov edi, dword [esp + 0x18]
addsd xmm1, xmm0
movsd xmm4, qword [edi + ebx*8]
movaps xmm0, xmm6
mulsd xmm0, xmm4
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x1c0]
mulsd xmm0, xmm2
mulsd xmm2, qword [esp + 0x1d8]
movsd qword [eax + ebx*8], xmm1
movaps xmm1, xmm5
mulsd xmm1, xmm3
addsd xmm0, qword [esi + ebx*8]
mulsd xmm3, qword [esp + 0x1e0]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x1d0]
mulsd xmm1, xmm4
mulsd xmm4, qword [esp + 0x1e8]
addsd xmm0, xmm1
movsd qword [esi + ebx*8], xmm0
addsd xmm2, qword [edx + ebx*8]
addsd xmm2, xmm3
addsd xmm2, xmm4
movsd qword [edx + ebx*8], xmm2
inc ebx
cmp ebx, dword [esp + 0xba8]
jb 0x43ca22
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0xb0], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd xmm2, qword [esp + 0x1c0]
movsd xmm6, qword [esp + 0x1b0]
movsd xmm7, qword [esp + 0x1a8]
mov esi, dword [esp + 0xb0]
mov ebx, edi
mov ecx, dword [esp + 0xbf4]
mov edx, dword [esp + 0xbec]
mov eax, dword [esp + 0xbf0]
mov edi, dword [esp + 0x7c]
movaps xmm1, xmm7
movaps xmm0, xmm6
movsd xmm4, qword [ebx + esi*8]
movsd xmm5, qword [edi + esi*8]
mulsd xmm1, xmm5
mov edi, dword [esp + 0x78]
addsd xmm1, qword [edx + esi*8]
movsd xmm3, qword [edi + esi*8]
mulsd xmm0, xmm3
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x1b8]
mulsd xmm0, xmm4
addsd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, xmm5
mulsd xmm5, qword [esp + 0x1d8]
movsd qword [edx + esi*8], xmm1
movsd xmm1, qword [esp + 0x1c8]
mulsd xmm1, xmm3
addsd xmm0, qword [eax + esi*8]
mulsd xmm3, qword [esp + 0x1e0]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x1d0]
mulsd xmm1, xmm4
mulsd xmm4, qword [esp + 0x1e8]
addsd xmm0, xmm1
movsd qword [eax + esi*8], xmm0
addsd xmm5, qword [ecx + esi*8]
addsd xmm5, xmm3
addsd xmm5, xmm4
movsd qword [ecx + esi*8], xmm5
inc esi
cmp esi, dword [esp + 0x74]
jb 0x43cb55
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43b246
mov ecx, dword [esp + 0x728]
test eax, eax
mov ebx, dword [esp + 0x724]
mov esi, dword [esp + 0x72c]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd xmm1, qword [ecx + edx*8]
movsd xmm2, qword [ecx + edx*8 + 8]
movsd xmm3, qword [ecx + edx*8 + 0x10]
movsd qword [esp + 0x240], xmm0
movsd qword [esp + 0x248], xmm1
movsd qword [esp + 0x250], xmm2
movsd qword [esp + 0x258], xmm3
movsd xmm4, qword [ebx + edx*8 - 8]
movsd xmm5, qword [ebx + edx*8]
movsd xmm6, qword [ebx + edx*8 + 8]
movsd xmm7, qword [ebx + edx*8 + 0x10]
movsd xmm0, qword [esi + edx*8 - 8]
movsd xmm1, qword [esi + edx*8]
movsd xmm2, qword [esi + edx*8 + 8]
movsd xmm3, qword [esi + edx*8 + 0x10]
movsd qword [esp + 0x260], xmm4
movsd qword [esp + 0x268], xmm5
movsd qword [esp + 0x270], xmm6
movsd qword [esp + 0x278], xmm7
movsd qword [esp + 0x280], xmm0
movsd qword [esp + 0x288], xmm1
movsd qword [esp + 0x290], xmm2
movsd qword [esp + 0x298], xmm3
jle 0x43d265
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x71c]
add ecx, esi
and ecx, 0xf
je 0x43cd15
test cl, 7
jne 0x43d585
push 1
pop ecx
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x43d585
mov edi, dword [ebp + 0x10]
mov ebx, eax
sub ebx, ecx
and ebx, 1
neg ebx
add edi, esi
mov dword [esp + 0x90], edi
add ebx, eax
mov edi, dword [esp + 0x730]
test ecx, ecx
lea edi, [edi + esi]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x720]
lea edi, [esi + edi]
mov dword [esp + 0xd8], edi
mov edi, dword [esp + 0x71c]
lea edi, [esi + edi]
mov dword [esp + 0x98], edi
ja 0x43d401
test byte [esp + 0x5a4], 0xf
jne 0x43cfc5
movsd xmm4, qword [esp + 0x260]
movsd xmm5, qword [esp + 0x268]
movsd xmm6, qword [esp + 0x270]
movsd xmm7, qword [esp + 0x278]
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm6, xmm6
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x530], xmm4
movaps xmmword [esp + 0x520], xmm5
movaps xmmword [esp + 0x510], xmm6
movaps xmmword [esp + 0x500], xmm7
movsd xmm3, qword [esp + 0x250]
movsd xmm2, qword [esp + 0x258]
movsd xmm7, qword [esp + 0x280]
movsd xmm6, qword [esp + 0x288]
movsd xmm5, qword [esp + 0x290]
movsd xmm4, qword [esp + 0x298]
movsd xmm1, qword [esp + 0x240]
movsd xmm0, qword [esp + 0x248]
unpcklpd xmm3, xmm3
unpcklpd xmm2, xmm2
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
movaps xmmword [esp + 0x430], xmm4
movaps xmmword [esp + 0x440], xmm5
movaps xmmword [esp + 0x480], xmm6
movaps xmmword [esp + 0x460], xmm7
movaps xmmword [esp + 0x470], xmm2
movaps xmmword [esp + 0x450], xmm3
mov ebx, edi
mov edx, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
mov edi, dword [esp + 0x94]
movaps xmm5, xmm1
movsd xmm6, qword [eax + ecx*8]
movaps xmm4, xmm0
movhpd xmm6, qword [eax + ecx*8 + 8]
movaps xmm7, xmmword [edi + ecx*8]
mulpd xmm5, xmm7
mov edi, dword [esp + 0x90]
addpd xmm6, xmm5
movaps xmm5, xmmword [edi + ecx*8]
mulpd xmm4, xmm5
mov edi, dword [esp + 0xd8]
movaps xmm3, xmmword [esp + 0x450]
addpd xmm6, xmm4
movaps xmm4, xmmword [edi + ecx*8]
mulpd xmm3, xmm4
addpd xmm6, xmm3
movaps xmm3, xmmword [ebx + ecx*8]
movaps xmm2, xmmword [esp + 0x470]
mulpd xmm2, xmm3
addpd xmm6, xmm2
movsd qword [eax + ecx*8], xmm6
movhpd qword [eax + ecx*8 + 8], xmm6
movaps xmm6, xmmword [esp + 0x530]
mulpd xmm6, xmm7
mulpd xmm7, xmmword [esp + 0x460]
movsd xmm2, qword [esi + ecx*8]
movhpd xmm2, qword [esi + ecx*8 + 8]
addpd xmm2, xmm6
movaps xmm6, xmmword [esp + 0x520]
mulpd xmm6, xmm5
mulpd xmm5, xmmword [esp + 0x480]
addpd xmm2, xmm6
movaps xmm6, xmmword [esp + 0x510]
mulpd xmm6, xmm4
mulpd xmm4, xmmword [esp + 0x440]
addpd xmm2, xmm6
movaps xmm6, xmmword [esp + 0x500]
mulpd xmm6, xmm3
mulpd xmm3, xmmword [esp + 0x430]
addpd xmm2, xmm6
movsd qword [esi + ecx*8], xmm2
movhpd qword [esi + ecx*8 + 8], xmm2
movsd xmm2, qword [edx + ecx*8]
movhpd xmm2, qword [edx + ecx*8 + 8]
addpd xmm2, xmm7
addpd xmm2, xmm5
addpd xmm2, xmm4
addpd xmm2, xmm3
movsd qword [edx + ecx*8], xmm2
movhpd qword [edx + ecx*8 + 8], xmm2
add ecx, 2
cmp ecx, dword [esp + 0x84]
jb 0x43ce9f
jmp 0x43d230
movsd xmm6, qword [esp + 0x270]
movsd xmm4, qword [esp + 0x260]
movsd xmm5, qword [esp + 0x268]
movsd xmm7, qword [esp + 0x278]
unpcklpd xmm6, xmm6
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
movaps xmmword [esp + 0x550], xmm6
unpcklpd xmm7, xmm7
movaps xmmword [esp + 0x570], xmm4
movaps xmmword [esp + 0x560], xmm5
movaps xmmword [esp + 0x540], xmm7
movsd xmm6, qword [esp + 0x288]
movsd xmm3, qword [esp + 0x240]
movsd xmm2, qword [esp + 0x248]
movsd xmm1, qword [esp + 0x258]
movsd xmm7, qword [esp + 0x280]
movsd xmm5, qword [esp + 0x290]
movsd xmm4, qword [esp + 0x298]
unpcklpd xmm6, xmm6
movsd xmm0, qword [esp + 0x250]
unpcklpd xmm3, xmm3
unpcklpd xmm2, xmm2
unpcklpd xmm1, xmm1
unpcklpd xmm7, xmm7
unpcklpd xmm5, xmm5
unpcklpd xmm4, xmm4
movaps xmmword [esp + 0x4b0], xmm6
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
unpcklpd xmm0, xmm0
movaps xmmword [esp + 0x490], xmm4
movaps xmmword [esp + 0x4a0], xmm5
movaps xmmword [esp + 0x4c0], xmm7
movaps xmmword [esp + 0x4f0], xmm1
movaps xmmword [esp + 0x4e0], xmm2
movaps xmmword [esp + 0x4d0], xmm3
movaps xmm6, xmmword [esp + 0x560]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0xbf4]
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
mov edi, dword [esp + 0x94]
movaps xmm2, xmm0
movaps xmm4, xmmword [esp + 0x4d0]
movsd xmm5, qword [eax + ecx*8]
movsd xmm7, qword [edi + ecx*8]
movhpd xmm7, qword [edi + ecx*8 + 8]
mulpd xmm4, xmm7
movhpd xmm5, qword [eax + ecx*8 + 8]
addpd xmm5, xmm4
movsd xmm4, qword [ebx + ecx*8]
movhpd xmm4, qword [ebx + ecx*8 + 8]
movaps xmm3, xmmword [esp + 0x4e0]
mulpd xmm3, xmm4
mov edi, dword [esp + 0xd8]
addpd xmm5, xmm3
movsd xmm3, qword [edi + ecx*8]
movhpd xmm3, qword [edi + ecx*8 + 8]
mulpd xmm2, xmm3
mov edi, dword [esp + 0x98]
movaps xmm1, xmmword [esp + 0x4f0]
addpd xmm5, xmm2
movaps xmm2, xmmword [edi + ecx*8]
mulpd xmm1, xmm2
addpd xmm5, xmm1
movsd qword [eax + ecx*8], xmm5
movhpd qword [eax + ecx*8 + 8], xmm5
movaps xmm5, xmmword [esp + 0x570]
mulpd xmm5, xmm7
mulpd xmm7, xmmword [esp + 0x4c0]
movsd xmm1, qword [esi + ecx*8]
movhpd xmm1, qword [esi + ecx*8 + 8]
addpd xmm1, xmm5
movaps xmm5, xmm6
mulpd xmm5, xmm4
mulpd xmm4, xmmword [esp + 0x4b0]
addpd xmm1, xmm5
movaps xmm5, xmmword [esp + 0x550]
mulpd xmm5, xmm3
mulpd xmm3, xmmword [esp + 0x4a0]
addpd xmm1, xmm5
movaps xmm5, xmmword [esp + 0x540]
mulpd xmm5, xmm2
mulpd xmm2, xmmword [esp + 0x490]
addpd xmm1, xmm5
movsd qword [esi + ecx*8], xmm1
movhpd qword [esi + ecx*8 + 8], xmm1
nop
movsd xmm1, qword [edx + ecx*8]
movhpd xmm1, qword [edx + ecx*8 + 8]
addpd xmm1, xmm7
addpd xmm1, xmm4
addpd xmm1, xmm3
addpd xmm1, xmm2
movsd qword [edx + ecx*8], xmm1
movhpd qword [edx + ecx*8 + 8], xmm1
add ecx, 2
cmp ecx, dword [esp + 0x84]
jb 0x43d0f9
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ebx, eax
jb 0x43d27a
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c67
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd xmm6, qword [esp + 0x250]
lea edi, [esi + ecx]
mov dword [esp + 0xf0], edi
mov ecx, dword [esp + 0x730]
mov edi, dword [esp + 0x720]
movsd xmm7, qword [esp + 0x248]
mov edx, dword [esp + 0xbf4]
add ecx, esi
mov dword [esp + 0x88], ecx
add edi, esi
add esi, dword [esp + 0x71c]
mov dword [esp + 0x80], esi
mov ecx, edi
mov eax, dword [esp + 0xbec]
mov esi, dword [esp + 0xbf0]
mov edi, dword [esp + 0xf0]
movaps xmm0, xmm7
movsd xmm1, qword [esp + 0x240]
movsd xmm4, qword [ecx + ebx*8]
movsd xmm3, qword [edi + ebx*8]
mov edi, dword [esp + 0x88]
mulsd xmm0, xmm3
movsd xmm2, qword [edi + ebx*8]
mulsd xmm1, xmm2
mov edi, dword [esp + 0x80]
addsd xmm1, qword [eax + ebx*8]
movsd xmm5, qword [edi + ebx*8]
addsd xmm1, xmm0
movaps xmm0, xmm6
mulsd xmm0, xmm4
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x258]
mulsd xmm0, xmm5
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x260]
mulsd xmm0, xmm2
mulsd xmm2, qword [esp + 0x280]
movsd qword [eax + ebx*8], xmm1
movsd xmm1, qword [esp + 0x268]
mulsd xmm1, xmm3
addsd xmm0, qword [esi + ebx*8]
mulsd xmm3, qword [esp + 0x288]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x270]
mulsd xmm1, xmm4
mulsd xmm4, qword [esp + 0x290]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x278]
mulsd xmm1, xmm5
mulsd xmm5, qword [esp + 0x298]
addsd xmm0, xmm1
movsd qword [esi + ebx*8], xmm0
addsd xmm2, qword [edx + ebx*8]
addsd xmm2, xmm3
addsd xmm2, xmm4
addsd xmm2, xmm5
movsd qword [edx + ebx*8], xmm2
inc ebx
cmp ebx, dword [esp + 0xba8]
jb 0x43d2e5
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x437725
jmp 0x438c04
mov dword [esp + 0xac], 0
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x6f8], edx
mov dword [esp + 0xba8], eax
movsd xmm6, qword [esp + 0x258]
movsd xmm7, qword [esp + 0x248]
mov esi, dword [esp + 0xac]
mov ebx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xbf4]
mov edx, dword [esp + 0xbec]
mov eax, dword [esp + 0xbf0]
mov edi, dword [esp + 0x94]
movaps xmm0, xmm7
movsd xmm1, qword [esp + 0x240]
movsd xmm4, qword [ebx + esi*8]
movsd xmm2, qword [edi + esi*8]
mulsd xmm1, xmm2
mov edi, dword [esp + 0x90]
addsd xmm1, qword [edx + esi*8]
movsd xmm3, qword [edi + esi*8]
mulsd xmm0, xmm3
mov edi, dword [esp + 0x98]
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x250]
mulsd xmm0, xmm4
movsd xmm5, qword [edi + esi*8]
addsd xmm1, xmm0
movaps xmm0, xmm6
mulsd xmm0, xmm5
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x260]
mulsd xmm0, xmm2
mulsd xmm2, qword [esp + 0x280]
movsd qword [edx + esi*8], xmm1
movsd xmm1, qword [esp + 0x268]
mulsd xmm1, xmm3
addsd xmm0, qword [eax + esi*8]
mulsd xmm3, qword [esp + 0x288]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x270]
mulsd xmm1, xmm4
mulsd xmm4, qword [esp + 0x290]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x278]
mulsd xmm1, xmm5
mulsd xmm5, qword [esp + 0x298]
addsd xmm0, xmm1
movsd qword [eax + esi*8], xmm0
addsd xmm2, qword [ecx + esi*8]
addsd xmm2, xmm3
addsd xmm2, xmm4
addsd xmm2, xmm5
movsd qword [ecx + esi*8], xmm2
inc esi
cmp esi, dword [esp + 0x8c]
jb 0x43d464
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x43cd72
xor ebx, ebx
jmp 0x43d24c