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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x108
mov eax, dword [0x10045010]
xor eax, esp
mov dword [esp + 0x104], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [0x1006dc88]
push edi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], esi
call fcn.10014f10
mov edi, eax
test edi, edi
mov dword [esp + 0x4c], edi
sete byte [esp + 0x27]
test edi, edi
jne 0x10016235
mov edx, dword [esi + 0x19bc]
test edx, edx
je 0x100161c8
mov eax, dword [esi + 0x19e4]
mov ecx, dword [esi + 0x19e8]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
jmp 0x100161de
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
test edx, edx
lea ecx, [esp + 0x80]
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0xd0]
cmovne eax, ecx
mov ecx, dword [esp + 0x8c]
movss xmm0, dword [eax]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [eax + 4]
movss dword [esp + 0x58], xmm0
push dword [esp + 0x58]
push dword [esp + 0x58]
call fcn.10014f80
mov esi, dword [0x1006dc88]
mov edi, eax
mov dword [esp + 0x4c], esi
add esp, 8
mov esi, dword [esp + 0x10]
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x2c]
mov edx, eax
mov ecx, dword [edi + 0x224]
or edx, 6
test eax, 0x200
mov dword [esp + 0x88], ecx
cmove edx, eax
mov eax, dword [esi + 0x18e8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x70], eax
cmp ecx, eax
je 0x1001626a
mov dword [edi + 8], edx
jmp 0x10016271
mov eax, dword [edi + 8]
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 0x190c]
lea edx, [esi + 0x190c]
mov dword [esp + 0x40], edx
test ecx, ecx
jne 0x10016289
xor eax, eax
jmp 0x10016293
mov eax, dword [esi + 0x1914]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x88]
cmp ecx, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
je 0x100162be
mov edx, ecx
and edx, 0x5000000
neg edx
sbb edx, edx
and edx, eax
mov dword [esp + 0x5c], edx
lea edx, [esi + 0x190c]
jmp 0x100162c8
mov eax, dword [edi + 0x2f4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x70]
dec eax
mov byte [edi + 0x7e], 0
cmp dword [esp + 0x88], eax
mov eax, dword [edi + 0xa8]
setl byte [esp + 0x17]
mov dword [esp + 0x20], eax
and ecx, 0x4000000
mov dword [esp + 0x1c], ecx
je 0x10016327
mov eax, dword [esi + 0x19ac]
lea esi, [eax + eax*8]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x19a8]
mov eax, dword [edi + 0x8c]
cmp edi, dword [edx + esi*4 + 4]
setne cl
cmp eax, dword [edx + esi*4]
mov edx, dword [esp + 0x40]
setne al
or cl, al
mov eax, dword [esp + 0x20]
or byte [esp + 0x17], cl
cmp byte [esp + 0x17], 0
jne 0x10016338
test eax, eax
jg 0x10016338
mov byte [edi + 0x7c], 0
jmp 0x10016351
or dword [edi + 0xac], 8
or dword [edi + 0xb0], 8
or dword [edi + 0xb4], 8
mov byte [edi + 0x7c], 1
mov ecx, dword [edx + 4]
mov esi, dword [edx]
cmp esi, ecx
jne 0x1001638c
inc esi
test ecx, ecx
je 0x1001636e
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x40]
sar eax, 1
add eax, ecx
jmp 0x10016373
mov eax, 8
cmp eax, esi
mov ecx, edx
cmovg esi, eax
push esi
call fcn.10024d20
mov esi, dword [0x1006dc88]
mov edx, dword [esp + 0x40]
jmp 0x10016390
mov esi, dword [esp + 0x44]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov dword [eax + ecx*4], edi
lea ecx, [edi + 0x1a0]
inc dword [edx]
cmp dword [esp + 0x1c], 0
movss xmm0, dword [esi + 0x1858]
mov dword [esi + 0x1928], edi
mulss xmm0, dword [edi + 0x274]
movss dword [esi + 0x1868], xmm0
movss dword [esi + 0x1854], xmm0
mov eax, dword [edi + 0x1c8]
mov dword [ecx], eax
mov eax, dword [edi + 0x194]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x19ac]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x197c]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x1988]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x1994]
mov dword [ecx + 0x14], eax
je 0x10016436
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x19ac]
lea ecx, [esi + 0x19ac]
lea edx, [eax + eax*8]
mov eax, dword [esi + 0x19a8]
mov dword [eax + edx*4 + 4], edi
lea esi, [eax + edx*4]
push esi
call fcn.10024a70
mov eax, dword [esi]
mov esi, dword [0x1006dc88]
mov dword [edi + 0x8c], eax
cmp dword [esp + 0x20], 0
jle 0x10016451
test dword [esp + 0x18], 0x1000000
jne 0x10016451
mov dword [edi + 0x308], 0
mov edx, dword [esp + 0x10]
mov byte [esp + 0xe], 0
mov byte [esp + 0xf], 0
mov byte [esp + 0x16], 0
mov ecx, dword [edx + 0x19b8]
test ecx, ecx
je 0x100164f6
mov eax, dword [edi + 0xac]
test ecx, eax
setne byte [esp + 0xe]
test ecx, eax
je 0x100164e1
movss xmm1, dword [edx + 0x19e0]
movss xmm0, dword [edx + 0x19dc]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x10041e70]
jbe 0x100164e1
mov eax, dword [edx + 0x19d4]
mov ecx, dword [edx + 0x19d8]
mov dword [edi + 0xb8], eax
mov dword [edi + 0xbc], ecx
mov eax, dword [edx + 0x19dc]
mov ecx, dword [edx + 0x19e0]
and dword [edi + 0xac], 0xfffffff1
mov dword [edi + 0xc0], eax
mov dword [edi + 0xc4], ecx
jmp 0x100164f6
push ecx
add edx, 0x19d4
mov ecx, edi
call fcn.1001aa40
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [edx + 0x19bc]
test ecx, ecx
je 0x10016562
mov eax, dword [edi + 0xb0]
xorps xmm1, xmm1
lea edi, [edx + 0x19e4]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x4c]
and eax, ecx
je 0x1001652f
movss xmm0, dword [edx + 0x19e4]
comiss xmm0, xmm1
jbe 0x1001652f
mov byte [esp + 0xf], 1
jmp 0x10016538
mov byte [esp + 0xf], 0
test eax, eax
je 0x1001654a
movss xmm0, dword [edx + 0x19e8]
comiss xmm0, xmm1
mov byte [esp + 0x16], 1
ja 0x1001654f
mov byte [esp + 0x16], 0
mov edx, dword [esp + 0x30]
push ecx
mov ecx, edi
call fcn.1001ab00
mov edx, dword [esp + 0x14]
add esp, 4
cmp dword [edx + 0x19c0], 0
je 0x10016612
mov eax, dword [edx + 0x19ec]
xorps xmm0, xmm0
mov ecx, dword [edx + 0x19f0]
mov dword [edi + 0x38], ecx
movss xmm3, dword [edi + 0x38]
ucomiss xmm3, xmm0
mov dword [edi + 0x34], eax
lahf
test ah, 0x44
jnp 0x1001662d
mov eax, dword [edi + 8]
test al, 1
je 0x100165a2
xorps xmm2, xmm2
jmp 0x100165c2
movss xmm0, dword [esi + 0x1540]
movss xmm2, dword [esi + 0x1858]
addss xmm0, xmm0
mulss xmm2, dword [edi + 0x274]
addss xmm2, xmm0
test eax, 0x400
je 0x10016600
movss xmm1, dword [esi + 0x1858]
mulss xmm1, dword [edi + 0x274]
movss xmm0, dword [esi + 0x1540]
addss xmm0, xmm0
addss xmm1, dword [edi + 0x148]
addss xmm1, xmm0
addss xmm1, xmm2
addss xmm1, xmm3
movss dword [edi + 0x38], xmm1
jmp 0x1001662d
xorps xmm1, xmm1
addss xmm1, xmm2
addss xmm1, xmm3
movss dword [edi + 0x38], xmm1
jmp 0x1001662d
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x70]
je 0x1001662d
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0
mov ecx, dword [edx + 0x19c4]
test ecx, ecx
je 0x1001665b
mov al, byte [edx + 0x19f4]
mov byte [esp + 0x4b], al
mov eax, dword [edi + 0xb4]
test eax, ecx
je 0x1001665b
and eax, 0xfffffff1
mov dword [edi + 0xb4], eax
mov al, byte [esp + 0x4b]
mov byte [edi + 0x79], al
cmp dword [edx + 0x19cc], 0
je 0x10016671
mov ecx, edi
call fcn.1001a650
mov esi, dword [0x1006dc88]
cmp byte [edi + 0x7c], 0
je 0x1001668c
and dword [edi + 0xac], 0xfffffff7
and dword [edi + 0xb0], 0xfffffff7
and dword [edi + 0xb4], 0xfffffff7
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x70]
je 0x10019a61
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov edx, dword [esp + 0x5c]
and eax, 0x3000000
mov dword [edi + 0x2f4], edx
test edx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov dword [edi + 0x300], edi
mov dword [edi + 0x2fc], edi
mov dword [edi + 0x2f8], edi
je 0x10016707
cmp eax, 0x1000000
jne 0x100166e7
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x2f8]
mov dword [edi + 0x2f8], eax
test ecx, 0x8000000
jne 0x10016707
test ecx, 0x5000000
je 0x10016707
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x2fc]
mov dword [edi + 0x2fc], eax
test dword [edi + 8], 0x800000
je 0x10016729
mov ecx, edi
mov eax, dword [ecx + 0x2f4]
mov ecx, eax
mov dword [edi + 0x300], eax
test dword [ecx + 8], 0x800000
jne 0x10016712
mov byte [edi + 0x76], 1
mov dword [edi + 0x80], 0
mov ecx, dword [edx + 0x1924]
lea eax, [ecx + 1]
mov dword [edx + 0x1924], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 0x84], ecx
mov dword [edi + 0x88], 0
mov dword [edi + 0x1d4], 0xff7fffff
mov dword [edi + 0x1d8], 0xff7fffff
mov dword [edi + 0x1dc], 0x7f7fffff
mov dword [edi + 0x1e0], 0x7f7fffff
mov dword [edi + 0x224], eax
mov ecx, dword [edi + 0x1cc]
cmp ecx, 1
jge 0x10016830
test ecx, ecx
je 0x100167bc
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, 1
cmp eax, ecx
cmovg ecx, eax
mov dword [esp + 0x2c], ecx
cmp ecx, dword [edi + 0x1cc]
jle 0x1001682c
jmp 0x100167c5
mov ecx, 8
mov dword [esp + 0x2c], ecx
inc dword [0x1006dcbc]
lea eax, [ecx*4]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edx, dword [edi + 0x1d0]
add esp, 4
mov esi, eax
test edx, edx
je 0x10016816
mov ecx, dword [edi + 0x1c8]
shl ecx, 2
push ecx
push edx
push esi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 0x1d0]
add esp, 0xc
test eax, eax
je 0x1001680c
dec dword [0x1006dcbc]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x1d0], esi
mov esi, dword [0x1006dc88]
mov dword [edi + 0x1cc], eax
mov edx, dword [esp + 0x10]
mov dword [edi + 0x1c8], 1
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x34]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1001685d
movss xmm0, dword [edi + 0xe0]
subss xmm0, dword [edi + 0xc]
addss xmm0, dword [edi + 0x54]
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0x38]
ucomiss xmm0, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
lahf
test ah, 0x44
jp 0x10016888
movss xmm0, dword [edi + 0xe4]
subss xmm0, dword [edi + 0x10]
addss xmm0, dword [edi + 0x58]
addss xmm2, dword [edi + 0x3c]
cvttss2si eax, xmm0
movd xmm0, eax
mov eax, dword [edi + 0xa4]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [edi + 0x40]
movss dword [edi + 0x2c], xmm2
movss dword [edi + 0x30], xmm0
test eax, eax
jle 0x100168b8
dec eax
mov dword [edi + 0xa4], eax
mov eax, dword [edi + 0xa8]
test eax, eax
jle 0x100168c9
dec eax
mov dword [edi + 0xa8], eax
cmp byte [esp + 0x27], 0
mov al, byte [esp + 0xf]
mov cl, byte [esp + 0x16]
je 0x100168ea
test al, al
je 0x100168e0
test cl, cl
jne 0x100168ea
mov dword [edi + 0xa8], 1
cmp byte [esp + 0x17], 0
je 0x1001693e
test dword [esp + 0x18], 0x6000000
je 0x1001693e
test byte [esp + 0x18], 0x40
mov dword [edi + 0xa8], 1
je 0x1001693e
test al, al
jne 0x1001691e
mov dword [edi + 0x1c], 0
mov dword [edi + 0x14], 0
test cl, cl
jne 0x10016930
mov dword [edi + 0x20], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
movss xmm0, dword [esi + 0x1858]
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esi + 0x1928], edi
and ecx, 0x1000000
mulss xmm0, dword [edi + 0x274]
mov dword [esp + 0x44], ecx
movss dword [esi + 0x1868], xmm0
movss dword [esi + 0x1854], xmm0
je 0x10016980
movss xmm0, dword [edx + 0x1530]
jmp 0x100169a0
test eax, 0x6000000
je 0x10016998
test eax, 0x8000000
jne 0x10016998
movss xmm0, dword [edx + 0x1538]
jmp 0x100169a0
movss xmm0, dword [edx + 0x1518]
movss dword [edi + 0x48], xmm0
mov eax, dword [edx + 0x150c]
mov ecx, dword [edx + 0x1510]
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], ecx
mov ecx, dword [esp + 0x18]
mov eax, ecx
and eax, 0x5010000
cmp eax, 0x1000000
jne 0x100169f3
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100169f3
test ecx, 0x400
je 0x100169e4
movss xmm0, dword [edx + 0x1510]
jmp 0x100169e7
xorps xmm0, xmm0
mov dword [edi + 0x3c], 0
movss dword [edi + 0x40], xmm0
movss xmm0, dword [edi + 0x3c]
maxss xmm0, dword [edx + 0x154c]
maxss xmm0, dword [edx + 0x1a14]
movss dword [edi + 0x144], xmm0
mov eax, dword [edx + 0x1a18]
mov dword [edi + 0x148], eax
test cl, 0x21
jne 0x10016b47
mov ecx, dword [edi + 8]
test cl, 1
je 0x10016a32
xorps xmm2, xmm2
jmp 0x10016a52
movss xmm2, dword [esi + 0x1540]
movss xmm0, dword [esi + 0x1858]
addss xmm2, xmm2
mulss xmm0, dword [edi + 0x274]
addss xmm2, xmm0
movss xmm3, dword [edi + 0xc]
movaps xmm0, xmm3
movss xmm4, dword [edi + 0x10]
addss xmm0, dword [edi + 0x1c]
addss xmm2, dword [edi + 0x10]
cmp dword [edx + 0x192c], edi
jne 0x10016b14
cmp dword [edx + 0x1934], 0
jne 0x10016b14
cmp dword [edx + 0x193c], 0
jne 0x10016b14
mov eax, dword [esi + 0x1928]
movss xmm1, dword [esi + 0x155c]
movaps xmm5, xmm1
maxss xmm3, dword [eax + 0x1d4]
minss xmm0, dword [eax + 0x1dc]
maxss xmm4, dword [eax + 0x1d8]
minss xmm2, dword [eax + 0x1e0]
subss xmm3, xmm1
movss xmm1, dword [esi + 0xd8]
addss xmm5, xmm0
movss xmm0, dword [esi + 0x1560]
movaps xmm6, xmm0
subss xmm4, xmm0
addss xmm6, xmm2
comiss xmm1, xmm3
jb 0x10016b11
movss xmm0, dword [esi + 0xdc]
comiss xmm0, xmm4
jb 0x10016b11
comiss xmm5, xmm1
jbe 0x10016b11
comiss xmm6, xmm0
jbe 0x10016b11
cmp byte [edx + 0x3ed], 0
xorps xmm1, xmm1
je 0x10016b14
mov byte [edi + 0x7a], 1
jmp 0x10016b14
xorps xmm1, xmm1
cmp byte [edi + 0x7a], 0
je 0x10016b4b
cmp byte [edi + 0x79], 0
sete al
mov byte [edi + 0x79], al
test ecx, 0x100
jne 0x10016b3e
comiss xmm1, dword [esi + 0x2b64]
jb 0x10016b3e
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x2b64], eax
mov ecx, edi
call fcn.1001a650
jmp 0x10016b4b
mov byte [edi + 0x79], 0
lea esi, [edi + 0x2c]
mov byte [edi + 0x7a], 0
push esi
mov edx, edi
lea ecx, [esp + 0x64]
call fcn.100154f0
movss xmm0, dword [0x10041f98]
add esp, 4
test byte [esp + 0x18], 0x40
movss dword [esp + 0x68], xmm0
movss dword [esp + 0x40], xmm0
je 0x10016bbb
cmp byte [edi + 0x79], 0
jne 0x10016bbb
cmp byte [esp + 0xf], 0
jne 0x10016b9a
movss xmm0, dword [esp + 0x60]
movss dword [esp + 0x68], xmm0
movss dword [edi + 0x1c], xmm0
cmp byte [esp + 0x16], 0
jne 0x10016c65
movss xmm0, dword [esp + 0x64]
movss dword [esp + 0x40], xmm0
movss dword [edi + 0x20], xmm0
jmp 0x10016c65
mov eax, dword [edi + 0x90]
test eax, eax
jg 0x10016bd2
cmp dword [edi + 0x94], 0
jle 0x10016c65
cmp byte [esp + 0xf], 0
jne 0x10016c04
test eax, eax
jle 0x10016c04
cmp byte [edi + 0x98], 0
je 0x10016bf3
movss xmm0, dword [edi + 0x1c]
maxss xmm0, dword [esp + 0x60]
jmp 0x10016bf9
movss xmm0, dword [esp + 0x60]
movss dword [esp + 0x68], xmm0
movss dword [edi + 0x1c], xmm0
cmp byte [esp + 0x16], 0
jne 0x10016c3b
cmp dword [edi + 0x94], 0
jle 0x10016c3b
cmp byte [edi + 0x98], 0
je 0x10016c2a
movss xmm0, dword [edi + 0x20]
maxss xmm0, dword [esp + 0x64]
jmp 0x10016c30
movss xmm0, dword [esp + 0x64]
movss dword [esp + 0x40], xmm0
movss dword [edi + 0x20], xmm0
cmp byte [edi + 0x79], 0
jne 0x10016c65
test dword [edi + 8], 0x100
mov ecx, dword [0x1006dc88]
jne 0x10016c65
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x2b64]
jb 0x10016c65
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2b64], eax
push dword [edi + 0x20]
mov edx, edi
lea ecx, [esp + 0xc4]
push dword [edi + 0x1c]
call fcn.10015310
add esp, 8
movss xmm3, dword [eax]
movss xmm0, dword [eax + 4]
mov al, byte [edi + 0x79]
movss dword [edi + 0x1c], xmm3
movss dword [edi + 0x20], xmm0
mov byte [esp + 0x27], al
test al, al
je 0x10016cfc
cmp dword [esp + 0x44], 0
jne 0x10016cfc
test byte [edi + 8], 1
je 0x10016cac
xorps xmm2, xmm2
jmp 0x10016cd1
mov eax, dword [0x1006dc88]
movss xmm0, dword [eax + 0x1540]
movss xmm2, dword [eax + 0x1858]
addss xmm0, xmm0
mulss xmm2, dword [edi + 0x274]
addss xmm2, xmm0
addss xmm2, dword [edi + 0x10]
movaps xmm0, xmm3
addss xmm0, dword [edi + 0xc]
subss xmm2, dword [edi + 0x10]
subss xmm0, dword [edi + 0xc]
movss dword [esp + 0xd4], xmm2
movss dword [esp + 0xd0], xmm0
jmp 0x10016d10
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov edx, 0xc
lea ecx, [esp + 0xd0]
mov eax, edi
add eax, edx
cmp byte [esp + 0x27], 0
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], ecx
jne 0x10016e19
movss xmm0, dword [esp + 0x68]
movss xmm1, dword [0x10041f98]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10016d56
movss xmm3, dword [edi + 0x24]
movss xmm0, dword [esp + 0x40]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10016d6c
movss xmm2, dword [edi + 0x20]
jmp 0x10016d71
movss xmm2, dword [edi + 0x28]
mov eax, dword [esp + 0x18]
test eax, 0x4000
jne 0x10016d8e
movss xmm0, dword [edi + 0x30]
comiss xmm0, xmm2
jbe 0x10016d8a
test al, 8
je 0x10016d8e
xor cl, cl
jmp 0x10016d90
mov cl, 1
mov edx, dword [esp + 0x10]
add edx, 0x156c
mov byte [edi + 0x75], cl
test eax, 0x8000
jne 0x10016dda
xorps xmm1, xmm1
test cl, cl
je 0x10016db1
movss xmm0, dword [edx]
jmp 0x10016db4
xorps xmm0, xmm0
subss xmm3, xmm0
movss xmm0, dword [esi]
comiss xmm0, xmm3
jbe 0x10016dd1
mov eax, dword [esp + 0x18]
and eax, 0x808
cmp eax, 0x800
je 0x10016dda
mov byte [edi + 0x74], 0
xorps xmm0, xmm0
jmp 0x10016e07
mov byte [edi + 0x74], 1
test cl, cl
jne 0x10016e00
subss xmm2, dword [edx]
movss xmm0, dword [edi + 0x30]
comiss xmm0, xmm2
jbe 0x10016dfb
test byte [esp + 0x18], 8
jne 0x10016dfb
mov cl, 1
jmp 0x10016dfd
xor cl, cl
mov byte [edi + 0x75], cl
movss xmm0, dword [edx]
xorps xmm1, xmm1
test cl, cl
je 0x10016e0f
movss xmm1, dword [edx]
movss dword [edi + 0x6c], xmm1
movss dword [edi + 0x70], xmm0
cmp byte [esp + 0x17], 0
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
je 0x10016e65
mov dword [edi + 0xa0], 0xffffffff
test edx, edx
je 0x10016e65
cmp byte [esp + 0xe], 0
jne 0x10016e65
mov eax, dword [esi + 0x19ac]
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x19b4]
movss xmm0, dword [eax + ecx*4 - 0x10]
movss xmm1, dword [eax + ecx*4 - 0xc]
mov eax, dword [esp + 0x28]
movss dword [eax], xmm0
movss dword [eax + 4], xmm1
cmp dword [esp + 0x44], 0
je 0x10016f02
mov edx, dword [esp + 0x5c]
add edx, 0x14c
mov dword [esp + 0x2c], edx
mov eax, dword [edx]
mov dword [edi + 0x80], eax
mov ecx, dword [edx + 4]
cmp dword [edx], ecx
jne 0x10016ebd
test ecx, ecx
je 0x10016ea0
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x2c]
sar eax, 1
add eax, ecx
jmp 0x10016ea5
mov eax, 8
mov ecx, dword [edx]
inc ecx
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.10024d20
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov dword [eax + ecx*4], edi
inc dword [edx]
mov edx, dword [esp + 0x1c]
mov al, byte [esp + 0xe]
mov ecx, dword [esp + 0x3c]
test edx, edx
jne 0x10016f0a
test al, al
jne 0x10016f0a
cmp ecx, 0x3000000
je 0x10016f0a
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x28]
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
mov dword [esi], eax
mov eax, esi
mov esi, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
mov al, byte [esp + 0xe]
movss xmm0, dword [edi + 0xb8]
ucomiss xmm0, dword [0x10041f98]
movss dword [esp + 0x30], xmm0
lahf
test ah, 0x44
jnp 0x10017034
cmp dword [edi + 0xa8], 0
jne 0x10017034
movss xmm0, dword [esi + 0x158c]
movss xmm2, dword [edi + 0xc0]
movss xmm6, dword [edi + 0xc4]
movss xmm5, dword [edi + 0xbc]
movss xmm3, dword [esi + 0x1590]
and dword [edi + 0xac], 0xfffffff1
movss xmm1, dword [esp + 0x30]
mov dword [edi + 0xb8], 0x7f7fffff
mov dword [edi + 0xbc], 0x7f7fffff
mulss xmm2, dword [edi + 0x1c]
mov ecx, dword [esp + 0x28]
mulss xmm6, dword [edi + 0x20]
mov edx, dword [esp + 0x18]
subss xmm1, xmm2
movss xmm7, dword [ecx]
subss xmm5, xmm6
movss dword [esp + 0x7c], xmm7
movss xmm7, dword [ecx + 4]
movss dword [esp + 0x38], xmm7
maxss xmm0, xmm1
maxss xmm3, xmm5
cvttss2si eax, xmm0
movd xmm1, eax
cvttss2si eax, xmm3
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx], xmm1
subss xmm1, dword [esp + 0x7c]
movss dword [ecx + 4], xmm0
subss xmm0, xmm7
addss xmm1, dword [edi + 0xc8]
addss xmm0, dword [edi + 0xcc]
movss dword [edi + 0xc8], xmm1
movss dword [edi + 0xcc], xmm0
movss xmm1, dword [ecx + 4]
movss xmm0, dword [ecx]
subss xmm1, xmm7
subss xmm0, dword [esp + 0x7c]
addss xmm1, dword [edi + 0xe4]
addss xmm0, dword [edi + 0xe0]
movss dword [edi + 0xe4], xmm1
movss dword [edi + 0xe0], xmm0
jmp 0x10017093
test dword [esp + 0x18], 0x10000000
jne 0x1001704d
test edx, edx
je 0x10017077
test al, al
jne 0x10017077
cmp dword [esp + 0x20], 0
jle 0x10017077
mov edx, edi
lea ecx, [esp + 0xd0]
call fcn.10014be0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss dword [ecx], xmm0
movss dword [ecx + 4], xmm1
jmp 0x10017093
mov edx, dword [esp + 0x18]
test edx, 0x2000000
je 0x1001708f
test al, al
jne 0x1001708f
cmp ecx, 0x3000000
jne 0x1001704d
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x44], 0
jne 0x1001714f
cmp byte [esp + 0xe], 0
jne 0x1001714f
cmp dword [edi + 0x90], 0
jg 0x1001714f
cmp dword [edi + 0x94], 0
xorps xmm2, xmm2
jg 0x10017152
movss xmm0, dword [esi + 0x10]
comiss xmm0, xmm2
jbe 0x10017152
movss xmm0, dword [esi + 0x14]
comiss xmm0, xmm2
jbe 0x10017152
movss xmm5, dword [esi + 0x1588]
movss xmm4, dword [esi + 0x1584]
movss xmm3, dword [edi + 0x14]
addss xmm3, dword [ecx]
movss xmm2, dword [edi + 0x18]
addss xmm2, dword [ecx + 4]
maxss xmm5, dword [esi + 0x1590]
maxss xmm4, dword [esi + 0x158c]
maxss xmm2, xmm5
maxss xmm3, xmm4
subss xmm2, dword [edi + 0x18]
subss xmm3, dword [edi + 0x14]
movss dword [ecx + 4], xmm2
movss dword [ecx], xmm3
movss xmm0, dword [esi + 0x10]
subss xmm0, xmm4
minss xmm3, xmm0
movss xmm0, dword [esi + 0x14]
subss xmm0, xmm5
movss dword [ecx], xmm3
minss xmm2, xmm0
movss dword [ecx + 4], xmm2
xorps xmm2, xmm2
cmp dword [esp + 0x44], 0
cvttss2si eax, dword [ecx]
movd xmm1, eax
cvttss2si eax, dword [ecx + 4]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx], xmm1
movss dword [ecx + 4], xmm0
je 0x10017183
movss xmm7, dword [esi + 0x152c]
jmp 0x100171a3
mov eax, edx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x1001719b
movss xmm7, dword [esi + 0x1534]
jmp 0x100171a3
movss xmm7, dword [esi + 0x1514]
mov edx, dword [edi + 0x340]
lea eax, [edi + 0x330]
movss dword [edi + 0x44], xmm7
cmp edx, 0x7fffffff
je 0x100171d2
mov ecx, dword [eax]
mov dword [esp + 0x2c], eax
cmp ecx, 0xffffffff
je 0x100171d2
lea eax, [edx + 1]
add eax, ecx
inc ecx
cdq
idiv ecx
jmp 0x100171db
mov edx, 0x7fffffff
mov dword [esp + 0x2c], eax
mov dword [edi + 0x338], edx
lea eax, [edi + 0x334]
mov edx, dword [edi + 0x344]
cmp edx, 0x7fffffff
je 0x1001720d
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x1001720d
lea eax, [edx + 1]
add eax, ecx
inc ecx
cdq
idiv ecx
lea eax, [edi + 0x334]
jmp 0x10017212
mov edx, 0x7fffffff
movss xmm1, dword [edi + 0x5c]
movss xmm5, dword [0x10041f98]
comiss xmm5, xmm1
mov dword [eax], 0xffffffff
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x33c], edx
mov dword [edi + 0x344], 0x7fffffff
mov dword [edi + 0x340], 0x7fffffff
mov dword [eax], 0xffffffff
movss xmm4, dword [edi + 0x54]
movss xmm3, dword [edi + 0x58]
movss xmm6, dword [edi + 0x1c]
jbe 0x10017271
movaps xmm0, xmm6
movaps xmm4, xmm1
subss xmm0, dword [edi + 0x6c]
mulss xmm0, dword [edi + 0x64]
subss xmm4, xmm0
movss xmm0, dword [edi + 0x60]
movaps xmm1, xmm6
comiss xmm5, xmm0
movss xmm5, dword [0x10041ed0]
jbe 0x10017363
movss xmm1, dword [edi + 0x68]
movaps xmm3, xmm0
comiss xmm2, xmm1
jb 0x100172a4
movss xmm0, dword [edi + 0x40]
comiss xmm0, xmm3
jb 0x100172a4
xorps xmm3, xmm3
comiss xmm1, xmm5
mov ecx, dword [0x1006dc88]
jb 0x100172cc
movss xmm1, dword [edi + 0x30]
movaps xmm0, xmm1
subss xmm0, dword [edi + 0x40]
addss xmm0, dword [ecx + 0x1550]
comiss xmm3, xmm0
jb 0x100172cc
movaps xmm3, xmm1
mov eax, dword [edi + 8]
test al, 1
je 0x100172d8
xorps xmm5, xmm5
jmp 0x100172f8
movss xmm0, dword [ecx + 0x1540]
movss xmm5, dword [ecx + 0x1858]
addss xmm0, xmm0
mulss xmm5, dword [edi + 0x274]
addss xmm5, xmm0
test eax, 0x400
je 0x10017329
movss xmm1, dword [ecx + 0x1858]
mulss xmm1, dword [edi + 0x274]
movss xmm0, dword [ecx + 0x1540]
addss xmm0, xmm0
addss xmm1, dword [edi + 0x148]
addss xmm1, xmm0
jmp 0x1001732c
xorps xmm1, xmm1
movss xmm0, dword [0x10041ed0]
addss xmm1, xmm5
subss xmm0, dword [edi + 0x68]
movss xmm5, dword [0x10041ed0]
mulss xmm1, xmm0
movss xmm0, dword [edi + 0x20]
subss xmm0, dword [edi + 0x70]
subss xmm3, xmm1
movaps xmm1, xmm6
mulss xmm0, dword [edi + 0x68]
subss xmm3, xmm0
mov al, byte [edi + 0x79]
maxss xmm4, xmm2
maxss xmm3, xmm2
test al, al
jne 0x100173b6
cmp byte [edi + 0x7b], al
jne 0x100173b6
subss xmm1, dword [edi + 0x6c]
movss xmm0, dword [edi + 0x2c]
subss xmm0, xmm1
xorps xmm1, xmm1
maxss xmm1, xmm0
comiss xmm1, xmm4
ja 0x10017394
movaps xmm4, xmm1
movss xmm0, dword [edi + 0x20]
subss xmm0, dword [edi + 0x70]
movss xmm1, dword [edi + 0x30]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
comiss xmm0, xmm3
ja 0x100173b6
movaps xmm3, xmm0
cmp byte [esp + 0x17], 0
movss dword [edi + 0x54], xmm4
movss dword [edi + 0x58], xmm3
mov dword [edi + 0x5c], 0x7f7fffff
mov dword [edi + 0x60], 0x7f7fffff
mov byte [esp + 0xf], 0
je 0x100173f7
test dword [esp + 0x18], 0x1000
jne 0x100173f7
cmp dword [esp + 0x3c], 0
je 0x100173f2
cmp dword [esp + 0x1c], 0
je 0x100173f7
mov byte [esp + 0xf], 1
movss xmm1, dword [esi + 0x1854]
addss xmm7, xmm5
xorps xmm0, xmm0
or ecx, 0xffffffff
movaps xmmword [esp + 0xf0], xmm0
movaps xmm0, xmm1
mulss xmm1, dword [0x10041e94]
mov dword [esp + 0x7c], ecx
mulss xmm0, dword [0x10041ed4]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
cmp byte [esi + 0xbe], cl
addss xmm7, xmm1
setne cl
inc ecx
mov dword [esp + 0x54], ecx
maxss xmm0, xmm7
cvttss2si esi, xmm0
test al, al
jne 0x10017473
lea eax, [esp + 0xf0]
push eax
push ecx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
lea edx, [esp + 0x6c]
call fcn.10015660
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov dword [esp + 0x7c], ecx
xorps xmm2, xmm2
movss xmm0, dword [edi + 0x14]
comiss xmm0, xmm2
jbe 0x10017491
test dword [esp + 0x18], 0x2000040
jne 0x10017491
mulss xmm0, dword [0x10041eb4]
jmp 0x100174a5
mov eax, dword [esp + 0x10]
movss xmm0, dword [eax + 0x1854]
mulss xmm0, dword [0x10041f1c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x228], xmm0
mov ecx, dword [edi + 0x27c]
call fcn.1002cf90
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov eax, 2
cmp byte [edx + 0x1599], cl
cmovne ecx, eax
xor eax, eax
cmp byte [edx + 0x1598], al
setne al
or ecx, eax
mov eax, dword [edi + 0x27c]
mov dword [eax + 0x24], ecx
mov eax, dword [edx + 0x1850]
mov ecx, dword [edi + 0x27c]
mov dword [esp + 0x2c], ecx
add ecx, 0x48
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 0x44]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 4]
cmp edx, eax
jne 0x10017542
inc edx
mov dword [esp + 0x30], edx
test eax, eax
je 0x1001752e
cdq
sub eax, edx
mov edx, dword [esp + 0x30]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x10017533
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.10024d20
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [ecx + 8]
mov edi, dword [esp + 0x78]
mov dword [eax + edx*4], edi
inc dword [ecx]
mov ecx, dword [esp + 0x2c]
call fcn.1002d460
mov ecx, dword [0x1006dc88]
mov edi, dword [esp + 0x4c]
movss xmm1, dword [ecx + 0xac]
movss xmm3, dword [ecx + 0xb4]
ucomiss xmm1, xmm3
movss dword [esp + 0x90], xmm1
movss dword [esp + 0xb0], xmm3
lahf
test ah, 0x44
jnp 0x100175b0
movss xmm0, dword [ecx + 0xb0]
ucomiss xmm0, dword [ecx + 0xb8]
lahf
test ah, 0x44
jnp 0x100175b0
movss xmm4, dword [ecx + 0xb8]
movaps xmm2, xmm0
jmp 0x100175d2
movss xmm3, dword [ecx + 0x10]
xorps xmm1, xmm1
movss xmm4, dword [ecx + 0x14]
xorps xmm2, xmm2
movss dword [esp + 0x90], xmm1
movss dword [esp + 0xb0], xmm3
mov eax, dword [esp + 0x18]
and eax, 0x5000000
movss dword [esp + 0xdc], xmm4
movss dword [esp + 0x50], xmm4
movss dword [esp + 0xd8], xmm3
movss dword [esp + 0xd4], xmm2
movss dword [esp + 0xac], xmm2
movss dword [esp + 0xd0], xmm1
cmp eax, 0x1000000
jne 0x1001773f
cmp dword [esp + 0x3c], 0x3000000
je 0x1001773f
mov eax, dword [ecx + 0x1928]
mov byte [eax + 0x78], 1
mov eax, dword [ecx + 0x1928]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x27c]
movss xmm2, dword [ecx + 0x1dc]
movss xmm3, dword [ecx + 0x1e0]
movss xmm0, dword [ecx + 0x1d4]
movss xmm1, dword [ecx + 0x1d8]
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x20], eax
add eax, 0x3c
movss dword [esp + 0xc0], xmm0
movss dword [esp + 0xc4], xmm1
movss dword [esp + 0xc8], xmm2
movss dword [esp + 0xcc], xmm3
mov dword [esp + 0x1c], eax
test edx, edx
je 0x10017729
mov eax, dword [esp + 0x20]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x44]
movups xmm4, xmmword [eax + ecx*8 - 0x10]
mov ecx, edx
comiss xmm4, xmm0
movaps xmmword [esp + 0xe0], xmm4
jbe 0x100176d1
mov eax, dword [esp + 0x20]
movaps xmm0, xmm4
movss dword [esp + 0xc0], xmm0
mov ecx, dword [eax + 0x3c]
movss xmm4, dword [esp + 0xe4]
mov eax, edx
comiss xmm4, xmm1
jbe 0x100176ef
movaps xmm1, xmm4
mov eax, ecx
movss dword [esp + 0xc4], xmm1
movss xmm4, dword [esp + 0xe8]
comiss xmm2, xmm4
jbe 0x1001770b
movaps xmm2, xmm4
mov edx, eax
movss dword [esp + 0xc8], xmm2
movss xmm4, dword [esp + 0xec]
comiss xmm3, xmm4
mov eax, dword [esp + 0x1c]
jbe 0x10017729
movaps xmm3, xmm4
movss dword [esp + 0xcc], xmm3
comiss xmm0, xmm2
jb 0x10017737
movss dword [esp + 0xc8], xmm0
comiss xmm1, xmm3
jmp 0x10017841
mov eax, dword [ecx + 0x1928]
movaps xmm0, xmmword [esp + 0xd0]
movaps xmmword [esp + 0xc0], xmm0
mov byte [eax + 0x78], 1
mov eax, dword [ecx + 0x1928]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x27c]
mov dword [esp + 0x20], eax
add eax, 0x3c
mov dword [esp + 0x1c], eax
mov edx, dword [eax]
test edx, edx
je 0x10017814
mov eax, dword [esp + 0x20]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x44]
movups xmm0, xmmword [eax + ecx*8 - 0x10]
mov ecx, edx
comiss xmm0, xmm1
movaps xmmword [esp + 0xe0], xmm0
jbe 0x100177af
mov eax, dword [esp + 0x20]
movss dword [esp + 0xc0], xmm0
mov ecx, dword [eax + 0x3c]
jmp 0x100177b8
movss xmm0, dword [esp + 0xc0]
movss xmm1, dword [esp + 0xe4]
mov eax, edx
comiss xmm1, xmm2
jbe 0x100177d5
movss dword [esp + 0xc4], xmm1
mov eax, ecx
jmp 0x100177de
movss xmm1, dword [esp + 0xc4]
movss xmm2, dword [esp + 0xe8]
comiss xmm3, xmm2
jbe 0x100177f7
movss dword [esp + 0xc8], xmm2
mov edx, eax
movss xmm2, dword [esp + 0xec]
comiss xmm4, xmm2
mov eax, dword [esp + 0x1c]
jbe 0x10017826
movss dword [esp + 0xcc], xmm2
jmp 0x10017826
movss xmm1, dword [esp + 0xc4]
movss xmm0, dword [esp + 0xc0]
comiss xmm0, dword [esp + 0xc8]
jb 0x10017839
movss dword [esp + 0xc8], xmm0
comiss xmm1, dword [esp + 0xcc]
jb 0x1001784c
movss dword [esp + 0xcc], xmm1
mov ecx, dword [eax + 4]
cmp edx, ecx
jne 0x10017883
inc edx
mov dword [esp + 0x30], edx
test ecx, ecx
je 0x1001786b
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x30]
sar eax, 1
add eax, ecx
jmp 0x10017870
mov eax, 8
mov ecx, dword [esp + 0x1c]
cmp eax, edx
cmovg edx, eax
push edx
call fcn.10032050
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
movups xmm0, xmmword [esp + 0xc0]
add eax, eax
mov edx, dword [ecx + 8]
movups xmmword [edx + eax*8], xmm0
inc dword [ecx]
mov ecx, dword [esp + 0x20]
call fcn.1002d310
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x27c]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
test dword [esp + 0x18], 0x8000000
movss xmm0, dword [eax + ecx*8 - 0xc]
movss xmm1, dword [eax + ecx*8 - 8]
movss xmm2, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 0x10]
mov dword [edx + 0x1d4], eax
movss dword [edx + 0x1d8], xmm0
movss dword [edx + 0x1dc], xmm1
movss dword [edx + 0x1e0], xmm2
je 0x10017913
call fcn.10013fe0
cmp edi, eax
jne 0x10017913
cmp dword [edi + 0xa8], 0
jg 0x10017913
mov dl, 1
mov dword [esp + 0x2c], 0x338
jmp 0x1001791d
xor dl, dl
mov dword [esp + 0x2c], 0x328
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1a64]
test eax, eax
je 0x10017937
cmp edi, dword [eax + 0x2f8]
jne 0x10017937
mov al, 1
jmp 0x10017939
xor al, al
movss xmm4, dword [0x10041f70]
movss xmm5, dword [0x10041eac]
mov byte [esp + 0xe], al
test dl, dl
jne 0x10017959
test al, al
je 0x10017c15
mov eax, dword [0x1006dc88]
mov edx, dword [esp + 0x2c]
movss xmm3, dword [ecx + 0x1b5c]
movss xmm6, dword [0x10041ed0]
mulss xmm3, dword [eax + 0x1508]
movups xmm2, xmmword [edx + eax + 0x1508]
movaps xmm0, xmm2
movaps xmmword [esp + 0xe0], xmm2
shufps xmm0, xmm2, 0xff
mulss xmm3, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm2
jbe 0x100179a2
xorps xmm1, xmm1
jmp 0x100179a9
movaps xmm1, xmm6
minss xmm1, xmm2
movss xmm2, dword [esp + 0xe4]
comiss xmm0, xmm2
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si ecx, xmm1
jbe 0x100179c8
xorps xmm1, xmm1
jmp 0x100179cf
movaps xmm1, xmm6
minss xmm1, xmm2
movss xmm2, dword [esp + 0xe8]
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm0, xmm2
jbe 0x100179f3
xorps xmm1, xmm1
jmp 0x100179fa
movaps xmm1, xmm6
minss xmm1, xmm2
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm3
ja 0x10017a17
movaps xmm0, xmm6
minss xmm0, xmm3
mulss xmm0, xmm4
push 0xf
push ecx
mov dword [esp], 0
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [edi + 0x27c]
push eax
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.1002eff0
cmp byte [esp + 0xe], 0
mov ecx, dword [esp + 0x10]
je 0x10017c05
cmp edi, dword [ecx + 0x1a64]
jne 0x10017c05
mov eax, dword [esp + 0x28]
movss xmm3, dword [edi + 0x10]
movss xmm0, dword [ecx + 0x1854]
movaps xmm4, xmm3
addss xmm3, dword [edi + 0x18]
movss xmm2, dword [eax]
subss xmm4, xmm0
movaps xmm1, xmm2
addss xmm2, dword [edi + 0x14]
subss xmm1, xmm0
addss xmm3, xmm0
movss dword [esp + 0xe4], xmm4
addss xmm2, xmm0
movss xmm0, dword [esp + 0x90]
comiss xmm0, xmm1
movss dword [esp + 0xe0], xmm1
movss dword [esp + 0xe8], xmm2
movss dword [esp + 0xec], xmm3
jb 0x10017af3
movss xmm0, dword [esp + 0xac]
comiss xmm0, xmm4
jb 0x10017af3
comiss xmm2, dword [esp + 0xb0]
jb 0x10017af3
comiss xmm3, dword [esp + 0x50]
jae 0x10017c05
mov eax, dword [0x1006dc88]
movss xmm2, dword [ecx + 0x1a70]
mulss xmm2, dword [0x10041e98]
movups xmm3, xmmword [eax + 0x1820]
mulss xmm2, dword [eax + 0x1508]
movss xmm4, dword [ecx + 0x1514]
movaps xmm0, xmm3
movss xmm7, dword [0x10041ed0]
shufps xmm0, xmm3, 0xff
mulss xmm2, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm3
movaps xmmword [esp + 0xc0], xmm3
jbe 0x10017b47
xorps xmm1, xmm1
jmp 0x10017b4e
movaps xmm1, xmm7
minss xmm1, xmm3
movss xmm5, dword [0x10041f70]
movss xmm6, dword [0x10041eac]
movss xmm3, dword [esp + 0xc4]
comiss xmm0, xmm3
mulss xmm1, xmm5
addss xmm1, xmm6
cvttss2si ecx, xmm1
jbe 0x10017b7d
xorps xmm1, xmm1
jmp 0x10017b84
movaps xmm1, xmm7
minss xmm1, xmm3
movss xmm3, dword [esp + 0xc8]
mulss xmm1, xmm5
addss xmm1, xmm6
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm0, xmm3
jbe 0x10017ba8
xorps xmm1, xmm1
jmp 0x10017baf
movaps xmm1, xmm7
minss xmm1, xmm3
mulss xmm1, xmm5
addss xmm1, xmm6
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm2
ja 0x10017bcc
movaps xmm0, xmm7
minss xmm0, xmm2
mulss xmm0, xmm5
push 0xf
push ecx
movss dword [esp], xmm4
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [edi + 0x27c]
push eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.1002eff0
mov ecx, dword [esp + 0x10]
movss xmm5, dword [0x10041eac]
movss xmm4, dword [0x10041f70]
movss xmm7, dword [edi + 0x44]
movss xmm2, dword [edi + 0x48]
mov edx, dword [ecx + 0x1a60]
movss dword [esp + 0x1c], xmm7
movss dword [esp + 0x3c], xmm2
test edx, edx
jne 0x10017c3b
mov edx, dword [ecx + 0x1a24]
cmp byte [esp + 0xf], 0
jne 0x10017c5d
test edx, edx
je 0x10017c54
mov eax, dword [edi + 0x2fc]
cmp eax, dword [edx + 0x2fc]
je 0x10017c5d
xor al, al
mov edx, 0x138
jmp 0x10017c64
mov al, 1
mov edx, 0x148
test byte [edi + 8], 1
xorps xmm1, xmm1
mov dword [esp + 0x74], edx
mov edx, dword [0x1006dc88]
je 0x10017c7c
xorps xmm3, xmm3
jmp 0x10017c9c
movss xmm0, dword [edx + 0x1540]
movss xmm3, dword [edx + 0x1858]
addss xmm0, xmm0
mulss xmm3, dword [edi + 0x274]
addss xmm3, xmm0
cmp byte [edi + 0x79], 0
mov ecx, dword [esp + 0x28]
addss xmm3, dword [edi + 0x10]
movss xmm0, dword [ecx]
movaps xmm6, xmm0
movss dword [esp + 0x68], xmm0
addss xmm6, dword [edi + 0x1c]
movss dword [esp + 0xe0], xmm0
movss xmm0, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
movss dword [esp + 0x2c], xmm3
movss dword [esp + 0x30], xmm6
movss dword [esp + 0x60], xmm6
movss dword [esp + 0x64], xmm3
movss dword [esp + 0xe4], xmm0
movss dword [esp + 0xe8], xmm6
movss dword [esp + 0xec], xmm3
je 0x10017e24
movss xmm0, dword [ecx + 0x1548]
movss dword [esp + 0x7c], xmm0
movss dword [ecx + 0x1548], xmm2
test al, al
je 0x10017d2e
cmp byte [ecx + 0x1a82], 0
mov eax, 0x148
je 0x10017d33
mov eax, 0x158
movups xmm2, xmmword [eax + edx + 0x1508]
movss xmm6, dword [0x10041ed0]
comiss xmm1, xmm2
movaps xmm3, xmm2
movaps xmmword [esp + 0xc0], xmm2
shufps xmm3, xmm2, 0xff
mulss xmm3, dword [edx + 0x1508]
jbe 0x10017d64
xorps xmm0, xmm0
jmp 0x10017d6b
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [esp + 0xc4]
comiss xmm1, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si edx, xmm0
jbe 0x10017d8a
xorps xmm0, xmm0
jmp 0x10017d91
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [esp + 0xc8]
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or edx, eax
comiss xmm1, xmm2
jbe 0x10017db5
xorps xmm0, xmm0
jmp 0x10017dbc
movaps xmm0, xmm6
minss xmm0, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or edx, eax
comiss xmm1, xmm3
ja 0x10017dd9
movaps xmm1, xmm6
minss xmm1, xmm3
push dword [esp + 0x64]
mulss xmm1, xmm4
movaps xmm2, xmm7
push dword [esp + 0x64]
push dword [esp + 0xec]
addss xmm1, xmm5
push dword [esp + 0xec]
cvttss2si ecx, xmm1
shl ecx, 0x18
or ecx, edx
mov dl, 1
call fcn.10012d40
mov esi, dword [esp + 0x20]
add esp, 0x10
movss xmm0, dword [esp + 0x7c]
movss dword [esi + 0x1548], xmm0
jmp 0x10018c1b
test dword [esp + 0x18], 0x6000000
je 0x10017e35
mov eax, 0xd8
jmp 0x10017e4c
cmp dword [esp + 0x44], 0
mov eax, 0xb8
mov dword [esp + 0x38], 0xc8
cmovne eax, dword [esp + 0x38]
movups xmm2, xmmword [eax + edx + 0x1508]
movss xmm6, dword [0x10041ed0]
comiss xmm1, xmm2
movaps xmm3, xmm2
movaps xmmword [esp + 0xc0], xmm2
shufps xmm3, xmm2, 0xff
mulss xmm3, dword [edx + 0x1508]
jbe 0x10017e7d
xorps xmm0, xmm0
jmp 0x10017e84
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [esp + 0xc4]
comiss xmm1, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si edx, xmm0
jbe 0x10017ea3
xorps xmm0, xmm0
jmp 0x10017eaa
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [esp + 0xc8]
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or edx, eax
comiss xmm1, xmm2
jbe 0x10017ece
xorps xmm0, xmm0
jmp 0x10017ed5
movaps xmm0, xmm6
minss xmm0, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or edx, eax
comiss xmm1, xmm3
mov dword [esp + 0x38], edx
jbe 0x10017ef4
xorps xmm0, xmm0
jmp 0x10017efb
movaps xmm0, xmm6
minss xmm0, xmm3
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si edx, xmm0
shl edx, 0x18
or edx, dword [esp + 0x38]
cmp dword [ecx + 0x19d0], 0
je 0x10017f51
movss xmm2, dword [ecx + 0x1a10]
comiss xmm1, xmm2
jbe 0x10017f29
xorps xmm0, xmm0
jmp 0x10017f30
movaps xmm0, xmm6
minss xmm0, xmm2
mulss xmm0, xmm4
and edx, 0xffffff
mov dword [ecx + 0x19d0], 0
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x18
or edx, eax
test byte [edi + 8], 1
mov eax, dword [esp + 0x28]
movss xmm3, dword [eax]
movss xmm4, dword [eax + 4]
movaps xmm0, xmm3
addss xmm0, dword [edi + 0x14]
movss dword [esp + 0xd0], xmm0
movaps xmm0, xmm4
addss xmm0, dword [edi + 0x18]
movss dword [esp + 0xd4], xmm0
je 0x10017f8b
xorps xmm2, xmm2
jmp 0x10017fb0
mov eax, dword [0x1006dc88]
movss xmm0, dword [eax + 0x1540]
movss xmm2, dword [eax + 0x1858]
addss xmm0, xmm0
mulss xmm2, dword [edi + 0x274]
addss xmm2, xmm0
mov eax, dword [esp + 0x18]
addss xmm3, xmm1
and eax, 1
addss xmm4, xmm2
mov dword [esp + 0x6c], eax
mov ecx, 0xf
mov eax, 0xc
cmovne eax, ecx
push eax
push ecx
mov ecx, dword [edi + 0x27c]
lea eax, [esp + 0xd8]
movss dword [esp], xmm7
push edx
push eax
lea eax, [esp + 0x90]
movss dword [esp + 0x90], xmm3
push eax
movss dword [esp + 0x98], xmm4
call fcn.1002eff0
cmp byte [edi + 0x79], 0
mov ecx, 0x158
mov eax, dword [esp + 0x74]
xorps xmm2, xmm2
mov edx, dword [0x1006dc88]
cmovne eax, ecx
movss xmm5, dword [0x10041ed0]
movups xmm1, xmmword [eax + edx + 0x1508]
comiss xmm2, xmm1
movaps xmm3, xmm1
movaps xmmword [esp + 0xc0], xmm1
shufps xmm3, xmm1, 0xff
mulss xmm3, dword [edx + 0x1508]
jbe 0x1001804f
xorps xmm0, xmm0
jmp 0x10018056
movaps xmm0, xmm5
minss xmm0, xmm1
movss xmm7, dword [0x10041f70]
movss xmm4, dword [0x10041eac]
movss xmm1, dword [esp + 0xc4]
comiss xmm2, xmm1
mulss xmm0, xmm7
addss xmm0, xmm4
cvttss2si ecx, xmm0
jbe 0x10018085
xorps xmm0, xmm0
jmp 0x1001808c
movaps xmm0, xmm5
minss xmm0, xmm1
movss xmm1, dword [esp + 0xc8]
mulss xmm0, xmm7
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm2, xmm1
jbe 0x100180b0
xorps xmm0, xmm0
jmp 0x100180b7
movaps xmm0, xmm5
minss xmm0, xmm1
mulss xmm0, xmm7
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm2, xmm3
jbe 0x100180d2
xorps xmm0, xmm0
jmp 0x100180d9
movaps xmm0, xmm5
minss xmm0, xmm3
cmp dword [esp + 0x6c], 0
jne 0x1001812c
movss xmm1, dword [esp + 0x1c]
mulss xmm0, xmm7
push 3
push ecx
movss dword [esp], xmm1
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [edi + 0x27c]
push eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.1002eff0
mov edx, dword [0x1006dc88]
xorps xmm2, xmm2
movss xmm7, dword [0x10041f70]
test dword [esp + 0x18], 0x400
je 0x10018462
mov eax, dword [edi + 8]
test al, 1
je 0x10018146
xorps xmm1, xmm1
jmp 0x10018166
movss xmm0, dword [edx + 0x1540]
movss xmm1, dword [edx + 0x1858]
addss xmm0, xmm0
mulss xmm1, dword [edi + 0x274]
addss xmm1, xmm0
movss xmm4, dword [edi + 0x10]
movaps xmm5, xmm4
addss xmm5, xmm1
test eax, 0x400
je 0x100181a3
movss xmm3, dword [edx + 0x1858]
mulss xmm3, dword [edi + 0x274]
movss xmm0, dword [edx + 0x1540]
addss xmm0, xmm0
addss xmm3, dword [edi + 0x148]
addss xmm3, xmm0
jmp 0x100181a6
xorps xmm3, xmm3
cmp dword [esp + 0x6c], 0
movaps xmm0, xmm5
mov eax, dword [esp + 0x28]
maxss xmm0, xmm4
addss xmm4, dword [edi + 0x18]
addss xmm5, xmm3
movss xmm1, dword [eax]
movss dword [esp + 0xc4], xmm0
movaps xmm6, xmm1
maxss xmm6, xmm1
movaps xmm0, xmm1
addss xmm0, dword [edi + 0x1c]
addss xmm1, dword [edi + 0x14]
minss xmm5, xmm4
movss dword [esp + 0x78], xmm6
movss dword [esp + 0xc0], xmm6
minss xmm0, xmm1
movss dword [esp + 0x38], xmm5
movss dword [esp + 0xcc], xmm5
movss dword [esp + 0xc8], xmm0
je 0x10018219
movss xmm4, dword [esp + 0x1c]
jmp 0x1001821c
xorps xmm4, xmm4
movups xmm1, xmmword [edx + 0x1670]
movss xmm6, dword [0x10041ed0]
comiss xmm2, xmm1
movaps xmm3, xmm1
movaps xmmword [esp + 0xd0], xmm1
shufps xmm3, xmm1, 0xff
mulss xmm3, dword [edx + 0x1508]
jbe 0x1001824c
xorps xmm0, xmm0
jmp 0x10018253
movaps xmm0, xmm6
minss xmm0, xmm1
movss xmm5, dword [0x10041eac]
movss xmm1, dword [esp + 0xd4]
comiss xmm2, xmm1
mulss xmm0, xmm7
addss xmm0, xmm5
cvttss2si ecx, xmm0
jbe 0x1001827a
xorps xmm0, xmm0
jmp 0x10018281
movaps xmm0, xmm6
minss xmm0, xmm1
movss xmm1, dword [esp + 0xd8]
mulss xmm0, xmm7
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm2, xmm1
jbe 0x100182a5
xorps xmm0, xmm0
jmp 0x100182ac
movaps xmm0, xmm6
minss xmm0, xmm1
mulss xmm0, xmm7
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm2, xmm3
ja 0x100182c9
movaps xmm2, xmm6
minss xmm2, xmm3
mulss xmm2, xmm7
push 3
push ecx
movss dword [esp], xmm4
addss xmm2, xmm5
cvttss2si eax, xmm2
shl eax, 0x18
or eax, ecx
mov ecx, dword [edi + 0x27c]
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.1002eff0
mov eax, dword [esp + 0x10]
xorps xmm1, xmm1
movss xmm5, dword [eax + 0x1548]
comiss xmm5, xmm1
jbe 0x1001845c
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [edi + 0x10]
movss xmm4, dword [esp + 0x38]
comiss xmm0, xmm4
jbe 0x1001845c
mov eax, dword [0x1006dc88]
movups xmm2, xmmword [eax + 0x15f0]
comiss xmm1, xmm2
movaps xmm3, xmm2
movaps xmmword [esp + 0xd0], xmm2
shufps xmm3, xmm2, 0xff
mulss xmm3, dword [eax + 0x1508]
jbe 0x1001835c
xorps xmm0, xmm0
jmp 0x10018368
movss xmm0, dword [0x10041ed0]
minss xmm0, xmm2
movss xmm6, dword [0x10041f70]
movss xmm7, dword [0x10041eac]
movss xmm2, dword [esp + 0xd4]
comiss xmm1, xmm2
mulss xmm0, xmm6
addss xmm0, xmm7
cvttss2si edx, xmm0
jbe 0x10018397
xorps xmm0, xmm0
jmp 0x100183a3
movss xmm0, dword [0x10041ed0]
minss xmm0, xmm2
movss xmm2, dword [esp + 0xd8]
mulss xmm0, xmm6
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 8
or edx, eax
comiss xmm1, xmm2
jbe 0x100183c7
xorps xmm0, xmm0
jmp 0x100183d3
movss xmm0, dword [0x10041ed0]
minss xmm0, xmm2
mulss xmm0, xmm6
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 0x10
or edx, eax
comiss xmm1, xmm3
ja 0x100183f5
movss xmm1, dword [0x10041ed0]
minss xmm1, xmm3
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
movss xmm0, dword [esp + 0x78]
mulss xmm1, xmm6
mov dword [esp + 0xd0], eax
push ecx
movss dword [esp], xmm5
addss xmm1, xmm7
mov dword [esp + 0xd8], ecx
mov ecx, dword [edi + 0x27c]
movss dword [esp + 0x84], xmm0
movss dword [esp + 0x88], xmm4
cvttss2si eax, xmm1
shl eax, 0x18
or eax, edx
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.1002eda0
mov edx, dword [0x1006dc88]
cmp byte [edi + 0x74], 0
je 0x10018478
mov ecx, 1
call fcn.10019e60
mov edx, dword [0x1006dc88]
cmp byte [edi + 0x75], 0
je 0x1001848b
xor ecx, ecx
call fcn.10019e60
mov edx, dword [0x1006dc88]
test byte [esp + 0x18], 2
jne 0x10018740
movss xmm4, dword [esp + 0x3c]
xor edx, edx
movaps xmm0, xmm4
mov dword [esp + 0x74], edx
addss xmm0, dword [esp + 0x1c]
mov eax, 0x10046358
mov dword [esp + 0x40], eax
movss dword [esp + 0x60], xmm0
nop word [eax + eax]
mov ecx, dword [esp + 0x28]
and edx, 1
mov dword [esp + 0xbc], edx
movss xmm0, dword [ecx]
movss xmm1, dword [ecx + 4]
movaps xmm2, xmm0
addss xmm2, dword [edi + 0x14]
mov ecx, dword [edi + 0x27c]
movaps xmm3, xmm1
addss xmm3, dword [edi + 0x18]
subss xmm2, xmm0
subss xmm3, xmm1
mulss xmm2, dword [eax - 8]
mulss xmm3, dword [eax - 4]
addss xmm2, xmm0
addss xmm3, xmm1
movss dword [esp + 0x78], xmm2
movss dword [esp + 0x38], xmm3
je 0x10018521
movd xmm1, esi
movaps xmm0, xmm4
cvtdq2ps xmm1, xmm1
jmp 0x1001852b
movd xmm0, esi
movaps xmm1, xmm4
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax]
mov edi, dword [ecx + 0x54]
mulss xmm1, dword [eax + 4]
lea eax, [ecx + 0x54]
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], eax
addss xmm0, xmm2
addss xmm1, xmm3
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x84], xmm1
cmp edi, ecx
jne 0x10018599
inc edi
test ecx, ecx
je 0x1001856f
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x10018574
mov eax, 8
mov ecx, dword [esp + 0x20]
cmp eax, edi
cmovg edi, eax
push edi
call fcn.10025180
movss xmm2, dword [esp + 0x78]
movss xmm3, dword [esp + 0x38]
movss xmm4, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 8]
mov eax, dword [eax]
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [esp + 0x20]
inc dword [eax]
cmp dword [esp + 0xbc], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x27c]
je 0x100185d9
movd xmm0, esi
movaps xmm1, xmm4
cvtdq2ps xmm0, xmm0
jmp 0x100185e3
movd xmm1, esi
movaps xmm0, xmm4
cvtdq2ps xmm1, xmm1
mov eax, dword [esp + 0x40]
mov edi, dword [ecx + 0x54]
mulss xmm0, dword [eax]
mulss xmm1, dword [eax + 4]
lea eax, [ecx + 0x54]
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], eax
addss xmm0, xmm2
addss xmm1, xmm3
movss dword [esp + 0xd0], xmm0
movss dword [esp + 0xd4], xmm1
cmp edi, ecx
jne 0x1001864f
inc edi
test ecx, ecx
je 0x1001862b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x10018630
mov eax, 8
mov ecx, dword [esp + 0x20]
cmp eax, edi
cmovg edi, eax
push edi
call fcn.10025180
movss xmm2, dword [esp + 0x78]
movss xmm3, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 8]
mov eax, dword [eax]
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0xd4]
movss xmm0, dword [esp + 0x60]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x4c]
inc dword [eax]
mov eax, dword [esp + 0x40]
mov ecx, dword [edi + 0x27c]
mulss xmm0, dword [eax]
push dword [eax + 0xc]
push dword [eax + 8]
addss xmm0, xmm2
movss xmm2, dword [esp + 0x24]
movss dword [esp + 0xc8], xmm0
movss xmm0, dword [esp + 0x68]
mulss xmm0, dword [eax + 4]
lea eax, [esp + 0xc8]
push eax
addss xmm0, xmm3
movss dword [esp + 0xd0], xmm0
call fcn.1002e920
mov ecx, dword [edi + 0x27c]
mov edx, dword [esp + 0x74]
lea eax, [ecx + 0x54]
mov dword [esp + 0x20], eax
push dword [esp + edx*4 + 0xf0]
push dword [eax]
push dword [ecx + 0x5c]
call fcn.1002e4c0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10018710
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
mov ecx, dword [esp + 0x24]
call fcn.10025180
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x74]
movss xmm4, dword [esp + 0x3c]
inc edx
mov dword [eax], 0
mov eax, dword [esp + 0x40]
add eax, 0x18
mov dword [esp + 0x74], edx
mov dword [esp + 0x40], eax
cmp edx, dword [esp + 0x54]
jl 0x100184c0
mov edx, dword [0x1006dc88]
movss xmm6, dword [esp + 0x3c]
xorps xmm1, xmm1
comiss xmm6, xmm1
jbe 0x10018879
movups xmm2, xmmword [edx + 0x15f0]
movss xmm7, dword [0x10041ed0]
comiss xmm1, xmm2
movaps xmm3, xmm2
movaps xmmword [esp + 0xf0], xmm2
shufps xmm3, xmm2, 0xff
mulss xmm3, dword [edx + 0x1508]
jbe 0x10018782
xorps xmm0, xmm0
jmp 0x10018789
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm4, dword [0x10041f70]
movss xmm5, dword [0x10041eac]
movss xmm2, dword [esp + 0xf4]
comiss xmm1, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si ecx, xmm0
jbe 0x100187b8
xorps xmm0, xmm0
jmp 0x100187bf
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm2, dword [esp + 0xf8]
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm1, xmm2
jbe 0x100187e3
xorps xmm0, xmm0
jmp 0x100187ea
movaps xmm0, xmm7
minss xmm0, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm1, xmm3
ja 0x10018807
movaps xmm1, xmm7
minss xmm1, xmm3
mov edx, dword [esp + 0x28]
mulss xmm1, xmm4
push ecx
movss dword [esp], xmm6
movss xmm0, dword [edx]
addss xmm0, dword [edi + 0x14]
addss xmm1, xmm5
push 0xf
push ecx
movss dword [esp + 0xcc], xmm0
movss xmm0, dword [edx + 4]
addss xmm0, dword [edi + 0x18]
cvttss2si eax, xmm1
movss dword [esp + 0xd0], xmm0
movss xmm0, dword [esp + 0x28]
shl eax, 0x18
or eax, ecx
movss dword [esp], xmm0
mov ecx, dword [edi + 0x27c]
push eax
lea eax, [esp + 0xd0]
push eax
push edx
call fcn.1002eee0
mov edx, dword [0x1006dc88]
xorps xmm1, xmm1
movss xmm6, dword [esp + 0x3c]
mov ecx, dword [esp + 0x7c]
cmp ecx, 0xffffffff
je 0x10018ab8
mov eax, dword [esp + 0x28]
movss xmm2, dword [edi + 0x10]
movss xmm7, dword [0x10041ed0]
movaps xmm4, xmm2
addss xmm4, dword [edi + 0x18]
movss xmm5, dword [eax]
movaps xmm3, xmm5
addss xmm3, dword [edi + 0x14]
subss xmm4, xmm7
subss xmm3, xmm7
test ecx, ecx
jne 0x100188f6
movd xmm4, esi
cvtdq2ps xmm4, xmm4
movss dword [esp + 0xc4], xmm2
addss xmm2, xmm1
movaps xmm0, xmm4
subss xmm3, xmm4
addss xmm0, xmm5
movss dword [esp + 0xcc], xmm2
movss dword [esp + 0xc8], xmm3
movss dword [esp + 0xc0], xmm0
jmp 0x100189cb
cmp ecx, 1
jne 0x1001893a
movaps xmm0, xmm3
movss dword [esp + 0xc8], xmm3
subss xmm0, xmm1
movss dword [esp + 0xc0], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
addss xmm2, xmm0
subss xmm4, xmm0
movss dword [esp + 0xc4], xmm2
movss dword [esp + 0xcc], xmm4
jmp 0x100189cb
cmp ecx, 2
jne 0x1001897e
movd xmm2, esi
cvtdq2ps xmm2, xmm2
movss dword [esp + 0xcc], xmm4
movaps xmm0, xmm2
subss xmm3, xmm2
addss xmm0, xmm5
movss dword [esp + 0xc8], xmm3
movss dword [esp + 0xc0], xmm0
movaps xmm0, xmm4
subss xmm0, xmm1
movss dword [esp + 0xc4], xmm0
jmp 0x100189cb
cmp ecx, 3
jne 0x100189bc
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc0], xmm5
addss xmm5, xmm1
addss xmm2, xmm0
subss xmm4, xmm0
movss dword [esp + 0xc8], xmm5
movss dword [esp + 0xc4], xmm2
movss dword [esp + 0xcc], xmm4
jmp 0x100189cb
movaps xmm0, xmmword [0x100424a0]
movups xmmword [esp + 0xc0], xmm0
movups xmm2, xmmword [edx + 0x1770]
movaps xmm4, xmm7
comiss xmm1, xmm2
movaps xmm3, xmm2
movaps xmmword [esp + 0xf0], xmm2
shufps xmm3, xmm2, 0xff
maxss xmm4, xmm6
mulss xmm3, dword [edx + 0x1508]
jbe 0x100189fa
xorps xmm0, xmm0
jmp 0x10018a01
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm5, dword [0x10041f70]
movss xmm6, dword [0x10041eac]
movss xmm2, dword [esp + 0xf4]
comiss xmm1, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si ecx, xmm0
jbe 0x10018a30
xorps xmm0, xmm0
jmp 0x10018a37
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm2, dword [esp + 0xf8]
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm1, xmm2
jbe 0x10018a5b
xorps xmm0, xmm0
jmp 0x10018a62
movaps xmm0, xmm7
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm1, xmm3
ja 0x10018a7f
movaps xmm1, xmm7
minss xmm1, xmm3
mulss xmm1, xmm5
push ecx
movss dword [esp], xmm4
addss xmm1, xmm6
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov ecx, dword [edi + 0x27c]
push eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.1002eda0
mov edx, dword [0x1006dc88]
mov esi, dword [esp + 0x10]
lea eax, [edi + 0x18]
xorps xmm1, xmm1
mov ecx, eax
mov dword [esp + 0x1c], ecx
movss xmm4, dword [esi + 0x1548]
comiss xmm4, xmm1
jbe 0x10018c2b
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x1c], ecx
jne 0x10018c2b
movups xmm2, xmmword [edx + 0x15f0]
movss xmm7, dword [0x10041ed0]
comiss xmm1, xmm2
movaps xmm3, xmm2
movaps xmmword [esp + 0xf0], xmm2
shufps xmm3, xmm2, 0xff
mulss xmm3, dword [edx + 0x1508]
jbe 0x10018b18
xorps xmm0, xmm0
jmp 0x10018b1f
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm5, dword [0x10041f70]
movss xmm6, dword [0x10041eac]
movss xmm2, dword [esp + 0xf4]
comiss xmm1, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si ecx, xmm0
jbe 0x10018b4e
xorps xmm0, xmm0
jmp 0x10018b55
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm2, dword [esp + 0xf8]
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm1, xmm2
jbe 0x10018b79
xorps xmm0, xmm0
jmp 0x10018b80
movaps xmm0, xmm7
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm1, xmm3
jbe 0x10018b9b
xorps xmm2, xmm2
jmp 0x10018ba2
movaps xmm2, xmm7
minss xmm2, xmm3
movss xmm1, dword [esi + 0x1518]
movss xmm0, dword [esp + 0x30]
mulss xmm2, xmm5
subss xmm0, xmm1
push ecx
addss xmm1, dword [esp + 0x6c]
movss dword [esp], xmm4
addss xmm2, xmm6
movss dword [esp + 0xc4], xmm0
movss xmm0, dword [esp + 0x30]
subss xmm0, xmm7
movss dword [esp + 0xd4], xmm1
cvttss2si eax, xmm2
movss dword [esp + 0xc8], xmm0
shl eax, 0x18
or eax, ecx
movss dword [esp + 0xd8], xmm0
mov ecx, dword [edi + 0x27c]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.1002eda0
mov edx, dword [0x1006dc88]
lea ecx, [edi + 0x18]
xorps xmm1, xmm1
mov dword [esp + 0x1c], ecx
cmp dword [esi + 0x1a64], edi
jne 0x10018ea9
movss xmm6, dword [edi + 0x44]
mov eax, dword [esp + 0x28]
movaps xmm0, xmm6
maxss xmm0, dword [esi + 0x1514]
movss xmm2, dword [edi + 0x10]
movss xmm7, dword [esp + 0x90]
movaps xmm4, xmm2
movss xmm3, dword [eax]
addss xmm2, dword [ecx]
movaps xmm5, xmm3
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [esi + 0x1854]
addss xmm3, dword [edi + 0x14]
subss xmm5, xmm0
subss xmm4, xmm0
addss xmm2, xmm0
addss xmm3, xmm0
comiss xmm7, xmm5
jb 0x10018cd3
movss xmm7, dword [esp + 0xac]
comiss xmm7, xmm4
jb 0x10018cd3
comiss xmm3, dword [esp + 0xb0]
jb 0x10018cd3
comiss xmm2, dword [esp + 0x50]
jb 0x10018cd3
xorps xmm0, xmmword [0x10042480]
subss xmm0, dword [0x10041ed0]
movss dword [esp + 0x6c], xmm6
subss xmm5, xmm0
subss xmm4, xmm0
addss xmm3, xmm0
addss xmm2, xmm0
movups xmm6, xmmword [edx + 0x1820]
mov ecx, dword [edi + 0x27c]
movss xmm7, dword [esi + 0x1a70]
comiss xmm1, xmm6
mov dword [esp + 0x54], ecx
mulss xmm7, dword [edx + 0x1508]
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xff
movaps xmmword [esp + 0xf0], xmm6
mulss xmm7, xmm0
jbe 0x10018d11
xorps xmm0, xmm0
jmp 0x10018d1d
movss xmm0, dword [0x10041ed0]
minss xmm0, xmm6
mulss xmm0, dword [0x10041f70]
movss xmm6, dword [esp + 0xf4]
comiss xmm1, xmm6
addss xmm0, dword [0x10041eac]
cvttss2si eax, xmm0
mov dword [esp + 0x4c], eax
jbe 0x10018d48
xorps xmm0, xmm0
jmp 0x10018d54
movss xmm0, dword [0x10041ed0]
minss xmm0, xmm6
mulss xmm0, dword [0x10041f70]
movss xmm6, dword [esp + 0xf8]
addss xmm0, dword [0x10041eac]
cvttss2si eax, xmm0
shl eax, 8
or dword [esp + 0x4c], eax
comiss xmm1, xmm6
jbe 0x10018d82
xorps xmm0, xmm0
jmp 0x10018d8e
movss xmm0, dword [0x10041ed0]
minss xmm0, xmm6
movss xmm6, dword [0x10041f70]
mulss xmm0, xmm6
addss xmm0, dword [0x10041eac]
cvttss2si eax, xmm0
shl eax, 0x10
or dword [esp + 0x4c], eax
comiss xmm1, xmm7
ja 0x10018dbe
movss xmm1, dword [0x10041ed0]
minss xmm1, xmm7
movss xmm0, dword [0x10041eac]
mulss xmm1, xmm6
addss xmm1, xmm0
cvttss2si eax, xmm1
shl eax, 0x18
or eax, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
test eax, 0xff000000
je 0x10018ea9
test byte [ecx + 0x24], 1
addss xmm5, xmm0
addss xmm4, xmm0
push 0xffffffffffffffff
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xd8]
movss dword [esp + 0xd8], xmm5
movss dword [esp + 0xdc], xmm4
push eax
je 0x10018e24
subss xmm3, xmm0
subss xmm2, xmm0
jmp 0x10018e34
subss xmm3, dword [0x10041ea8]
subss xmm2, dword [0x10041ea8]
movss dword [esp + 0xcc], xmm3
movss xmm3, dword [esp + 0x78]
movss dword [esp + 0xd0], xmm2
call fcn.1002ea60
mov ecx, dword [esp + 0x54]
push ecx
mov dword [esp], 0x40400000
lea eax, [ecx + 0x54]
push 1
push dword [esp + 0x68]
mov dword [esp + 0x5c], eax
push dword [eax]
push dword [ecx + 0x5c]
call fcn.1002d860
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10018e9d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
mov ecx, dword [esp + 0x54]
call fcn.10025180
mov eax, dword [esp + 0x50]
mov edx, dword [0x1006dc88]
mov dword [eax], 0
mov eax, dword [edi + 0x1c]
xorps xmm2, xmm2
mov ecx, dword [edi + 0x20]
movss xmm3, dword [edi + 0x3c]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x28]
mov dword [edi + 0x28], ecx
mov ecx, dword [edi + 8]
movss xmm5, dword [eax]
mov eax, ecx
subss xmm5, dword [edi + 0x54]
and eax, 0x400
mov dword [esp + 0x54], eax
movaps xmm0, xmm5
addss xmm0, xmm3
movss dword [edi + 0x214], xmm0
je 0x10018f13
movss xmm1, dword [edx + 0x1858]
mulss xmm1, dword [edi + 0x274]
movss xmm0, dword [edx + 0x1540]
addss xmm0, xmm0
addss xmm1, dword [edi + 0x148]
addss xmm1, xmm0
jmp 0x10018f16
xorps xmm1, xmm1
and ecx, 1
je 0x10018f20
xorps xmm6, xmm6
jmp 0x10018f40
movss xmm0, dword [edx + 0x1540]
movss xmm6, dword [edx + 0x1858]
addss xmm0, xmm0
mulss xmm6, dword [edi + 0x274]
addss xmm6, xmm0
movss xmm4, dword [edi + 0x10]
subss xmm4, dword [edi + 0x58]
movss xmm7, dword [edi + 0x40]
movaps xmm0, xmm4
addss xmm0, xmm7
addss xmm0, xmm6
addss xmm0, xmm1
movss dword [edi + 0x218], xmm0
movss xmm0, dword [edi + 0x34]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x10018f7e
movss xmm0, dword [edi + 0x14]
subss xmm0, dword [edi + 0x6c]
subss xmm5, xmm3
addss xmm5, xmm0
movss xmm0, dword [edi + 0x38]
ucomiss xmm0, xmm2
movss dword [edi + 0x21c], xmm5
lahf
test ah, 0x44
jp 0x10018fa9
mov eax, dword [esp + 0x1c]
movss xmm0, dword [eax]
subss xmm0, dword [edi + 0x70]
mov dword [edi + 0x1bc], 0
subss xmm4, xmm7
mov dword [edi + 0x1c0], 0
addss xmm3, xmm2
addss xmm4, xmm0
subss xmm3, dword [edi + 0x54]
movss dword [edi + 0x220], xmm4
movss dword [edi + 0x1b8], xmm3
test ecx, ecx
je 0x10018fe7
xorps xmm4, xmm4
jmp 0x10019007
movss xmm0, dword [edx + 0x1540]
movss xmm4, dword [edx + 0x1858]
addss xmm0, xmm0
mulss xmm4, dword [edi + 0x274]
addss xmm4, xmm0
cmp dword [esp + 0x54], 0
je 0x10019038
movss xmm1, dword [edx + 0x1858]
mulss xmm1, dword [edi + 0x274]
movss xmm0, dword [edx + 0x1540]
addss xmm0, xmm0
addss xmm1, dword [edi + 0x148]
addss xmm1, xmm0
jmp 0x1001903b
xorps xmm1, xmm1
mov eax, dword [esp + 0x28]
addss xmm1, xmm4
addss xmm3, xmm2
mov dword [edi + 0xf0], 0
mov dword [edi + 0xe8], 0
mov dword [edi + 0xf4], 0
mov dword [edi + 0xec], 0
addss xmm1, xmm7
addss xmm3, dword [eax]
subss xmm1, dword [edi + 0x58]
movss dword [edi + 0xd8], xmm3
movss dword [edi + 0xc8], xmm3
movss dword [edi + 0xd0], xmm3
movss dword [edi + 0xe0], xmm3
addss xmm1, dword [edi + 0x10]
movss dword [edi + 0xdc], xmm1
movss dword [edi + 0xcc], xmm1
movss dword [edi + 0xd4], xmm1
movss dword [edi + 0xe4], xmm1
mov byte [edi + 0x12c], 0
mov eax, dword [edx + 0x1928]
movss xmm0, dword [eax + 0x20]
subss xmm0, dword [eax + 0x70]
movss xmm1, dword [eax + 0x30]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
comiss xmm0, xmm2
seta al
mov byte [edi + 0x12d], al
mov eax, dword [edi + 0x13c]
mov dword [edi + 0x138], eax
lea eax, [edi + 0x14c]
mov dword [edi + 0x13c], 0
mov byte [edi + 0x140], 0
movss xmm0, dword [edi + 0xcc]
subss xmm0, dword [0x10041f90]
movss dword [edi + 0xf8], xmm0
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10019158
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x14c]
call fcn.10024d20
lea eax, [edi + 0x14c]
mov ecx, dword [esp + 0x5c]
mov dword [eax], 0
mov dword [edi + 0x15c], 0
test ecx, ecx
je 0x10019184
mov eax, dword [ecx + 0x15c]
mov dword [edi + 0x160], eax
mov eax, dword [ecx + 0x164]
jmp 0x10019193
mov dword [edi + 0x160], 0
mov eax, 1
mov dword [edi + 0x164], eax
mov eax, dword [edi + 0x228]
mov dword [edi + 0x168], eax
lea eax, [edi + 0x170]
mov dword [edi + 0x16c], 0xbf800000
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x100191de
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x170]
call fcn.10024d20
lea eax, [edi + 0x170]
push ecx
lea ecx, [edi + 0x17c]
mov dword [eax], 0
call fcn.10024e50
push ecx
lea ecx, [edi + 0x188]
call fcn.10024e50
mov dword [edi + 0x1c4], 0
lea eax, [edi + 0x25c]
mov dword [edi + 0xfc], 0
lea ecx, [edi + 0x194]
mov dword [edi + 0x100], 0
push 0
mov dword [edi + 0x158], eax
call fcn.100249d0
cmp byte [esp + 0x17], 0
lea ecx, [edi + 0x24c]
movss xmm0, dword [esi + 0x154c]
mov dword [edi + 0x22c], 3
mov dword [edi + 0x238], 0
mov dword [edi + 0x234], 0
movss dword [edi + 0x230], xmm0
je 0x10019274
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
xor edx, edx
cmp dword [edi + 0x22c], edx
jle 0x100192e0
xorps xmm1, xmm1
test edx, edx
jle 0x100192a6
movss xmm0, dword [ecx]
comiss xmm0, xmm1
jbe 0x100192a6
movss xmm0, dword [edi + 0x230]
addss xmm0, dword [edi + 0x234]
movss dword [edi + 0x234], xmm0
cvttss2si eax, dword [edi + 0x234]
inc edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x10], xmm0
movss xmm0, dword [ecx]
addss xmm0, dword [edi + 0x234]
movss dword [edi + 0x234], xmm0
mov dword [ecx], 0
add ecx, 4
cmp edx, dword [edi + 0x22c]
jl 0x10019281
cmp dword [esp + 0x44], 0
je 0x10019348
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x164]
cmp dword [edi + 0x164], eax
je 0x10019348
lea esi, [edi + 0x170]
mov dword [edi + 0x164], eax
mov ecx, dword [esi + 4]
mov edx, dword [esi]
cmp edx, ecx
jne 0x10019338
inc edx
mov dword [esp + 0x54], edx
test ecx, ecx
je 0x10019326
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x54]
sar eax, 1
add eax, ecx
jmp 0x1001932b
mov eax, 8
cmp eax, edx
mov ecx, esi
cmovg edx, eax
push edx
call fcn.10024d20
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [edi + 0x164]
mov dword [ecx + edx*4], eax
inc dword [esi]
mov eax, dword [edi + 0x90]
test eax, eax
jle 0x10019359
dec eax
mov dword [edi + 0x90], eax
mov eax, dword [edi + 0x94]
test eax, eax
jle 0x1001936a
dec eax
mov dword [edi + 0x94], eax
cmp byte [esp + 0xf], 0
je 0x100193fe
mov ecx, edi
call fcn.1001a650
mov eax, dword [edi + 8]
mov esi, dword [0x1006dc88]
mov dword [esp + 0x44], esi
test eax, 0x40000
jne 0x100193f0
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x100193a5
cmp dword [edi + 0x308], 0
jne 0x100193f0
mov ecx, dword [esi + 0x1a78]
mov eax, dword [esi + 0x1a24]
movaps xmm0, xmmword [0x100424a0]
mov dword [esi + 0x1a28], 0
mov dword [eax + ecx*4 + 0x308], 0
mov word [esi + 0x1a85], 1
mov dword [esi + 0x1a88], 0
movups xmmword [esi + 0x1a8c], xmm0
mov byte [esi + 0x1a84], 1
jmp 0x10019408
mov eax, dword [edi + 0x308]
mov dword [esi + 0x1a28], eax
jmp 0x10019408
mov esi, dword [0x1006dc88]
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 0x18]
movaps xmm6, xmmword [esp + 0xe0]
movaps xmmword [esp + 0xd0], xmm6
test cl, 1
jne 0x10019811
mov eax, dword [edi + 0x164]
mov dword [esp + 0x60], eax
or eax, 0x10
mov dword [edi + 0x164], eax
inc dword [edi + 0x130]
mov eax, dword [edi + 0x134]
add eax, eax
mov dword [edi + 0x134], eax
mov eax, ecx
and eax, 0x20
mov dword [esp + 0xbc], eax
jne 0x1001963e
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x28]
movss xmm2, dword [eax + 0x153c]
movss xmm3, dword [eax + 0x1540]
addss xmm2, dword [ecx]
addss xmm3, dword [ecx + 4]
mov ecx, dword [edi + 0x1c8]
mov eax, dword [edi + 0x1d0]
push dword [eax + ecx*4 - 4]
mov ecx, str.COLLAPSE
call fcn.1000b6f0
mov ecx, eax
add esp, 4
mov dword [esp + 0x54], ecx
cmp dword [esi + 0x1944], ecx
jne 0x100194b3
mov byte [esi + 0x1950], 1
cmp dword [esi + 0x1948], ecx
jne 0x100194c2
mov byte [esi + 0x1954], 1
movss xmm1, dword [esi + 0x1854]
mov edx, ecx
mov eax, dword [esi + 0x1928]
lea ecx, [esp + 0xc0]
movaps xmm0, xmm1
mov dword [esp + 0x50], eax
addss xmm0, xmm2
movss dword [esp + 0xc0], xmm2
addss xmm1, xmm3
movss dword [esp + 0xc4], xmm3
push 0
movss dword [esp + 0xcc], xmm0
movss dword [esp + 0xd0], xmm1
call fcn.1000d280
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0xc4]
add esp, 4
push 0
push 0
push 0
call fcn.1001b380
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0xcc]
add esp, 0xc
mov byte [esp + 0x27], al
push 1
call fcn.100137c0
mov eax, dword [esp + 0x54]
xor ecx, ecx
movss xmm1, dword [0x10041ed0]
add esp, 4
cmp byte [eax + 0x79], cl
push dword [esp + 0xc4]
sete cl
push dword [esp + 0xc4]
lea ecx, [ecx*2 + 1]
call fcn.10013330
mov esi, dword [0x1006dc88]
add esp, 8
mov ecx, dword [esi + 0x1944]
test ecx, ecx
je 0x10019631
mov eax, dword [esi + 0x1928]
cmp ecx, dword [eax + 0x104]
jne 0x10019631
cmp byte [esi + 0xe0], 0
je 0x10019631
movss xmm1, dword [esi + 0x30]
movss xmm0, dword [esi + 0x44c]
mulss xmm1, xmm1
comiss xmm0, xmm1
setae al
test al, al
je 0x10019631
mov ecx, dword [esp + 0x50]
call fcn.1001a650
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0x4c]
call fcn.1000c7b0
mov byte [esi + 0x1a82], 1
mov eax, dword [edx + 0x2f8]
movss xmm1, dword [esi + 0xd8]
movss xmm0, dword [esi + 0xdc]
subss xmm1, dword [eax + 0xc]
subss xmm0, dword [eax + 0x10]
movss dword [esi + 0x195c], xmm1
movss dword [esi + 0x1960], xmm0
test byte [edx + 8], 4
jne 0x1001962b
mov eax, dword [edx + 0x2f8]
test byte [eax + 8], 4
jne 0x1001962b
mov dword [esi + 0x1978], edx
mov esi, dword [0x1006dc88]
cmp byte [esp + 0x27], 0
je 0x10019642
mov byte [edi + 0x7a], 1
jmp 0x10019642
mov esi, dword [esp + 0x44]
dec dword [edi + 0x130]
sar dword [edi + 0x134], 1
mov edx, dword [esp + 0x8c]
mov ecx, edx
mov eax, dword [esp + 0x60]
mov dword [edi + 0x164], eax
cmp edx, 0xffffffff
jae 0x10019683
mov dl, byte [ecx]
test dl, dl
je 0x1001967c
cmp dl, 0x23
jne 0x10019676
cmp byte [ecx + 1], dl
je 0x1001967c
inc ecx
cmp ecx, 0xffffffff
jb 0x10019666
mov edx, dword [esp + 0x8c]
movss xmm0, dword [esi + 0x1854]
mov eax, dword [esi + 0x1850]
mov dword [esp + 0x60], eax
movss dword [esp + 0x54], xmm0
cmp edx, ecx
jne 0x100196ac
mov dword [esp + 0x54], 0
xorps xmm1, xmm1
jmp 0x1001971d
movss xmm3, dword [0x10041f98]
movaps xmm2, xmm0
push ecx
push ecx
push edx
push ecx
lea ecx, [esp + 0xd0]
mov dword [esp], 0xbf800000
push ecx
mov ecx, eax
call fcn.100313d0
movss xmm0, dword [esp + 0xc0]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x100196f4
mov eax, dword [esp + 0x60]
movss xmm2, dword [esp + 0x54]
divss xmm2, dword [eax]
subss xmm0, xmm2
addss xmm0, dword [0x10041ecc]
mov edx, dword [esp + 0x8c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0xc4]
cmp dword [esp + 0xbc], 0
mov eax, dword [esp + 0x10]
movss dword [esp + 0x58], xmm0
movaps xmm0, xmmword [esp + 0xd0]
movaps xmmword [esp + 0xc0], xmm0
je 0x1001974e
movss xmm0, dword [eax + 0x153c]
movaps xmm3, xmm0
jmp 0x10019769
movss xmm3, dword [eax + 0x153c]
movaps xmm0, xmm3
addss xmm0, dword [eax + 0x1854]
addss xmm0, dword [eax + 0x1554]
movss xmm4, dword [eax + 0x1524]
add eax, 0x1524
comiss xmm4, xmm1
movaps xmm2, xmm3
jbe 0x1001978d
movaps xmm2, xmm0
subss xmm2, xmm3
mulss xmm2, xmm4
addss xmm2, xmm3
addss xmm0, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esp + 0xc8]
subss xmm0, xmm2
movss dword [esp + 0xc8], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0xf0], xmm0
movss xmm0, dword [ecx]
lea ecx, [esp + 0xf0]
addss xmm0, dword [edi + 0x14]
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
subss xmm0, xmm3
push 0
push edx
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xd4]
movss dword [esp + 0x10c], xmm0
call fcn.10012870
mov esi, dword [0x1006dc88]
add esp, 0x14
movaps xmm6, xmmword [esp + 0xd0]
movss xmm3, dword [edi + 0x10]
mov edx, dword [esp + 0x28]
movaps xmm0, xmm3
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
and eax, 0x401
movss xmm1, dword [edx]
movaps xmm2, xmm1
addss xmm0, dword [ecx]
addss xmm2, dword [edi + 0x14]
movss dword [edi + 0x1e4], xmm1
movss dword [edi + 0x1e8], xmm3
movss dword [edi + 0x1ec], xmm2
movss dword [edi + 0x1f0], xmm0
movss xmm0, dword [edi + 0x1e4]
maxss xmm0, dword [edi + 0x1d4]
maxss xmm3, dword [edi + 0x1d8]
movss dword [edi + 0x1e4], xmm0
movss dword [edi + 0x1e8], xmm3
movss xmm1, dword [edi + 0x1ec]
movss xmm0, dword [edi + 0x1f0]
minss xmm1, dword [edi + 0x1dc]
minss xmm0, dword [edi + 0x1e0]
movss dword [edi + 0x1ec], xmm1
movss dword [edi + 0x1f0], xmm0
movss xmm1, dword [edi + 0x48]
movaps xmm5, xmm1
addss xmm5, dword [esp + 0x68]
movss dword [edi + 0x1f4], xmm5
cmp eax, 1
jne 0x100198d2
movaps xmm2, xmm1
jmp 0x100198de
mov eax, dword [esp + 0x10]
movss xmm2, dword [eax + 0x1548]
test dword [edi + 8], 0x400
je 0x10019911
movss xmm4, dword [esi + 0x1858]
mulss xmm4, dword [edi + 0x274]
movss xmm0, dword [esi + 0x1540]
addss xmm0, xmm0
addss xmm4, dword [edi + 0x148]
addss xmm4, xmm0
jmp 0x10019914
xorps xmm4, xmm4
addss xmm4, dword [esp + 0x2c]
movss xmm7, dword [0x10041eac]
addss xmm5, xmm7
addss xmm4, xmm2
movss dword [edi + 0x1f8], xmm4
addss xmm4, xmm7
movss xmm3, dword [edx]
addss xmm3, dword [edi + 0x14]
subss xmm3, dword [edi + 0x6c]
subss xmm3, xmm1
movss dword [edi + 0x1fc], xmm3
addss xmm3, xmm7
movss xmm2, dword [ecx]
addss xmm2, dword [edi + 0x10]
subss xmm2, dword [edi + 0x70]
subss xmm2, xmm1
movss dword [edi + 0x200], xmm2
addss xmm2, xmm7
movss xmm0, dword [edi + 0x3c]
mulss xmm0, xmm7
subss xmm0, xmm1
xorps xmm1, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm1, xmm0
addss xmm5, xmm1
subss xmm3, xmm1
cvttss2si eax, xmm5
movss xmm5, dword [esp + 0xe4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm4
movss dword [edi + 0x204], xmm0
movss xmm4, dword [esp + 0x68]
movd xmm0, eax
cvttss2si eax, xmm3
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x208], xmm0
movd xmm0, eax
cvttss2si eax, xmm2
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x20c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x210], xmm0
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x104], eax
movss xmm1, dword [esi + 0x155c]
movss xmm0, dword [esi + 0x1560]
subss xmm4, xmm1
movaps xmm2, xmm1
subss xmm5, xmm0
movss xmm1, dword [esi + 0xd8]
movaps xmm3, xmm0
addss xmm2, dword [esp + 0x30]
addss xmm3, dword [esp + 0x2c]
comiss xmm1, xmm4
jb 0x10019a52
movss xmm0, dword [esi + 0xdc]
comiss xmm0, xmm5
jb 0x10019a52
comiss xmm2, xmm1
jbe 0x10019a52
comiss xmm3, xmm0
jbe 0x10019a52
mov eax, 1
jmp 0x10019a54
xor eax, eax
mov dword [edi + 0x108], eax
movups xmmword [edi + 0x10c], xmm6
mov eax, dword [esi + 0x1928]
mov byte [eax + 0x78], 1
mov eax, dword [esi + 0x1928]
movss xmm3, dword [edi + 0x20c]
movss xmm2, dword [edi + 0x210]
movss xmm1, dword [edi + 0x204]
movss xmm0, dword [edi + 0x208]
mov dword [esp + 0x60], eax
mov eax, dword [eax + 0x27c]
mov edx, dword [eax + 0x3c]
lea esi, [eax + 0x3c]
mov dword [esp + 0x30], eax
movss dword [esp + 0xc0], xmm1
movss dword [esp + 0xc4], xmm0
movss dword [esp + 0xc8], xmm3
movss dword [esp + 0xcc], xmm2
test edx, edx
je 0x10019b53
mov eax, dword [eax + 0x44]
mov ecx, edx
add ecx, ecx
movups xmm4, xmmword [eax + ecx*8 - 0x10]
mov ecx, edx
comiss xmm4, xmm1
movaps xmmword [esp + 0xe0], xmm4
jbe 0x10019aff
mov eax, dword [esp + 0x30]
movaps xmm1, xmm4
movss dword [esp + 0xc0], xmm1
mov ecx, dword [eax + 0x3c]
movss xmm4, dword [esp + 0xe4]
mov eax, edx
comiss xmm4, xmm0
jbe 0x10019b1d
movaps xmm0, xmm4
mov eax, ecx
movss dword [esp + 0xc4], xmm0
movss xmm4, dword [esp + 0xe8]
comiss xmm3, xmm4
jbe 0x10019b39
movaps xmm3, xmm4
mov edx, eax
movss dword [esp + 0xc8], xmm3
movss xmm4, dword [esp + 0xec]
comiss xmm2, xmm4
jbe 0x10019b53
movaps xmm2, xmm4
movss dword [esp + 0xcc], xmm2
comiss xmm1, xmm3
jb 0x10019b61
movss dword [esp + 0xc8], xmm1
comiss xmm0, xmm2
jb 0x10019b6f
movss dword [esp + 0xcc], xmm0
mov ecx, dword [esi + 4]
cmp edx, ecx
jne 0x10019ba0
inc edx
mov dword [esp + 0x54], edx
test ecx, ecx
je 0x10019b8e
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x54]
sar eax, 1
add eax, ecx
jmp 0x10019b93
mov eax, 8
cmp eax, edx
mov ecx, esi
cmovg edx, eax
push edx
call fcn.10032050
mov eax, dword [esi]
movups xmm0, xmmword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
shl eax, 4
add eax, dword [esi + 8]
movups xmmword [eax], xmm0
inc dword [esi]
call fcn.1002d310
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x27c]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movss xmm0, dword [eax + ecx*8 - 0xc]
movss xmm1, dword [eax + ecx*8 - 8]
movss xmm2, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 0x10]
mov dword [edx + 0x1d4], eax
mov eax, dword [esp + 0x88]
movss dword [edx + 0x1d8], xmm0
movss dword [edx + 0x1dc], xmm1
movss dword [edx + 0x1e0], xmm2
cmp eax, dword [esp + 0x70]
je 0x10019c15
mov byte [edi + 0x78], 0
mov eax, dword [esp + 0x10]
inc dword [edi + 0x88]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x19d0], 0
mov dword [eax + 0x19cc], 0
mov dword [eax + 0x19c8], 0
mov dword [eax + 0x19c4], 0
mov dword [eax + 0x19c0], 0
mov dword [eax + 0x19bc], 0
mov dword [eax + 0x19b8], 0
test ecx, 0x1000000
je 0x10019cd2
test cl, 0x40
jne 0x10019cb4
cmp dword [edi + 0x90], 0
jg 0x10019cb4
cmp dword [edi + 0x94], 0
jg 0x10019cb4
movss xmm0, dword [edi + 0x1e4]
comiss xmm0, dword [edi + 0x1ec]
jae 0x10019caa
movss xmm0, dword [edi + 0x1e8]
comiss xmm0, dword [edi + 0x1f0]
jb 0x10019cb4
mov dword [edi + 0xa4], 1
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x10019cd2
cmp byte [ecx + 0x79], 0
jne 0x10019cc8
cmp byte [ecx + 0x7d], 0
je 0x10019cd2
mov dword [edi + 0xa4], 1
xorps xmm0, xmm0
comiss xmm0, dword [eax + 0x1508]
jb 0x10019ce8
mov dword [edi + 0xa4], 1
cmp dword [edi + 0xa4], 0
jg 0x10019cfe
cmp dword [edi + 0xa8], 0
jne 0x10019cfe
xor al, al
jmp 0x10019d00
mov al, 1
mov byte [edi + 0x7d], al
cmp byte [edi + 0x79], 0
jne 0x10019d13
cmp byte [edi + 0x76], 0
je 0x10019d13
test al, al
je 0x10019d32
cmp dword [edi + 0x90], 0
jg 0x10019d32
cmp dword [edi + 0x94], 0
jg 0x10019d32
cmp dword [edi + 0xa8], 0
jg 0x10019d32
mov al, 1
jmp 0x10019d34
xor al, al
mov ecx, dword [esp + 0x10c]
mov byte [edi + 0x7b], al
xor al, 1
pop edi
pop esi
xor ecx, esp
call fcn.10034b20
mov esp, ebp
pop ebp
ret