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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1904
call fcn.100301a0
mov eax, dword [0x1003f00c]
xor eax, esp
mov dword [esp + 0x1900], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
cmp esi, 0xffffffff
jne 0x10012963
mov esi, dword [edi + 4]
mov ecx, edi
call fcn.10002f70
push ecx
lea ecx, [edi + 4]
movss xmm0, dword [eax]
lea eax, [esp + 0x10c]
movss dword [esp], xmm0
push pe_nt_image_headers32
push 0x80
push eax
mov eax, dword [esi + 0x3c]
call eax
test al, al
je 0x10012fab
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
call dword [eax + 0x20]
mov edx, eax
test edx, edx
je 0x10012fab
mov ecx, dword [0x10055248]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
mov ecx, edi
mov esi, eax
call fcn.10002e80
mov ecx, dword [eax]
lea edx, [ecx + ecx*2]
mov ecx, dword [esi + 0xb0]
lea ecx, [ecx + edx*4]
add ecx, esi
mov dword [esp + 0x18], ecx
je 0x10012fab
movss xmm7, dword [0x1003abd0]
xor ebx, ebx
xor edi, edi
nop word [eax + eax]
lea eax, [ebx + ecx]
add eax, dword [ecx + 8]
je 0x10012fab
movss xmm2, dword [eax + 0x14]
movss xmm4, dword [eax + 0xc]
addss xmm4, dword [eax + 0x18]
movss xmm1, dword [eax + 0x10]
addss xmm1, dword [eax + 0x1c]
addss xmm2, dword [eax + 8]
mov eax, dword [eax]
mulss xmm4, xmm7
mov ecx, dword [0x10055250]
mulss xmm1, xmm7
lea eax, [eax + eax*2]
add eax, eax
mulss xmm2, xmm7
movaps xmm3, xmm4
mulss xmm3, dword [esp + eax*8 + 0x10c]
movaps xmm0, xmm2
mulss xmm0, dword [esp + eax*8 + 0x108]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + eax*8 + 0x110]
addss xmm0, dword [esp + eax*8 + 0x114]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + eax*8 + 0x118]
mulss xmm2, dword [esp + eax*8 + 0x128]
movss dword [esp + 0x10], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + eax*8 + 0x11c]
mulss xmm4, dword [esp + eax*8 + 0x12c]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + eax*8 + 0x120]
mulss xmm1, dword [esp + eax*8 + 0x130]
addss xmm4, xmm2
addss xmm0, dword [esp + eax*8 + 0x124]
addss xmm1, dword [esp + eax*8 + 0x134]
mov eax, dword [ecx]
addss xmm3, xmm0
mov eax, dword [eax + 0x98]
addss xmm4, xmm1
movss dword [esp + 0xc], xmm3
movss dword [esp + 0x14], xmm4
call eax
movss xmm6, dword [esp + 0xc]
mov esi, eax
movss xmm4, dword [esp + 0x10]
movaps xmm1, xmm6
movss xmm5, dword [esp + 0x14]
movaps xmm0, xmm4
mov dword [esp + edi + 0x28], 0
mulss xmm0, dword [esi + 0x30]
mulss xmm1, dword [esi + 0x34]
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, dword [esi + 0x38]
addss xmm0, dword [esi + 0x3c]
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x1003abe8]
jbe 0x10012fab
movss xmm3, dword [0x1003ac00]
movaps xmm0, xmm4
mulss xmm0, dword [esi]
xorps xmm2, xmm2
mov eax, dword [0x100551f8]
add ebx, 0x44
divss xmm3, xmm1
mov ecx, dword [0x100550f4]
movss xmm7, dword [0x1003abd0]
movaps xmm1, xmm6
mulss xmm1, dword [esi + 4]
mulss xmm4, dword [esi + 0x10]
addss xmm1, xmm0
mulss xmm6, dword [esi + 0x14]
movaps xmm0, xmm5
mulss xmm5, dword [esi + 0x18]
mulss xmm0, dword [esi + 8]
addss xmm4, xmm6
addss xmm5, dword [esi + 0x1c]
addss xmm0, dword [esi + 0xc]
addss xmm4, xmm5
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
cdq
sub eax, edx
sar eax, 1
mulss xmm4, xmm3
mulss xmm1, xmm3
mulss xmm4, xmm7
mulss xmm1, xmm7
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
addsd xmm1, qword [0x1003ac40]
cvtsi2sd xmm2, eax
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm1, xmm4
movss dword [esp + edi + 0x20], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mulsd xmm1, xmm0
addsd xmm1, qword [0x1003ac40]
subsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [esp + edi + 0x24], xmm0
add edi, 0xc
cmp edi, 0xd8
jg 0x10012bd3
mov ecx, dword [esp + 0x18]
jmp 0x10012730
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
call dword [eax + 0x24]
shl eax, 5
lea ecx, [edi + 4]
add eax, esi
imul eax, eax, 0x1ba0
add eax, 0x10f78bf8
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
call dword [eax + 0x20]
mov edx, eax
test edx, edx
je 0x10012fab
mov ecx, dword [0x10055248]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
mov ecx, edi
mov esi, eax
call fcn.10002e80
mov ecx, dword [eax]
lea edx, [ecx + ecx*2]
mov ecx, dword [esi + 0xb0]
lea ecx, [ecx + edx*4]
add ecx, esi
mov dword [esp + 0x1c], ecx
je 0x10012fab
movss xmm7, dword [0x1003abd0]
xor ebx, ebx
xor edi, edi
nop
mov eax, dword [ecx + 8]
add eax, ebx
add eax, ecx
je 0x10012fab
movss xmm2, dword [eax + 0x14]
movss xmm4, dword [eax + 0x18]
addss xmm4, dword [eax + 0xc]
movss xmm1, dword [eax + 0x1c]
addss xmm1, dword [eax + 0x10]
addss xmm2, dword [eax + 8]
mov eax, dword [eax]
mulss xmm4, xmm7
mov ecx, dword [0x10055250]
mulss xmm1, xmm7
lea eax, [eax + eax*2]
mulss xmm2, xmm7
movaps xmm3, xmm4
shl eax, 4
add eax, dword [esp + 0x18]
movaps xmm0, xmm2
mulss xmm0, dword [eax]
mulss xmm3, dword [eax + 4]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + 8]
addss xmm0, dword [eax + 0xc]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [eax + 0x10]
mulss xmm2, dword [eax + 0x20]
movss dword [esp + 0x14], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [eax + 0x14]
mulss xmm4, dword [eax + 0x24]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + 0x18]
mulss xmm1, dword [eax + 0x28]
addss xmm4, xmm2
addss xmm0, dword [eax + 0x1c]
addss xmm1, dword [eax + 0x2c]
mov eax, dword [ecx]
addss xmm3, xmm0
mov eax, dword [eax + 0x98]
addss xmm4, xmm1
movss dword [esp + 0x10], xmm3
movss dword [esp + 0xc], xmm4
call eax
movss xmm4, dword [esp + 0x14]
mov esi, eax
movss xmm6, dword [esp + 0x10]
movaps xmm1, xmm4
movss xmm5, dword [esp + 0xc]
movaps xmm0, xmm6
mov dword [esp + edi + 0x28], 0
mulss xmm0, dword [esi + 0x34]
mulss xmm1, dword [esi + 0x30]
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, dword [esi + 0x38]
addss xmm0, dword [esi + 0x3c]
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x1003abe8]
jbe 0x10012fab
movss xmm3, dword [0x1003ac00]
movaps xmm0, xmm4
mulss xmm0, dword [esi]
xorps xmm2, xmm2
mov eax, dword [0x100551f8]
add ebx, 0x44
divss xmm3, xmm1
mov ecx, dword [0x100550f4]
movss xmm7, dword [0x1003abd0]
movaps xmm1, xmm6
mulss xmm1, dword [esi + 4]
mulss xmm4, dword [esi + 0x10]
addss xmm1, xmm0
mulss xmm6, dword [esi + 0x14]
movaps xmm0, xmm5
mulss xmm5, dword [esi + 0x18]
mulss xmm0, dword [esi + 8]
addss xmm4, xmm6
addss xmm5, dword [esi + 0x1c]
addss xmm0, dword [esi + 0xc]
addss xmm4, xmm5
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
cdq
sub eax, edx
sar eax, 1
mulss xmm4, xmm3
mulss xmm1, xmm3
mulss xmm4, xmm7
mulss xmm1, xmm7
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
addsd xmm1, qword [0x1003ac40]
cvtsi2sd xmm2, eax
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm1, xmm4
movss dword [esp + edi + 0x20], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mov ecx, dword [esp + 0x1c]
mulsd xmm1, xmm0
addsd xmm1, qword [0x1003ac40]
subsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [esp + edi + 0x24], xmm0
add edi, 0xc
cmp edi, 0xd8
jle 0x100129d0
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si eax, dword [esp + 0x48]
mov ecx, dword [0x10055270]
mov edx, dword [ecx]
cvttss2si edi, dword [esp + 0x44]
push eax
cvttss2si eax, dword [esp + 0x58]
push edi
push eax
cvttss2si eax, dword [esp + 0x5c]
push eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si ebx, dword [esp + 0x3c]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si esi, dword [esp + 0x38]
mov eax, dword [eax + 0x3c]
push ebx
cvttss2si edx, dword [esp + 0x4c]
push esi
push edx
push edi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edx, dword [esp + 0x30]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si edi, dword [esp + 0x2c]
mov eax, dword [eax + 0x3c]
push edx
push edi
push ebx
push esi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si ebx, dword [esp + 0x24]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si edx, dword [esp + 0x20]
mov eax, dword [eax + 0x3c]
push ebx
push edx
cvttss2si edx, dword [esp + 0x38]
push edx
push edi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edi, dword [esp + 0x78]
mov ecx, dword [0x10055270]
mov edx, dword [ecx]
cvttss2si esi, dword [esp + 0x74]
push edi
cvttss2si eax, dword [esp + 0x88]
push esi
push eax
cvttss2si eax, dword [esp + 0x8c]
push eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edx, dword [esp + 0x6c]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si ebx, dword [esp + 0x68]
mov eax, dword [eax + 0x3c]
push edx
push ebx
push edi
push esi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edi, dword [esp + 0x60]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si esi, dword [esp + 0x5c]
mov eax, dword [eax + 0x3c]
push edi
cvttss2si edx, dword [esp + 0x70]
push esi
push edx
push ebx
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edx, dword [esp + 0x24]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
push edx
cvttss2si edx, dword [esp + 0x24]
push edx
push edi
push esi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si ebx, dword [esp + 0x90]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si esi, dword [esp + 0x8c]
mov eax, dword [eax + 0x3c]
push ebx
cvttss2si edx, dword [esp + 0x28]
push esi
push edx
cvttss2si edx, dword [esp + 0x2c]
push edx
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edx, dword [esp + 0x9c]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si edi, dword [esp + 0x98]
mov eax, dword [eax + 0x3c]
push edx
push edi
push ebx
push esi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si ebx, dword [esp + 0xa8]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si esi, dword [esp + 0xa4]
mov eax, dword [eax + 0x3c]
push ebx
cvttss2si edx, dword [esp + 0xa0]
push esi
push edx
push edi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si eax, dword [esp + 0xb4]
mov ecx, dword [0x10055270]
mov edx, dword [ecx]
push eax
cvttss2si eax, dword [esp + 0xb4]
push eax
mov eax, dword [edx + 0x3c]
push ebx
push esi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edx, dword [esp + 0xe4]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si ebx, dword [esp + 0xe0]
mov eax, dword [eax + 0x3c]
push edx
cvttss2si edx, dword [esp + 0xac]
push ebx
push edx
push esi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edi, dword [esp + 0xf0]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si esi, dword [esp + 0xec]
mov eax, dword [eax + 0x3c]
push edi
cvttss2si edx, dword [esp + 0xe8]
push esi
push edx
push ebx
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si eax, dword [esp + 0xfc]
mov ecx, dword [0x10055270]
mov edx, dword [ecx]
push eax
cvttss2si eax, dword [esp + 0xfc]
push eax
mov eax, dword [edx + 0x3c]
push edi
push esi
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x10055270]
cvttss2si edx, dword [esp + 0xc0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
cvttss2si ebx, dword [esp + 0xbc]
push edx
cvttss2si edx, dword [esp + 0xac]
push ebx
push edx
cvttss2si edx, dword [esp + 0xb0]
push edx
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si edi, dword [esp + 0xcc]
mov ecx, dword [0x10055270]
mov eax, dword [ecx]
cvttss2si esi, dword [esp + 0xc8]
mov eax, dword [eax + 0x3c]
push edi
cvttss2si edx, dword [esp + 0xc4]
push esi
push edx
push ebx
call eax
mov ecx, dword [0x10055270]
push dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cvttss2si eax, dword [esp + 0xd8]
mov ecx, dword [0x10055270]
mov edx, dword [ecx]
push eax
cvttss2si eax, dword [esp + 0xd8]
push eax
mov eax, dword [edx + 0x3c]
push edi
push esi
call eax
mov ecx, dword [esp + 0x190c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1002ee7e
mov esp, ebp
pop ebp
ret 0xc