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

Disassembly:
sub esp, 0x6c
mov eax, dword [0x10167944]
or dword [esp + 0x58], 0xffffffff
movss xmm0, dword [0x10069884]
push esi
mov eax, dword [eax + 0x1e]
mov esi, dword [0x1013a370]
push edi
movss dword [esp + 0x64], xmm0
test byte [eax + 0x3e], 1
jne 0x10001a54
cmp byte [esp + 0x78], 0
jne 0x10001bda
cmp dword [esi], 1
jne 0x10001bda
cmp dword [esi + 0x4a], 0
jne 0x10001bda
movzx eax, word [esi + 0x4a]
push eax
call fcn.1000293d
pop ecx
test al, al
je 0x10001eb2
push 0
call fcn.1003a53e
mov esi, eax
pop ecx
test esi, esi
je 0x1000233a
mov ecx, dword [0x1017512c]
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 0x1000233a
and dword [esp + 0x44], 0
lea edx, [esp + 0x44]
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
mov eax, dword [ecx]
push edx
push 3
call dword [eax + 0x74]
sub esp, 0xc
lea esi, [esp + 0x50]
mov edi, esp
lea eax, [esp + 0x2c]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.100258b8
add esp, 4
lea esi, [esp + 0x50]
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.100258b8
add esp, 4
lea esi, [esp + 0x50]
mov edi, esp
movss xmm0, dword [eax + 4]
lea eax, [esp + 0x2c]
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.100258b8
movss xmm0, dword [eax + 8]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.10001905
movss xmm0, dword [0x10069858]
add esp, 0x18
comiss xmm0, dword [esp + 0x58]
ja 0x1000233a
mov ecx, dword [0x10167944]
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 [0x1013a370]
mov eax, dword [eax + 0x4a]
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.100393ce
mov eax, dword [0x10167944]
fstp dword [esp + 0x6c]
movss xmm0, dword [esp + 0x6c]
pop ecx
mov eax, dword [eax + 0x1e]
pop ecx
movzx eax, byte [eax + 0x18d]
comiss xmm0, dword [eax*4 + 0x1008e008]
ja 0x1000233a
mov eax, dword [0x1013a370]
movss xmm0, dword [esp + 0x50]
movss dword [eax + 0x56], xmm0
mov eax, dword [0x1013a370]
movss xmm0, dword [esp + 0x54]
movss dword [eax + 0x5a], xmm0
mov esi, dword [0x1013a370]
jmp 0x10001eb2
xor edi, edi
and dword [esp + 0x6c], edi
mov dword [esp + 0x68], edi
mov eax, dword [0x10167944]
movzx eax, word [eax]
cmp edi, eax
je 0x10001e97
push edi
call fcn.1003a53e
mov esi, eax
pop ecx
test esi, esi
je 0x10001e91
mov ecx, dword [0x1017512c]
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 0x10001e91
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 + 0x38]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.100258b8
add esp, 4
lea esi, [esp + 0x5c]
mov edi, esp
movss xmm0, dword [eax]
lea eax, [esp + 0x20]
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.100258b8
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.100258b8
movss xmm0, dword [eax + 8]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.10001905
movss xmm0, dword [0x10069858]
add esp, 0x18
comiss xmm0, dword [esp + 0x4c]
mov edi, dword [esp + 0x68]
ja 0x10001e91
mov eax, dword [0x1013a370]
mov ecx, dword [0x10167944]
movss xmm1, dword [eax + 0x4e]
movss xmm0, dword [eax + 0x52]
subss xmm0, dword [esp + 0x48]
subss xmm1, dword [esp + 0x44]
mov eax, dword [ecx + 0x1e]
andps xmm0, xmmword [0x100698a0]
andps xmm1, xmmword [0x100698a0]
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 [ecx + edi*4 + 0x26]
sqrtss xmm0, xmm0
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 + 0x78], xmm0
call fcn.100393ce
mov eax, dword [0x10167944]
fstp dword [esp + 0x64]
movss xmm0, dword [esp + 0x64]
pop ecx
mov eax, dword [eax + 0x1e]
pop ecx
movzx eax, byte [eax + 0x18d]
comiss xmm0, dword [eax*4 + 0x1008e008]
ja 0x10001e91
movss xmm0, dword [esp + 0x64]
ucomiss xmm0, dword [0x10069884]
lahf
test ah, 0x44
jp 0x10001d82
movss xmm0, dword [esp + 0x70]
movss dword [esp + 0x64], xmm0
mov ecx, dword [0x101003bc]
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 [0x101003bc]
lea edi, [esp + 0x20]
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 + 0x6c]
push ecx
lea ecx, [esp + 0x40]
push ecx
mov ecx, eax
call dword [edx + 0x24]
mov esi, dword [0x1013a370]
mov edi, dword [esp + 0x68]
cmp byte [esi + edi + 0x62], 0
je 0x10001e17
cmp dword [esi + edi*4 + 0x59b], 0
je 0x10001e17
push edi
call fcn.1003a64d
mov esi, dword [0x1013a370]
pop ecx
push eax
lea ecx, [esi + 0x1a7f]
add ecx, dword [esp + 0x70]
call fcn.10002c27
test al, al
jne 0x10001e97
push edi
call fcn.1000293d
pop ecx
test al, al
je 0x10001e97
mov eax, dword [0x10167944]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
cmp dword [eax + 0x1d1], 2
je 0x10001e97
movss xmm0, dword [esp + 0x64]
movss xmm1, dword [esp + 0x70]
comiss xmm0, xmm1
jb 0x10001e97
cmp byte [esi + 0x44], 0
movss dword [esp + 0x64], xmm1
je 0x10001e72
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2a4]
movss xmm0, dword [eax + 0x540]
ucomiss xmm0, dword [0x10069844]
lahf
test ah, 0x44
jnp 0x10001e97
movss xmm0, dword [esp + 0x44]
movss dword [esi + 0x56], xmm0
mov eax, dword [0x1013a370]
movss xmm0, dword [esp + 0x48]
mov dword [esp + 0x60], edi
movss dword [eax + 0x5a], xmm0
mov esi, dword [0x1013a370]
mov eax, dword [esp + 0x6c]
inc edi
add eax, 0x18
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], eax
cmp eax, 0x5e20
jl 0x10001be4
cmp byte [esi + 0x44], 0
je 0x10002082
mov edi, dword [esi + 0x4a]
cmp edi, 0xffffffff
je 0x10002082
movzx eax, di
push eax
call fcn.1000293d
pop ecx
test al, al
je 0x10002082
push edi
call fcn.1003a53e
mov esi, eax
pop ecx
test esi, esi
je 0x1000233a
mov ecx, dword [0x1017512c]
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 0x1000233a
and dword [esp + 0x44], 0
lea edx, [esp + 0x44]
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
mov eax, dword [ecx]
push edx
push 3
call dword [eax + 0x74]
sub esp, 0xc
lea esi, [esp + 0x50]
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.100258b8
add esp, 4
lea esi, [esp + 0x50]
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.100258b8
add esp, 4
lea esi, [esp + 0x50]
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.100258b8
movss xmm0, dword [eax + 8]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.10001905
lea eax, [esp + 0x2c]
push eax
mov eax, dword [0x1013a370]
mov ecx, dword [eax + 0x4a]
mov eax, dword [0x10167944]
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.100393be
mov eax, dword [0x10167944]
add esp, 0x20
mov eax, dword [eax + 0x1e]
cmp byte [eax + 0x18d], 0x22
mov eax, dword [0x1016f694]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
je 0x1000202b
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10069890]
mov eax, dword [0x1013a370]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10069854]
movss dword [eax + 0x4e], xmm0
mov eax, dword [0x1016f698]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10069890]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1006984c]
jmp 0x10002072
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10069890]
mov eax, dword [0x1013a370]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10069850]
movss dword [eax + 0x4e], xmm0
mov eax, dword [0x1016f698]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10069890]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10069850]
mov eax, dword [0x1013a370]
movss dword [eax + 0x52], xmm0
mov esi, dword [0x1013a370]
cmp byte [esi + 0x46], 0
je 0x10002330
cmp dword [esi + 0x4a], 0xffffffff
je 0x10002330
push dword [esi + 0x4a]
call fcn.1003a53e
mov esi, eax
pop ecx
test esi, esi
je 0x1000233a
mov ecx, dword [0x1017512c]
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 0x1000233a
xorps xmm3, xmm3
xorps xmm1, xmm1
xor esi, esi
movss dword [esp + 0x64], xmm1
movss dword [esp + 0x6c], xmm3
inc esi
movss dword [esp + 0x68], xmm3
movss dword [esp + 0x70], xmm3
cmp esi, 1
jl 0x100020f0
cmp esi, 8
jle 0x1000211a
cmp esi, 0x15
jl 0x100020fa
cmp esi, 0x1a
jle 0x1000211a
cmp esi, 0x1f
jl 0x10002104
cmp esi, 0x24
jle 0x1000211a
cmp esi, 0x29
jl 0x1000210e
cmp esi, 0x2c
jle 0x1000211a
lea eax, [esi - 0x33]
cmp eax, 3
ja 0x10002220
mov eax, dword [edi]
lea ecx, [esp + 0x44]
and dword [esp + 0x44], 0
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
push ecx
push esi
mov ecx, edi
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x44]
lea eax, [esp + 0x20]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x48]
push eax
movss dword [esp + 0x34], xmm0
lea eax, [esp + 0x30]
movss xmm0, dword [esp + 0x50]
push eax
movss dword [esp + 0x3c], xmm0
call fcn.10001905
movss xmm0, dword [0x10069858]
comiss xmm0, dword [esp + 0x30]
pop ecx
pop ecx
ja 0x1000222a
movss xmm2, dword [esp + 0x64]
xorps xmm3, xmm3
movss xmm4, dword [esp + 0x24]
movss xmm5, dword [esp + 0x20]
ucomiss xmm2, xmm3
push 0x44
pop ecx
lahf
test cl, ah
jp 0x100021df
movss xmm1, dword [esp + 0x6c]
ucomiss xmm1, xmm3
lahf
test cl, ah
jp 0x100021df
movss xmm1, dword [esp + 0x68]
ucomiss xmm1, xmm3
movss xmm1, dword [esp + 0x70]
lahf
test cl, ah
jp 0x100021e5
ucomiss xmm1, xmm3
lahf
test cl, ah
jp 0x100021e5
movaps xmm0, xmm5
movaps xmm2, xmm4
movss dword [esp + 0x6c], xmm2
movaps xmm1, xmm0
movss dword [esp + 0x68], xmm0
jmp 0x100021e5
movss xmm1, dword [esp + 0x70]
movaps xmm0, xmm4
minss xmm4, dword [esp + 0x6c]
maxss xmm0, xmm2
movaps xmm2, xmm0
movaps xmm0, xmm5
minss xmm5, dword [esp + 0x68]
maxss xmm0, xmm1
movss dword [esp + 0x64], xmm2
movaps xmm2, xmm4
movss dword [esp + 0x6c], xmm2
movss dword [esp + 0x70], xmm0
movaps xmm0, xmm5
movss dword [esp + 0x68], xmm0
inc esi
cmp esi, 0x36
jle 0x100020e6
movss xmm0, dword [esp + 0x64]
subss xmm0, dword [esp + 0x6c]
mov eax, dword [0x1013a370]
and dword [esp + 0x38], 0
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
and dword [esp + 0x50], 0
and dword [esp + 0x54], 0
and dword [esp + 0x58], 0
cmp byte [eax + 0x49], 0
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x70]
subss xmm0, dword [esp + 0x68]
addss xmm0, dword [0x10069868]
movss dword [esp + 0x70], xmm0
je 0x100022e9
mov ecx, dword [0x10175134]
lea edx, [esp + 0x38]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [edi]
lea ecx, [esp + 0x50]
push ecx
push 1
mov ecx, edi
call dword [eax + 0x74]
push 0xff380fc3
sub esp, 0xc
lea esi, [esp + 0x60]
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.100258b8
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.100258b8
mov ecx, dword [0x1016f6e0]
add esp, 0x10
push eax
call fcn.1003be33
movss xmm0, dword [esp + 0x70]
movss xmm1, dword [esp + 0x64]
mov ecx, dword [0x1016f6e0]
push 0xff
push 0xff380fc3
sub esp, 0x10
movss dword [esp + 0xc], xmm1
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x84]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x80]
movss dword [esp], xmm0
call fcn.1003b8ab
mov eax, dword [esp + 0x60]
pop edi
pop esi
add esp, 0x6c
ret
or eax, 0xffffffff
jmp 0x10002334