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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, ebx
imul eax, ebx
push esi
push edi
xor edi, edi
lea eax, [eax + eax*2]
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], edi
test ebx, ebx
jle 0x40e5dd
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x20]
add eax, 8
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x14]
mov ecx, eax
sub ecx, edx
mov dword [esp + 0x60], ecx
lea ecx, [eax + 4]
sub edx, eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x50], edx
sub eax, esi
mov edx, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], ebx
lea ebx, [ebx]
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x64]
lea esi, [esi + edi*4]
add esi, 8
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
jmp 0x40e200
mov eax, dword [esp + 0x48]
xorps xmm0, xmm0
movq qword [esp + 0x6c], xmm0
movq qword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0x70]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x6c]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x88]
xorps xmm6, xmm6
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x84]
movss dword [esp + 0x18], xmm6
movss dword [esp + 0x2c], xmm6
mov dword [esp + 0x30], 4
movss dword [esp + 0x10], xmm0
jmp 0x40e270
movss xmm7, dword [eax - 4]
mov edi, dword [esp + 0x50]
movss xmm1, dword [eax + 4]
xorps xmm0, xmm0
movq qword [esp + 0x78], xmm0
movq qword [esp + 0x90], xmm0
movss xmm0, dword [ecx]
movaps xmm2, xmm0
mulss xmm2, dword [eax - 8]
movaps xmm3, xmm7
mulss xmm3, xmm0
addss xmm2, xmm6
movss xmm6, dword [eax]
addss xmm3, dword [esp + 0x78]
movaps xmm4, xmm6
mulss xmm4, xmm0
movss xmm0, dword [ebx - 4]
mulss xmm7, xmm0
addss xmm4, dword [esp + 0x7c]
mulss xmm6, xmm0
addss xmm7, dword [esp + 0x90]
movaps xmm5, xmm0
movss xmm0, dword [edi + ebx]
mulss xmm5, dword [eax - 8]
mulss xmm1, xmm0
addss xmm5, dword [0x440ca8]
movss dword [esp + 0xc], xmm7
movss xmm7, dword [eax + 0xc]
addss xmm1, xmm2
movss xmm2, dword [eax + 8]
mulss xmm2, xmm0
addss xmm6, dword [esp + 0x94]
addss xmm2, xmm3
movaps xmm3, xmm7
mulss xmm3, xmm0
movss xmm0, dword [ebx]
mulss xmm7, xmm0
addss xmm3, xmm4
movss xmm4, dword [eax + 4]
mulss xmm4, xmm0
addss xmm7, xmm6
addss xmm4, xmm5
movss xmm5, dword [eax + 0x10]
movss dword [esp + 0x20], xmm4
movss xmm4, dword [eax + 8]
mulss xmm4, xmm0
movss xmm0, dword [ecx + 8]
addss xmm4, dword [esp + 0xc]
movss dword [esp + 0xc], xmm4
movaps xmm4, xmm5
mulss xmm4, xmm0
addss xmm4, xmm1
movss xmm1, dword [eax + 0x14]
movaps xmm5, xmm1
movss xmm1, dword [eax + 0x18]
movaps xmm6, xmm1
mulss xmm6, xmm0
mulss xmm5, xmm0
movss xmm0, dword [ebx + 4]
addss xmm6, xmm3
movss xmm3, dword [eax + 0x14]
mulss xmm3, xmm0
addss xmm5, xmm2
movss xmm2, dword [eax + 0x10]
addss xmm3, dword [esp + 0xc]
mulss xmm2, xmm0
mulss xmm1, xmm0
addss xmm2, dword [esp + 0x20]
movss dword [esp + 0xc], xmm3
movss xmm3, dword [ecx + 0xc]
movaps xmm0, xmm3
mulss xmm0, dword [eax + 0x1c]
addss xmm1, xmm7
movaps xmm7, xmm3
mulss xmm7, dword [eax + 0x20]
mulss xmm3, dword [eax + 0x24]
addss xmm0, xmm4
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x5c], xmm1
addss xmm7, xmm5
movss dword [esp + 0x58], xmm0
movss xmm4, dword [ebx + 8]
movss xmm0, dword [edx]
mulss xmm0, dword [esp + 0x58]
addss xmm3, xmm6
mov edi, dword [esp + 0x60]
addss xmm0, dword [esi - 8]
add eax, 0x30
add edx, 4
dec dword [esp + 0x30]
movss dword [esp + 0x1c], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [eax - 0x14]
xorps xmm6, xmm6
addss xmm3, xmm2
movaps xmm2, xmm4
mulss xmm4, dword [eax - 0xc]
mulss xmm2, dword [eax - 0x10]
movss dword [esi - 8], xmm0
movss xmm0, dword [edx - 4]
mulss xmm0, xmm7
addss xmm2, dword [esp + 0xc]
addss xmm4, xmm1
addss xmm0, dword [esi - 4]
movss dword [esi - 4], xmm0
movss xmm0, dword [edx - 4]
mulss xmm0, dword [esp + 0x1c]
addss xmm0, dword [esi]
movss dword [esi], xmm0
movss xmm1, dword [edx - 4]
movaps xmm0, xmm1
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm1
mulss xmm1, xmm4
mulss xmm0, xmm2
addss xmm1, dword [esp + 0x14]
addss xmm0, dword [esp + 0x24]
movss dword [esp + 0x24], xmm0
movaps xmm3, xmm1
movss xmm1, dword [edx + edi - 4]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x58]
movss dword [esp + 0x14], xmm3
addss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmm1
mulss xmm1, dword [esp + 0x1c]
mulss xmm0, xmm7
addss xmm1, dword [esp + 0x34]
addss xmm0, dword [esp + 0x10]
movaps xmm5, xmm1
movss dword [esp + 0x34], xmm5
movaps xmm4, xmm0
movss dword [esp + 0x10], xmm4
jne 0x40e270
movss xmm1, dword [esp + 0x24]
mulss xmm4, dword [esp + 0x18]
mulss xmm0, xmm3
mulss xmm3, dword [esp + 0x2c]
movaps xmm2, xmm5
mulss xmm5, dword [esp + 0x18]
mulss xmm2, xmm1
mulss xmm1, dword [esp + 0x2c]
subss xmm2, xmm0
subss xmm3, xmm5
subss xmm4, xmm1
movss dword [esp + 0x1c], xmm2
movss dword [esp + 0x14], xmm3
movss dword [esp + 0x10], xmm4
movaps xmm0, xmm2
mulss xmm0, xmm2
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call 0x421680
movss xmm1, dword [esp + 0x1c]
cvtsd2ss xmm0, xmm0
mov edi, dword [esp + 0x44]
divss xmm1, xmm0
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x4c]
movss dword [eax + edi*4], xmm1
movss xmm1, dword [esp + 0x14]
divss xmm1, xmm0
mov edx, dword [esp + 0x28]
movss dword [eax + edi*4 + 4], xmm1
movss xmm1, dword [esp + 0x10]
divss xmm1, xmm0
add edi, 3
movss dword [ecx + esi], xmm1
mov ecx, dword [esp + 0x3c]
add ecx, 0x10
add ebx, 0x10
add esi, 0xc
dec dword [esp + 0x38]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], edi
jne 0x40e200
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x20]
add edx, 0x10
dec dword [esp + 0x40]
mov dword [esp + 0x28], edx
jne 0x40e1e0
mov ebx, dword [ebp + 0xc]
jmp 0x40e5e0
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x1c]
test edi, edi
je 0x40e635
lea ecx, [ebx + ebx*2]
test ecx, ecx
jle 0x40e635
movss xmm1, dword [0x4509e8]
movss xmm2, dword [0x450f64]
lea esi, [eax + 8]
dec ecx
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
inc edx
lea esp, [esp]
mov dword [esi - 8], 0
cmp edi, 1
jne 0x40e621
movaps xmm0, xmm1
jmp 0x40e624
movaps xmm0, xmm2
movss dword [esi - 4], xmm0
mov dword [esi], 0
add esi, 0xc
dec edx
jne 0x40e610
push dword [ebp + 0x20]
mov edi, dword [esp + 0x58]
mov esi, dword [ebp + 0x18]
push ebx
push edi
push esi
call fcn.0040efe0
push dword [ebp + 0x24]
push ebx
push edi
push esi
call fcn.0040efe0
add esp, 0x20
imul edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret