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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x18e0
call fcn.10160990
mov eax, dword [0x1021663c]
push esi
push edi
mov edi, edx
mov dword [esp + 0x30], ecx
mov esi, dword [eax + 0x10]
lea ecx, [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea ecx, [esp + 0x58]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
movzx edx, byte [esp + 0xf]
test al, al
movzx ecx, byte [esp + 0x194]
cmovne edx, ecx
test dl, dl
jne 0x100a0e60
mov eax, dword [0x102187c8]
cmp dword [eax], 0
je 0x100a0e60
test edi, edi
je 0x100a0e60
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a0e60
mov eax, dword [0x1021663c]
lea ecx, [edi + 8]
mov esi, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea ecx, [esp + 0x58]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
movzx edx, byte [esp + 0xf]
test al, al
movzx ecx, byte [esp + 0x194]
cmovne edx, ecx
test dl, dl
jne 0x100a0e60
mov ecx, 0x9e167e91
call fcn.100c3de0
mov edx, dword [0x102187c8]
mov esi, eax
mov ecx, 0x9e167e91
add esi, dword [edx]
call fcn.100c3de0
mov ecx, dword [eax + edi]
cmp ecx, dword [esi]
je 0x100a0e60
mov ecx, 0xc84de670
call fcn.100c3de0
cmp dword [eax + edi + 1], 8
je 0x100a0e60
mov ecx, 0xc84de670
call fcn.100c3de0
cmp dword [eax + edi + 1], 9
je 0x100a0e60
mov ecx, 0x747d37fc
call fcn.100c3de0
cmp dword [eax + edi - 0x14], 0
je 0x100a0e60
mov ecx, edi
call fcn.1009f370
cmp eax, 0xffffffff
je 0x100a0e60
mov ecx, edi
call fcn.1009f370
cmp eax, 1
je 0x100a0e60
mov eax, dword [0x102187c4]
mov dword [esp + 0x18], eax
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x430]
call eax
mov esi, dword [0x10216630]
mov dword [esp + 0x10], eax
test eax, eax
je 0x1009f9b5
mov ecx, 0x8a712bc9
call fcn.100c3de0
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0xc]
movss xmm2, dword [eax + edx]
addss xmm2, dword [ecx + 0x20]
jmp 0x1009f9bd
movss xmm2, dword [0x101ececc]
mov eax, dword [esi + 0xc]
mov ecx, 0x1ceebdef
movss xmm1, dword [eax + 0x10]
call fcn.100c3de0
divss xmm2, xmm1
movss xmm0, dword [eax + edi]
divss xmm0, xmm1
addss xmm2, dword [0x101ecb34]
addss xmm0, dword [0x101ecb34]
cvttss2si eax, xmm2
cvttss2si ecx, xmm0
cmp eax, ecx
jne 0x1009fa3e
mov esi, dword [esp + 0x18]
cmp dword [esi - 0x58], 2
jg 0x1009fa08
mov byte [esi - 0x54], 1
jmp 0x1009fa3e
cmp dword [esi - 0x28], 2
jb 0x1009fa3e
mov edx, dword [esi - 0x2c]
mov ecx, dword [esi - 0x30]
inc edx
mov eax, edx
dec ecx
shr eax, 1
and edx, 1
and ecx, eax
mov eax, dword [esi - 0x34]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + edx*8]
test eax, eax
je 0x1009fa3e
cmp byte [eax + 0x186c], 0
jne 0x1009fa3e
mov eax, dword [eax + 0x1840]
mov dword [esi - 0x50], eax
mov esi, dword [0x102187c4]
movss xmm1, dword [esi - 0x60]
movss xmm2, dword [esi - 0x64]
movss xmm0, dword [esi - 0x5c]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x1009fa79
sqrtsd xmm0, xmm0
jmp 0x1009fa7e
call fcn.10187f60
test byte [esi - 0x88], 1
movss xmm1, dword [0x101ecac4]
cvtsd2ss xmm0, xmm0
je 0x1009fac5
comiss xmm0, xmm1
jbe 0x1009faab
cmp byte [esi - 0xaf], 0
jne 0x1009faab
mov dword [esi - 0xdc], 1
comiss xmm1, xmm0
jae 0x1009fab9
cmp byte [esi - 0xaf], 0
je 0x1009facf
mov dword [esi - 0xdc], 0xb
jmp 0x1009facf
mov dword [esi - 0xdc], 8
mov ecx, 0x9989bf33
call fcn.100c3de0
mov dword [eax + edi], 0x42b20000
mov eax, dword [0x102224e4]
cmp eax, 1
jne 0x1009fb5b
mov ecx, 0x9989bf33
call fcn.100c3de0
mov ecx, dword [esi + 0x17e4]
push 0x1890
push edi
mov dword [eax + edi + 4], ecx
lea eax, [esi + 0x180c]
push eax
mov dword [esi + 0x17e8], 0
mov dword [esi + 0x17f4], 0
mov dword [esi + 0x17f8], 0
mov dword [esi + 0x1800], 0
mov dword [esi + 0x17fc], 0
mov dword [esi + 0x1804], 0
mov byte [esi + 0x17ec], 0
call fcn.10161360
add esp, 0xc
jmp 0x1009fc6a
cmp eax, 8
jne 0x1009fc6a
mov ecx, 0xad2bbff4
call fcn.100c3de0
movss xmm1, dword [eax + edi + 4]
movss xmm0, dword [eax + edi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x1009fb97
sqrtsd xmm0, xmm0
jmp 0x1009fb9c
call fcn.10187f60
movss xmm1, dword [0x101ecda8]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1009fbdc
mov ecx, dword [0x102187b0]
add ecx, 8
mov dword [0x102224e4], 0xb
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x102187b0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x380]
call eax
jmp 0x1009fc6a
movss xmm0, dword [esi + 0x1814]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esi + 0x1810]
fld qword [esp + 0x10]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.10186190
mov eax, dword [esi + 0x181c]
mov ecx, 3
cdq
idiv ecx
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x101ecd9c]
sub edx, 0
je 0x1009fc52
sub edx, 1
je 0x1009fc48
sub edx, 1
jne 0x1009fc6a
addss xmm0, dword [0x101ecdc8]
jmp 0x1009fc5a
subss xmm0, dword [0x101ecdc8]
jmp 0x1009fc5a
addss xmm0, dword [0x101ecdfc]
mov ecx, 0x9989bf33
call fcn.100c3de0
movss dword [eax + edi + 4], xmm0
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x28]
call eax
mov ecx, 0x747d37fc
mov dword [esp + 0x2c], eax
call fcn.100c3de0
movss xmm2, dword [0x101ed3d0]
movss xmm1, dword [0x101ecdfc]
mov ecx, dword [eax + edi - 0x14]
movss xmm0, dword [ecx + 0x7c]
andps xmm0, xmm2
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1009fcc6
mov ecx, 0x747d37fc
call fcn.100c3de0
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + edi - 0x14]
mov eax, dword [eax + 0x7c]
mov dword [ecx*4 + 0x104edea8], eax
jmp 0x1009fcde
cmp byte [0x102187ac], 0
mov ecx, dword [esp + 0x2c]
je 0x1009fcde
mov dword [ecx*4 + 0x104edea8], 0
movss xmm0, dword [ecx*4 + 0x104edea8]
andps xmm0, xmm2
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1009fd25
mov ecx, 0x747d37fc
call fcn.100c3de0
mov ecx, 0x9989bf33
mov eax, dword [eax + edi - 0x14]
movss xmm0, dword [eax + 0x78]
call fcn.100c3de0
mov dword [eax + edi], 0x42b20000
movss dword [eax + edi + 4], xmm0
mov dword [eax + edi + 8], 0
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x1890
mov ecx, 0x747d37fc
mov dword [esp + 0x10], eax
mov byte [eax + 0x10426994], 0
call fcn.100c3de0
lea ecx, [edi + 8]
mov eax, dword [eax + edi - 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x28]
call eax
lea eax, [eax + eax*2]
mov edx, dword [eax*4 + 0x10216640]
cmp edx, dword [eax*4 + 0x10216644]
je 0x1009fda5
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x104277e8], 1
mov eax, dword [edx + 0x11ec]
mov dword [ecx + 0x10427224], eax
mov eax, dword [edx + 0x17b4]
mov dword [ecx + 0x104277ec], eax
mov eax, dword [edx + 0x11e8]
mov dword [ecx + 0x10427220], eax
jmp 0x100a0e60
mov ecx, 0x1ceebdef
call fcn.100c3de0
mov ecx, 0x1ceebdef
lea esi, [eax + edi]
call fcn.100c3de0
mov ecx, dword [edi + 8]
movss xmm0, dword [eax + edi]
mov eax, dword [0x10216630]
subss xmm0, dword [esi + 4]
mov eax, dword [eax + 0xc]
divss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x101ecb34]
cvttss2si eax, xmm0
dec eax
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ecx + 0x28]
lea ecx, [edi + 8]
mov dword [esp + 0x28], eax
call edx
imul eax, eax, 0x1890
lea ecx, [esp + 0x58]
add eax, 0x10426038
push eax
call fcn.1009ef80
cmp byte [esp + 0x9b4], 0
fld qword [0x101eccc8]
je 0x1009fe20
fstp st(0)
jmp 0x1009ff2f
mov ecx, 0x747d37fc
call fcn.100c3de0
mov ecx, dword [0x102187b0]
mov eax, dword [eax + ecx - 0x14]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1009fe43
fstp st(0)
jmp 0x1009ff2f
mov ecx, 0x9989bf33
call fcn.100c3de0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 0x1244]
mulss xmm0, dword [esp + 0x1240]
addss xmm0, dword [eax + edi + 4]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
fxch st(1)
call fcn.101861a0
movss xmm0, dword [0x101ece2c]
fstp dword [esp + 0x10]
movss xmm1, dword [esp + 0x10]
comiss xmm1, dword [0x101ecdfc]
jbe 0x1009fe9b
subss xmm1, xmm0
movss xmm2, dword [0x101ecf2c]
comiss xmm2, xmm1
jbe 0x1009feac
addss xmm1, xmm0
mov eax, dword [esp + 0x18]
movss dword [eax + 0x78], xmm1
cmp byte [esp + 0x1248], 0
je 0x1009ff2f
mov eax, dword [esp + 0x1244]
neg eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101ecd8c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
fld qword [0x101eccc8]
call fcn.101861a0
movss xmm0, dword [0x101ece2c]
fstp dword [esp + 0x10]
movss xmm1, dword [esp + 0x10]
comiss xmm1, dword [0x101ecdfc]
jbe 0x1009ff0e
subss xmm1, xmm0
movss xmm2, dword [0x101ecf2c]
comiss xmm2, xmm1
jbe 0x1009ff1f
addss xmm1, xmm0
mov ecx, 0x9989bf33
call fcn.100c3de0
movss dword [eax + edi + 8], xmm1
lea ecx, [esp + 0x18b0]
call fcn.1003a870
mov eax, dword [esp + 0x18b0]
push 8
push eax
mov dword [esp + 0x18b8], 0
call fcn.1015fe24
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
add esp, 8
mov eax, dword [eax + 0x28]
call eax
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x10], eax
movss xmm1, dword [ecx + 0x80]
comiss xmm1, dword [0x101eca98]
jb 0x1009ffb7
movss xmm0, dword [0x101ecb74]
comiss xmm0, xmm1
jb 0x1009ffb7
ucomiss xmm1, xmm1
lahf
test ah, 0x44
jnp 0x1009ffb7
movzx eax, byte [0x102187bc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 0x80], xmm0
mov ecx, edi
call fcn.1009cfb0
mov ecx, 0x747d37fc
movss dword [esp + 0x2c], xmm0
mov dword [esp + 0x34], 0
call fcn.100c3de0
cmp dword [esp + 0x28], 0
mov eax, dword [eax + edi - 0x14]
movss xmm0, dword [eax + 0x78]
movss dword [esp + 0x3c], xmm0
je 0x100a0e60
mov ecx, 0x91da3d0d
call fcn.100c3de0
mov ecx, 0x394634f0
movss xmm0, dword [eax + edi]
call fcn.100c3de0
test byte [eax + edi], 1
je 0x100a00f3
mov ecx, 0x747d37fc
call fcn.100c3de0
mov eax, dword [eax + edi - 0x14]
cmp byte [eax + 0x120], 0
jne 0x100a00f3
mov ecx, 0x9989bf33
call fcn.100c3de0
push ecx
addss xmm0, dword [eax + edi + 4]
movss dword [esp + 0x28], xmm0
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.1016c24d
add esp, 4
test ax, ax
jle 0x100a005e
xorps xmm0, xmm0
jmp 0x100a00dd
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x101ecf2c]
jb 0x100a007a
movss xmm1, dword [0x101ecdfc]
comiss xmm1, xmm0
jae 0x100a00dd
divss xmm0, dword [0x101ece2c]
push ecx
andps xmm0, xmmword [0x101ed3d0]
movss dword [esp + 0x1c], xmm0
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.101882f9
movss xmm2, dword [esp + 0x28]
xorps xmm1, xmm1
add esp, 4
comiss xmm1, xmm2
fstp dword [esp + 0x20]
jbe 0x100a00c5
movss xmm1, dword [esp + 0x20]
mulss xmm1, dword [0x101ece2c]
addss xmm1, xmm2
jmp 0x100a00da
movss xmm0, dword [esp + 0x20]
movaps xmm1, xmm2
mulss xmm0, dword [0x101ece2c]
subss xmm1, xmm0
movaps xmm0, xmm1
mov ecx, 0x747d37fc
call fcn.100c3de0
mov eax, dword [eax + edi - 0x14]
movss dword [eax + 0x80], xmm0
mov ecx, dword [0x102187b0]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x1890
mov ecx, edi
mov dword [esp + 0x18], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a01a8
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x1048b4a8], 0
je 0x100a01a8
mov eax, dword [eax + 0x1048a600]
mov dword [esp + 0x18], eax
cmp eax, 2
je 0x100a01a8
mov ecx, 0x747d37fc
call fcn.100c3de0
mov ecx, dword [0x102187b0]
mov eax, dword [eax + ecx - 0x14]
mov dword [esp + 0x20], eax
test eax, eax
je 0x100a01a8
cmp dword [esp + 0x28], 3
jle 0x100a016a
movss xmm1, dword [0x101ecddc]
jmp 0x100a0174
mov ecx, edi
call fcn.1009cfb0
movaps xmm1, xmm0
mov ecx, 0x9989bf33
call fcn.100c3de0
movd xmm0, dword [esp + 0x18]
mov ecx, dword [0x102187b0]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
addss xmm0, dword [eax + ecx + 4]
call fcn.100b1160
mov eax, dword [esp + 0x20]
movss dword [eax + 0x80], xmm0
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x28]
call eax
mov esi, dword [esp + 0x30]
mov ecx, edi
lea edx, [esi + 0x3ebc]
call fcn.1009e700
mov edx, edi
mov ecx, esi
call fcn.100a1480
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
test ecx, ecx
je 0x100a0212
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
jne 0x100a0212
mov ecx, 0x103238b0
call fcn.100a3ee0
mov ecx, 0x10323e18
call fcn.100a3ee0
mov esi, 0x103238c8
nop
mov ecx, esi
call fcn.100a3e30
add esi, 0x14
cmp esi, 0x10323ddc
jne 0x100a0200
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [eax + edi + 4]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fld qword [0x101eccc8]
call fcn.101861a0
movss xmm1, dword [0x101ece2c]
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
comiss xmm0, dword [0x101ecdfc]
movss dword [esp + 0x24], xmm0
jbe 0x100a0265
subss xmm0, xmm1
movss dword [esp + 0x24], xmm0
movss xmm2, dword [0x101ecf2c]
comiss xmm2, xmm0
jbe 0x100a027c
addss xmm0, xmm1
movss dword [esp + 0x24], xmm0
mov ecx, edi
call fcn.1009eb80
test al, al
je 0x100a03e3
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [0x101ecd84]
comiss xmm0, dword [eax + edi]
jbe 0x100a03e3
mov eax, dword [esp + 0x10]
mov eax, dword [eax*4 + 0x102225e8]
and eax, 0x80000001
jns 0x100a02be
dec eax
or eax, 0xfffffffe
inc eax
sub eax, 0
je 0x100a033b
sub eax, 1
jne 0x100a03e3
movss xmm0, dword [esp + 0x24]
subss xmm0, dword [0x101eca54]
push ecx
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.1016c24d
add esp, 4
test ax, ax
jle 0x100a02fd
xorps xmm1, xmm1
jmp 0x100a03d7
movss xmm1, dword [esp + 0x20]
comiss xmm1, dword [0x101ecf2c]
jb 0x100a031d
movss xmm0, dword [0x101ecdfc]
comiss xmm0, xmm1
jae 0x100a03d7
movaps xmm0, xmm1
divss xmm0, dword [0x101ece2c]
andps xmm0, xmmword [0x101ed3d0]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x18]
jmp 0x100a03a1
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x101eca54]
push ecx
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.1016c24d
add esp, 4
test ax, ax
jle 0x100a0369
xorps xmm1, xmm1
jmp 0x100a03d7
movss xmm1, dword [esp + 0x20]
comiss xmm1, dword [0x101ecf2c]
jb 0x100a0385
movss xmm0, dword [0x101ecdfc]
comiss xmm0, xmm1
jae 0x100a03d7
movaps xmm0, xmm1
divss xmm0, dword [0x101ece2c]
andps xmm0, xmmword [0x101ed3d0]
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x18]
push ecx
fstp dword [esp]
call fcn.101882f9
movss xmm1, dword [esp + 0x24]
xorps xmm0, xmm0
fstp dword [esp + 0x2c]
add esp, 4
comiss xmm0, xmm1
movss xmm0, dword [esp + 0x28]
mulss xmm0, dword [0x101ece2c]
jbe 0x100a03d3
addss xmm1, xmm0
jmp 0x100a03d7
subss xmm1, xmm0
mov eax, dword [esp + 0x38]
movss dword [eax + 0x80], xmm1
mov ecx, 0x747d37fc
call fcn.100c3de0
mov ecx, 0x9989bf33
mov esi, dword [eax + edi - 0x14]
call fcn.100c3de0
movss xmm0, dword [esi + 0x80]
sub esp, 8
movss xmm1, dword [eax + edi + 4]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.1016cd70
movss xmm0, dword [0x101ecf14]
lea eax, [esp + 0x58]
fstp dword [esp + 0x20]
movss xmm1, dword [esp + 0x20]
lea ecx, [esp + 0x54]
add esp, 8
movss dword [esp + 0x50], xmm1
comiss xmm0, xmm1
mov dword [esp + 0x54], 0x42700000
mov dword [esp + 0x4c], 0xc2700000
movss xmm0, dword [0x101ecd68]
cmovbe ecx, eax
lea eax, [esp + 0x54]
comiss xmm1, dword [0x101ecda8]
cmovbe eax, ecx
mov ecx, 0xec5d89e5
movss xmm1, dword [eax]
andps xmm1, xmmword [0x101ed3d0]
mov eax, dword [0x102187c8]
comiss xmm0, xmm1
mov eax, dword [eax]
mov dword [esp + 0x18], eax
seta byte [esp + 0xf]
call fcn.100c3de0
mov ecx, 0xec5d89e5
mov esi, eax
call fcn.100c3de0
mov ecx, dword [esp + 0x18]
movss xmm3, dword [esi + edi]
movss xmm4, dword [esi + edi + 4]
movss xmm5, dword [esi + edi + 8]
movss xmm0, dword [eax + ecx]
movss xmm1, dword [eax + ecx + 4]
movss xmm2, dword [eax + ecx + 8]
call fcn.1009dd00
movaps xmm0, xmm1
movss dword [esp + 0x44], xmm1
subss xmm0, dword [0x101ecdc8]
call fcn.100b1160
movss xmm1, dword [esp + 0x24]
subss xmm1, xmm0
push ecx
movss dword [esp + 0x24], xmm1
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.1016c24d
add esp, 4
test ax, ax
jg 0x100a0699
movss xmm1, dword [esp + 0x20]
comiss xmm1, dword [0x101ecf2c]
jb 0x100a0525
movss xmm0, dword [0x101ecdfc]
comiss xmm0, xmm1
jae 0x100a0577
movaps xmm0, xmm1
divss xmm0, dword [0x101ece2c]
push ecx
andps xmm0, xmmword [0x101ed3d0]
movss dword [esp + 0x2c], xmm0
fld dword [esp + 0x2c]
fstp dword [esp]
call fcn.101882f9
movss xmm1, dword [esp + 0x24]
xorps xmm0, xmm0
fstp dword [esp + 0x2c]
add esp, 4
comiss xmm0, xmm1
movss xmm0, dword [esp + 0x28]
mulss xmm0, dword [0x101ece2c]
jbe 0x100a0573
addss xmm1, xmm0
jmp 0x100a0577
subss xmm1, xmm0
movss xmm0, dword [0x101ecd84]
comiss xmm0, xmm1
ja 0x100a0699
mov ecx, 0xec5d89e5
call fcn.100c3de0
mov ecx, 0xec5d89e5
mov esi, eax
call fcn.100c3de0
mov ecx, dword [esp + 0x18]
movss xmm3, dword [esi + edi]
movss xmm4, dword [esi + edi + 4]
movss xmm5, dword [esi + edi + 8]
movss xmm0, dword [eax + ecx]
movss xmm1, dword [eax + ecx + 4]
movss xmm2, dword [eax + ecx + 8]
call fcn.1009dd00
movaps xmm0, xmm1
movss dword [esp + 0x44], xmm1
addss xmm0, dword [0x101ecdc8]
call fcn.100b1160
movss xmm1, dword [esp + 0x24]
subss xmm1, xmm0
push ecx
movss dword [esp + 0x1c], xmm1
fld dword [esp + 0x1c]
fstp dword [esp]
movss dword [esp + 0x28], xmm1
call fcn.1016c24d
add esp, 4
test ax, ax
jle 0x100a060f
xorps xmm1, xmm1
jmp 0x100a067d
movss xmm1, dword [esp + 0x24]
comiss xmm1, dword [0x101ecf2c]
jb 0x100a062b
movss xmm0, dword [0x101ecdfc]
comiss xmm0, xmm1
jae 0x100a067d
movaps xmm0, xmm1
divss xmm0, dword [0x101ece2c]
push ecx
andps xmm0, xmmword [0x101ed3d0]
movss dword [esp + 0x1c], xmm0
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.101882f9
movss xmm1, dword [esp + 0x28]
xorps xmm0, xmm0
fstp dword [esp + 0x1c]
add esp, 4
comiss xmm0, xmm1
movss xmm0, dword [esp + 0x18]
mulss xmm0, dword [0x101ece2c]
jbe 0x100a0679
addss xmm1, xmm0
jmp 0x100a067d
subss xmm1, xmm0
movss xmm2, dword [0x101ed3d0]
movss xmm0, dword [0x101ecd84]
andps xmm1, xmm2
comiss xmm0, xmm1
ja 0x100a06a1
xor eax, eax
jmp 0x100a06a6
movss xmm2, dword [0x101ed3d0]
mov eax, 1
movd xmm0, eax
xorps xmm1, xmm1
cvtdq2ps xmm0, xmm0
mov byte [esp + 0xe], 1
andps xmm0, xmm2
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100a06c6
mov byte [esp + 0xe], 0
mov eax, dword [esp + 0x10]
mov esi, dword [eax*4 + 0x102225e8]
cmp esi, 8
je 0x100a0e60
cmp esi, 7
jg 0x100a0e60
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [eax + edi]
comiss xmm0, xmm1
jbe 0x100a0713
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [0x101ecdc0]
comiss xmm0, dword [eax + edi]
ja 0x100a080d
mov ecx, 0x9989bf33
call fcn.100c3de0
comiss xmm1, dword [eax + edi]
jbe 0x100a073f
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [eax + edi]
comiss xmm0, dword [0x101ecf18]
ja 0x100a080d
cmp byte [esp + 0xf], 0
je 0x100a080d
cmp esi, 2
jg 0x100a0782
je 0x100a0782
cmp byte [esp + 0xe], 0
jne 0x100a087d
cmp byte [esp + 0xf], 0
mov eax, 0x1d
mov ecx, 0x3a
cmove eax, ecx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [0x102187b4], xmm1
jmp 0x100a0815
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [eax*4 + 0x102225e8]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
add eax, eax
sub ecx, eax
add ecx, 0xfffffffd
cmp ecx, 4
ja case.0x100a07b1.3
jmp dword [ecx*4 + 0x100a0e88]
movss xmm1, dword [0x101ecda4]
movss dword [0x102187b4], xmm1
jmp 0x100a0815
movss xmm1, dword [0x101ecf10]
movss dword [0x102187b4], xmm1
jmp 0x100a0815
movss xmm1, dword [0x101ecd64]
movss dword [0x102187b4], xmm1
jmp 0x100a0815
movss xmm1, dword [0x101ecf04]
movss dword [0x102187b4], xmm1
jmp 0x100a0815
xorps xmm1, xmm1
movss dword [0x102187b4], xmm1
jmp 0x100a0815
movss xmm1, dword [0x102187b4]
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [eax + edi + 4]
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
fld qword [0x101eccc8]
call fcn.101861a0
movss xmm0, dword [0x101ece2c]
fstp dword [esp + 0x10]
movss xmm1, dword [esp + 0x10]
comiss xmm1, dword [0x101ecdfc]
jbe 0x100a0860
subss xmm1, xmm0
movss xmm2, dword [0x101ecf2c]
comiss xmm2, xmm1
jbe 0x100a0871
addss xmm1, xmm0
mov eax, dword [esp + 0x38]
movss dword [eax + 0x80], xmm1
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [0x102187b8]
mov ecx, edi
movss dword [eax + edi], xmm0
mov eax, dword [edi]
mov eax, dword [eax + 0x380]
call eax
mov esi, dword [esp + 0x30]
cmp byte [esi + 0x3eb7], 0
jne 0x100a08d4
movss xmm1, dword [esp + 0x2c]
movaps xmm0, xmm1
andps xmm0, xmmword [0x101ed3d0]
comiss xmm0, dword [0x101ecda4]
jbe 0x100a08d4
divss xmm1, dword [0x101ecc28]
movss dword [esp + 0x2c], xmm1
cmp byte [esi + 0x3eb5], 0
je 0x100a08f1
mov edx, edi
mov ecx, esi
call fcn.100a0ea0
addss xmm0, dword [esp + 0x3c]
jmp 0x100a0e4a
mov ecx, 0xad2bbff4
call fcn.100c3de0
movss xmm1, dword [eax + edi + 4]
movss xmm0, dword [eax + edi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100a0924
sqrtsd xmm0, xmm0
jmp 0x100a0929
call fcn.10187f60
movss xmm1, dword [0x101ecac4]
movss xmm3, dword [0x101ece68]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jb 0x100a0aed
mov ecx, 0x747d37fc
call fcn.100c3de0
movss xmm0, dword [esp + 0x3c]
mov esi, dword [eax + edi - 0x14]
subss xmm0, dword [esi + 0x80]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
fld qword [0x101eccc8]
call fcn.101861a0
movss xmm0, dword [esp + 0x3c]
comiss xmm0, dword [esi + 0x80]
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
jbe 0x100a09a6
comiss xmm0, dword [0x101ecdfc]
jb 0x100a09bb
subss xmm0, dword [0x101ece2c]
jmp 0x100a09bb
movss xmm1, dword [0x101ecf2c]
comiss xmm1, xmm0
jb 0x100a09bb
addss xmm0, dword [0x101ece2c]
movss xmm3, dword [0x101ece68]
addss xmm0, xmm0
mov esi, dword [esp + 0x30]
xor eax, eax
xorps xmm1, xmm1
comiss xmm1, xmm0
setae al
lea eax, [eax*2 - 1]
mov dword [esp + 0x34], eax
movss xmm2, dword [0x101ed3d0]
mov ecx, 0x747d37fc
call fcn.100c3de0
mov eax, dword [eax + edi - 0x14]
movss xmm0, dword [eax + 0xec]
comiss xmm0, dword [0x101ecac4]
jbe 0x100a0e60
mov ecx, 0x747d37fc
call fcn.100c3de0
mov eax, dword [eax + edi - 0x14]
movss xmm0, dword [eax + 0xf0]
andps xmm0, xmm2
comiss xmm0, dword [0x101ecdd0]
jbe 0x100a0e60
mov byte [esi + 0x3ecc], 0
movss xmm4, dword [esi + 0x3184]
movaps xmm2, xmm4
mov dword [esp + 0x30], 0
mulss xmm2, xmm3
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x100a0bea
movss xmm0, dword [ebp + 0x318c]
mulss xmm0, xmm3
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jp 0x100a0be3
movss xmm0, dword [esi + 0x318c]
movaps xmm2, xmm0
mulss xmm2, xmm3
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x100a0a9d
comiss xmm0, xmm0
ja 0x100a0a9d
mov dword [esi + 0x3ed0], 3
ucomiss xmm4, xmm1
lahf
test ah, 0x44
jp 0x100a0ab0
mov dword [esi + 0x3ed0], 3
ucomiss xmm2, xmm1
mov ecx, 2
mov dword [esp + 0x30], ecx
lahf
test ah, 0x44
jp 0x100a0ad1
comiss xmm0, xmm0
mov eax, 3
cmovae ecx, eax
mov dword [esp + 0x30], ecx
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x100a0ae3
comiss xmm0, xmm0
jae 0x100a0e60
mov byte [esp + 0xe], 1
jmp 0x100a0bf2
cvttss2si eax, dword [esi + 0x32d4]
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100a09e1
mov ecx, 0xad2bbff4
call fcn.100c3de0
movss xmm1, dword [eax + edi + 4]
movss xmm0, dword [eax + edi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100a0b43
sqrtsd xmm0, xmm0
jmp 0x100a0b48
call fcn.10187f60
movss xmm2, dword [0x101ed3d0]
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
comisd xmm0, xmmword [0x101ecbd8]
jbe 0x100a0b9d
movss xmm1, dword [esi + 0x318c]
subss xmm1, dword [esi + 0x3464]
movsd xmm3, qword [0x101eccd8]
andps xmm1, xmm2
comiss xmm1, xmm1
jae 0x100a0bb2
cvtps2pd xmm0, xmm1
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
test eax, eax
jne 0x100a0bad
mov dword [esp + 0x34], 0xffffffff
movss xmm3, dword [0x101ece68]
xorps xmm1, xmm1
jmp 0x100a09e9
comiss xmm1, xmm1
jb 0x100a0b9d
jbe 0x100a0b9d
cvtps2pd xmm0, xmm1
xor ecx, ecx
mov edx, 1
xorps xmm1, xmm1
mulsd xmm0, xmm3
movss xmm3, dword [0x101ece68]
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
test eax, eax
cmove ecx, edx
mov dword [esp + 0x34], ecx
jmp 0x100a09e9
mov byte [esp + 0xe], 0
jmp 0x100a0bf2
mov al, byte [esp + 0xf]
mov byte [esp + 0xe], al
mov ecx, 0x747d37fc
call fcn.100c3de0
mov ecx, dword [eax + edi - 0x14]
call fcn.1014fb90
mov edx, edi
mov ecx, esi
call fcn.100a0ea0
mov eax, 0x3ee0
call fcn.10160990
mov ecx, esp
push esi
call fcn.10090380
mov ecx, edi
call fcn.1009ee30
mov ecx, 0xad2bbff4
call fcn.100c3de0
movss xmm1, dword [eax + edi + 4]
movss xmm0, dword [eax + edi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100a0c5a
sqrtsd xmm0, xmm0
jmp 0x100a0c5f
call fcn.10187f60
cvtsd2ss xmm0, xmm0
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x100a0dbc
mov ecx, 0x394634f0
call fcn.100c3de0
test byte [eax + edi], 1
je 0x100a0dbc
mov ecx, 0xad2bbff4
call fcn.100c3de0
mov ecx, 0xad2bbff4
movss xmm2, dword [eax + edi]
xorps xmm2, xmmword [0x101ed400]
call fcn.100c3de0
movss xmm0, dword [eax + edi + 4]
xorps xmm0, xmmword [0x101ed400]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
xorps xmm0, xmm0
fld qword [esp + 0x10]
cvtss2sd xmm0, xmm2
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.10186190
fstp qword [esp + 0x10]
movsd xmm1, qword [esp + 0x10]
xorps xmm0, xmm0
cvtpd2ps xmm1, xmm1
mulss xmm1, dword [0x101ecda0]
comiss xmm0, xmm1
movss dword [esp + 0x10], xmm1
jbe 0x100a0d06
addss xmm1, dword [0x101ecdfc]
movss dword [esp + 0x10], xmm1
movaps xmm0, xmm1
subss xmm0, dword [0x10222484]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fld qword [0x101eccc8]
call fcn.101861a0
movss xmm0, dword [esp + 0x10]
comiss xmm0, dword [0x10222484]
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
jbe 0x100a0d55
comiss xmm0, dword [0x101ecdfc]
jb 0x100a0d6a
subss xmm0, dword [0x101ece2c]
jmp 0x100a0d6a
movss xmm1, dword [0x101ecf2c]
comiss xmm1, xmm0
jb 0x100a0d6a
addss xmm0, dword [0x101ece2c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
fld qword [0x101eccc8]
call fcn.101861a0
movss xmm0, dword [0x101ece2c]
fstp dword [esp + 0x10]
movss xmm1, dword [esp + 0x10]
comiss xmm1, dword [0x101ecdfc]
jbe 0x100a0da1
subss xmm1, xmm0
movss xmm2, dword [0x101ecf2c]
comiss xmm2, xmm1
jbe 0x100a0db2
addss xmm1, xmm0
movaps xmm0, xmm1
mov ecx, edi
call fcn.1009dee0
mov al, byte [esp + 0xe]
mov ecx, 3
mov byte [esi + 0x3ecc], al
mov eax, dword [esp + 0x30]
mov dword [esi + 0x3ec4], eax
mov eax, dword [esi + 0x3eb0]
cdq
idiv ecx
sub edx, 0
je 0x100a0e24
sub edx, 1
je 0x100a0dff
sub edx, 1
jne 0x100a0e60
mov ecx, 0x9989bf33
call fcn.100c3de0
movss xmm0, dword [eax + edi + 4]
jmp 0x100a0e43
mov ecx, 0x9989bf33
call fcn.100c3de0
movd xmm1, dword [esp + 0x34]
cvtdq2ps xmm1, xmm1
movss xmm0, dword [eax + edi + 4]
mulss xmm1, dword [esp + 0x2c]
subss xmm0, xmm1
jmp 0x100a0e43
mov ecx, 0x9989bf33
call fcn.100c3de0
movd xmm0, dword [esp + 0x34]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x2c]
addss xmm0, dword [eax + edi + 4]
mov ecx, edi
call fcn.1009dee0
mov ecx, 0x747d37fc
call fcn.100c3de0
mov eax, dword [eax + edi - 0x14]
movss dword [eax + 0x80], xmm0
lea ecx, [ebp + 8]
call fcn.1003a950
mov eax, dword [ebp + 8]
push 8
push eax
mov dword [ebp + 8], 0
call fcn.1015fe24
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x3ee0