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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
mov eax, dword [0x1015a368]
xor eax, esp
mov dword [esp + 0x134], eax
mov ecx, dword [ebp + 0x10]
xorps xmm0, xmm0
movss xmm1, dword [0x10155d1c]
xorps xmm6, xmm6
mov eax, dword [ebp + 8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebp + 0x14]
movss xmm7, dword [ebp + 0x1c]
mov dword [esp + 0x28], eax
mov edx, dword [ebp + 0xc]
divss xmm1, dword [ecx + 0xf8]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
add eax, 0x10
mov dword [esp + 0x30], eax
push esi
push edi
mov dword [eax], 4
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x100], 0
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
maxss xmm1, xmm0
subss xmm3, dword [ebp + 0x20]
movss xmm4, dword [eax + 8]
subss xmm2, xmm7
subss xmm4, dword [ebp + 0x24]
movd xmm5, dword [ecx + 0xec]
movss dword [esp + 0x34], xmm1
movaps xmm1, xmm3
mov eax, dword [0x10223f2c]
mulss xmm1, xmm3
movaps xmm0, xmm2
mulss xmm0, xmm2
movss dword [esp + 0x1c], xmm6
cvtdq2ps xmm5, xmm5
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
movss dword [esp + 0x24], xmm5
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
movss xmm1, dword [0x10155c80]
addss xmm0, dword [0x10155b38]
divss xmm1, xmm0
xorps xmm0, xmm0
mulss xmm2, xmm1
mulss xmm3, xmm1
mulss xmm4, xmm1
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x3c], xmm3
movss dword [esp + 0x4c], xmm3
movss dword [esp + 0x18], xmm4
movss dword [esp + 0x50], xmm4
movups xmmword [esp + 0xe0], xmm0
movups xmmword [esp + 0xf0], xmm0
test eax, eax
je 0x100a873f
add eax, 0x59
jmp 0x100a8741
xor eax, eax
mov eax, dword [eax]
xor esi, esi
comiss xmm5, xmm0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x20], esi
movss xmm1, dword [ecx + 0x104]
jbe 0x100a8d7f
nop dword [eax]
nop dword [eax + eax]
subss xmm1, xmm6
mov edi, dword [0x10223958]
movaps xmm0, xmm2
mov dword [esp + 0x8c], esi
mov dword [esp + 0x80], edx
lea ecx, [esp + 0x90]
mov eax, dword [edi]
mulss xmm0, xmm1
movss dword [esp + 0x44], xmm1
mov esi, dword [eax + 0x14]
lea eax, [esp + 0x64]
addss xmm0, xmm7
push eax
lea eax, [ebp + 0x1c]
push eax
movss dword [esp + 0x60], xmm0
movss dword [esp + 0x6c], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm1
addss xmm0, dword [ebp + 0x20]
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x70], xmm0
movaps xmm0, xmm4
mulss xmm0, xmm1
addss xmm0, dword [ebp + 0x24]
movss dword [esp + 0x68], xmm0
movss dword [esp + 0x74], xmm0
call fcn.10055ee0
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0x80]
push ecx
push 0x4600400b
push eax
mov ecx, edi
call esi
mov esi, dword [esp + 0x54]
test esi, esi
je 0x100a888b
movss xmm1, dword [0x10155de0]
lea eax, [esp + 0xe0]
movss xmm0, dword [esp + 0x40]
mulss xmm0, xmm1
push esi
push eax
lea eax, [esp + 0x78]
addss xmm0, dword [esp + 0x60]
push eax
lea eax, [ebp + 0x1c]
push eax
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x4c]
mulss xmm0, xmm1
addss xmm0, dword [esp + 0x6c]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0x28]
mulss xmm0, xmm1
addss xmm0, dword [esp + 0x70]
movss dword [esp + 0x88], xmm0
call fcn.100a7e70
movss xmm0, dword [esp + 0x10c]
ucomiss xmm0, dword [0x10155c80]
lahf
test ah, 0x44
jnp 0x100a8d7f
mulss xmm0, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
movss xmm1, dword [esp + 0x1c]
addss xmm1, xmm0
movss xmm0, dword [edi + 0x108]
movss dword [esp + 0x1c], xmm1
mulss xmm1, dword [0x10155b5c]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_powf
mulss xmm0, dword [esp + 0x24]
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x24], xmm0
test esi, esi
je 0x100a89fe
mov ecx, dword [esp + 0x12c]
test ecx, ecx
je 0x100a89f6
mov eax, dword [ecx]
mov eax, dword [eax + 0x260]
call eax
mov edi, dword [esp + 0x12c]
mov byte [esp + 0x17], al
cmp edi, esi
je 0x100a89bf
test al, al
je 0x100a89dd
mov ecx, dword fs:[0x2c]
mov eax, dword [0x10223928]
mov esi, dword [ecx + eax*4]
mov ecx, dword [0x1022b4c8]
cmp ecx, dword [esi + 4]
jle 0x100a8974
push 0x1022b4c8
call fcn.100d8275
mov ecx, dword [0x1022b4c8]
add esp, 4
cmp ecx, 0xffffffff
jne 0x100a8974
mov eax, dword [0x1022b3c0]
push 0x1022b4c8
mov dword [0x1022b4b4], eax
call fcn.100d822b
mov ecx, dword [0x1022b4c8]
add esp, 4
mov eax, dword [0x1022b4b4]
mov edi, dword [edi + eax]
cmp ecx, dword [esi + 4]
jle 0x100a89b1
push 0x1022b4c8
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4c8], 0xffffffff
jne 0x100a89b1
mov eax, dword [0x1022b3c0]
push 0x1022b4c8
mov dword [0x1022b4b4], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b4b4]
mov ecx, dword [esp + 0x28]
cmp edi, dword [ecx + eax]
je 0x100a89dd
mov ecx, dword [esp + 0x124]
cmp ecx, 1
jb 0x100a89d4
cmp ecx, 7
jbe 0x100a8af6
cmp ecx, 0xa
je 0x100a8af6
mov edi, dword [esp + 0x2c]
xor esi, esi
cmp byte [esp + 0x17], 0
cmovne esi, dword [esp + 0x12c]
mov dword [esp + 0x20], esi
jmp 0x100a8a02
xor esi, esi
mov dword [esp + 0x20], esi
jmp 0x100a8a02
mov esi, dword [esp + 0x20]
cmp byte [ebp + 0x18], 0
jne 0x100a8d7f
movss xmm1, dword [esp + 0x1c]
comiss xmm1, dword [0x10155f74]
jbe 0x100a8a2f
movss xmm0, dword [edi + 0xf8]
xorps xmm1, xmm1
comiss xmm0, xmm1
ja 0x100a8d7f
mov ecx, dword [0x10223968]
movsx edx, word [esp + 0x120]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
movss xmm0, dword [0x10155ba4]
comiss xmm0, dword [eax + 0x58]
ja 0x100a8d7f
movss xmm0, dword [esp + 0x34]
lea eax, [esp + 0x24]
push ecx
movss dword [esp], xmm0
push eax
push dword [esp + 0x40]
lea eax, [esp + 0x54]
push eax
lea eax, [ebp + 0x1c]
push eax
lea eax, [esp + 0xf4]
push eax
push edi
push dword [esp + 0x44]
call fcn.100a82b0
test al, al
je 0x100a8d7f
cmp byte [ebp + 0x2c], 0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x24], xmm0
je 0x100a8aac
mov ecx, dword [esp + 0x30]
cvttss2si eax, xmm0
mov dword [ecx + 4], eax
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x100a8d7f
movss xmm4, dword [esp + 0x50]
movss xmm3, dword [esp + 0x4c]
movss xmm2, dword [esp + 0x48]
movss xmm7, dword [ebp + 0x1c]
movss xmm6, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x44]
mov edx, dword [esp + 0x28]
movss dword [esp + 0x18], xmm4
movss dword [esp + 0x3c], xmm3
movss dword [esp + 0x40], xmm2
jmp 0x100a8780
cmp byte [ebp + 0x18], 0
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x12c]
mov dword [edi], eax
mov eax, dword [esp + 0x130]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
je 0x100a8b21
mov dword [edi + 0xc], 0
xor esi, esi
jmp 0x100a8b23
mov esi, ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x20], eax
mov eax, dword [0x10223928]
movss xmm0, dword [ecx + 0xf0]
mov ecx, dword fs:[0x2c]
movss dword [esp + 0x34], xmm0
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x1022b984]
mov dword [esp + 0x1c], ecx
cmp eax, dword [ecx + 4]
jle 0x100a8b91
push 0x1022b984
call fcn.100d8275
add esp, 4
cmp dword [0x1022b984], 0xffffffff
jne 0x100a8b8d
mov eax, dword [0x1022b41c]
push 0x1022b984
mov dword [0x1022b988], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x1022b988]
mov edx, dword [esp + 0x20]
mov al, byte [edx + eax]
mov byte [esp + 0x17], al
lea eax, [esi - 1]
cmp eax, 6
ja case.0x100a8ba9.2
jmp dword [eax*4 + 0x100a8d9c]
cmp byte [esp + 0x17], 0
movss xmm0, dword [esp + 0x18]
mulss xmm0, dword [0x10155d28]
movss dword [esp + 0x18], xmm0
je case.0x100a8ba9.2
mulss xmm0, dword [0x10155c24]
jmp 0x100a8bf3
movss xmm0, dword [esp + 0x18]
mulss xmm0, dword [0x10155c9c]
jmp 0x100a8bf3
movss xmm0, dword [esp + 0x18]
mulss xmm0, dword [0x10155c58]
movss dword [esp + 0x18], xmm0
mov eax, dword [0x1022b720]
cmp eax, dword [ecx + 4]
jle 0x100a8c3b
push 0x1022b720
call fcn.100d8275
add esp, 4
cmp dword [0x1022b720], 0xffffffff
jne 0x100a8c33
mov eax, dword [0x1022b458]
push 0x1022b720
mov dword [0x1022b728], eax
call fcn.100d822b
add esp, 4
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x1022b728]
mov eax, dword [edx + eax]
mov dword [esp + 0x38], eax
test eax, eax
je 0x100a8d5a
cmp esi, 5
ja 0x100a8d5a
cmp esi, 1
jne 0x100a8cae
mov eax, dword [0x1022b990]
cmp eax, dword [ecx + 4]
jle 0x100a8c97
push 0x1022b990
call fcn.100d8275
add esp, 4
cmp dword [0x1022b990], 0xffffffff
jne 0x100a8c97
mov eax, dword [0x1022b448]
push 0x1022b990
mov dword [0x1022b98c], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b98c]
mov ecx, dword [esp + 0x20]
cmp byte [ecx + eax], 0
je 0x100a8d5a
mov eax, dword [esp + 0x38]
cmp byte [esp + 0x17], 0
movss xmm3, dword [esp + 0x34]
movss xmm4, dword [0x10155c24]
mulss xmm3, xmm4
je 0x100a8ce1
mulss xmm3, dword [0x10155bd8]
movss xmm0, dword [0x10155be4]
movss xmm4, dword [0x10155bf0]
jmp 0x100a8ce9
movss xmm0, dword [0x10155c80]
movss xmm2, dword [esp + 0x18]
movaps xmm1, xmm4
mulss xmm3, xmm2
mulss xmm1, xmm0
movaps xmm0, xmm2
subss xmm0, xmm3
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mulss xmm1, xmm0
comiss xmm1, xmm5
jbe 0x100a8d38
divss xmm5, xmm4
mov eax, edi
subss xmm2, xmm5
cvttss2si ecx, xmm2
mov dword [edi + 4], ecx
pop edi
pop esi
mov ecx, dword [esp + 0x134]
xor ecx, esp
call fcn.100d8158
mov esp, ebp
pop ebp
ret 0x28
movaps xmm2, xmm3
mov eax, edi
cvttss2si ecx, xmm2
mov dword [edi + 4], ecx
pop edi
pop esi
mov ecx, dword [esp + 0x134]
xor ecx, esp
call fcn.100d8158
mov esp, ebp
pop ebp
ret 0x28
movss xmm2, dword [esp + 0x18]
mov eax, edi
cvttss2si ecx, xmm2
mov dword [edi + 4], ecx
pop edi
pop esi
mov ecx, dword [esp + 0x134]
xor ecx, esp
call fcn.100d8158
mov esp, ebp
pop ebp
ret 0x28
mov ecx, dword [esp + 0x13c]
mov eax, dword [esp + 0x30]
pop edi
pop esi
xor ecx, esp
call fcn.100d8158
mov esp, ebp
pop ebp
ret 0x28