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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x40
mov edi, ecx
mov eax, dword [ecx + 0x8c]
mov dword [esp + 0x30], eax
mov ebx, dword [ecx + 0x90]
mov dword [esp + 0x24], ebx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x20], edx
mov esi, dword [ecx + 0x94]
mov dword [esp + 0x34], esi
mov ecx, dword [ecx + 0x84]
mov dword [esp + 0x1c], ecx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x38], ebx
add ebx, 0x2400
mov dword [esp + 0x18], ebx
lea edx, [eax - 1]
mov dword [esp + 0x14], edx
mov esi, eax
shr eax, 2
shl eax, 4
mov dword [esp + 0x10], eax
mov eax, esi
and esi, 0xfffffffc
mov dword [esp + 8], esi
xor ecx, ecx
and eax, 3
mov dword [esp + 0xc], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 0x98]
mov ebx, dword [esp + 0x30]
pxor xmm3, xmm3
movaps xmm0, xmm3
test ebx, ebx
jle 0x466a30
cmp dword [esp + 0x14], 2
jbe 0x466abb
lea edx, [ecx + 0x27]
add edx, edx
add edx, edx
add edx, edi
mov eax, dword [esp + 0x3c]
add eax, eax
add eax, eax
add eax, eax
add eax, dword [ebp + 8]
mov esi, dword [esp + 0x10]
lea ebx, [esi + edx]
mov dword [esp + 0x2c], ebx
pxor xmm6, xmm6
movaps xmm2, xmm6
sub esi, 0x10
shr esi, 4
add esi, 1
and esi, 3
je 0x466ab0
cmp esi, 1
je 0x46681e
cmp esi, 2
je 0x4667e8
movq xmm1, qword [edx]
movhps xmm1, qword [edx + 8]
movq xmm6, qword [eax]
movhps xmm6, qword [eax + 8]
movq xmm4, qword [eax + 0x10]
movhps xmm4, qword [eax + 0x18]
movaps xmm2, xmm6
shufps xmm2, xmm4, 0x88
mulps xmm2, xmm1
shufps xmm6, xmm4, 0xdd
mulps xmm6, xmm1
add edx, 0x10
add eax, 0x20
movq xmm7, qword [edx]
movhps xmm7, qword [edx + 8]
movq xmm3, qword [eax]
movhps xmm3, qword [eax + 8]
movq xmm0, qword [eax + 0x10]
movhps xmm0, qword [eax + 0x18]
movaps xmm5, xmm3
shufps xmm5, xmm0, 0x88
mulps xmm5, xmm7
addps xmm2, xmm5
shufps xmm3, xmm0, 0xdd
mulps xmm3, xmm7
addps xmm6, xmm3
add edx, 0x10
add eax, 0x20
movq xmm7, qword [edx]
movhps xmm7, qword [edx + 8]
movq xmm1, qword [eax]
movhps xmm1, qword [eax + 8]
movq xmm4, qword [eax + 0x10]
movhps xmm4, qword [eax + 0x18]
movaps xmm3, xmm1
shufps xmm3, xmm4, 0x88
mulps xmm3, xmm7
addps xmm2, xmm3
shufps xmm1, xmm4, 0xdd
mulps xmm1, xmm7
addps xmm6, xmm1
add edx, 0x10
add eax, 0x20
cmp dword [esp + 0x2c], edx
je 0x46693e
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
movq xmm0, qword [edx]
movhps xmm0, qword [edx + 8]
movq xmm7, qword [eax]
movhps xmm7, qword [eax + 8]
movq xmm5, qword [eax + 0x10]
movhps xmm5, qword [eax + 0x18]
movaps xmm3, xmm7
shufps xmm3, xmm5, 0x88
mulps xmm3, xmm0
addps xmm3, xmm2
shufps xmm7, xmm5, 0xdd
mulps xmm7, xmm0
addps xmm6, xmm7
movq xmm1, qword [edx + 0x10]
movhps xmm1, qword [edx + 0x18]
movq xmm2, qword [eax + 0x20]
movhps xmm2, qword [eax + 0x28]
movq xmm4, qword [eax + 0x30]
movhps xmm4, qword [eax + 0x38]
movaps xmm0, xmm2
shufps xmm0, xmm4, 0x88
mulps xmm0, xmm1
addps xmm3, xmm0
shufps xmm2, xmm4, 0xdd
mulps xmm2, xmm1
addps xmm6, xmm2
movq xmm7, qword [edx + 0x20]
movhps xmm7, qword [edx + 0x28]
movq xmm1, qword [eax + 0x40]
movhps xmm1, qword [eax + 0x48]
movq xmm5, qword [eax + 0x50]
movhps xmm5, qword [eax + 0x58]
movaps xmm2, xmm1
shufps xmm2, xmm5, 0x88
mulps xmm2, xmm7
addps xmm2, xmm3
shufps xmm1, xmm5, 0xdd
mulps xmm1, xmm7
addps xmm6, xmm1
movq xmm3, qword [edx + 0x30]
movhps xmm3, qword [edx + 0x38]
movq xmm0, qword [eax + 0x60]
movhps xmm0, qword [eax + 0x68]
movq xmm4, qword [eax + 0x70]
movhps xmm4, qword [eax + 0x78]
movaps xmm7, xmm0
shufps xmm7, xmm4, 0x88
mulps xmm7, xmm3
addps xmm2, xmm7
shufps xmm0, xmm4, 0xdd
mulps xmm0, xmm3
addps xmm6, xmm0
add edx, 0x40
sub eax, 0xffffff80
cmp esi, edx
jne 0x466866
mov dword [esp + 0x3c], ebx
movaps xmm1, xmm6
movhlps xmm1, xmm6
addps xmm6, xmm1
movaps xmm3, xmm6
shufps xmm3, xmm6, 0x55
addps xmm3, xmm6
movaps xmm6, xmm2
movhlps xmm6, xmm2
addps xmm6, xmm2
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
addps xmm0, xmm6
mov eax, dword [esp + 0xc]
test eax, eax
je 0x466a24
mov eax, dword [esp + 8]
lea edx, [eax + ecx]
add edx, edx
add edx, edx
lea edx, [edx + edi]
mov dword [esp + 0x2c], edx
movss xmm5, dword [edx + 0x9c]
mov esi, dword [esp + 0x3c]
lea edx, [esi + eax]
add edx, edx
add edx, edx
add edx, edx
add edx, dword [ebp + 8]
movss xmm2, dword [edx]
mulss xmm2, xmm5
addss xmm0, xmm2
mulss xmm5, dword [edx + 4]
addss xmm3, xmm5
lea ebx, [eax + 1]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x30]
lea edx, [eax + 1]
cmp ebx, edx
jle 0x466a24
mov edx, dword [esp + 0x2c]
movss xmm4, dword [edx + 0xa0]
mov edx, dword [esp + 0x28]
add edx, esi
add edx, edx
add edx, edx
add edx, edx
add edx, dword [ebp + 8]
movss xmm7, dword [edx]
mulss xmm7, xmm4
addss xmm0, xmm7
mulss xmm4, dword [edx + 4]
addss xmm3, xmm4
add eax, 2
cmp ebx, eax
jle 0x466a24
mov edx, dword [esp + 0x2c]
movss xmm1, dword [edx + 0xa4]
add eax, esi
add eax, eax
add eax, eax
add eax, eax
add eax, dword [ebp + 8]
movss xmm6, dword [eax]
mulss xmm6, xmm1
addss xmm0, xmm6
mulss xmm1, dword [eax + 4]
addss xmm3, xmm1
mov eax, dword [esp + 0x30]
add ecx, eax
mov dword [edi + 0x98], ecx
mov ebx, dword [esp + 0x38]
movss dword [ebx], xmm0
movss dword [ebx + 4], xmm3
cmp dword [esp + 0x24], ecx
jg 0x466a4d
mov dword [edi + 0x98], 0
mov ecx, dword [esp + 0x20]
add dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
sub dword [esp + 0x34], esi
mov eax, dword [esp + 0x34]
test eax, eax
jg 0x466a7c
mov ebx, dword [edi + 0x88]
add eax, ebx
mov dword [esp + 0x34], eax
add edx, 1
mov dword [esp + 0x3c], edx
add dword [esp + 0x38], 8
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jne 0x466750
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [edi + 0x94], eax
lea eax, [esi + esi]
add eax, eax
add eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov esi, ebx
mov ebx, dword [esp + 0x3c]
jmp 0x466866
mov edx, ecx
pxor xmm3, xmm3
movaps xmm0, xmm3
xor eax, eax
jmp 0x466977