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

Disassembly:
sub esp, 0x70
mov eax, dword [0x1017eec4]
or dword [esp + 0x64], 0xffffffff
movss xmm0, dword [0x10075d70]
push esi
mov eax, dword [eax + 0x1e]
mov esi, dword [0x1014d750]
push edi
movss dword [esp + 0x74], xmm0
test byte [eax + 0x3e], 1
jne 0x100029df
cmp byte [esp + 0x7c], 0
jne 0x10002b50
cmp dword [esi], 1
jne 0x10002b50
cmp dword [esi + 0x6da], 0
jne 0x10002b50
movzx eax, word [esi + 0x6da]
push eax
call fcn.100039be
pop ecx
test al, al
je 0x10002e06
push 0
call fcn.1003d238
mov esi, eax
pop ecx
test esi, esi
je 0x10003283
mov ecx, dword [0x10193884]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ecx, eax
test ecx, ecx
je 0x10003283
and dword [esp + 0x50], 0
lea edx, [esp + 0x50]
and dword [esp + 0x54], 0
and dword [esp + 0x58], 0
mov eax, dword [ecx]
push edx
push 3
call dword [eax + 0x74]
sub esp, 0xc
lea esi, [esp + 0x5c]
mov edi, esp
lea eax, [esp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
add esp, 4
lea esi, [esp + 0x5c]
mov edi, esp
movss xmm0, dword [eax]
lea eax, [esp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
movss dword [esp + 0x48], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
add esp, 4
lea esi, [esp + 0x5c]
mov edi, esp
movss xmm0, dword [eax + 4]
lea eax, [esp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
movss dword [esp + 0x4c], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
movss xmm0, dword [eax + 8]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.10002890
movss xmm0, dword [0x10075d60]
add esp, 0x18
comiss xmm0, dword [esp + 0x4c]
ja 0x10003283
mov ecx, dword [0x1017eec4]
mov eax, dword [ecx + 0x1e]
mov eax, dword [eax]
mov eax, dword [eax + 0x2a4]
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
mov eax, dword [0x1014d750]
mov eax, dword [eax + 0x6da]
mov eax, dword [ecx + eax*4 + 0x26]
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2a4]
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
call fcn.1003c458
mov eax, dword [0x1014d750]
fstp st(0)
movss xmm0, dword [esp + 0x4c]
add esp, 8
movss dword [eax + 0x6ea], xmm0
mov eax, dword [0x1014d750]
movss xmm0, dword [esp + 0x48]
movss dword [eax + 0x6ee], xmm0
mov esi, dword [0x1014d750]
jmp 0x10002e06
xor edi, edi
mov dword [esp + 0x70], edi
mov eax, dword [0x1017eec4]
movzx eax, word [eax]
cmp edi, eax
je 0x10002df5
push edi
call fcn.1003d238
mov esi, eax
pop ecx
test esi, esi
je 0x10002def
mov ecx, dword [0x10193884]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ecx, eax
test ecx, ecx
je 0x10002def
and dword [esp + 0x5c], 0
lea edx, [esp + 0x5c]
and dword [esp + 0x60], 0
and dword [esp + 0x64], 0
mov eax, dword [ecx]
push edx
push 3
call dword [eax + 0x74]
sub esp, 0xc
lea esi, [esp + 0x68]
mov edi, esp
lea eax, [esp + 0x20]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
add esp, 4
lea esi, [esp + 0x68]
mov edi, esp
movss xmm0, dword [eax]
lea eax, [esp + 0x2c]
push eax
movsd dword es:[edi], dword [esi]
movss dword [esp + 0x48], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
add esp, 4
lea esi, [esp + 0x68]
mov edi, esp
movss xmm0, dword [eax + 4]
lea eax, [esp + 0x38]
push eax
movsd dword es:[edi], dword [esi]
movss dword [esp + 0x4c], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
movss xmm0, dword [eax + 8]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.10002890
movss xmm0, dword [0x10075d60]
add esp, 0x18
comiss xmm0, dword [esp + 0x58]
ja 0x10002deb
mov eax, dword [0x1014d750]
mov ecx, dword [0x1017eec4]
movss xmm1, dword [eax + 0x6e2]
movss xmm0, dword [eax + 0x6e6]
subss xmm0, dword [esp + 0x54]
subss xmm1, dword [esp + 0x50]
mov eax, dword [ecx + 0x1e]
andps xmm0, xmmword [0x10075d90]
andps xmm1, xmmword [0x10075d90]
mov eax, dword [eax]
mulss xmm0, xmm0
mulss xmm1, xmm1
mov eax, dword [eax + 0x2a4]
addss xmm0, xmm1
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
mov eax, dword [esp + 0x74]
sqrtss xmm0, xmm0
mov eax, dword [ecx + eax*4 + 0x26]
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2a4]
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
movss dword [esp + 0x70], xmm0
call fcn.1003c458
movss xmm0, dword [esp + 0x7c]
add esp, 8
ucomiss xmm0, dword [0x10075d70]
fstp st(0)
lahf
test ah, 0x44
jp 0x10002cd6
movss xmm0, dword [esp + 0x68]
movss dword [esp + 0x74], xmm0
mov ecx, dword [0x1011379c]
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov esi, eax
mov ecx, esi
mov edi, dword [esi]
call dword [edi + 0x28]
movzx eax, al
mov ecx, esi
push eax
call dword [edi + 0x2c]
mov ecx, dword [0x1011379c]
lea edi, [esp + 8]
mov esi, dword [eax + 4]
lea esi, [esi + 0x19c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x38]
xor ecx, ecx
push ecx
push ecx
mov edx, dword [eax]
push 1
push 1
push ecx
push ecx
push 1
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call dword [edx + 0x24]
mov esi, dword [0x1014d750]
mov edi, dword [esp + 0x70]
cmp dword [esi + edi*4 + 0x1bda], 0
jne 0x10002df5
cmp byte [esi + 0x6ca], 1
jne 0x10002d62
mov eax, dword [0x1017eec4]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
cmp byte [eax + 0x1a], 0x13
je 0x10002df5
push edi
call fcn.100039be
pop ecx
test al, al
je 0x10002df5
mov eax, dword [0x1017eec4]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
cmp dword [eax + 0x1d1], 2
je 0x10002df5
movss xmm0, dword [esp + 0x74]
movss xmm1, dword [esp + 0x68]
comiss xmm0, xmm1
jb 0x10002df5
cmp byte [esi + 0x261], 0
movss dword [esp + 0x74], xmm1
je 0x10002dc4
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2a4]
movss xmm0, dword [eax + 0x540]
ucomiss xmm0, dword [0x10075d48]
lahf
test ah, 0x44
jnp 0x10002df5
movss xmm0, dword [esp + 0x50]
movss dword [esi + 0x6ea], xmm0
mov eax, dword [0x1014d750]
movss xmm0, dword [esp + 0x54]
mov dword [esp + 0x6c], edi
movss dword [eax + 0x6ee], xmm0
jmp 0x10002def
mov edi, dword [esp + 0x70]
mov esi, dword [0x1014d750]
inc edi
mov dword [esp + 0x70], edi
cmp edi, 0x3ec
jl 0x10002b56
cmp byte [esi + 0x261], 0
je 0x10002fe8
mov edi, dword [esi + 0x6da]
cmp edi, 0xffffffff
je 0x10002fe8
movzx eax, di
push eax
call fcn.100039be
pop ecx
test al, al
je 0x10002fe8
push edi
call fcn.1003d238
mov esi, eax
pop ecx
test esi, esi
je 0x10003283
mov ecx, dword [0x10193884]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ecx, eax
test ecx, ecx
je 0x10003283
and dword [esp + 0x50], 0
lea edx, [esp + 0x50]
and dword [esp + 0x54], 0
and dword [esp + 0x58], 0
mov eax, dword [ecx]
push edx
push 3
call dword [eax + 0x74]
sub esp, 0xc
lea esi, [esp + 0x5c]
mov edi, esp
lea eax, [esp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
add esp, 4
lea esi, [esp + 0x5c]
mov edi, esp
movss xmm0, dword [eax]
lea eax, [esp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
movss dword [esp + 0x48], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
add esp, 4
lea esi, [esp + 0x5c]
mov edi, esp
movss xmm0, dword [eax + 4]
lea eax, [esp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
movss dword [esp + 0x4c], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
movss xmm0, dword [eax + 8]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.10002890
lea eax, [esp + 0x2c]
push eax
mov eax, dword [0x1014d750]
mov ecx, dword [eax + 0x6da]
mov eax, dword [0x1017eec4]
mov eax, dword [eax + ecx*4 + 0x26]
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2a4]
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
call fcn.1003c448
mov eax, dword [0x1017eec4]
add esp, 0x20
mov eax, dword [eax + 0x1e]
cmp byte [eax + 0x18d], 0x22
mov eax, dword [0x1018ddb8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
je 0x10002f8b
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075d80]
mov eax, dword [0x1014d750]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10075d5c]
movss dword [eax + 0x6e2], xmm0
mov eax, dword [0x1018ddbc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075d80]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10075d54]
jmp 0x10002fd5
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075d80]
mov eax, dword [0x1014d750]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10075d58]
movss dword [eax + 0x6e2], xmm0
mov eax, dword [0x1018ddbc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075d80]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10075d58]
mov eax, dword [0x1014d750]
movss dword [eax + 0x6e6], xmm0
mov esi, dword [0x1014d750]
cmp byte [esi + 0x652], 0
je 0x10003279
mov eax, dword [esi + 0x6da]
cmp eax, 0xffffffff
je 0x10003279
push eax
call fcn.1003d238
mov esi, eax
pop ecx
test esi, esi
je 0x10003283
mov ecx, dword [0x10193884]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov edi, eax
test edi, edi
je 0x10003283
xor esi, esi
inc esi
cmp esi, 8
jbe 0x10003063
cmp esi, 0x15
jb 0x10003043
cmp esi, 0x1a
jbe 0x10003063
cmp esi, 0x1f
jb 0x1000304d
cmp esi, 0x24
jbe 0x10003063
cmp esi, 0x29
jb 0x10003057
cmp esi, 0x2c
jbe 0x10003063
lea eax, [esi - 0x33]
cmp eax, 3
ja 0x100031ba
mov eax, dword [edi]
lea ecx, [esp + 0x50]
and dword [esp + 0x50], 0
and dword [esp + 0x54], 0
and dword [esp + 0x58], 0
and dword [esp + 0x5c], 0
and dword [esp + 0x60], 0
and dword [esp + 0x64], 0
push ecx
push 8
mov ecx, edi
call dword [eax + 0x74]
mov eax, dword [edi]
lea ecx, [esp + 0x5c]
push ecx
push 0x2c
mov ecx, edi
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x50]
lea eax, [esp + 0x14]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x54]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x58]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x60]
push eax
movss dword [esp + 0x28], xmm0
lea eax, [esp + 0x30]
movss xmm0, dword [esp + 0x68]
push eax
movss dword [esp + 0x30], xmm0
call fcn.10002890
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.10002890
movss xmm0, dword [0x10075d60]
add esp, 0x10
comiss xmm0, dword [esp + 0x1c]
ja 0x100031ba
comiss xmm0, dword [esp + 0x10]
ja 0x100031ba
movss xmm3, dword [esp + 0x18]
movss xmm4, dword [esp + 0x14]
movaps xmm0, xmm3
subss xmm0, dword [esp + 0xc]
mov ecx, dword [0x1018de20]
push 0
push 0xffff0000
sub esp, 0x10
cvtps2pd xmm2, xmm0
movaps xmm0, xmm4
subss xmm0, dword [esp + 0x20]
mulsd xmm2, xmm2
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
mulss xmm0, dword [0x10075d64]
movaps xmm1, xmm0
movss dword [esp + 0xc], xmm0
mulss xmm1, dword [0x10075d58]
mulss xmm0, dword [0x10075d50]
movss dword [esp + 8], xmm1
mulss xmm1, dword [0x10075d58]
subss xmm3, xmm0
subss xmm4, xmm1
movss dword [esp + 4], xmm3
movss dword [esp], xmm4
call fcn.1003e4da
inc esi
cmp esi, 0x36
jle 0x10003034
mov eax, dword [0x1014d750]
and dword [esp + 0x38], 0
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
and dword [esp + 0x44], 0
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
cmp byte [eax + 0x659], 0
je 0x10003254
mov ecx, dword [0x1019388c]
lea edx, [esp + 0x38]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [edi]
lea ecx, [esp + 0x44]
push ecx
push 1
mov ecx, edi
call dword [eax + 0x74]
push 0xffff0000
sub esp, 0xc
lea esi, [esp + 0x54]
mov edi, esp
lea eax, [esp + 0x18]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
add esp, 0x10
lea esi, [esp + 0x3c]
push eax
sub esp, 0xc
lea eax, [esp + 0x28]
mov edi, esp
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10028127
mov ecx, dword [0x1018de20]
add esp, 0x10
push eax
call fcn.1003ea62
mov ecx, dword [0x1018de20]
push 0
push 0x1c
sub esp, 0x10
and dword [esp + 0xc], 0
and dword [esp + 8], 0
and dword [esp + 4], 0
and dword [esp], 0
call fcn.1003e4da
mov eax, dword [esp + 0x6c]
pop edi
pop esi
add esp, 0x70
ret
or eax, 0xffffffff
jmp 0x1000327d