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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xe4
mov eax, dword [ebp + 0x1c]
pxor xmm6, xmm6
mov ecx, dword [ebp + 0x20]
mov esi, dword [ebp + 0xc]
mov edx, dword [eax]
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
movsd xmm2, qword [esi]
movaps xmm5, xmm2
lea eax, [esi + eax*8]
movsd xmm7, qword [eax]
movaps xmm3, xmm2
mulsd xmm5, xmm7
movaps xmm4, xmm2
mov ebx, dword [ebp + 0x10]
subsd xmm6, xmm5
mulsd xmm7, xmm6
pxor xmm5, xmm5
movsd xmm1, qword [eax + 8]
mulsd xmm3, xmm1
addsd xmm7, qword [ebx]
movsd qword [ebx], xmm7
movaps xmm7, xmm1
mulsd xmm7, xmm6
subsd xmm5, xmm3
mov edi, dword [ebp + 0x2c]
pxor xmm3, xmm3
mulsd xmm1, xmm5
addsd xmm7, qword [ebx + 8]
mov edi, dword [edi]
movsd qword [ebx + 8], xmm7
movsd xmm0, qword [eax + 0x10]
mulsd xmm4, xmm0
addsd xmm1, qword [ebx + edi*8]
movsd qword [ebx + edi*8], xmm1
movaps xmm1, xmm0
mulsd xmm1, xmm6
subsd xmm3, xmm4
movaps xmm7, xmm0
movaps xmm4, xmm2
mulsd xmm7, xmm5
addsd xmm1, qword [ebx + 0x10]
mulsd xmm4, qword [eax + 0x18]
movsd qword [esp + 0x70], xmm3
movsd qword [ebx + 0x10], xmm1
pxor xmm3, xmm3
movsd xmm1, qword [esp + 0x70]
subsd xmm3, xmm4
mulsd xmm0, xmm1
addsd xmm7, qword [ebx + edi*8 + 8]
mov dword [esp + 0x98], edx
lea edx, [edi + edi - 3]
movsd qword [ebx + edi*8 + 8], xmm7
movaps xmm4, xmm2
mulsd xmm4, qword [eax + 0x20]
lea ecx, [edi + edx - 3]
addsd xmm0, qword [ebx + edx*8 + 0x10]
mulsd xmm2, qword [eax + 0x28]
movsd xmm7, qword [eax + 0x18]
lea esi, [edi + ecx - 4]
movsd qword [ebx + edx*8 + 0x10], xmm0
movaps xmm0, xmm7
mulsd xmm0, xmm6
movsd qword [esp + 0x30], xmm3
pxor xmm3, xmm3
addsd xmm0, qword [ebx + 0x18]
subsd xmm3, xmm4
pxor xmm4, xmm4
movsd qword [ebx + 0x18], xmm0
movaps xmm0, xmm7
mulsd xmm0, xmm1
subsd xmm4, xmm2
movaps xmm2, xmm7
mulsd xmm2, xmm5
movsd qword [esp + 0x28], xmm3
movsd qword [esp + 0x20], xmm4
addsd xmm2, qword [ebx + edi*8 + 0x10]
movsd qword [ebx + edi*8 + 0x10], xmm2
movsd xmm2, qword [esp + 0x30]
mulsd xmm7, xmm2
addsd xmm0, qword [ebx + edx*8 + 0x18]
movsd qword [ebx + edx*8 + 0x18], xmm0
movsd xmm0, qword [eax + 0x20]
addsd xmm7, qword [ebx + ecx*8 + 0x18]
movsd qword [ebx + ecx*8 + 0x18], xmm7
movaps xmm7, xmm0
mulsd xmm7, xmm6
addsd xmm7, qword [ebx + 0x20]
movsd qword [ebx + 0x20], xmm7
movaps xmm7, xmm0
mulsd xmm7, xmm5
addsd xmm7, qword [ebx + edi*8 + 0x18]
movsd qword [ebx + edi*8 + 0x18], xmm7
movaps xmm7, xmm0
mulsd xmm7, xmm1
addsd xmm7, qword [ebx + edx*8 + 0x20]
movsd qword [ebx + edx*8 + 0x20], xmm7
movaps xmm7, xmm0
mulsd xmm7, xmm2
mulsd xmm0, xmm3
addsd xmm7, qword [ebx + ecx*8 + 0x20]
movsd qword [ebx + ecx*8 + 0x20], xmm7
movsd xmm7, qword [eax + 0x28]
addsd xmm0, qword [ebx + esi*8 + 0x20]
movsd qword [ebx + esi*8 + 0x20], xmm0
movaps xmm0, xmm7
mulsd xmm0, xmm6
addsd xmm0, qword [ebx + 0x28]
movsd qword [ebx + 0x28], xmm0
movaps xmm0, xmm7
mulsd xmm0, xmm5
addsd xmm0, qword [ebx + edi*8 + 0x20]
movsd qword [ebx + edi*8 + 0x20], xmm0
movaps xmm0, xmm7
mulsd xmm0, xmm1
addsd xmm0, qword [ebx + edx*8 + 0x28]
movsd qword [ebx + edx*8 + 0x28], xmm0
movaps xmm0, xmm7
mulsd xmm0, xmm2
movaps xmm2, xmm7
mulsd xmm2, xmm3
mulsd xmm7, xmm4
addsd xmm0, qword [ebx + ecx*8 + 0x28]
movsd qword [ebx + ecx*8 + 0x28], xmm0
mov edx, dword [ebp + 0x24]
addsd xmm2, qword [ebx + esi*8 + 0x28]
movsd qword [ebx + esi*8 + 0x28], xmm2
add esi, edi
mov ecx, dword [edx]
addsd xmm7, qword [ebx + esi*8]
movsd qword [ebx + esi*8], xmm7
mov esi, dword [esp + 0x98]
inc esi
cmp esi, ecx
jg 0x4bba60
mov ebx, dword [ebp + 0x10]
movaps xmm4, xmm6
movsd xmm0, qword [esp + 0x30]
movaps xmm3, xmm5
movsd xmm7, qword [esp + 0x20]
movaps xmm2, xmm1
unpcklpd xmm0, xmm0
lea edx, [ebx + edi*8]
mov dword [esp + 0xd0], edx
mov edx, edi
shl edx, 4
add edx, ebx
mov dword [esp + 0xd8], edx
lea edx, [edi + edi*2]
mov dword [esp + 0x8c], edx
lea edx, [ebx + edx*8]
mov dword [esp + 0xcc], edx
mov edx, edi
shl edx, 5
add edx, ebx
mov dword [esp + 0xd4], edx
lea edx, [edi + edi*4]
unpcklpd xmm4, xmm4
lea ebx, [ebx + edx*8]
unpcklpd xmm3, xmm3
unpcklpd xmm2, xmm2
movaps xmmword [esp + 0x10], xmm0
unpcklpd xmm7, xmm7
mov dword [esp + 0x90], 6
movsd xmm0, qword [esp + 0x28]
movaps xmmword [esp], xmm7
mov dword [esp + 0xc8], ebx
movaps xmmword [esp + 0x40], xmm2
movaps xmmword [esp + 0x50], xmm3
movaps xmmword [esp + 0x60], xmm4
movsd qword [esp + 0x78], xmm5
movsd qword [esp + 0x80], xmm6
unpcklpd xmm0, xmm0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0x88], edi
mov dword [esp + 0x9c], eax
movaps xmm4, xmmword [esp]
movaps xmm3, xmmword [esp + 0x10]
movsd xmm2, qword [esp + 0x20]
movsd xmm6, qword [esp + 0x28]
movsd xmm5, qword [esp + 0x30]
mov ebx, dword [esp + 0x90]
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x98]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + esi*8 - 8]
mov edi, dword [eax + esi*8 - 4]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ecx + edx*4 - 4]
sub ecx, ebx
lea eax, [edi + edx]
mov eax, dword [esi + eax*4]
sub eax, dword [esi + edx*4 - 4]
lea edx, [ebx + 1]
add eax, ebx
mov dword [esp + 0x24], edi
cmp eax, ebx
mov dword [esp + 0x20], eax
jle 0x4bba39
mov eax, dword [ebp + 0x10]
neg edx
add edx, dword [esp + 0x20]
lea esi, [ecx + ebx + 1]
inc edx
lea edi, [eax + esi*8 + 8]
and edi, 0xf
je 0x4bada5
test edi, 7
jne 0x4bba6f
mov edi, 1
lea eax, [edi + 8]
cmp edx, eax
jl 0x4bba6f
mov eax, edx
sub eax, edi
and eax, 7
neg eax
add eax, edx
mov dword [esp + 0xdc], eax
lea esi, [ebx*8 + 8]
mov eax, dword [esp + 0x9c]
add eax, esi
mov dword [esp + 0xb8], eax
mov eax, dword [ebp + 0x10]
lea eax, [eax + ecx*8]
add esi, eax
mov eax, dword [esp + 0xdc]
test edi, edi
jbe 0x4bae45
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x90], ebx
movsd qword [esp + 0x70], xmm1
movsd xmm7, qword [esp + 0x80]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xb8]
movsd xmm1, qword [ebx + ecx*8 - 8]
mulsd xmm1, xmm7
addsd xmm1, qword [esi + ecx*8 - 8]
movsd qword [esi + ecx*8 - 8], xmm1
inc ecx
cmp ecx, edi
jb 0x4bae19
movsd xmm1, qword [esp + 0x70]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x38]
mov dword [esp], esi
mov esi, dword [ebp + 0xc]
lea eax, [eax + ebx + 1]
add eax, edi
lea esi, [esi + eax*8 + 8]
mov eax, dword [esp + 0xdc]
test esi, 0xf
mov esi, dword [esp]
jne 0x4baee7
movsd qword [esp + 0x70], xmm1
mov dword [esp + 0x90], ebx
movaps xmm1, xmmword [esp + 0x60]
mov ebx, dword [esp + 0xb8]
movaps xmm7, xmmword [ebx + edi*8 - 8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 - 8]
movaps xmmword [esi + edi*8 - 8], xmm7
movaps xmm7, xmmword [ebx + edi*8 + 8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 + 8]
movaps xmmword [esi + edi*8 + 8], xmm7
movaps xmm7, xmmword [ebx + edi*8 + 0x18]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 + 0x18]
movaps xmmword [esi + edi*8 + 0x18], xmm7
movaps xmm7, xmmword [ebx + edi*8 + 0x28]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 + 0x28]
movaps xmmword [esi + edi*8 + 0x28], xmm7
add edi, 8
cmp edi, eax
jb 0x4bae8b
jmp 0x4baf72
movsd qword [esp + 0x70], xmm1
mov dword [esp + 0x90], ebx
movaps xmm1, xmmword [esp + 0x60]
mov ebx, dword [esp + 0xb8]
movsd xmm7, qword [ebx + edi*8 - 8]
movhpd xmm7, qword [ebx + edi*8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 - 8]
movaps xmmword [esi + edi*8 - 8], xmm7
movsd xmm7, qword [ebx + edi*8 + 8]
movhpd xmm7, qword [ebx + edi*8 + 0x10]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 + 8]
movaps xmmword [esi + edi*8 + 8], xmm7
movsd xmm7, qword [ebx + edi*8 + 0x18]
movhpd xmm7, qword [ebx + edi*8 + 0x20]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 + 0x18]
movaps xmmword [esi + edi*8 + 0x18], xmm7
movsd xmm7, qword [ebx + edi*8 + 0x28]
movhpd xmm7, qword [ebx + edi*8 + 0x30]
mulpd xmm7, xmm1
addpd xmm7, xmmword [esi + edi*8 + 0x28]
movaps xmmword [esi + edi*8 + 0x28], xmm7
add edi, 8
cmp edi, eax
jb 0x4baf00
movsd xmm1, qword [esp + 0x70]
mov ebx, dword [esp + 0x90]
cmp eax, edx
jae 0x4bafd3
mov edi, dword [esp + 0x9c]
lea esi, [ebx*8 + 8]
movsd xmm7, qword [esp + 0x80]
movsd qword [esp + 0x70], xmm1
add edi, esi
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 0x10]
lea edi, [edi + ecx*8]
add esi, edi
mov edi, dword [esp + 0x14]
movsd xmm1, qword [edi + eax*8 - 8]
mulsd xmm1, xmm7
addsd xmm1, qword [esi + eax*8 - 8]
movsd qword [esi + eax*8 - 8], xmm1
inc eax
cmp eax, edx
jb 0x4bafb2
movsd xmm1, qword [esp + 0x70]
mov eax, dword [esp + 0x88]
mov edi, dword [ebp + 0x10]
lea esi, [eax + ecx]
lea eax, [esi + ebx + 1]
lea esi, [edi + eax*8]
and esi, 0xf
je 0x4baffd
test esi, 7
jne 0x4bba76
mov esi, 1
lea eax, [esi + 8]
cmp edx, eax
jl 0x4bba76
mov eax, edx
sub eax, esi
and eax, 7
neg eax
add eax, edx
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x9c]
lea eax, [ebx*8 + 8]
add edi, eax
mov dword [esp + 0xac], edi
lea eax, [eax + ecx*8]
add eax, dword [esp + 0xd0]
test esi, esi
jbe 0x4bb083
mov dword [esp + 0x18], 0
mov dword [esp + 0x90], ebx
movsd qword [esp + 0x70], xmm1
movsd xmm7, qword [esp + 0x78]
mov ebx, dword [esp + 0x18]
movsd xmm1, qword [edi + ebx*8 - 8]
mulsd xmm1, xmm7
addsd xmm1, qword [eax + ebx*8 - 0x10]
movsd qword [eax + ebx*8 - 0x10], xmm1
inc ebx
cmp ebx, esi
jb 0x4bb05b
movsd xmm1, qword [esp + 0x70]
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
lea edi, [edi + ebx + 1]
add edi, esi
lea eax, [eax + edi*8 + 8]
test al, 0xf
mov eax, dword [esp + 4]
jne 0x4bb117
movsd qword [esp + 0x70], xmm1
mov dword [esp + 0x90], ebx
movaps xmm1, xmmword [esp + 0x50]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0xac]
movaps xmm7, xmmword [edi + esi*8 - 8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8 - 0x10]
movaps xmmword [eax + esi*8 - 0x10], xmm7
movaps xmm7, xmmword [edi + esi*8 + 8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8]
movaps xmmword [eax + esi*8], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x18]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8 + 0x10]
movaps xmmword [eax + esi*8 + 0x10], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8 + 0x20]
movaps xmmword [eax + esi*8 + 0x20], xmm7
add esi, 8
cmp esi, ebx
jb 0x4bb0bd
jmp 0x4bb1a4
movsd qword [esp + 0x70], xmm1
mov dword [esp + 0x90], ebx
movaps xmm1, xmmword [esp + 0x50]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0xac]
movsd xmm7, qword [edi + esi*8 - 8]
movhpd xmm7, qword [edi + esi*8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8 - 0x10]
movaps xmmword [eax + esi*8 - 0x10], xmm7
movsd xmm7, qword [edi + esi*8 + 8]
movhpd xmm7, qword [edi + esi*8 + 0x10]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8]
movaps xmmword [eax + esi*8], xmm7
movsd xmm7, qword [edi + esi*8 + 0x18]
movhpd xmm7, qword [edi + esi*8 + 0x20]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8 + 0x10]
movaps xmmword [eax + esi*8 + 0x10], xmm7
movsd xmm7, qword [edi + esi*8 + 0x28]
movhpd xmm7, qword [edi + esi*8 + 0x30]
mulpd xmm7, xmm1
addpd xmm7, xmmword [eax + esi*8 + 0x20]
movaps xmmword [eax + esi*8 + 0x20], xmm7
add esi, 8
cmp esi, ebx
jb 0x4bb134
mov dword [esp + 0x28], ebx
movsd xmm1, qword [esp + 0x70]
mov ebx, dword [esp + 0x90]
cmp edx, dword [esp + 0x28]
jbe 0x4bb206
mov eax, dword [esp + 0x9c]
lea esi, [ebx*8 + 8]
movsd xmm7, qword [esp + 0x78]
mov edi, dword [esp + 0x28]
movsd qword [esp + 0x70], xmm1
add eax, esi
lea esi, [esi + ecx*8]
add esi, dword [esp + 0xd0]
movsd xmm1, qword [eax + edi*8 - 8]
mulsd xmm1, xmm7
addsd xmm1, qword [esi + edi*8 - 0x10]
movsd qword [esi + edi*8 - 0x10], xmm1
inc edi
cmp edi, edx
jb 0x4bb1e5
movsd xmm1, qword [esp + 0x70]
mov eax, dword [esp + 0x88]
mov edi, dword [ebp + 0x10]
lea esi, [ecx + eax*2]
lea eax, [esi + ebx + 1]
lea esi, [edi + eax*8]
and esi, 0xf
je 0x4bb230
test esi, 7
jne 0x4bba83
mov esi, 1
lea eax, [esi + 8]
cmp edx, eax
jl 0x4bba83
mov eax, edx
sub eax, esi
and eax, 7
neg eax
add eax, edx
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x9c]
lea eax, [ebx*8 + 8]
add edi, eax
mov dword [esp + 0xa8], edi
lea eax, [eax + ecx*8]
add eax, dword [esp + 0xd8]
mov dword [esp + 0xbc], eax
test esi, esi
jbe 0x4bb2a8
mov dword [esp + 0x90], ebx
xor eax, eax
mov ebx, dword [esp + 0xbc]
movsd xmm7, qword [edi + eax*8 - 8]
mulsd xmm7, xmm1
addsd xmm7, qword [ebx + eax*8 - 0x20]
movsd qword [ebx + eax*8 - 0x20], xmm7
inc eax
cmp eax, esi
jb 0x4bb286
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 0xc]
lea eax, [eax + ebx + 1]
add eax, esi
lea edi, [edi + eax*8 + 8]
test edi, 0xf
jne 0x4bb343
movsd qword [esp + 0x70], xmm1
mov dword [esp + 0x90], ebx
movaps xmm1, xmmword [esp + 0x40]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0xbc]
mov edi, dword [esp + 0xa8]
movaps xmm7, xmmword [edi + esi*8 - 8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8 - 0x20]
movaps xmmword [ebx + esi*8 - 0x20], xmm7
movaps xmm7, xmmword [edi + esi*8 + 8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8 - 0x10]
movaps xmmword [ebx + esi*8 - 0x10], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x18]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8]
movaps xmmword [ebx + esi*8], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8 + 0x10]
movaps xmmword [ebx + esi*8 + 0x10], xmm7
add esi, 8
cmp esi, eax
jb 0x4bb2e9
jmp 0x4bb3d7
movsd qword [esp + 0x70], xmm1
mov dword [esp + 0x90], ebx
movaps xmm1, xmmword [esp + 0x40]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0xbc]
mov edi, dword [esp + 0xa8]
movsd xmm7, qword [edi + esi*8 - 8]
movhpd xmm7, qword [edi + esi*8]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8 - 0x20]
movaps xmmword [ebx + esi*8 - 0x20], xmm7
movsd xmm7, qword [edi + esi*8 + 8]
movhpd xmm7, qword [edi + esi*8 + 0x10]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8 - 0x10]
movaps xmmword [ebx + esi*8 - 0x10], xmm7
movsd xmm7, qword [edi + esi*8 + 0x18]
movhpd xmm7, qword [edi + esi*8 + 0x20]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8]
movaps xmmword [ebx + esi*8], xmm7
movsd xmm7, qword [edi + esi*8 + 0x28]
movhpd xmm7, qword [edi + esi*8 + 0x30]
mulpd xmm7, xmm1
addpd xmm7, xmmword [ebx + esi*8 + 0x10]
movaps xmmword [ebx + esi*8 + 0x10], xmm7
add esi, 8
cmp esi, eax
jb 0x4bb367
mov dword [esp + 0x2c], eax
movsd xmm1, qword [esp + 0x70]
mov ebx, dword [esp + 0x90]
cmp edx, dword [esp + 0x2c]
jbe 0x4bb427
mov eax, dword [esp + 0x9c]
lea esi, [ebx*8 + 8]
mov edi, dword [esp + 0x2c]
add eax, esi
lea esi, [esi + ecx*8]
add esi, dword [esp + 0xd8]
movsd xmm7, qword [eax + edi*8 - 8]
mulsd xmm7, xmm1
addsd xmm7, qword [esi + edi*8 - 0x20]
movsd qword [esi + edi*8 - 0x20], xmm7
inc edi
cmp edi, edx
jb 0x4bb40c
mov eax, dword [esp + 0x8c]
mov edi, dword [ebp + 0x10]
lea esi, [ecx + eax]
lea eax, [esi + ebx + 1]
lea esi, [edi + eax*8 + 8]
and esi, 0xf
je 0x4bb452
test esi, 7
jne 0x4bba90
mov esi, 1
lea eax, [esi + 8]
cmp edx, eax
jl 0x4bba90
mov eax, edx
sub eax, esi
and eax, 7
neg eax
add eax, edx
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x9c]
lea eax, [ebx*8 + 8]
add edi, eax
mov dword [esp + 0xa4], edi
lea eax, [eax + ecx*8]
add eax, dword [esp + 0xcc]
mov dword [esp + 0xc4], eax
test esi, esi
jbe 0x4bb4ca
mov dword [esp + 0x90], ebx
xor eax, eax
mov ebx, dword [esp + 0xc4]
movsd xmm7, qword [edi + eax*8 - 8]
mulsd xmm7, xmm5
addsd xmm7, qword [ebx + eax*8 - 0x38]
movsd qword [ebx + eax*8 - 0x38], xmm7
inc eax
cmp eax, esi
jb 0x4bb4a8
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 0xc]
lea eax, [eax + ebx + 1]
add eax, esi
lea edi, [edi + eax*8 + 8]
test edi, 0xf
jne 0x4bb558
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0xa4]
movaps xmm7, xmmword [edi + esi*8 - 8]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 0x38]
movaps xmmword [ebx + esi*8 - 0x38], xmm7
movaps xmm7, xmmword [edi + esi*8 + 8]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 0x28]
movaps xmmword [ebx + esi*8 - 0x28], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x18]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 0x18]
movaps xmmword [ebx + esi*8 - 0x18], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 8]
movaps xmmword [ebx + esi*8 - 8], xmm7
add esi, 8
cmp esi, eax
jb 0x4bb4fc
jmp 0x4bb5e3
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0xa4]
movsd xmm7, qword [edi + esi*8 - 8]
movhpd xmm7, qword [edi + esi*8]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 0x38]
movaps xmmword [ebx + esi*8 - 0x38], xmm7
movsd xmm7, qword [edi + esi*8 + 8]
movhpd xmm7, qword [edi + esi*8 + 0x10]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 0x28]
movaps xmmword [ebx + esi*8 - 0x28], xmm7
movsd xmm7, qword [edi + esi*8 + 0x18]
movhpd xmm7, qword [edi + esi*8 + 0x20]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 0x18]
movaps xmmword [ebx + esi*8 - 0x18], xmm7
movsd xmm7, qword [edi + esi*8 + 0x28]
movhpd xmm7, qword [edi + esi*8 + 0x30]
mulpd xmm7, xmm3
addpd xmm7, xmmword [ebx + esi*8 - 8]
movaps xmmword [ebx + esi*8 - 8], xmm7
add esi, 8
cmp esi, eax
jb 0x4bb571
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x90]
cmp edx, dword [esp + 0x30]
jbe 0x4bb62d
mov eax, dword [esp + 0x9c]
lea esi, [ebx*8 + 8]
mov edi, dword [esp + 0x30]
add eax, esi
lea esi, [esi + ecx*8]
add esi, dword [esp + 0xcc]
movsd xmm7, qword [eax + edi*8 - 8]
mulsd xmm7, xmm5
addsd xmm7, qword [esi + edi*8 - 0x38]
movsd qword [esi + edi*8 - 0x38], xmm7
inc edi
cmp edi, edx
jb 0x4bb612
mov eax, dword [esp + 0x88]
mov edi, dword [ebp + 0x10]
lea esi, [ecx + eax*4]
lea eax, [esi + ebx + 1]
lea esi, [edi + eax*8 + 8]
and esi, 0xf
je 0x4bb658
test esi, 7
jne 0x4bba9d
mov esi, 1
lea eax, [esi + 8]
cmp edx, eax
jl 0x4bba9d
mov eax, edx
sub eax, esi
and eax, 7
neg eax
add eax, edx
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x9c]
lea eax, [ebx*8 + 8]
add edi, eax
mov dword [esp + 0xb4], edi
lea eax, [eax + ecx*8]
add eax, dword [esp + 0xd4]
test esi, esi
jbe 0x4bb6cc
mov dword [esp + 0x1c], 0
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x1c]
movsd xmm7, qword [edi + ebx*8 - 8]
mulsd xmm7, xmm6
addsd xmm7, qword [eax + ebx*8 - 0x58]
movsd qword [eax + ebx*8 - 0x58], xmm7
inc ebx
cmp ebx, esi
jb 0x4bb6aa
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
lea edi, [edi + ebx + 1]
add edi, esi
lea eax, [eax + edi*8 + 8]
test al, 0xf
mov eax, dword [esp + 8]
jne 0x4bb757
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0xb4]
movaps xmm7, xmmword [edi + esi*8 - 8]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x58]
movaps xmmword [eax + esi*8 - 0x58], xmm7
movaps xmm7, xmmword [edi + esi*8 + 8]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x48]
movaps xmmword [eax + esi*8 - 0x48], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x18]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x38]
movaps xmmword [eax + esi*8 - 0x38], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x28]
movaps xmmword [eax + esi*8 - 0x28], xmm7
add esi, 8
cmp esi, ebx
jb 0x4bb6fb
jmp 0x4bb7db
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0xb4]
movsd xmm7, qword [edi + esi*8 - 8]
movhpd xmm7, qword [edi + esi*8]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x58]
movaps xmmword [eax + esi*8 - 0x58], xmm7
movsd xmm7, qword [edi + esi*8 + 8]
movhpd xmm7, qword [edi + esi*8 + 0x10]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x48]
movaps xmmword [eax + esi*8 - 0x48], xmm7
movsd xmm7, qword [edi + esi*8 + 0x18]
movhpd xmm7, qword [edi + esi*8 + 0x20]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x38]
movaps xmmword [eax + esi*8 - 0x38], xmm7
movsd xmm7, qword [edi + esi*8 + 0x28]
movhpd xmm7, qword [edi + esi*8 + 0x30]
mulpd xmm7, xmm0
addpd xmm7, xmmword [eax + esi*8 - 0x28]
movaps xmmword [eax + esi*8 - 0x28], xmm7
add esi, 8
cmp esi, ebx
jb 0x4bb769
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x90]
cmp edx, dword [esp + 0x34]
jbe 0x4bb825
mov eax, dword [esp + 0x9c]
lea esi, [ebx*8 + 8]
mov edi, dword [esp + 0x34]
add eax, esi
lea esi, [esi + ecx*8]
add esi, dword [esp + 0xd4]
movsd xmm7, qword [eax + edi*8 - 8]
mulsd xmm7, xmm6
addsd xmm7, qword [esi + edi*8 - 0x58]
movsd qword [esi + edi*8 - 0x58], xmm7
inc edi
cmp edi, edx
jb 0x4bb80a
mov eax, dword [esp + 0x3c]
mov edi, dword [ebp + 0x10]
lea esi, [ecx + eax]
lea eax, [esi + ebx + 1]
lea esi, [edi + eax*8]
and esi, 0xf
je 0x4bb84c
test esi, 7
jne 0x4bbaaa
mov esi, 1
lea eax, [esi + 8]
cmp edx, eax
jl 0x4bbaaa
mov eax, edx
sub eax, esi
and eax, 7
neg eax
add eax, edx
mov dword [esp + 0xa0], eax
mov edi, dword [esp + 0x9c]
lea eax, [ebx*8 + 8]
add edi, eax
mov dword [esp + 0xb0], edi
lea eax, [eax + ecx*8]
add eax, dword [esp + 0xc8]
mov dword [esp + 0xc0], eax
test esi, esi
jbe 0x4bb8c7
mov dword [esp + 0x90], ebx
xor eax, eax
mov ebx, dword [esp + 0xc0]
movsd xmm7, qword [edi + eax*8 - 8]
mulsd xmm7, xmm2
addsd xmm7, qword [ebx + eax*8 - 0x80]
movsd qword [ebx + eax*8 - 0x80], xmm7
inc eax
cmp eax, esi
jb 0x4bb8a5
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 0xc]
lea eax, [eax + ebx + 1]
add eax, esi
lea edi, [edi + eax*8 + 8]
test edi, 0xf
jne 0x4bb958
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0xc0]
mov edi, dword [esp + 0xb0]
movaps xmm7, xmmword [edi + esi*8 - 8]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x80]
movaps xmmword [ebx + esi*8 - 0x80], xmm7
movaps xmm7, xmmword [edi + esi*8 + 8]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x70]
movaps xmmword [ebx + esi*8 - 0x70], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x18]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x60]
movaps xmmword [ebx + esi*8 - 0x60], xmm7
movaps xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x50]
movaps xmmword [ebx + esi*8 - 0x50], xmm7
add esi, 8
cmp esi, eax
jb 0x4bb8fc
jmp 0x4bb9e6
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0xc0]
mov edi, dword [esp + 0xb0]
movsd xmm7, qword [edi + esi*8 - 8]
movhpd xmm7, qword [edi + esi*8]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x80]
movaps xmmword [ebx + esi*8 - 0x80], xmm7
movsd xmm7, qword [edi + esi*8 + 8]
movhpd xmm7, qword [edi + esi*8 + 0x10]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x70]
movaps xmmword [ebx + esi*8 - 0x70], xmm7
movsd xmm7, qword [edi + esi*8 + 0x18]
movhpd xmm7, qword [edi + esi*8 + 0x20]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x60]
movaps xmmword [ebx + esi*8 - 0x60], xmm7
movsd xmm7, qword [edi + esi*8 + 0x28]
movhpd xmm7, qword [edi + esi*8 + 0x30]
mulpd xmm7, xmm4
addpd xmm7, xmmword [ebx + esi*8 - 0x50]
movaps xmmword [ebx + esi*8 - 0x50], xmm7
add esi, 8
cmp esi, eax
jb 0x4bb974
mov dword [esp + 0xa0], eax
mov ebx, dword [esp + 0x90]
cmp edx, dword [esp + 0xa0]
jbe 0x4bba39
lea eax, [ebx*8 + 8]
mov ebx, dword [esp + 0x9c]
add ebx, eax
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0xa0]
add eax, dword [esp + 0xc8]
movsd xmm7, qword [ebx + ecx*8 - 8]
mulsd xmm7, xmm2
addsd xmm7, qword [eax + ecx*8 - 0x80]
movsd qword [eax + ecx*8 - 0x80], xmm7
inc ecx
cmp ecx, edx
jb 0x4bba1e
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x98]
lea edx, [ebx + eax + 1]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x98], edx
cmp edx, dword [esp + 0x94]
jle 0x4bad40
add esp, 0xe4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x28
xor eax, eax
jmp 0x4baf7f
mov dword [esp + 0x28], 0
jmp 0x4bb1b5
mov dword [esp + 0x2c], 0
jmp 0x4bb3e8
mov dword [esp + 0x30], 0
jmp 0x4bb5ee
mov dword [esp + 0x34], 0
jmp 0x4bb7e6
mov dword [esp + 0xa0], 0
jmp 0x4bb9f4