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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x94
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x10]
mov edi, dword [edx]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ecx]
inc ecx
lea esi, [edi*8]
neg esi
shl edi, 4
add esi, dword [ebp + 0x1c]
mov edx, dword [eax]
cmp ecx, edx
mov ebx, dword [ebx]
lea eax, [esi + edi]
jg 0x45782b
add esi, edi
mov dword [esp + 4], esi
pxor xmm1, xmm1
mov esi, dword [ebp + 0xc]
movaps xmm4, xmm1
mov dword [esp + 0xc], 3
movaps xmm7, xmm1
mov dword [esp], ebx
movaps xmm3, xmm1
mov dword [esp + 0x24], eax
lea edi, [esi + ebx*8]
mov dword [esp + 0x38], edi
mov edi, ebx
shl edi, 4
movaps xmm0, xmm1
add edi, esi
movaps xmm2, xmm1
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov edx, dword [ebp + 8]
mov edi, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x18]
mov eax, dword [edx + edi*8 - 8]
mov edx, dword [edx + edi*8 - 4]
mov dword [esp + 0x1c], edx
mov esi, dword [ecx + eax*4 - 4]
add eax, edx
sub esi, ebx
mov eax, dword [ecx + eax*4]
lea ecx, [ebx + 1]
sub eax, esi
mov dword [esp + 0x18], eax
cmp eax, ebx
jle 0x457719
mov eax, dword [esp + 4]
neg ecx
add ecx, dword [esp + 0x18]
lea edx, [esi + ebx + 1]
inc ecx
lea edx, [eax + edx*8 + 8]
and edx, 0xf
je 0x4573ef
test dl, 7
jne 0x45781b
mov edx, 1
lea eax, [edx + 2]
cmp ecx, eax
jl 0x45781b
mov eax, ecx
sub eax, edx
and eax, 1
neg eax
add eax, ecx
mov dword [esp + 0x80], eax
mov edi, dword [ebp + 0xc]
lea eax, [ebx*8 + 8]
mov dword [esp + 0x3c], ecx
lea ecx, [edi + eax]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
lea ecx, [eax + esi*8]
add edi, ecx
add ecx, dword [ebp + 0x1c]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], edi
add ecx, eax
add eax, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
test edx, edx
mov ecx, dword [esp + 0x3c]
jbe 0x4574fe
mov dword [esp + 0x10], 0
mov dword [esp + 0x3c], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x10]
mov esi, edi
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
movsd xmm5, qword [ecx + ebx*8 - 8]
movsd qword [esp + 0x70], xmm2
movaps xmm6, xmm5
movsd xmm2, qword [edi + ebx*8 - 8]
mulsd xmm6, xmm2
mov edi, dword [esp + 0x84]
addsd xmm4, xmm6
movsd qword [esp + 0x68], xmm4
movaps xmm4, xmm2
movsd xmm6, qword [edi + ebx*8 - 0x10]
mulsd xmm4, xmm6
addsd xmm7, xmm4
movsd xmm4, qword [eax + ebx*8 - 0x20]
mulsd xmm2, xmm4
addsd xmm0, xmm2
movsd xmm2, qword [esi + ebx*8 - 8]
mulsd xmm5, xmm2
mulsd xmm6, xmm2
mulsd xmm4, xmm2
addsd xmm1, xmm5
addsd xmm3, xmm6
inc ebx
movsd xmm2, qword [esp + 0x70]
cmp ebx, edx
addsd xmm2, xmm4
movsd xmm4, qword [esp + 0x68]
jb 0x457473
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0xc]
pxor xmm6, xmm6
pxor xmm5, xmm5
movsd xmm6, xmm4
movsd xmm5, xmm7
pxor xmm4, xmm4
pxor xmm7, xmm7
movsd xmm4, xmm0
movsd xmm7, xmm1
pxor xmm0, xmm0
pxor xmm1, xmm1
movsd xmm0, xmm3
movsd xmm1, xmm2
mov dword [esp + 0x3c], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
movsd xmm2, qword [edi + edx*8 - 8]
movaps xmmword [esp + 0x40], xmm1
movhpd xmm2, qword [edi + edx*8]
movsd xmm1, qword [ebx + edx*8 - 8]
movaps xmm3, xmm2
movhpd xmm1, qword [ebx + edx*8]
mulpd xmm3, xmm1
addpd xmm6, xmm3
movsd xmm3, qword [ecx + edx*8 - 0x10]
movhpd xmm3, qword [ecx + edx*8 - 8]
movaps xmmword [esp + 0x50], xmm6
movaps xmm6, xmm3
mulpd xmm6, xmm1
addpd xmm5, xmm6
movsd xmm6, qword [eax + edx*8 - 0x20]
movhpd xmm6, qword [eax + edx*8 - 0x18]
mulpd xmm1, xmm6
addpd xmm4, xmm1
movaps xmm1, xmmword [esi + edx*8 - 8]
add edx, 2
mulpd xmm2, xmm1
mulpd xmm3, xmm1
mulpd xmm6, xmm1
addpd xmm7, xmm2
addpd xmm0, xmm3
movaps xmm1, xmmword [esp + 0x40]
addpd xmm1, xmm6
movaps xmm6, xmmword [esp + 0x50]
cmp edx, dword [esp + 0x80]
jb 0x457550
movaps xmm2, xmm1
movaps xmm3, xmm0
unpckhpd xmm2, xmm1
unpckhpd xmm3, xmm0
addsd xmm1, xmm2
addsd xmm0, xmm3
movaps xmm2, xmm1
movaps xmm3, xmm0
movaps xmm1, xmm7
movaps xmm0, xmm4
unpckhpd xmm1, xmm7
unpckhpd xmm0, xmm4
addsd xmm7, xmm1
addsd xmm4, xmm0
movaps xmm1, xmm7
movaps xmm0, xmm4
movaps xmm7, xmm5
movaps xmm4, xmm6
unpckhpd xmm7, xmm5
unpckhpd xmm4, xmm6
addsd xmm5, xmm7
addsd xmm6, xmm4
mov ecx, dword [esp + 0x3c]
movaps xmm7, xmm5
mov esi, dword [esp + 8]
movaps xmm4, xmm6
mov ebx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x80]
jbe 0x457719
mov edx, dword [ebp + 0xc]
lea edi, [ebx*8 + 8]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x60], xmm0
lea eax, [edx + edi]
mov dword [esp + 0x14], eax
lea edx, [edi + esi*8]
mov esi, dword [esp + 0x38]
lea eax, [ebx + edx]
mov ecx, dword [esp + 0x14]
add edx, dword [ebp + 0x1c]
movsd qword [esp + 0x68], xmm4
lea ebx, [esi + edi]
add edi, dword [esp + 0x20]
mov esi, dword [esp + 0x80]
movsd xmm4, qword [ecx + esi*8 - 8]
movsd xmm5, qword [edx + esi*8 - 8]
movaps xmm6, xmm4
mulsd xmm6, xmm5
movsd xmm0, qword [esp + 0x68]
addsd xmm0, xmm6
movaps xmm6, xmm5
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [ebx + esi*8 - 0x10]
mulsd xmm6, xmm0
addsd xmm7, xmm6
movsd xmm6, qword [esp + 0x60]
movsd qword [esp + 0x78], xmm7
movsd xmm7, qword [edi + esi*8 - 0x20]
mulsd xmm5, xmm7
addsd xmm6, xmm5
movsd xmm5, qword [eax + esi*8 - 8]
mulsd xmm4, xmm5
mulsd xmm0, xmm5
mulsd xmm5, xmm7
addsd xmm1, xmm4
addsd xmm3, xmm0
addsd xmm2, xmm5
inc esi
movsd qword [esp + 0x60], xmm6
movsd xmm7, qword [esp + 0x78]
cmp esi, dword [esp + 0x3c]
jb 0x45768e
movsd xmm0, qword [esp + 0x60]
movsd xmm4, qword [esp + 0x68]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
lea edx, [ebx + eax + 1]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
cmp edx, dword [esp + 0x28]
jle 0x457397
mov eax, dword [esp + 0x24]
mov ebx, dword [esp]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov esi, dword [edx]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ecx + esi*4 - 4]
movsd xmm5, qword [edx + ecx*8 + 0x10]
subsd xmm5, xmm0
movsd qword [edx + ecx*8 + 0x10], xmm5
movsd xmm0, qword [eax + ecx*8 + 0x10]
subsd xmm0, xmm2
movsd qword [eax + ecx*8 + 0x10], xmm0
movsd xmm0, qword [edi + ebx*8 + 8]
movsd xmm6, qword [edx + ecx*8 + 8]
movsd xmm2, qword [edx + ecx*8 + 0x10]
subsd xmm6, xmm7
mulsd xmm2, xmm0
subsd xmm6, xmm2
movsd qword [edx + ecx*8 + 8], xmm6
movsd xmm7, qword [eax + ecx*8 + 8]
mulsd xmm0, qword [eax + ecx*8 + 0x10]
subsd xmm7, xmm3
movsd xmm3, qword [edi + 0x10]
subsd xmm7, xmm0
movsd qword [eax + ecx*8 + 8], xmm7
movsd xmm2, qword [edx + ecx*8]
movsd xmm0, qword [edx + ecx*8 + 8]
subsd xmm2, xmm4
movsd xmm4, qword [edx + ecx*8 + 0x10]
mulsd xmm4, xmm3
movsd xmm7, qword [edi + 8]
subsd xmm2, xmm4
mulsd xmm0, xmm7
subsd xmm2, xmm0
movsd qword [edx + ecx*8], xmm2
movsd xmm5, qword [eax + ecx*8]
subsd xmm5, xmm1
movsd xmm1, qword [eax + ecx*8 + 0x10]
mulsd xmm1, xmm3
movsd xmm3, qword [eax + ecx*8 + 8]
subsd xmm5, xmm1
mulsd xmm3, xmm7
subsd xmm5, xmm3
movsd qword [eax + ecx*8], xmm5
add esp, 0x94
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x24
mov dword [esp + 0x80], 0
jmp 0x45763d
pxor xmm4, xmm4
movaps xmm1, xmm4
movaps xmm7, xmm1
movaps xmm3, xmm7
movaps xmm0, xmm3
movaps xmm2, xmm0
jmp 0x45773e