Function at 0x4654ac
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 eax, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx + 0x8c]
mov dword [esp + 0x2c], ecx
mov edi, dword [eax + 0x90]
mov dword [esp + 0x1c], edi
mov edx, dword [eax + 0x80]
mov dword [esp + 0x18], edx
mov ebx, dword [eax + 0x94]
mov dword [esp + 0x30], ebx
mov esi, dword [eax + 0x84]
mov dword [esp + 0x14], esi
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x34], eax
add eax, 0x1200
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], 0
lea ecx, [ecx - 1]
mov dword [esp + 0xc], ecx
mov edi, dword [esp + 0x38]
mov ecx, dword [edi + 0x98]
mov edx, dword [esp + 0x2c]
pxor xmm0, xmm0
test edx, edx
jle 0x465836
mov edx, edi
mov dword [esp + 0x28], ecx
lea ebx, [ecx + 0x27]
mov dword [esp + 0x24], ebx
add ebx, ebx
lea ebx, [ebx + ebx]
add ebx, edi
shr ebx, 2
neg ebx
mov eax, ebx
and eax, 3
lea esi, [eax + 3]
mov edi, 5
cmp esi, edi
cmovb esi, edi
cmp dword [esp + 0xc], esi
jb 0x4658e9
test eax, eax
je 0x4658c8
lea esi, [ecx + ecx]
add esi, esi
add esi, edx
mov edi, dword [esp + 0x3c]
add edi, edi
add edi, edi
mov edx, dword [ebp + 8]
movss xmm1, dword [edx + edi]
mulss xmm1, dword [esi + 0x9c]
and ebx, 2
je 0x4658b8
movss xmm2, dword [edx + edi + 4]
mulss xmm2, dword [esi + 0xa0]
addss xmm1, xmm2
cmp eax, 3
jne 0x4658d9
add ecx, 3
movss xmm3, dword [edx + edi + 8]
mulss xmm3, dword [esi + 0xa4]
addss xmm1, xmm3
mov dword [esp + 0x20], 3
mov esi, dword [esp + 0x2c]
sub esi, eax
mov edx, dword [esp + 0x24]
add edx, eax
add edx, edx
add edx, edx
mov ebx, dword [esp + 0x38]
add edx, ebx
mov edi, dword [esp + 0x3c]
add eax, edi
add eax, eax
add eax, eax
add eax, dword [ebp + 8]
mov ebx, esi
shr ebx, 2
shl ebx, 4
lea edi, [ebx + edx]
pxor xmm4, xmm4
sub ebx, 0x10
shr ebx, 4
add ebx, 1
and ebx, 7
je 0x4656bd
cmp ebx, 1
je 0x4656a1
cmp ebx, 2
je 0x46568d
cmp ebx, 3
je 0x465679
cmp ebx, 4
je 0x465665
cmp ebx, 5
je 0x465651
cmp ebx, 6
je 0x46563d
movq xmm4, qword [eax]
movhps xmm4, qword [eax + 8]
mulps xmm4, xmmword [edx]
add edx, 0x10
add eax, 0x10
movq xmm5, qword [eax]
movhps xmm5, qword [eax + 8]
mulps xmm5, xmmword [edx]
addps xmm4, xmm5
add edx, 0x10
add eax, 0x10
movq xmm6, qword [eax]
movhps xmm6, qword [eax + 8]
mulps xmm6, xmmword [edx]
addps xmm4, xmm6
add edx, 0x10
add eax, 0x10
movq xmm7, qword [eax]
movhps xmm7, qword [eax + 8]
mulps xmm7, xmmword [edx]
addps xmm4, xmm7
add edx, 0x10
add eax, 0x10
movq xmm0, qword [eax]
movhps xmm0, qword [eax + 8]
mulps xmm0, xmmword [edx]
addps xmm4, xmm0
add edx, 0x10
add eax, 0x10
movq xmm2, qword [eax]
movhps xmm2, qword [eax + 8]
mulps xmm2, xmmword [edx]
addps xmm4, xmm2
add edx, 0x10
add eax, 0x10
movq xmm3, qword [eax]
movhps xmm3, qword [eax + 8]
mulps xmm3, xmmword [edx]
addps xmm4, xmm3
add edx, 0x10
add eax, 0x10
cmp edi, edx
je 0x465749
movq xmm5, qword [eax]
movhps xmm5, qword [eax + 8]
mulps xmm5, xmmword [edx]
addps xmm4, xmm5
movq xmm6, qword [eax + 0x10]
movhps xmm6, qword [eax + 0x18]
mulps xmm6, xmmword [edx + 0x10]
addps xmm4, xmm6
movq xmm7, qword [eax + 0x20]
movhps xmm7, qword [eax + 0x28]
mulps xmm7, xmmword [edx + 0x20]
addps xmm4, xmm7
movq xmm0, qword [eax + 0x30]
movhps xmm0, qword [eax + 0x38]
mulps xmm0, xmmword [edx + 0x30]
addps xmm4, xmm0
movq xmm2, qword [eax + 0x40]
movhps xmm2, qword [eax + 0x48]
mulps xmm2, xmmword [edx + 0x40]
addps xmm4, xmm2
movq xmm3, qword [eax + 0x50]
movhps xmm3, qword [eax + 0x58]
mulps xmm3, xmmword [edx + 0x50]
addps xmm4, xmm3
movq xmm5, qword [eax + 0x60]
movhps xmm5, qword [eax + 0x68]
mulps xmm5, xmmword [edx + 0x60]
addps xmm4, xmm5
movq xmm6, qword [eax + 0x70]
movhps xmm6, qword [eax + 0x78]
mulps xmm6, xmmword [edx + 0x70]
addps xmm4, xmm6
sub edx, 0xffffff80
sub eax, 0xffffff80
cmp edi, edx
jne 0x4656bd
movaps xmm7, xmm4
movhlps xmm7, xmm4
addps xmm7, xmm4
movaps xmm0, xmm7
shufps xmm0, xmm7, 0x55
addps xmm0, xmm7
addss xmm0, xmm1
test esi, 3
je 0x465822
and esi, 0xfffffffc
mov eax, dword [esp + 0x20]
add eax, esi
add ecx, esi
add ecx, ecx
add ecx, ecx
mov edx, dword [esp + 0x38]
add ecx, edx
mov esi, dword [esp + 0x3c]
lea edi, [esi + eax]
mov ebx, dword [ebp + 8]
movss xmm1, dword [ebx + edi*4]
mulss xmm1, dword [ecx + 0x9c]
addss xmm0, xmm1
lea edx, [eax + 1]
mov edi, dword [esp + 0x2c]
cmp edi, edx
jle 0x465822
add edx, esi
movss xmm4, dword [ebx + edx*4]
mulss xmm4, dword [ecx + 0xa0]
addss xmm0, xmm4
lea edx, [eax + 2]
cmp edi, edx
jle 0x465822
add edx, esi
movss xmm2, dword [ebx + edx*4]
mulss xmm2, dword [ecx + 0xa4]
addss xmm0, xmm2
lea edx, [eax + 3]
cmp edi, edx
jle 0x465822
add edx, esi
movss xmm3, dword [ebx + edx*4]
mulss xmm3, dword [ecx + 0xa8]
addss xmm0, xmm3
lea edx, [eax + 4]
cmp edi, edx
jle 0x465822
add edx, esi
movss xmm5, dword [ebx + edx*4]
mulss xmm5, dword [ecx + 0xac]
addss xmm0, xmm5
add eax, 5
cmp edi, eax
jle 0x465822
add eax, esi
movss xmm6, dword [ebx + eax*4]
mulss xmm6, dword [ecx + 0xb0]
addss xmm0, xmm6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add ecx, eax
mov esi, dword [esp + 0x38]
mov dword [esi + 0x98], ecx
mov edi, dword [esp + 0x34]
movss dword [edi], xmm0
cmp dword [esp + 0x1c], ecx
jg 0x465852
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x98], 0
mov edx, dword [esp + 0x18]
add dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
sub dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
test esi, esi
jg 0x465885
mov edi, dword [esp + 0x38]
mov ecx, dword [edi + 0x88]
add esi, ecx
mov dword [esp + 0x30], esi
add ebx, 1
mov dword [esp + 0x3c], ebx
add dword [esp + 0x34], 4
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x10], edx
jne 0x46550f
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x94], eax
mov eax, dword [esp + 0x3c]
add eax, eax
add eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
add ecx, 1
mov dword [esp + 0x20], 1
jmp 0x4655c6
pxor xmm1, xmm1
mov dword [esp + 0x20], 0
jmp 0x4655c6
add ecx, 2
mov dword [esp + 0x20], 2
jmp 0x4655c6
pxor xmm0, xmm0
xor eax, eax
jmp 0x465777