Function at 0x47a770
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 0x47bdfd
mov edi, dword [ebp + 0x20]
mov dword [esp + 0x5a0], 1
mov edi, dword [edi]
test edi, edi
mov dword [esp + 0xba4], edi
jle 0x47bdfd
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 0x47ca51
cmp ecx, 4
je 0x47be73
cmp ecx, 3
je 0x47b4a4
cmp ecx, 2
jne 0x47b052
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 0x47b03d
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [ebp + 0x10]
lea ebx, [ecx + esi]
and ebx, 0xf
je 0x47a9df
test bl, 7
jne 0x47be1e
mov ebx, 1
lea ecx, [ebx + 2]
cmp eax, ecx
jl 0x47be1e
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 0x47ab14
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 0x47aa4f
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 0x47ad04
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 0x47ac19
jmp 0x47aee8
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 0x47adfb
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 0x47be0c
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 0x47af79
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
cmp ecx, 1
jne 0x47b48f
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 0x47b47a
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x730]
lea ebx, [ecx + esi]
and ebx, 0xf
je 0x47b0be
test bl, 7
jne 0x47be25
mov ebx, 1
lea ecx, [ebx + 2]
cmp eax, ecx
jl 0x47be25
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 0x47b18e
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 0x47b120
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 0x47b2b6
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 0x47b21c
jmp 0x47b3a5
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 0x47b325
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 0x47be35
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 0x47b405
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x47bdd4
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x720]
add ecx, esi
and ecx, 0xf
je 0x47b58c
test cl, 7
jne 0x47be57
mov ecx, 1
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x47be57
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 0x47b73a
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 0x47b624
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 0x47b9c4
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 0x47b88c
jmp 0x47bc49
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 0x47bb08
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 0x47be5e
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 0x47bcc1
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
mov edx, dword [esp + 0x5a0]
mov ebx, dword [esp + 0x11c]
add edx, 4
cmp edx, ebx
jle 0x47a7ec
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 0x47a905
jmp 0x47bde4
xor edi, edi
jmp 0x47af21
mov dword [esp + 0xbb0], 0
jmp 0x47b3d5
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
mov edx, dword [esp + 0x5a0]
mov ebx, dword [esp + 0x11c]
jmp 0x47bdf2
xor ebx, ebx
jmp 0x47bc70
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47ca20
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x71c]
add ecx, esi
and ecx, 0xf
je 0x47bfa9
test cl, 7
jne 0x47ca4a
mov ecx, 1
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x47ca4a
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 0x47c1c3
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 0x47c05b
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 0x47c4ec
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 0x47c369
jmp 0x47c819
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 0x47c684
mov esi, dword [esp + 0xbc4]
mov ebx, dword [esp + 0xbc8]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ebx, eax
jae 0x47ca35
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 0x47c8b3
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
xor ebx, ebx
jmp 0x47c835
cmp dword [esp + 0xba0], 3
je 0x47dbbd
cmp dword [esp + 0xba0], 2
jne 0x47d3c4
cmp ecx, 4
je 0x47eba4
cmp ecx, 3
je 0x47d02c
cmp ecx, 2
jne 0x47cd30
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 0x47cd1b
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
lea esi, [ecx + ebx]
and esi, 0xf
mov dword [esp + 0xfc], esi
je 0x47cae6
test byte [esp + 0xfc], 7
jne 0x47e90e
mov dword [esp + 0xfc], 1
mov ecx, dword [esp + 0xfc]
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x47e90e
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 0x47e88b
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 0x47cc1a
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 0x47cbb7
jmp 0x47cccc
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 0x47cc7f
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 0x47e803
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
cmp ecx, 1
jne 0x47d017
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 0x47d002
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
add ebx, ecx
and ebx, 0xf
je 0x47cd78
test bl, 7
jne 0x47e915
push 1
pop ebx
lea ecx, [ebx + 8]
cmp eax, ecx
jl 0x47e915
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 0x47e979
mov edi, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
add ecx, edi
lea edi, [ecx + ebx*8]
test edi, 0xf
je 0x47cefa
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 0x47cdf7
jmp 0x47cfde
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 0x47cf24
mov eax, dword [esp + 0xba8]
cmp esi, eax
jb 0x47e91c
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x47d3af
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
lea esi, [ecx + ebx]
and esi, 0xf
mov dword [esp + 0x24], esi
je 0x47d0b1
test byte [esp + 0x24], 7
jne 0x47e9da
mov dword [esp + 0x24], 1
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x47e9da
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 0x47eab8
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 0x47d256
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 0x47d1c0
jmp 0x47d36e
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 0x47d2f2
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 0x47e9e1
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
cmp dword [esp + 0xba0], 1
jne 0x47dba8
cmp ecx, 4
je 0x47f316
cmp ecx, 3
je 0x47d82e
cmp ecx, 2
jne 0x47d668
mov ecx, dword [esp + 0x728]
test eax, eax
movsd xmm3, qword [ecx + edx*8 - 8]
movsd xmm2, qword [ecx + edx*8]
jle 0x47d653
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
lea edi, [ecx + ebx]
and edi, 0xf
je 0x47d42c
test edi, 7
jne 0x47f0b2
push 1
pop edi
lea ecx, [edi + 8]
cmp eax, ecx
jl 0x47f0b2
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 0x47f110
add ebx, dword [ebp + 0x10]
lea ebx, [ebx + edi*8]
test bl, 0xf
je 0x47d565
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 0x47d49d
jmp 0x47d62f
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 0x47d588
mov eax, dword [esp + 0xba8]
cmp ecx, eax
jb 0x47f0b9
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
cmp ecx, 1
jne 0x47d819
mov ecx, dword [esp + 0x728]
test eax, eax
movsd xmm0, qword [ecx + edx*8 - 8]
jle 0x47d804
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
lea esi, [ecx + ebx]
and esi, 0xf
je 0x47d6ab
test esi, 7
jne 0x47f17e
push 1
pop esi
lea ecx, [esi + 8]
cmp eax, ecx
jl 0x47f17e
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 0x47f1ca
add ecx, dword [esp + 0x730]
lea ecx, [ecx + esi*8]
test cl, 0xf
je 0x47d77e
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 0x47d70c
jmp 0x47d7e7
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 0x47d793
cmp edi, eax
jb 0x47f185
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x47db93
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
lea edi, [ecx + ebx]
and edi, 0xf
je 0x47d873
test edi, 7
jne 0x47f213
push 1
pop edi
lea ecx, [edi + 8]
cmp eax, ecx
jl 0x47f213
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 0x47f295
add ebx, dword [esp + 0x720]
lea ebx, [ebx + edi*8]
test bl, 0xf
je 0x47da33
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 0x47d91c
jmp 0x47db68
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 0x47da72
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ecx, eax
jb 0x47f21a
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
cmp ecx, 4
je 0x47fe03
cmp ecx, 3
je 0x47e31b
cmp ecx, 2
jne 0x47de2a
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 0x47de15
mov ebx, dword [esp + 0x5a4]
imul ebx, edx
mov ecx, dword [ebp + 0x10]
add ecx, ebx
and ecx, 0xf
je 0x47dc5a
test cl, 7
jne 0x47f8c5
push 1
pop ecx
lea esi, [ecx + 2]
cmp eax, esi
jl 0x47f8c5
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 0x47f9af
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 0x47dd25
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 0x47f8cc
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
cmp ecx, 1
jne 0x47e306
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 0x47e2f1
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 0x47de9b
test byte [esp + 0xf8], 7
jne 0x47fa95
mov dword [esp + 0xf8], 1
mov ecx, dword [esp + 0xf8]
lea esi, [ecx + 8]
cmp eax, esi
jl 0x47fa95
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 0x47fb15
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 0x47e0fe
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 0x47df49
jmp 0x47e2b9
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 0x47e14c
movsd xmm2, qword [esp + 0x1a0]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp esi, eax
jb 0x47fa9c
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x47e7ee
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x720]
add ecx, esi
and ecx, 0xf
je 0x47e3e0
test cl, 7
jne 0x47fba0
push 1
pop ecx
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x47fba0
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 0x47fcd7
test byte [esp + 0x5a4], 0xf
jne 0x47e5fb
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 0x47e51b
jmp 0x47e7bb
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 0x47e6cf
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ebx, eax
jb 0x47fba7
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x47e82e
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47e8b6
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x47cb2f
xor ecx, ecx
jmp 0x47ccfe
xor esi, esi
jmp 0x47cfe5
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 0x47e93b
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47e99e
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x47cdae
xor ecx, ecx
jmp 0x47d392
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 0x47ea25
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47eb10
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 0x47d104
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 0x47ee52
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebp + 0xc]
add ebx, ecx
and ebx, 0xf
je 0x47ec4d
test bl, 7
jne 0x47f0ab
push 1
pop ebx
lea ecx, [ebx + 2]
cmp eax, ecx
jl 0x47f0ab
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 0x47ef9a
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 0x47ed61
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp edi, eax
jb 0x47ee67
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x47eed5
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47efed
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 0x47ec9e
xor edi, edi
jmp 0x47ee39
xor ecx, ecx
jmp 0x47d636
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 0x47f0d6
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47f142
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x47d46b
xor edi, edi
jmp 0x47d7e7
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 0x47f19d
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47f1e8
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x47d6e4
xor ecx, ecx
jmp 0x47db76
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 0x47f247
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47f2c9
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x47d8ca
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 0x47f768
mov ebx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
add ebx, ecx
and ebx, 0xf
je 0x47f35d
test bl, 7
jne 0x47f8be
push 1
pop ebx
lea ecx, [ebx + 8]
cmp eax, ecx
jl 0x47f8be
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 0x47f826
add edi, dword [esp + 0x71c]
lea edi, [edi + ebx*8]
test edi, 0xf
je 0x47f58d
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 0x47f424
jmp 0x47f72b
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 0x47f5e3
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 0x47f77d
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x47f7c0
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47f85c
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x47f3b8
xor esi, esi
jmp 0x47f74f
xor esi, esi
jmp 0x47ddf8
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 0x47f91f
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47fa09
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 0x47dc92
xor esi, esi
jmp 0x47e2d4
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 0x47fabf
mov edx, dword [esp + 0x6f8]
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47fb4b
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
jmp 0x47ded1
xor ebx, ebx
jmp 0x47e7d1
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 0x47fc02
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x47fd35
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 0x47e426
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 0x480445
mov esi, dword [esp + 0x5a4]
imul esi, edx
mov ecx, dword [esp + 0x71c]
add ecx, esi
and ecx, 0xf
je 0x47fef5
test cl, 7
jne 0x480765
push 1
pop ecx
lea ebx, [ecx + 2]
cmp eax, ebx
jl 0x480765
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 0x4805e1
test byte [esp + 0x5a4], 0xf
jne 0x4801a5
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 0x48007f
jmp 0x480410
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 0x4802d9
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0xba8]
cmp ebx, eax
jb 0x48045a
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
add edx, 4
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47be47
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 0x4804c5
mov edx, dword [esp + 0x6f8]
add edx, 4
mov eax, dword [esp + 0xba8]
cmp edx, dword [esp + 0xba4]
jle 0x47a905
jmp 0x47bde4
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 0x480644
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 0x47ff52
xor ebx, ebx
jmp 0x48042c