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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
push esi
mov esi, ecx
movss dword [esp + 0x2c], xmm2
mov ecx, dword [0x101e1db0]
push edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jg 0x10095724
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x30]
jae 0x10095724
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [0x101e1d78]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x78]
call edx
mov edi, eax
test edi, edi
je 0x10095bdf
mov ecx, dword fs:[0x2c]
mov edx, dword [0x101e14f0]
mov esi, dword [ecx + edx*4]
mov ecx, dword [0x101e27d4]
mov dword [esp + 0x9c], esi
cmp ecx, dword [esi + 4]
jle 0x10095306
push 0x101e27d4
call fcn.100b5535
add esp, 4
cmp dword [0x101e27d4], 0xffffffff
jne 0x10095306
mov eax, dword [0x101e2804]
push 0x101e27d4
mov dword [0x101e2840], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e2840]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + ecx]
cmp eax, dword [edi + 0xac]
jg 0x10095bdf
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0xb0]
lea edx, [eax + ecx*4]
add edx, edi
je 0x10095bdf
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [edx + 8]
lea eax, [eax + ecx*4]
add eax, edx
je 0x10095bdf
mov ecx, dword [0x101e094c]
mov dword [esp + 0x84], ecx
test ecx, ecx
je 0x10095bdf
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
mov edi, eax
mov dword [esp + 0x88], edi
test edi, edi
je 0x10095bdf
movss xmm0, dword [edi + 0x104]
lea eax, [esp + 0x34]
mov ecx, dword [0x101e0948]
push eax
movss dword [esp + 0x98], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call dword [0x101e1e48]
mov eax, dword [esp + 0x2c]
movss xmm3, dword [esp + 0x34]
movq xmm0, qword [eax + 0x1c]
movq qword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esp + 0x48]
subss xmm3, dword [esp + 0x44]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x4c], eax
movaps xmm2, xmm0
mulss xmm2, xmm0
movaps xmm1, xmm3
divss xmm0, xmm3
mulss xmm1, xmm3
movss dword [esp + 0x1c], xmm3
addss xmm2, xmm1
movss dword [esp + 0x14], xmm2
call fcn.101321ce
movss xmm1, dword [esp + 0x14]
sqrtss xmm1, xmm1
mulss xmm0, dword [0x1016d6bc]
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x54], xmm0
movss xmm0, dword [0x1016d830]
divss xmm0, xmm1
movss xmm1, dword [esp + 0x3c]
subss xmm1, dword [esp + 0x4c]
mulss xmm0, xmm1
call fcn.101321ce
mulss xmm0, dword [0x1016d844]
mov dword [esp + 0x58], 0
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x1c]
comiss xmm0, dword [0x1016d438]
jb 0x100954d3
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x1016d73c]
movss dword [esp + 0x54], xmm0
movq xmm0, qword [esp + 0x50]
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x64]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [esp + 0x7c]
call fcn.100594b0
mov ecx, dword [0x101e274c]
add esp, 0x10
mov eax, dword [0x101e094c]
mov dword [esp + 0x14], eax
cmp ecx, dword [esi + 4]
jle 0x1009554a
push 0x101e274c
call fcn.100b5535
mov ecx, dword [0x101e274c]
add esp, 4
cmp ecx, 0xffffffff
jne 0x1009554a
mov eax, dword [0x101e2758]
push 0x101e274c
mov dword [0x101e2750], eax
call fcn.100b54eb
mov ecx, dword [0x101e274c]
add esp, 4
mov eax, dword [0x101e2750]
mov edx, dword [esp + 0x14]
movsx eax, word [edx + eax]
add eax, 0xfffffff7
cmp eax, 0x1f
ja case.0x10095566.10
movzx eax, byte [eax + 0x10095bf0]
jmp dword [eax*4 + 0x10095be8]
mov byte [esp + 0x1a], 1
jmp 0x10095579
mov byte [esp + 0x1a], 0
mov eax, dword [0x101e094c]
mov dword [esp + 0x14], eax
cmp ecx, dword [esi + 4]
jle 0x100955bf
push 0x101e274c
call fcn.100b5535
mov ecx, dword [0x101e274c]
add esp, 4
cmp ecx, 0xffffffff
jne 0x100955bf
mov eax, dword [0x101e2758]
push 0x101e274c
mov dword [0x101e2750], eax
call fcn.100b54eb
mov ecx, dword [0x101e274c]
add esp, 4
mov eax, dword [0x101e2750]
mov edx, dword [esp + 0x14]
cmp word [edx + eax], 0x28
je 0x10095622
mov eax, dword [0x101e094c]
mov dword [esp + 0x14], eax
cmp ecx, dword [esi + 4]
jle 0x1009560d
push 0x101e274c
call fcn.100b5535
add esp, 4
cmp dword [0x101e274c], 0xffffffff
jne 0x1009560d
mov eax, dword [0x101e2758]
push 0x101e274c
mov dword [0x101e2750], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e2750]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x1b], 0
cmp word [ecx + eax], 9
jne 0x10095627
mov byte [esp + 0x1b], 1
movss xmm0, dword [0x101e08a0]
comiss xmm0, dword [0x101e08a4]
ja 0x1009571b
mov eax, dword [0x101e0948]
mov dword [esp + 0x14], eax
mov eax, dword [0x101e2744]
cmp eax, dword [esi + 4]
jle 0x1009567f
push 0x101e2744
call fcn.100b5535
add esp, 4
cmp dword [0x101e2744], 0xffffffff
jne 0x1009567f
mov eax, dword [0x101e2734]
push 0x101e2744
mov dword [0x101e271c], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e271c]
mov ecx, dword [esp + 0x14]
test byte [ecx + eax], 2
je 0x1009572c
mov eax, dword [0x101e2520]
cmp byte [eax], 0
jne 0x1009572c
mov eax, dword [0x101e2544]
push ecx
movss xmm0, dword [eax + 0x3474]
mulss xmm0, dword [0x1016d7a4]
movss dword [esp], xmm0
call fcn.1011cad8
fmul dword [0x1016d46c]
add esp, 4
cmp byte [esp + 0x1a], 0
fstp dword [esp + 0x14]
je 0x100956de
movss xmm0, dword [edi + 0x140]
jmp 0x100956e6
movss xmm0, dword [edi + 0x13c]
mulss xmm0, dword [0x1016d7a4]
push ecx
movss dword [esp], xmm0
call fcn.1011cad8
fmul dword [0x1016d46c]
add esp, 4
movss xmm0, dword [esp + 0x14]
fstp dword [esp + 0x1c]
ucomiss xmm0, dword [esp + 0x1c]
lahf
test ah, 0x44
jp 0x100957b4
mov eax, dword [ebp + 8]
mov dword [eax], 0x3f000000
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x101e2544]
push ecx
movss xmm0, dword [eax + 0x3474]
mulss xmm0, dword [0x1016d7a4]
movss dword [esp], xmm0
call fcn.1011cad8
fmul dword [0x1016d46c]
add esp, 4
cmp byte [esp + 0x1a], 0
fstp dword [esp + 0x14]
je 0x1009576a
movss xmm0, dword [edi + 0x148]
jmp 0x10095772
movss xmm0, dword [edi + 0x144]
mulss xmm0, dword [0x1016d7a4]
push ecx
movss dword [esp], xmm0
call fcn.1011cad8
fmul dword [0x1016d46c]
add esp, 4
movss xmm0, dword [esp + 0x14]
fstp dword [esp + 0x1c]
ucomiss xmm0, dword [esp + 0x1c]
lahf
test ah, 0x44
jp 0x100957b4
mov eax, dword [ebp + 8]
mov dword [eax], 0x3f19999a
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x1b], 0
jne 0x100957f2
mov ecx, dword [0x101e2534]
call fcn.1004f970
test al, al
je 0x100957f2
mov eax, dword [0x101e2534]
cmp dword [eax + 0x34], 1
jne 0x100957f2
movss xmm0, dword [esp + 0x30]
mov eax, dword [ebp + 8]
mulss xmm0, dword [0x1016d524]
movss dword [eax], xmm0
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x1c], 0
xor edi, edi
nop dword [eax]
mov eax, dword [0x101e2ed0]
cmp eax, dword [esi + 4]
jle 0x1009583a
push 0x101e2ed0
call fcn.100b5535
add esp, 4
cmp dword [0x101e2ed0], 0xffffffff
jne 0x1009583a
mov eax, dword [0x101e2884]
push 0x101e2ed0
mov dword [0x101e2ed4], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e2ed4]
mov ecx, dword [esp + 0x84]
movss xmm0, dword [eax + ecx]
mov eax, dword [esp + 0x88]
movss dword [esp + 0x14], xmm0
mov eax, dword [eax + 0xf4]
mov dword [esp + 0x8c], eax
mov eax, dword [0x101e094c]
mov dword [esp + 0x20], eax
mov eax, dword [0x101e274c]
cmp eax, dword [esi + 4]
jle 0x100958a8
push 0x101e274c
call fcn.100b5535
add esp, 4
cmp dword [0x101e274c], 0xffffffff
jne 0x100958a8
mov eax, dword [0x101e2758]
push 0x101e274c
mov dword [0x101e2750], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e2750]
mov ecx, dword [esp + 0x20]
movzx esi, word [ecx + eax]
lea eax, [edi + 1]
mov ecx, eax
mov dword [esp + 0x98], eax
call fcn.10059cd0
movss xmm1, dword [0x1016d58c]
xorps xmm0, xmm0
call fcn.10059de0
movss xmm1, dword [0x1016d628]
movss dword [esp + 0x20], xmm0
xorps xmm0, xmm0
call fcn.10059de0
mov ecx, dword [0x101e1e30]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
movss dword [esp + 0x90], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jle 0x10095942
movd xmm0, dword [esp + 0x8c]
lea eax, [esp + 0x28]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [esp + 0x28]
push eax
mulss xmm0, dword [esp + 0x1c]
cvttss2si eax, xmm0
push eax
push 0
push esi
call dword [0x101e1e78]
jmp 0x1009596e
movss xmm1, dword [0x1016d58c]
xorps xmm0, xmm0
call fcn.10059de0
movss xmm1, dword [0x1016d628]
movss dword [esp + 0x28], xmm0
xorps xmm0, xmm0
call fcn.10059de0
movss dword [esp + 0x24], xmm0
movss xmm3, dword [esp + 0x14]
movss xmm0, dword [0x1016d610]
comiss xmm0, xmm3
jbe 0x100959d1
cmp si, 0x1c
jne 0x100959d1
movss xmm2, dword [esp + 0x28]
mov eax, 3
movss xmm1, dword [esp + 0x20]
movaps xmm0, xmm1
dec eax
mulss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm2, xmm0
movd xmm0, eax
movaps xmm4, xmm1
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
ja 0x10095998
movss xmm1, dword [0x1016d58c]
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, xmm4
movss dword [esp + 0x28], xmm1
jmp 0x100959dd
movss xmm1, dword [esp + 0x28]
movss xmm0, dword [esp + 0x20]
mov eax, dword [0x101e2544]
mulss xmm0, dword [eax + 0x3474]
mulss xmm1, dword [eax + 0x3478]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x90]
movss dword [esp + 0x14], xmm1
call fcn.10131200
movaps xmm1, xmm0
movaps xmmword [esp + 0x50], xmm0
shufps xmm1, xmm0, 1
mulss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0x24]
movups xmmword [esp + 0xa0], xmm1
call fcn.1013236e
mulss xmm0, dword [esp + 0x14]
movups xmm1, xmmword [esp + 0xa0]
addss xmm1, xmm0
movaps xmm0, xmmword [esp + 0x50]
mulss xmm0, dword [esp + 0x20]
movaps xmmword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x24]
movups xmmword [esp + 0xa0], xmm1
call fcn.10132d1c
mulss xmm0, dword [esp + 0x14]
lea edx, [esp + 0x44]
mov eax, dword [esp + 0x2c]
movups xmm4, xmmword [esp + 0xa0]
push ecx
movaps xmm1, xmmword [esp + 0x54]
lea ecx, [esp + 0x38]
addss xmm1, xmm0
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x64]
movaps xmm2, xmm4
mulss xmm2, dword [esp + 0x68]
addss xmm3, dword [esp + 0x70]
mulss xmm4, dword [esp + 0x6c]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x7c]
addss xmm2, dword [esp + 0x74]
addss xmm4, dword [esp + 0x78]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x80]
mulss xmm1, dword [esp + 0x84]
addss xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm4, xmm1
push dword [eax + 0x18]
movaps xmm1, xmm2
mulss xmm1, xmm2
push dword [eax + 8]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
push dword [esp + 0x4c]
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
movss xmm1, dword [0x1016d58c]
addss xmm0, dword [0x1016d450]
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, xmm3
movss xmm3, dword [esp + 0xa4]
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x44]
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm1
mulss xmm0, xmm2
mulss xmm1, xmm4
mulss xmm0, xmm3
mulss xmm1, xmm3
addss xmm0, dword [esp + 0x48]
addss xmm1, dword [esp + 0x4c]
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x5c], xmm1
call fcn.10094e00
mov ecx, dword [esp + 0x2c]
add esp, 0x10
test al, al
je 0x10095b80
inc ecx
mov dword [esp + 0x1c], ecx
movss xmm2, dword [0x1016d478]
mov eax, ecx
movss xmm1, dword [esp + 0x30]
sub eax, edi
add eax, 0xff
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
comiss xmm1, xmm0
ja 0x10095bdf
mov edi, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
cmp edi, 0xff
jl 0x10095800
mov eax, dword [ebp + 8]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
comiss xmm0, xmm1
movss dword [eax], xmm0
setae al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret