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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x108
mov eax, dword [ebp + 0x10]
movsd xmm6, qword [ebp + 0x20]
push esi
mov dword [esp + 0x1c], 0
mov edx, dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0xfffffff9
mov dword [esp + 0x24], esi
lea ecx, [edx*8]
mov dword [esp + 0x10], edx
cmp ecx, 0x7d00
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x1c]
cmovbe ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
lea eax, [ecx - 3]
mov dword [esp + 0x90], eax
lea eax, [ecx - 1]
mov ecx, dword [ebp + 0x14]
add ecx, 4
mov dword [esp + 0x38], eax
cmp dword [esp + 0x20], 0
mov dword [esp + 0x30], ecx
jle 0x10036fc9
mov ecx, dword [ebp + 0x18]
lea eax, [edx + edx*2]
mov dword [esp + 0x60], eax
lea edi, [edx*8]
lea eax, [edx + edx*4]
mov dword [esp + 0x34], edi
mov dword [esp + 0x9c], eax
xorps xmm0, xmm0
lea eax, [edx*8]
mov dword [esp + 0xbc], 0
sub eax, edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
shl eax, 6
mov dword [esp + 0xb4], eax
mov eax, dword [ebp + 0x1c]
shl eax, 3
sub eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x1c]
shl edx, 6
mov dword [esp + 0x50], edx
lea eax, [ecx + eax*8]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x1c]
lea eax, [eax + eax*2]
shl eax, 4
add eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x1c]
shl eax, 5
add eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x1c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x1c]
shl eax, 4
add eax, ecx
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x1c]
lea eax, [ecx + eax*8]
mov dword [esp + 0x84], eax
lea eax, [esi + edi]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x14]
mov edi, eax
shl edi, 4
add edi, esi
mov dword [esp + 0x98], edi
lea eax, [eax + eax*2]
lea eax, [esi + eax*8]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x14]
mov edi, eax
shl edi, 5
add edi, esi
mov dword [esp + 0xa4], edi
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x14]
lea edi, [eax + eax*2]
shl eax, 3
sub eax, dword [esp + 0x14]
shl edi, 4
add edi, esi
mov dword [esp + 0xac], edi
lea eax, [esi + eax*8]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x20]
dec eax
shr eax, 3
inc eax
mov dword [esp + 0x3c], eax
shl eax, 3
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x78], esi
nop
movaps xmmword [esp + 0xc0], xmm0
xorps xmm1, xmm1
movaps xmmword [esp + 0xe0], xmm1
xorps xmm2, xmm2
movaps xmmword [esp + 0xd0], xmm0
xorps xmm3, xmm3
mov dword [esp + 0x20], 0
xorps xmm4, xmm4
xorps xmm5, xmm5
xorps xmm7, xmm7
cmp edi, 2
jl 0x10036bcb
mov eax, dword [ecx]
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x78]
shl eax, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xb0]
mov edx, dword [edx]
mov esi, edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x70], 2
nop dword [eax]
movups xmm1, xmmword [esi]
mov edx, dword [esp + 0xb8]
movups xmm0, xmmword [ecx]
mov edi, dword [esp + 0x74]
add ecx, 0x10
add dword [esp + 0x70], 2
mulpd xmm0, xmm1
add dword [esp + 0x20], 2
add dword [esp + 0xb8], 0x10
add dword [esp + 0x74], 0x10
addpd xmm2, xmm0
movups xmm0, xmmword [eax]
add eax, 0x10
mulpd xmm0, xmm1
addpd xmm3, xmm0
movups xmm0, xmmword [edx]
mov edx, dword [esp + 0x88]
add dword [esp + 0x88], 0x10
mulpd xmm0, xmm1
addpd xmm4, xmm0
movups xmm0, xmmword [edi]
mov edi, dword [esp + 0x54]
mulpd xmm0, xmm1
addpd xmm5, xmm0
movups xmm0, xmmword [edi]
add edi, 0x10
mov dword [esp + 0x54], edi
mulpd xmm0, xmm1
mov edi, dword [ebp + 0xc]
addpd xmm7, xmm0
movups xmm0, xmmword [edx]
mov edx, dword [esp + 0x8c]
add dword [esp + 0x8c], 0x10
mulpd xmm0, xmm1
addpd xmm0, xmmword [esp + 0xe0]
movaps xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [edx]
mov edx, dword [esp + 0x6c]
add dword [esp + 0x6c], 0x10
mulpd xmm0, xmm1
movups xmm1, xmmword [esi]
add esi, dword [esp + 0x1c]
addpd xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0xc0], xmm0
movups xmm0, xmmword [edx]
mov edx, dword [esp + 0x50]
mulpd xmm0, xmm1
addpd xmm0, xmmword [esp + 0xd0]
movaps xmmword [esp + 0xd0], xmm0
cmp dword [esp + 0x70], edi
jle 0x10036ac0
movaps xmm1, xmmword [esp + 0xe0]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xb4]
movaps xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm2, xmm0
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
movaps xmm0, xmm4
unpckhpd xmm0, xmm4
addsd xmm4, xmm0
movaps xmm0, xmm5
unpckhpd xmm0, xmm5
addsd xmm5, xmm0
movaps xmm0, xmm7
unpckhpd xmm0, xmm7
addsd xmm7, xmm0
movaps xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm1, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0xe0], xmm4
movaps xmm4, xmmword [esp + 0xc0]
unpckhpd xmm0, xmm4
addsd xmm4, xmm0
movaps xmmword [esp + 0xc0], xmm4
movaps xmm4, xmmword [esp + 0xd0]
movaps xmm0, xmm4
unpckhpd xmm0, xmm4
addsd xmm4, xmm0
movaps xmmword [esp + 0xd0], xmm4
movaps xmm4, xmmword [esp + 0xe0]
cmp dword [esp + 0x20], edi
jge 0x10036e73
mov ecx, dword [ecx]
movaps xmm0, xmm3
mov edi, dword [esp + 0x20]
movaps xmm3, xmm2
mov dword [esp + 0x1c], ecx
unpcklpd xmm3, xmm0
movaps xmm0, xmm5
lea eax, [ecx*8]
unpcklpd xmm4, xmm0
mov dword [esp + 0x5c], eax
movaps xmm5, xmm7
mov eax, dword [esp + 0x14]
movaps xmm0, xmm1
add eax, dword [esp + 0x9c]
add eax, edi
imul ecx, dword [esp + 0x20]
movsd xmm7, qword [esp + 0xc0]
unpcklpd xmm5, xmm0
movsd xmm0, qword [esp + 0xd0]
lea edx, [esi + eax*8]
unpcklpd xmm7, xmm0
mov eax, dword [esp + 0x7c]
add eax, edi
lea esi, [esi + eax*8]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x60]
add eax, edi
mov edi, dword [esp + 0x28]
lea eax, [edi + eax*8]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x9c]
lea eax, [edi + eax*8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x2c]
add eax, dword [esp + 0x20]
lea eax, [edi + eax*8]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x60]
lea eax, [edi + eax*8]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0xbc]
lea eax, [edi + eax*8]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x2c]
lea eax, [edi + eax*8]
mov edi, dword [ebp + 0xc]
sub edi, dword [esp + 0x20]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x68]
mov eax, dword [eax]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x88], eax
jmp 0x10036d67
mov eax, dword [esp + 0x88]
movsd xmm2, qword [eax]
mov eax, dword [esp + 0x70]
unpcklpd xmm2, xmm2
add dword [esp + 0x70], 8
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x6c]
add dword [esp + 0x6c], 8
movsd xmm1, qword [eax]
mov eax, dword [esp + 0x8c]
unpcklpd xmm1, xmm0
mulpd xmm1, xmm2
add dword [esp + 0x8c], 8
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x74]
addpd xmm3, xmm1
movsd xmm1, qword [edi]
add edi, 8
unpcklpd xmm1, xmm0
movsd xmm0, qword [ecx]
add ecx, 8
mulpd xmm1, xmm2
addpd xmm4, xmm1
movsd xmm1, qword [eax]
add eax, 8
unpcklpd xmm1, xmm0
movsd xmm0, qword [esi]
add esi, 8
mulpd xmm1, xmm2
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x5c]
add dword [esp + 0x88], eax
addpd xmm5, xmm1
movsd xmm1, qword [edx]
add edx, 8
sub dword [esp + 0x54], 1
unpcklpd xmm1, xmm0
mulpd xmm1, xmm2
addpd xmm7, xmm1
jne 0x10036d60
mov ecx, dword [esp + 0x30]
movaps xmm0, xmm7
mov edx, dword [esp + 0x50]
movaps xmm2, xmm3
mov eax, dword [esp + 0xb4]
movsd qword [esp + 0xe0], xmm4
movsd qword [esp + 0x100], xmm5
unpckhpd xmm4, xmm4
unpckhpd xmm5, xmm5
unpckhpd xmm7, xmm7
movaps xmm1, xmm5
movsd qword [esp + 0xf0], xmm4
movaps xmm4, xmmword [esp + 0xe0]
movaps xmm5, xmmword [esp + 0xf0]
movsd qword [esp + 0xd0], xmm7
movaps xmm7, xmmword [esp + 0x100]
unpckhpd xmm3, xmm3
jmp 0x10036e7b
movaps xmm0, xmmword [esp + 0xc0]
mov esi, dword [esp + 0x80]
mulsd xmm2, xmm6
mov edi, dword [esp + 0x18]
mulsd xmm3, xmm6
add dword [esp + 0xb0], eax
mulsd xmm4, xmm6
add dword [esp + 0xac], eax
addsd xmm2, qword [esi]
mulsd xmm5, xmm6
add dword [esp + 0xa8], eax
mulsd xmm7, xmm6
add dword [esp + 0xa4], eax
movsd qword [esi], xmm2
mov esi, dword [esp + 0x84]
mulsd xmm1, xmm6
add dword [esp + 0xa0], eax
mulsd xmm0, xmm6
add dword [esp + 0x98], eax
addsd xmm3, qword [esi]
add dword [esp + 0x94], eax
add dword [esp + 0x78], eax
add dword [esp + 0x80], edx
add dword [esp + 0x84], edx
movsd qword [esi], xmm3
mov esi, dword [esp + 0x64]
add dword [esp + 0x64], edx
add dword [esp + 0x18], edx
addsd xmm4, qword [esi]
movsd qword [esi], xmm4
mov esi, dword [esp + 0x4c]
add dword [esp + 0x4c], edx
addsd xmm5, qword [esi]
movsd qword [esi], xmm5
mov esi, dword [esp + 0x48]
add dword [esp + 0x48], edx
addsd xmm7, qword [esi]
movsd qword [esi], xmm7
mov esi, dword [esp + 0x44]
add dword [esp + 0x44], edx
addsd xmm1, qword [esi]
movsd qword [esi], xmm1
mov esi, dword [esp + 0x40]
addsd xmm0, qword [esi]
movsd qword [esi], xmm0
add esi, edx
movaps xmm0, xmmword [esp + 0xd0]
mulsd xmm0, xmm6
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x28]
addsd xmm0, qword [edi]
movsd qword [edi], xmm0
xorps xmm0, xmm0
mov edi, dword [esp + 0xbc]
add edi, dword [esp + 0x34]
mov dword [esp + 0xbc], edi
mov edi, dword [esp + 0x7c]
add edi, dword [esp + 0x34]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x9c]
add edi, dword [esp + 0x34]
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x60]
add edi, dword [esp + 0x34]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x2c]
add edi, dword [esp + 0x34]
sub dword [esp + 0x3c], 1
mov dword [esp + 0x2c], edi
mov edi, dword [ebp + 0xc]
jne 0x10036a10
mov edx, dword [esp + 0x14]
jmp 0x10036fcd
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x90]
jge 0x1003730e
mov edi, dword [esp + 0x24]
mov eax, edx
imul eax, edi
mov esi, dword [ebp + 0x18]
lea ecx, [edi + 3]
mov dword [esp + 0x34], eax
lea eax, [edx*4]
mov dword [esp + 0x40], eax
lea edx, [edi + 2]
mov eax, edx
imul edx, dword [ebp + 0x1c]
imul eax, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov eax, ecx
imul eax, dword [esp + 0x14]
imul ecx, dword [ebp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x1c]
shl eax, 5
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x14]
shl eax, 5
mov dword [esp + 0x94], eax
mov eax, edi
imul eax, dword [ebp + 0x1c]
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
lea eax, [esi + eax*8]
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x18]
lea eax, [eax + ecx*8]
mov dword [esp + 0x54], eax
lea ecx, [edi*8 + 8]
mov eax, dword [ebp + 0x18]
lea edx, [eax + edx*8]
mov eax, ecx
imul ecx, dword [esp + 0x14]
imul eax, dword [ebp + 0x1c]
mov dword [esp + 0x78], edx
add ecx, esi
add eax, dword [ebp + 0x18]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x7c], eax
lea ecx, [esi + ecx*8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x2c]
lea ecx, [esi + ecx*8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
mov dword [esp + 0x90], ecx
lea edi, [edi + ecx*4]
mov dword [esp + 0x24], edi
mov edi, dword [ebp + 0xc]
jmp 0x100370c8
mov esi, dword [esp + 0x28]
xor edx, edx
xorps xmm2, xmm2
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
cmp edi, 2
jl 0x1003717c
mov ecx, dword [esp + 0x30]
lea eax, [edx + 2]
mov esi, dword [esp + 0x80]
mov ecx, dword [ecx]
shl ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
movups xmm1, xmmword [ecx]
mov edi, dword [esp + 0x18]
add eax, 2
movups xmm0, xmmword [esi]
add dword [esp + 0x18], 0x10
add edx, 2
add ecx, dword [esp + 0x1c]
add esi, 0x10
mulpd xmm0, xmm1
addpd xmm2, xmm0
movups xmm0, xmmword [edi]
mov edi, dword [esp + 0x44]
add dword [esp + 0x44], 0x10
mulpd xmm0, xmm1
addpd xmm3, xmm0
movups xmm0, xmmword [edi]
mov edi, dword [esp + 0x48]
add dword [esp + 0x48], 0x10
mulpd xmm0, xmm1
addpd xmm4, xmm0
movups xmm0, xmmword [edi]
mov edi, dword [ebp + 0xc]
mulpd xmm0, xmm1
addpd xmm5, xmm0
cmp eax, edi
jle 0x10037116
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x7c]
movaps xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm2, xmm0
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
movaps xmm0, xmm4
unpckhpd xmm0, xmm4
addsd xmm4, xmm0
movaps xmm0, xmm5
unpckhpd xmm0, xmm5
addsd xmm5, xmm0
cmp edx, edi
jge 0x1003726c
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov ecx, dword [eax]
lea eax, [ecx*8]
imul ecx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
add eax, edx
lea esi, [esi + eax*8]
mov eax, dword [esp + 0x60]
add eax, edx
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x14]
add eax, edx
lea eax, [edi + eax*8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
add eax, edx
lea eax, [edi + eax*8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x68], eax
sub edi, edx
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x3c], edi
mov eax, dword [eax]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x5c]
movsd xmm1, qword [edi]
add edi, dword [esp + 0x18]
movaps xmm0, xmm1
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm2, xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [ecx]
add ecx, 8
addsd xmm3, xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [eax]
add eax, 8
mulsd xmm1, qword [esi]
add esi, 8
sub dword [esp + 0x3c], 1
addsd xmm4, xmm0
addsd xmm5, xmm1
jne 0x10037221
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x54]
mulsd xmm2, xmm6
mulsd xmm3, xmm6
mulsd xmm4, xmm6
addsd xmm2, qword [edx]
mulsd xmm5, xmm6
movsd qword [edx], xmm2
addsd xmm3, qword [eax]
movsd qword [eax], xmm3
addsd xmm4, qword [ecx]
movsd qword [ecx], xmm4
addsd xmm5, qword [esi]
mov ecx, dword [esp + 0x40]
add dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x94]
add dword [esp + 0x4c], ecx
add dword [esp + 0x64], ecx
add dword [esp + 0x84], ecx
add dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x40]
add dword [esp + 0x2c], ecx
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x98]
add edx, ecx
add dword [esp + 0x78], ecx
add eax, ecx
movsd qword [esi], xmm5
add esi, ecx
sub dword [esp + 0x90], 1
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x54], esi
jne 0x100370c4
mov eax, dword [ebp + 0x14]
add eax, 4
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x38]
jge 0x10037510
mov edx, dword [esp + 0x14]
mov ecx, edx
mov edi, dword [ebp + 0x18]
imul ecx, esi
lea eax, [edx + edx]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x1c]
shl eax, 4
mov dword [esp + 0x50], eax
mov eax, edx
mov edx, dword [esp + 0x28]
shl eax, 4
mov dword [esp + 0x64], eax
mov eax, esi
imul eax, dword [ebp + 0x1c]
lea esi, [esi*8 + 8]
mov dword [esp + 0x18], ecx
lea eax, [edi + eax*8]
mov dword [esp + 0x40], eax
lea eax, [edx + ecx*8]
mov dword [esp + 0x48], eax
mov eax, esi
imul esi, dword [esp + 0x14]
imul eax, dword [ebp + 0x1c]
add esi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], esi
add eax, edi
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 0xc]
sub esi, edx
dec esi
mov dword [esp + 0x4c], eax
shr esi, 1
inc esi
mov dword [esp + 0x38], esi
lea edx, [edx + esi*2]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x44]
nop dword [eax]
xor esi, esi
xorps xmm2, xmm2
xorps xmm3, xmm3
cmp edi, 2
jl 0x10037410
mov ecx, dword [esp + 0x30]
lea eax, [esi + 2]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x48]
mov ecx, dword [ecx]
shl ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
nop word [eax + eax]
movups xmm1, xmmword [ecx]
mov edi, dword [esp + 0x3c]
add eax, 2
movups xmm0, xmmword [edx]
add ecx, dword [esp + 0x1c]
add esi, 2
add edx, 0x10
mulpd xmm0, xmm1
addpd xmm2, xmm0
movups xmm0, xmmword [edi]
add edi, 0x10
mov dword [esp + 0x3c], edi
mov edi, dword [ebp + 0xc]
mulpd xmm0, xmm1
addpd xmm3, xmm0
cmp eax, edi
jle 0x100373d0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
movaps xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm2, xmm0
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
cmp esi, edi
jge 0x100374ae
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov edx, dword [eax]
lea eax, [edx*8]
mov dword [esp + 0x5c], eax
lea eax, [ecx + esi]
add eax, dword [esp + 0x14]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], eax
lea eax, [ecx + esi]
mov ecx, edi
mov edi, dword [ebp + 0xc]
lea eax, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x14]
imul ecx, edx
sub edi, esi
mov dword [esp + 0x68], edi
mov esi, edi
mov eax, dword [eax]
lea edx, [eax + ecx*8]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
nop dword [eax]
movsd xmm1, qword [edx]
add edx, dword [esp + 0x5c]
movaps xmm0, xmm1
mulsd xmm0, qword [ecx]
add ecx, 8
mulsd xmm1, qword [eax]
add eax, 8
addsd xmm2, xmm0
addsd xmm3, xmm1
sub esi, 1
jne 0x10037480
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x64]
add edx, edi
add ecx, dword [esp + 0x54]
add dword [esp + 0x48], edi
mov edi, dword [ebp + 0xc]
mulsd xmm2, xmm6
mov dword [esp + 0x18], ecx
mulsd xmm3, xmm6
mov dword [esp + 0x44], edx
addsd xmm2, qword [esi]
movsd qword [esi], xmm2
addsd xmm3, qword [eax]
add esi, dword [esp + 0x50]
mov dword [esp + 0x40], esi
movsd qword [eax], xmm3
add eax, dword [esp + 0x50]
sub dword [esp + 0x38], 1
mov dword [esp + 0x4c], eax
jne 0x100373a0
mov eax, dword [ebp + 0x14]
mov esi, dword [esp + 0x24]
add eax, 4
mov dword [esp + 0x30], eax
cmp esi, dword [ebp + 8]
jge 0x1003772c
mov eax, dword [esp + 0x14]
mov ecx, eax
mov edx, dword [ebp + 0x18]
shl eax, 3
mov dword [esp + 0x50], eax
mov eax, esi
imul eax, dword [ebp + 0x1c]
imul ecx, esi
sub dword [ebp + 8], esi
mov dword [esp + 0x24], ecx
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
lea edx, [edx + ecx*8]
mov dword [esp + 0x38], edx
nop dword [eax + eax]
xor esi, esi
xorps xmm2, xmm2
cmp edi, 2
jl 0x1003759e
mov ecx, dword [esp + 0x30]
lea eax, [esi + 2]
mov ecx, dword [ecx]
shl ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x38]
movups xmm1, xmmword [ecx]
add eax, 2
add esi, 2
movups xmm0, xmmword [edx]
add edx, dword [esp + 0x1c]
add ecx, 0x10
mulpd xmm1, xmm0
addpd xmm2, xmm1
cmp eax, edi
jle 0x10037573
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
movaps xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm2, xmm0
cmp esi, edi
jge 0x100376f3
mov eax, edi
sub eax, esi
cmp eax, 4
jl 0x1003769e
mov eax, dword [esp + 0x30]
mov edi, dword [ebp + 0x14]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov eax, ecx
shl eax, 5
mov dword [esp + 0x1c], eax
mov eax, esi
imul eax, ecx
lea eax, [edx + eax*8]
mov dword [esp + 0x58], eax
lea eax, [esi + 3]
imul eax, ecx
lea eax, [edx + eax*8]
mov dword [esp + 0x68], eax
lea eax, [esi + 2]
imul eax, ecx
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
add eax, esi
lea edx, [edx + eax*8]
lea eax, [esi + 1]
add edx, 0x10
imul eax, ecx
mov ecx, dword [edi]
mov edi, dword [esp + 0x58]
lea eax, [ecx + eax*8]
mov ecx, dword [ebp + 0xc]
sub ecx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
sub ecx, 4
shr ecx, 2
inc ecx
mov dword [esp + 0x40], ecx
lea esi, [esi + ecx*4]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x68]
nop dword [eax]
movsd xmm1, qword [edx - 0x10]
mulsd xmm1, qword [edi]
add edi, eax
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [edx - 8]
add dword [esp + 0x18], eax
mulsd xmm0, qword [ecx]
addsd xmm2, xmm1
mov ecx, dword [esp + 0x3c]
addsd xmm2, xmm0
movsd xmm0, qword [ecx]
mulsd xmm0, qword [edx]
add ecx, eax
mov dword [esp + 0x3c], ecx
addsd xmm2, xmm0
movsd xmm0, qword [edx + 8]
mulsd xmm0, qword [esi]
add edx, 0x20
add esi, eax
sub dword [esp + 0x40], 1
addsd xmm2, xmm0
jne 0x10037640
mov esi, dword [esp + 0x5c]
mov edi, dword [ebp + 0xc]
cmp esi, edi
jge 0x100376e7
mov eax, dword [esp + 0x30]
mov edx, dword [ebp + 0x14]
mov ecx, dword [eax]
lea eax, [ecx*8]
mov dword [esp + 0x1c], eax
mov eax, esi
imul eax, ecx
mov ecx, dword [edx]
mov edx, dword [esp + 0x28]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x24]
add eax, esi
lea eax, [edx + eax*8]
mov edx, edi
sub edx, esi
mov esi, dword [esp + 0x1c]
movsd xmm0, qword [eax]
add eax, 8
mulsd xmm0, qword [ecx]
add ecx, esi
addsd xmm2, xmm0
sub edx, 1
jne 0x100376d1
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edi, dword [ebp + 0x1c]
add ecx, dword [esp + 0x14]
add edx, dword [esp + 0x50]
mulsd xmm2, xmm6
lea esi, [edi*8]
mov dword [esp + 0x24], ecx
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x38], edx
addsd xmm2, qword [eax]
movsd qword [eax], xmm2
add eax, esi
sub dword [ebp + 8], 1
mov dword [esp + 0x2c], eax
jne 0x10037550
pop edi
pop esi
mov esp, ebp
pop ebp
ret