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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x118
mov eax, dword [0x1004a040]
xor eax, esp
mov dword [esp + 0x114], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [0x1004ad74]
push edi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], esi
call fcn.10012d00
mov edi, eax
mov dword [esp + 0x50], eax
test edi, edi
xorps xmm0, xmm0
movss dword [esp + 0x28], xmm0
sete cl
mov byte [esp + 0x23], cl
test eax, eax
jne 0x1001581f
mov edx, dword [esi + 0x1a2c]
and edx, 2
je 0x100157d3
mov eax, dword [esi + 0x1a4c]
mov ecx, dword [esi + 0x1a50]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
jmp 0x100157e3
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
test edx, edx
lea ecx, [esp + 0x6c]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x54]
cmovne eax, ecx
mov ecx, dword [esp + 0x74]
movss xmm0, dword [eax]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [eax + 4]
movss dword [esp + 0x4c], xmm0
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.10012da0
add esp, 8
mov edi, eax
mov edx, dword [esp + 0x14]
mov ecx, edx
and ecx, 0xc0200
cmp ecx, 0xc0200
jne 0x1001583a
or edx, 6
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x1960]
mov ecx, dword [edi + 0x224]
mov dword [esp + 0x78], eax
dec eax
cmp ecx, eax
mov dword [esp + 0x7c], ecx
mov eax, dword [edi + 0x9c]
setl ch
mov dword [esp + 0x40], eax
mov byte [esp + 0x1b], ch
test edx, 0x4000000
je 0x100158a8
mov ecx, dword [esp + 0x38]
mov eax, dword [esi + 0x1ac4]
mov edx, dword [ecx + 0x1ac0]
mov ch, byte [esp + 0x1b]
lea esi, [eax + eax*8]
mov eax, dword [edi + 0x8c]
cmp edi, dword [edx + esi*4 + 4]
setne cl
cmp eax, dword [edx + esi*4]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
setne al
or cl, al
mov eax, dword [esp + 0x40]
or ch, cl
mov byte [esp + 0x1b], ch
test ch, ch
jne 0x100158b8
test eax, eax
jg 0x100158b8
mov byte [edi + 0x80], ch
jmp 0x100158d4
or dword [edi + 0xa0], 8
or dword [edi + 0xa4], 8
or dword [edi + 0xa8], 8
mov byte [edi + 0x80], 1
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x7c], eax
je 0x1001591a
mov dword [edi + 0x224], eax
xor eax, eax
mov dword [edi + 8], edx
movsd xmm0, qword [esi + 0x1958]
cvtpd2ps xmm0, xmm0
mov word [edi + 0x86], ax
movss dword [edi + 0x228], xmm0
mov ax, word [esi + 0x19ac]
mov word [edi + 0x88], ax
inc dword [esi + 0x19ac]
jmp 0x10015921
mov edx, dword [edi + 8]
mov dword [esp + 0x14], edx
cmp dword [esi + 0x1994], 0
lea ecx, [esi + 0x1994]
jne 0x1001593a
mov dword [esp + 0x30], 0
jmp 0x1001594e
mov eax, dword [esi + 0x199c]
mov esi, dword [ecx]
mov eax, dword [eax + esi*4 - 4]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x78]
je 0x10015969
mov eax, edx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, dword [esp + 0x30]
jmp 0x1001596f
mov eax, dword [edi + 0x2f0]
cmp dword [edi + 0xbc], 0
mov dword [esp + 0x44], eax
jne 0x10015991
lea eax, [edi + 4]
push eax
lea ecx, [edi + 0xbc]
call fcn.1001dd30
lea ecx, [esi + 0x1994]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, eax
jne 0x100159c7
inc edx
mov dword [esp + 0x24], edx
test eax, eax
je 0x100159b1
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x100159b6
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.1001dbe0
lea ecx, [esi + 0x1994]
mov ecx, dword [ecx]
lea edx, [edi + 0x1a8]
mov eax, dword [esi + 0x199c]
mov dword [eax + ecx*4], edi
inc dword [esi + 0x1994]
mov ecx, dword [0x1004ad74]
mov dword [esi + 0x19b0], 0
movzx eax, word [edi + 0xbc]
mov word [edx], ax
movzx eax, word [edi + 0x19c]
mov word [edx + 2], ax
movzx eax, word [ecx + 0x1ac4]
mov word [edx + 4], ax
movzx eax, word [ecx + 0x1a94]
mov word [edx + 6], ax
add edx, 8
movzx eax, word [ecx + 0x1aa0]
mov word [edx], ax
movzx eax, word [ecx + 0x1aac]
mov word [edx + 2], ax
mov eax, dword [esp + 0x14]
test eax, 0x4000000
je 0x10015ae0
mov eax, dword [esi + 0x1ac4]
lea ecx, [esi + 0x1ac4]
mov edx, dword [esi + 0x1ac0]
mov dword [esp + 0x34], edx
lea eax, [eax + eax*8]
mov dword [edx + eax*4 + 4], edi
mov edx, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
cmp edx, eax
jne 0x10015a97
inc edx
mov dword [esp + 0x24], edx
test eax, eax
je 0x10015a81
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x10015a86
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.1001e0f0
lea ecx, [esi + 0x1ac4]
mov eax, dword [ecx]
mov esi, dword [esp + 0x34]
mov ecx, dword [ecx + 8]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x30]
movups xmm0, xmmword [esi + eax*4]
movups xmmword [ecx + edx*4], xmm0
movups xmm0, xmmword [esi + eax*4 + 0x10]
movups xmmword [ecx + edx*4 + 0x10], xmm0
mov eax, dword [esi + eax*4 + 0x20]
mov esi, dword [esp + 0x38]
mov dword [ecx + edx*4 + 0x20], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
inc dword [esi + 0x1ac4]
mov eax, dword [ecx + eax*4]
mov dword [edi + 0x8c], eax
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x40], 0
jle 0x10015af8
test eax, 0x1000000
jne 0x10015af8
mov dword [edi + 0x304], 0
xor dl, dl
mov byte [esp + 0x13], 0
test byte [esi + 0x1a2c], 1
mov byte [esp + 0x1a], dl
mov byte [esp + 0x12], dl
je 0x10015b9e
mov ecx, dword [esi + 0x1a30]
mov edx, dword [edi + 0xa0]
test ecx, edx
mov eax, edx
setne byte [esp + 0x13]
test ecx, eax
je 0x10015b8d
movss xmm1, dword [esi + 0x1a48]
movss xmm0, dword [esi + 0x1a44]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x10045e60]
jbe 0x10015b8d
mov eax, dword [esi + 0x1a3c]
and edx, 0xfffffff1
mov ecx, dword [esi + 0x1a40]
mov dword [edi + 0xac], eax
mov dword [edi + 0xb0], ecx
mov eax, dword [esi + 0x1a44]
mov ecx, dword [esi + 0x1a48]
mov dword [edi + 0xb4], eax
mov dword [edi + 0xb8], ecx
mov dword [edi + 0xa0], edx
jmp 0x10015b9e
push ecx
lea edx, [esi + 0x1a3c]
mov ecx, edi
call fcn.100187a0
add esp, 4
test byte [esi + 0x1a2c], 2
je 0x10015c03
mov eax, dword [edi + 0xa4]
mov ecx, dword [esi + 0x1a34]
movss xmm1, dword [esp + 0x28]
and eax, ecx
je 0x10015bd1
movss xmm0, dword [esi + 0x1a4c]
comiss xmm0, xmm1
jbe 0x10015bd1
mov byte [esp + 0x1a], 1
jmp 0x10015bdb
xor dl, dl
mov byte [esp + 0x1a], dl
test eax, eax
je 0x10015bed
movss xmm0, dword [esi + 0x1a50]
comiss xmm0, xmm1
mov byte [esp + 0x12], 1
ja 0x10015bf2
mov byte [esp + 0x12], 0
push ecx
lea edx, [esi + 0x1a4c]
mov ecx, edi
call fcn.10018880
add esp, 4
test byte [esi + 0x1a2c], 4
je 0x10015c20
mov eax, dword [esi + 0x1a54]
mov ecx, dword [esi + 0x1a58]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], ecx
jmp 0x10015c38
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x78]
je 0x10015c38
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
test byte [esi + 0x1a2c], 8
je 0x10015c63
mov eax, dword [esi + 0x1a38]
mov cl, byte [esi + 0x1a5c]
test eax, eax
je 0x10015c59
test dword [edi + 0xa8], eax
je 0x10015c63
and dword [edi + 0xa8], 0xfffffff1
mov byte [edi + 0x7d], cl
test byte [esi + 0x1a2c], 0x20
je 0x10015c73
mov ecx, edi
call fcn.100182e0
cmp byte [edi + 0x80], 0
je 0x10015c91
and dword [edi + 0xa0], 0xfffffff7
and dword [edi + 0xa4], 0xfffffff7
and dword [edi + 0xa8], 0xfffffff7
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x78]
je 0x10017e98
mov ecx, dword [esp + 0x14]
mov edx, ecx
mov eax, dword [esp + 0x44]
and edx, 0x3000000
mov dword [esp + 0x34], edx
mov dword [edi + 0x2f0], eax
mov dword [edi + 0x2fc], edi
mov dword [edi + 0x2f8], edi
mov dword [edi + 0x2f4], edi
test eax, eax
je 0x10015d03
cmp edx, 0x1000000
jne 0x10015ce7
mov eax, dword [eax + 0x2f4]
mov dword [edi + 0x2f4], eax
mov eax, dword [esp + 0x44]
test ecx, 0x8000000
jne 0x10015d03
test ecx, 0x5000000
je 0x10015d03
mov eax, dword [eax + 0x2f8]
mov dword [edi + 0x2f8], eax
test dword [edi + 8], 0x800000
je 0x10015d27
mov ecx, edi
nop
mov eax, dword [ecx + 0x2f0]
mov ecx, eax
mov dword [edi + 0x2fc], eax
test dword [ecx + 8], 0x800000
jne 0x10015d10
mov byte [edi + 0x7a], 1
mov byte [edi + 0x82], 0
mov dword [edi + 0x204], 0xff7fffff
mov dword [edi + 0x208], 0xff7fffff
mov dword [edi + 0x20c], 0x7f7fffff
mov dword [edi + 0x210], 0x7f7fffff
mov ecx, dword [edi + 0xc0]
cmp ecx, 1
jge 0x10015e13
test ecx, ecx
je 0x10015d92
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 + 0x30], ecx
cmp ecx, dword [edi + 0xc0]
jle 0x10015e13
jmp 0x10015d9b
mov ecx, 8
mov dword [esp + 0x30], ecx
mov eax, dword [0x1004ad74]
test eax, eax
je 0x10015daa
inc dword [eax + 0x374]
lea eax, [ecx*4]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edx, eax
add esp, 4
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x24], eax
test eax, eax
je 0x10015e03
mov ecx, dword [edi + 0xbc]
shl ecx, 2
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [0x1004ad74]
add esp, 0xc
test eax, eax
je 0x10015df2
dec dword [eax + 0x374]
push dword [esp + 0x24]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [esp + 0x40]
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [edi + 0xc4], edx
mov dword [edi + 0xc0], eax
mov dword [edi + 0xbc], 1
cmp byte [edi + 0x32c], 0
je 0x10015e69
mov ecx, dword [edi + 0x274]
push dword [edi + 0x330]
add ecx, 0xc
mov byte [edi + 0x32c], 0
call fcn.1001e080
mov ecx, dword [edi + 0x274]
push dword [edi + 0x334]
add ecx, 0x18
call fcn.1001de90
mov dword [edi + 0x334], 0
mov dword [edi + 0x330], 0
cmp dword [esi + 0x1b18], 0
mov ecx, dword [esp + 0x50]
je 0x10015f58
test dword [edi + 8], 0x80000
jne 0x10015f58
test ecx, ecx
je 0x10015f58
mov eax, dword [edi]
mov ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x74]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10015ec0
test dl, dl
je 0x10015ebc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10015ec0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10015ea0
xor eax, eax
jmp 0x10015ec5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10015f54
mov ecx, dword [esp + 0x74]
mov edx, dword [edi + 0x44]
mov dword [esp + 0x1c], edx
lea eax, [ecx + 1]
mov dword [esp + 0x24], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10015ee0
sub ecx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
cmp edx, eax
jae 0x10015f3d
test ecx, ecx
je 0x10015f0d
mov eax, dword [0x1004ad74]
test eax, eax
je 0x10015f0d
dec dword [eax + 0x374]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [0x1004ad74]
add esp, 4
test eax, eax
je 0x10015f26
inc dword [eax + 0x374]
push dword [esp + 0x30]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
push eax
push dword [esp + 0x78]
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov dword [edi], eax
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x44], eax
mov ecx, dword [esp + 0x50]
cmp byte [edi + 0x7d], 0
je 0x10015f85
cmp byte [edi + 0x90], 0
jg 0x10015f85
cmp byte [edi + 0x91], 0
jg 0x10015f85
movss xmm1, dword [edi + 0x24]
movss xmm0, dword [edi + 0x28]
movss xmm2, dword [esp + 0x28]
jmp 0x1001600a
cmp byte [edi + 0x81], 0
je 0x10015fb2
cmp dword [edi + 0x9c], 0
jne 0x10015fb2
cmp dword [edi + 0x98], 0
jle 0x10015fb2
movss xmm1, dword [edi + 0x24]
movss xmm0, dword [edi + 0x28]
movss xmm2, dword [esp + 0x28]
jmp 0x1001600a
movss xmm0, dword [edi + 0x2c]
movss xmm2, dword [esp + 0x28]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x10015fd6
movss xmm0, dword [edi + 0xe0]
subss xmm0, dword [edi + 0xd8]
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0x30]
ucomiss xmm0, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lahf
test ah, 0x44
jp 0x10015fff
movss xmm0, dword [edi + 0xe4]
subss xmm0, dword [edi + 0xdc]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [edi + 0x98]
movss dword [edi + 0x24], xmm1
movss dword [edi + 0x28], xmm0
test eax, eax
jle 0x10016025
dec eax
mov dword [edi + 0x98], eax
mov eax, dword [edi + 0x9c]
test eax, eax
jle 0x10016036
dec eax
mov dword [edi + 0x9c], eax
mov al, byte [esp + 0x1a]
test ecx, ecx
mov cl, byte [esp + 0x12]
jne 0x10016054
test al, al
je 0x1001604a
test cl, cl
jne 0x10016054
mov dword [edi + 0x9c], 1
cmp byte [esp + 0x1b], 0
mov edx, dword [esp + 0x14]
je 0x100160a8
test edx, 0x6000000
je 0x100160a8
mov dword [edi + 0x9c], 1
test dl, 0x40
je 0x100160a8
test al, al
jne 0x10016088
mov dword [edi + 0x1c], 0
mov dword [edi + 0x14], 0
test cl, cl
jne 0x1001609a
mov dword [edi + 0x20], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov eax, dword [0x1004ad74]
movss xmm0, dword [eax + 0x18c8]
mov dword [eax + 0x19b0], edi
mov ecx, dword [edi + 0x2f0]
mulss xmm0, dword [edi + 0x26c]
test ecx, ecx
je 0x100160d5
mulss xmm0, dword [ecx + 0x26c]
movss dword [eax + 0x18d8], xmm0
movss dword [eax + 0x18c4], xmm0
test edx, 0x1000000
je 0x100160f7
movss xmm0, dword [esi + 0x153c]
jmp 0x10016119
test edx, 0x6000000
je 0x10016111
test edx, 0x8000000
jne 0x10016111
movss xmm0, dword [esi + 0x1544]
jmp 0x10016119
movss xmm0, dword [esi + 0x1520]
mov eax, edi
movss dword [eax + 0x40], xmm0
mov eax, dword [esi + 0x1514]
mov ecx, dword [esi + 0x1518]
mov dword [edi + 0x34], eax
mov eax, edx
and eax, 0x5010000
mov dword [edi + 0x38], ecx
cmp eax, 0x1000000
jne 0x1001616a
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1001616a
test edx, 0x400
je 0x1001615b
movss xmm0, dword [esi + 0x1518]
jmp 0x1001615e
movaps xmm0, xmm2
mov dword [edi + 0x34], 0
movss dword [edi + 0x38], xmm0
movss xmm0, dword [edi + 0x34]
maxss xmm0, dword [esi + 0x1558]
maxss xmm0, dword [esi + 0x1a7c]
movss dword [edi + 0x144], xmm0
mov eax, dword [esi + 0x1a80]
mov dword [edi + 0x148], eax
test dl, 0x21
jne 0x100162c9
test byte [edi + 8], 1
mov ecx, dword [0x1004ad74]
je 0x100161ad
movaps xmm3, xmm2
jmp 0x100161df
movss xmm0, dword [ecx + 0x18c8]
mov eax, dword [edi + 0x2f0]
mulss xmm0, dword [edi + 0x26c]
test eax, eax
je 0x100161cf
mulss xmm0, dword [eax + 0x26c]
movss xmm3, dword [ecx + 0x154c]
addss xmm3, xmm3
addss xmm3, xmm0
movss xmm5, dword [edi + 0xc]
movaps xmm4, xmm5
movss xmm6, dword [edi + 0x10]
addss xmm4, dword [edi + 0x1c]
addss xmm3, dword [edi + 0x10]
cmp dword [esi + 0x19b4], edi
jne 0x1001628f
cmp dword [esi + 0x19d0], 0
jne 0x1001628f
cmp dword [esi + 0x19d8], 0
jne 0x1001628f
mov eax, dword [ecx + 0x19b0]
movss xmm1, dword [ecx + 0x1568]
movss xmm0, dword [ecx + 0x156c]
maxss xmm5, dword [eax + 0x204]
minss xmm4, dword [eax + 0x20c]
maxss xmm6, dword [eax + 0x208]
minss xmm3, dword [eax + 0x210]
subss xmm5, xmm1
addss xmm4, xmm1
movss xmm1, dword [ecx + 0xe8]
subss xmm6, xmm0
addss xmm3, xmm0
comiss xmm1, xmm5
jb 0x1001628f
movss xmm0, dword [ecx + 0xec]
comiss xmm0, xmm6
jb 0x1001628f
comiss xmm4, xmm1
jbe 0x1001628f
comiss xmm3, xmm0
jbe 0x1001628f
cmp byte [esi + 0x3dd], 0
je 0x1001628f
mov byte [edi + 0x7e], 1
cmp byte [edi + 0x7e], 0
je 0x100162cd
cmp byte [edi + 0x7d], 0
mov ecx, dword [0x1004ad74]
sete al
test dword [edi + 8], 0x100
mov byte [edi + 0x7d], al
jne 0x100162c0
comiss xmm2, dword [ecx + 0x2d30]
jb 0x100162c0
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2d30], eax
mov ecx, edi
call fcn.100182e0
jmp 0x100162cd
mov byte [edi + 0x7d], 0
lea eax, [edi + 0x24]
mov byte [edi + 0x7e], 0
push eax
mov edx, edi
lea ecx, [esp + 0x4c]
call fcn.100133b0
mov cl, byte [esp + 0x27]
add esp, 4
test byte [esp + 0x14], 0x40
mov byte [esp + 0x11], cl
je 0x1001632f
cmp byte [edi + 0x7d], 0
jne 0x1001632f
cmp byte [esp + 0x1a], 0
jne 0x1001630f
movss xmm0, dword [esp + 0x48]
movss dword [edi + 0x1c], xmm0
mov byte [esp + 0x23], 1
cmp byte [esp + 0x12], 0
jne 0x100163da
movss xmm0, dword [esp + 0x4c]
movss dword [edi + 0x20], xmm0
mov byte [esp + 0x11], 1
jmp 0x100163da
mov al, byte [edi + 0x90]
test al, al
jg 0x10016346
cmp byte [edi + 0x91], 0
jle 0x100163da
cmp byte [esp + 0x1a], 0
jne 0x10016377
test al, al
jle 0x10016377
cmp byte [edi + 0x93], 0
je 0x10016367
movss xmm0, dword [edi + 0x1c]
maxss xmm0, dword [esp + 0x48]
jmp 0x1001636d
movss xmm0, dword [esp + 0x48]
movss dword [edi + 0x1c], xmm0
mov byte [esp + 0x23], 1
cmp byte [esp + 0x12], 0
jne 0x100163ad
cmp byte [edi + 0x91], 0
jle 0x100163ad
cmp byte [edi + 0x93], 0
je 0x1001639d
movss xmm0, dword [edi + 0x20]
maxss xmm0, dword [esp + 0x4c]
jmp 0x100163a3
movss xmm0, dword [esp + 0x4c]
movss dword [edi + 0x20], xmm0
mov byte [esp + 0x11], 1
cmp byte [edi + 0x7d], 0
jne 0x100163da
test dword [edi + 8], 0x100
mov ecx, dword [0x1004ad74]
jne 0x100163da
movss xmm1, dword [esp + 0x28]
comiss xmm1, dword [ecx + 0x2d30]
jb 0x100163da
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2d30], eax
push dword [edi + 0x20]
mov edx, edi
lea ecx, [esp + 0xec]
push dword [edi + 0x1c]
call fcn.100130f0
add esp, 8
mov dword [esp + 0x24], eax
cmp byte [edi + 0x7d], 0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [0x1004ad74]
mov dword [edi + 0x20], edx
mov edx, dword [esp + 0x14]
mov dword [edi + 0x1c], ecx
mov dword [esp + 0x2c], eax
je 0x10016482
test edx, 0x1000000
jne 0x10016482
test byte [edi + 8], 1
je 0x10016429
movss xmm2, dword [esp + 0x28]
jmp 0x1001645b
movss xmm0, dword [eax + 0x18c8]
mov ecx, dword [edi + 0x2f0]
mulss xmm0, dword [edi + 0x26c]
test ecx, ecx
je 0x1001644b
mulss xmm0, dword [ecx + 0x26c]
movss xmm2, dword [eax + 0x154c]
addss xmm2, xmm2
addss xmm2, xmm0
movss xmm0, dword [edi + 0xc]
addss xmm0, dword [edi + 0x1c]
addss xmm2, dword [edi + 0x10]
subss xmm0, dword [edi + 0xc]
subss xmm2, dword [edi + 0x10]
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x58], xmm2
jmp 0x10016493
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
test byte [edi + 8], 1
lea ecx, [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x18], ecx
je 0x100164b7
movss xmm0, dword [esp + 0x28]
movaps xmm1, xmm0
jmp 0x100164ef
movss xmm0, dword [eax + 0x18c8]
mov ecx, dword [edi + 0x2f0]
mulss xmm0, dword [edi + 0x26c]
test ecx, ecx
je 0x100164d9
mulss xmm0, dword [ecx + 0x26c]
movss xmm1, dword [eax + 0x154c]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x28]
test dword [edi + 8], 0x400
je 0x10016534
movss xmm2, dword [eax + 0x18c8]
mov ecx, dword [edi + 0x2f0]
mulss xmm2, dword [edi + 0x26c]
test ecx, ecx
je 0x1001651a
mulss xmm2, dword [ecx + 0x26c]
movss xmm0, dword [eax + 0x154c]
addss xmm2, dword [edi + 0x148]
addss xmm0, xmm0
addss xmm2, xmm0
jmp 0x10016537
movaps xmm2, xmm0
cmp byte [esp + 0x1b], 0
addss xmm2, xmm1
movss dword [esp + 0x30], xmm2
je 0x1001657e
mov dword [edi + 0x94], 0xffffffff
test edx, 0x4000000
je 0x1001657e
cmp byte [esp + 0x13], 0
jne 0x1001657e
mov eax, dword [esi + 0x1ac4]
mov ecx, dword [esi + 0x1acc]
lea edx, [eax + eax*8]
mov eax, dword [ecx + edx*4 - 0x10]
mov ecx, dword [ecx + edx*4 - 0xc]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ecx
mov edx, dword [esp + 0x14]
test edx, 0x1000000
je 0x1001662c
mov ecx, dword [esp + 0x44]
add ecx, 0x14c
mov dword [esp + 0x3c], ecx
mov ax, word [ecx]
mov word [edi + 0x86], ax
mov eax, dword [ecx + 4]
cmp dword [ecx], eax
jne 0x100165e7
mov edx, dword [ecx]
inc edx
mov dword [esp + 0x24], edx
test eax, eax
je 0x100165c6
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x100165cb
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.1001dbe0
mov eax, dword [0x1004ad74]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x154]
mov dword [eax + ecx*4], edi
mov ecx, dword [esp + 0x44]
mov al, byte [esp + 0x13]
inc dword [ecx + 0x14c]
test edx, 0x4000000
jne 0x10016630
test al, al
jne 0x10016630
cmp dword [esp + 0x34], 0x3000000
je 0x10016630
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ecx
mov al, byte [esp + 0x13]
movss xmm7, dword [edi + 0xac]
ucomiss xmm7, dword [0x10045f74]
lahf
test ah, 0x44
jnp 0x1001673b
cmp dword [edi + 0x9c], 0
jne 0x1001673b
movss xmm1, dword [edi + 0xb4]
movss xmm5, dword [edi + 0xb8]
movss xmm2, dword [edi + 0xb0]
and dword [edi + 0xa0], 0xfffffff1
mov dword [edi + 0xac], 0x7f7fffff
mov dword [edi + 0xb0], 0x7f7fffff
mulss xmm1, dword [edi + 0x1c]
mulss xmm5, dword [edi + 0x20]
movss xmm4, dword [edi + 0xc]
subss xmm7, xmm1
movss xmm6, dword [edi + 0x10]
subss xmm2, xmm5
cvttss2si eax, xmm7
movd xmm7, eax
cvttss2si eax, xmm2
cvtdq2ps xmm7, xmm7
movd xmm1, eax
movss dword [edi + 0xc], xmm7
subss xmm7, xmm4
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm7
movss dword [edi + 0x10], xmm1
subss xmm1, xmm6
addss xmm0, dword [edi + 0xc8]
movss dword [edi + 0xc8], xmm0
movaps xmm0, xmm1
addss xmm0, dword [edi + 0xcc]
movss dword [edi + 0xcc], xmm0
movaps xmm0, xmm7
addss xmm0, dword [edi + 0xe0]
addss xmm7, dword [edi + 0xd8]
movss dword [edi + 0xe0], xmm0
movaps xmm0, xmm1
addss xmm0, dword [edi + 0xe4]
addss xmm1, dword [edi + 0xdc]
movss dword [edi + 0xd8], xmm7
movss dword [edi + 0xe4], xmm0
movss dword [edi + 0xdc], xmm1
jmp 0x10016789
test edx, 0x10000000
jne 0x1001676c
test edx, 0x4000000
je 0x10016756
test al, al
jne 0x10016756
cmp dword [esp + 0x40], 0
jg 0x1001676c
test edx, 0x2000000
je 0x10016789
test al, al
jne 0x10016789
cmp dword [esp + 0x34], 0x3000000
je 0x10016789
mov edx, edi
lea ecx, [esp + 0x80]
call fcn.10019d60
mov edx, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], eax
cmp byte [esp + 0x13], 0
mov eax, dword [esp + 0x2c]
movss xmm4, dword [esp + 0x28]
movss dword [esp + 0xf0], xmm4
movss dword [esp + 0xf4], xmm4
movss xmm2, dword [eax + 0x10]
movss xmm7, dword [eax + 0x14]
movss dword [esp + 0x3c], xmm2
movss dword [esp + 0xf8], xmm2
movss dword [esp + 0x24], xmm7
movss dword [esp + 0xfc], xmm7
jne 0x100168e9
test edx, 0x1000000
jne 0x100168e9
cmp byte [edi + 0x90], 0
jg 0x100168e9
cmp byte [edi + 0x91], 0
jg 0x100168e9
movss xmm0, dword [esi + 0x10]
comiss xmm0, xmm4
jbe 0x100168e9
movss xmm0, dword [esi + 0x14]
comiss xmm0, xmm4
jbe 0x100168e9
cmp byte [eax + 0xb4], 0
movss xmm6, dword [esi + 0x15a8]
movss xmm5, dword [esi + 0x15a4]
maxss xmm6, dword [esi + 0x15b0]
maxss xmm5, dword [esi + 0x15ac]
je 0x1001688e
test byte [edi + 8], 1
jne 0x1001688e
movss xmm0, dword [eax + 0x18c8]
mov ecx, dword [edi + 0x2f0]
mulss xmm0, dword [edi + 0x26c]
test ecx, ecx
je 0x1001686b
mulss xmm0, dword [ecx + 0x26c]
movss xmm1, dword [eax + 0x154c]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [edi + 0x14]
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x58], xmm1
jmp 0x1001689c
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
lea eax, [esp + 0x54]
movaps xmm1, xmm7
movss xmm0, dword [eax]
subss xmm2, xmm5
addss xmm0, dword [edi + 0xc]
addss xmm5, xmm4
subss xmm1, xmm6
addss xmm6, xmm4
maxss xmm0, xmm5
subss xmm0, dword [eax]
minss xmm2, xmm0
movss xmm0, dword [eax + 4]
addss xmm0, dword [edi + 0x10]
movss dword [edi + 0xc], xmm2
maxss xmm0, xmm6
subss xmm0, dword [eax + 4]
minss xmm1, xmm0
movss dword [edi + 0x10], xmm1
cvttss2si eax, dword [edi + 0xc]
movd xmm1, eax
cvttss2si eax, dword [edi + 0x10]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
movss dword [edi + 0xc], xmm1
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x10], xmm0
test edx, 0x1000000
je 0x1001691d
movss xmm2, dword [esi + 0x1538]
jmp 0x1001693d
mov eax, edx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x10016935
movss xmm2, dword [esi + 0x1540]
jmp 0x1001693d
movss xmm2, dword [esi + 0x151c]
xor cl, cl
movss dword [edi + 0x3c], xmm2
mov dword [esp + 0x40], ecx
cmp byte [esp + 0x1b], cl
je 0x1001697a
test edx, 0x1000
jne 0x1001697a
test edx, 0x4000000
je 0x10016965
mov byte [esp + 0x40], 1
jmp 0x1001697a
test edx, 0x3000000
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x40], ecx
movss xmm1, dword [esi + 0x18c4]
xorps xmm0, xmm0
addss xmm2, dword [0x10045ecc]
movaps xmmword [esp + 0x100], xmm0
xor eax, eax
cmp byte [esi + 0xb3], al
movaps xmm0, xmm1
mulss xmm1, dword [0x10045e84]
setne al
mov dword [esp + 0x1c], 0xffffffff
mulss xmm0, dword [0x10045ed8]
inc eax
cmp byte [edi + 0x7d], 0
addss xmm2, xmm1
mov dword [esp + 0x6c], eax
maxss xmm0, xmm2
cvttss2si esi, xmm0
jne 0x10016a1b
lea ecx, [esp + 0x100]
push ecx
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
lea edx, [esp + 0x54]
call fcn.10013620
movss xmm4, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x14]
test al, al
je 0x10016a12
mov ecx, dword [0x1004ad74]
mov byte [esp + 0x11], 1
mov byte [esp + 0x23], 1
mov dword [esp + 0x2c], ecx
jmp 0x10016a1b
mov eax, dword [0x1004ad74]
mov dword [esp + 0x2c], eax
cmp byte [edi + 0x7d], 0
mov al, byte [esp + 0x1c]
mov byte [edi + 0x83], al
jne 0x10016b78
cmp dword [esp + 0x50], 0
lea eax, [esp + 0x48]
movss xmm2, dword [edi + 0x1dc]
movss xmm5, dword [edi + 0x1e0]
subss xmm2, dword [edi + 0x1d4]
subss xmm5, dword [edi + 0x1d8]
movss xmm6, dword [edi + 0x20]
movss xmm7, dword [edi + 0x1c]
subss xmm6, dword [esp + 0x30]
addss xmm2, dword [edi + 0x70]
addss xmm5, dword [edi + 0x74]
jne 0x10016a86
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
jmp 0x10016aae
movss xmm0, dword [edi + 0x34]
movss xmm1, dword [edi + 0x38]
addss xmm0, xmm0
addss xmm1, xmm1
addss xmm0, dword [edi + 0x24]
addss xmm1, dword [edi + 0x28]
movss dword [esp + 0x48], xmm0
movss dword [esp + 0x4c], xmm1
mov cl, byte [esp + 0x23]
movss xmm1, dword [eax + 4]
test cl, cl
jne 0x10016abe
movaps xmm7, xmm2
cmp byte [esp + 0x11], 0
jne 0x10016ac8
movaps xmm6, xmm5
test edx, 0x4000
jne 0x10016ade
comiss xmm1, xmm6
jbe 0x10016ada
test dl, 8
je 0x10016ade
xor cl, cl
jmp 0x10016ae0
mov cl, 1
mov byte [edi + 0x79], cl
test edx, 0x8000
jne 0x10016b2a
mov edx, dword [esp + 0x38]
test cl, cl
je 0x10016afd
movss xmm0, dword [edx + 0x1578]
jmp 0x10016b00
movaps xmm0, xmm4
subss xmm7, xmm0
movss xmm0, dword [eax]
comiss xmm0, xmm7
jbe 0x10016b1d
mov eax, dword [esp + 0x14]
and eax, 0x808
cmp eax, 0x800
je 0x10016b26
mov byte [edi + 0x78], 0
movaps xmm1, xmm4
jmp 0x10016b51
mov edx, dword [esp + 0x14]
mov byte [edi + 0x78], 1
test cl, cl
jne 0x10016b45
comiss xmm1, xmm6
jbe 0x10016b40
test dl, 8
jne 0x10016b40
mov cl, 1
jmp 0x10016b42
xor cl, cl
mov byte [edi + 0x79], cl
mov edx, dword [esp + 0x38]
movss xmm1, dword [edx + 0x1578]
test cl, cl
je 0x10016b69
movss xmm0, dword [edx + 0x1578]
movss dword [edi + 0x70], xmm0
movss dword [edi + 0x74], xmm1
jmp 0x10016b7c
movaps xmm0, xmm4
movss dword [edi + 0x74], xmm1
movss dword [edi + 0x70], xmm0
jmp 0x10016b7c
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x10016ba3
cmp dword [esp + 0x34], 0x3000000
je 0x10016ba3
mov eax, dword [esp + 0x44]
add eax, 0x204
jmp 0x10016baa
lea eax, [esp + 0xf0]
test byte [edi + 8], 1
movss xmm0, dword [edi + 0xc]
movups xmm6, xmmword [eax]
movss xmm5, dword [edi + 0x10]
movaps xmm1, xmm0
addss xmm1, dword [edi + 0x14]
movaps xmm2, xmm5
movaps xmmword [esp + 0xd0], xmm6
addss xmm2, dword [edi + 0x18]
movss dword [esp + 0x50], xmm0
je 0x10016be0
movaps xmm7, xmm4
jmp 0x10016c29
cmp dword [edi + 0x2f0], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
movss xmm0, dword [eax + 0x18c8]
mulss xmm0, dword [edi + 0x26c]
je 0x10016c13
mov ecx, dword [edi + 0x2f0]
mulss xmm0, dword [ecx + 0x26c]
mov ecx, dword [esp + 0x14]
movss xmm7, dword [eax + 0x154c]
addss xmm7, xmm7
addss xmm7, xmm0
movss xmm0, dword [esp + 0x50]
movss xmm4, dword [edi + 0x10]
addss xmm7, xmm5
movaps xmm3, xmm0
movss dword [esp + 0xa0], xmm0
addss xmm3, dword [edi + 0x1c]
movss dword [esp + 0xa4], xmm4
and ecx, 0x401
movss dword [esp + 0x48], xmm7
movss dword [esp + 0xac], xmm7
movss dword [esp + 0x54], xmm3
movss dword [esp + 0xa8], xmm3
movss dword [edi + 0x1c4], xmm0
movss dword [edi + 0x1c8], xmm5
movss dword [edi + 0x1cc], xmm1
movaps xmm1, xmm6
movss dword [edi + 0x1d0], xmm2
movaps xmm2, xmm6
movss xmm0, dword [edi + 0x1c4]
shufps xmm1, xmm6, 0x55
maxss xmm0, xmm6
shufps xmm2, xmm6, 0xff
maxss xmm5, xmm1
movups xmmword [esp + 0x90], xmm1
movups xmmword [esp + 0xb0], xmm2
movss dword [edi + 0x1c4], xmm0
movaps xmm0, xmm6
movss dword [edi + 0x1c8], xmm5
movss xmm1, dword [edi + 0x1cc]
shufps xmm0, xmm6, 0xaa
minss xmm1, xmm0
movups xmmword [esp + 0xc0], xmm0
movss xmm0, dword [edi + 0x1d0]
minss xmm0, xmm2
movss dword [edi + 0x1cc], xmm1
movss dword [edi + 0x1d0], xmm0
movss xmm7, dword [edi + 0x10]
movss xmm1, dword [edi + 0xc]
movaps xmm0, xmm7
movss dword [edi + 0x1d4], xmm1
addss xmm0, dword [esp + 0x30]
addss xmm7, dword [edi + 0x18]
movss dword [esp + 0x64], xmm0
movss dword [edi + 0x1d8], xmm0
movaps xmm0, xmm1
addss xmm0, dword [edi + 0x14]
subss xmm7, dword [edi + 0x74]
subss xmm0, dword [edi + 0x70]
movss dword [edi + 0x1e0], xmm7
movss dword [esp + 0x5c], xmm0
movss dword [edi + 0x1dc], xmm0
cmp ecx, 1
jne 0x10016d67
movss xmm0, dword [edi + 0x40]
jmp 0x10016d6f
movss xmm0, dword [edx + 0x1554]
movss xmm5, dword [0x10045e9c]
movss dword [esp + 0x1c], xmm0
addss xmm7, xmm5
movss xmm0, dword [edi + 0x34]
mulss xmm0, xmm5
subss xmm7, dword [edi + 0x40]
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0xc]
addss xmm0, xmm5
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [edi + 0x40]
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1e4], xmm0
movss xmm0, dword [esp + 0x64]
addss xmm0, xmm5
addss xmm0, dword [esp + 0x1c]
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1e8], xmm0
movss xmm0, dword [esp + 0x5c]
addss xmm0, xmm5
movups xmm5, xmmword [esp + 0x90]
subss xmm0, xmm1
cvttss2si ecx, xmm0
movd xmm0, ecx
cvttss2si ecx, xmm7
movups xmm7, xmmword [esp + 0xb0]
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1ec], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1f0], xmm0
movss xmm0, dword [edi + 0x1e8]
comiss xmm5, xmm0
jbe 0x10016e38
movaps xmm1, xmm5
jmp 0x10016e3f
movaps xmm1, xmm7
minss xmm1, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
comiss xmm6, xmm2
jbe 0x10016e50
movaps xmm0, xmm6
jmp 0x10016e5d
movss xmm0, dword [esp + 0xc0]
minss xmm0, xmm2
movss dword [edi + 0x1e4], xmm0
movss dword [edi + 0x1e8], xmm1
movss xmm0, dword [edi + 0x1f0]
comiss xmm5, xmm0
jbe 0x10016e7f
movaps xmm1, xmm5
jmp 0x10016e86
movaps xmm1, xmm7
minss xmm1, xmm0
movss xmm2, dword [edi + 0x1ec]
comiss xmm6, xmm2
jbe 0x10016e98
movaps xmm0, xmm6
jmp 0x10016ea5
movss xmm0, dword [esp + 0xc0]
minss xmm0, xmm2
movss xmm4, dword [esp + 0x28]
movss xmm3, dword [0x10045ecc]
movss dword [edi + 0x1ec], xmm0
movss dword [edi + 0x1f0], xmm1
movss xmm0, dword [edi + 0x14]
comiss xmm0, xmm4
jbe 0x10016ee1
test dword [esp + 0x14], 0x2000040
jne 0x10016ee1
mulss xmm0, dword [0x10045ea4]
jmp 0x10016ef1
movss xmm0, dword [edx + 0x18c4]
mulss xmm0, dword [0x10045f28]
cvttss2si eax, xmm0
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x22c], xmm0
movss xmm2, dword [edi + 0x34]
movss xmm0, dword [edi + 0x1dc]
movaps xmm6, xmm2
subss xmm0, dword [edi + 0x1d4]
addss xmm6, xmm2
movss xmm7, dword [0x10045f74]
movss xmm5, dword [edi + 0x50]
addss xmm6, dword [edi + 0x24]
movaps xmm1, xmm6
subss xmm1, xmm0
movaps xmm0, xmm4
maxss xmm0, xmm1
movss xmm1, dword [edi + 0x38]
addss xmm1, xmm1
movss dword [edi + 0x58], xmm0
movss xmm0, dword [edi + 0x1e0]
subss xmm0, dword [edi + 0x1d8]
addss xmm1, dword [edi + 0x28]
subss xmm1, xmm0
movaps xmm0, xmm4
maxss xmm0, xmm1
movss xmm1, dword [edi + 0x54]
movss dword [esp + 0x5c], xmm0
movss dword [edi + 0x5c], xmm0
movss xmm0, dword [edi + 0x60]
comiss xmm7, xmm0
jbe 0x10016fd1
movss xmm7, dword [edi + 0x68]
movaps xmm5, xmm0
comiss xmm4, xmm7
jb 0x10016fa1
comiss xmm2, xmm5
jb 0x10016fa1
movaps xmm5, xmm4
jmp 0x10016fbf
comiss xmm7, xmm3
jb 0x10016fbf
addss xmm2, dword [edi + 0x24]
mov eax, dword [esp + 0x2c]
addss xmm2, dword [eax + 0x1558]
comiss xmm5, xmm2
jb 0x10016fbf
movaps xmm5, xmm6
movss xmm0, dword [edi + 0x1c]
subss xmm0, dword [edi + 0x70]
mulss xmm0, xmm7
subss xmm5, xmm0
movss xmm7, dword [edi + 0x64]
movss xmm0, dword [0x10045f74]
comiss xmm0, xmm7
jbe 0x100170d3
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x2c]
test dl, 1
je 0x10016ff8
movaps xmm1, xmm4
jmp 0x1001702a
movss xmm0, dword [eax + 0x18c8]
mov ecx, dword [edi + 0x2f0]
mulss xmm0, dword [edi + 0x26c]
test ecx, ecx
je 0x1001701a
mulss xmm0, dword [ecx + 0x26c]
movss xmm1, dword [eax + 0x154c]
addss xmm1, xmm1
addss xmm1, xmm0
test edx, 0x400
je 0x1001706e
movss xmm2, dword [eax + 0x18c8]
mov ecx, dword [edi + 0x2f0]
mulss xmm2, dword [edi + 0x26c]
test ecx, ecx
je 0x10017054
mulss xmm2, dword [ecx + 0x26c]
movss xmm0, dword [eax + 0x154c]
addss xmm2, dword [edi + 0x148]
addss xmm0, xmm0
addss xmm2, xmm0
jmp 0x10017071
movaps xmm2, xmm4
movss xmm6, dword [edi + 0x6c]
addss xmm2, xmm1
comiss xmm4, xmm6
movaps xmm1, xmm7
jb 0x1001708f
movss xmm0, dword [edi + 0x38]
comiss xmm0, xmm1
jb 0x1001708f
movaps xmm1, xmm4
comiss xmm6, xmm3
jb 0x100170bd
movss xmm7, dword [edi + 0x28]
movss xmm3, dword [edi + 0x38]
movaps xmm0, xmm7
addss xmm0, xmm3
addss xmm0, dword [eax + 0x155c]
comiss xmm1, xmm0
jb 0x100170bd
movaps xmm1, xmm3
addss xmm1, xmm3
addss xmm1, xmm7
movss xmm0, dword [edi + 0x20]
subss xmm0, dword [edi + 0x74]
subss xmm0, xmm2
mulss xmm0, xmm6
subss xmm1, xmm0
cmp byte [edi + 0x7d], 0
maxss xmm5, xmm4
maxss xmm1, xmm4
jne 0x10017102
cmp byte [edi + 0x7f], 0
jne 0x10017102
movss xmm0, dword [edi + 0x58]
comiss xmm0, xmm5
ja 0x100170f4
movaps xmm5, xmm0
movss xmm0, dword [esp + 0x5c]
comiss xmm0, xmm1
ja 0x10017102
movaps xmm1, xmm0
mov ecx, dword [edi + 0x274]
movss dword [edi + 0x50], xmm5
movss dword [edi + 0x54], xmm1
mov dword [edi + 0x60], 0x7f7fffff
mov dword [edi + 0x64], 0x7f7fffff
call fcn.10025b90
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x18c0]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x274]
mov edx, dword [eax + 0x4c]
lea ecx, [eax + 0x4c]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], ecx
cmp edx, eax
jne 0x1001717f
inc edx
mov dword [esp + 0x5c], edx
test eax, eax
je 0x1001716b
cdq
sub eax, edx
mov edx, dword [esp + 0x5c]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x10017170
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.1001dbe0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x64]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x1c]
inc dword [ecx]
mov ecx, dword [esp + 0x2c]
call fcn.10026000
mov ecx, dword [0x1004ad74]
movaps xmm0, xmmword [esp + 0xd0]
comiss xmm0, dword [esp + 0xc0]
mov eax, dword [ecx + 0x19b0]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19b0]
mov dword [esp + 0x2c], eax
movaps xmmword [esp + 0x80], xmm0
mov eax, dword [eax + 0x274]
mov dword [esp + 0x1c], eax
jb 0x100171e1
movss dword [esp + 0x88], xmm0
movups xmm0, xmmword [esp + 0x90]
comiss xmm0, dword [esp + 0xb0]
jb 0x100171fc
movss dword [esp + 0x8c], xmm0
mov edx, dword [eax + 0x40]
lea ecx, [eax + 0x40]
mov eax, dword [ecx + 4]
mov dword [esp + 0x64], ecx
cmp edx, eax
jne 0x10017238
inc edx
mov dword [esp + 0x5c], edx
test eax, eax
je 0x10017224
cdq
sub eax, edx
mov edx, dword [esp + 0x5c]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x10017229
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.1002b8a0
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx]
movups xmm0, xmmword [esp + 0x80]
shl eax, 4
add eax, dword [ecx + 8]
movups xmmword [eax], xmm0
inc dword [ecx]
mov ecx, dword [esp + 0x1c]
call fcn.10025ed0
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x274]
mov ecx, dword [eax + 0x40]
mov eax, dword [eax + 0x48]
add ecx, ecx
test dword [esp + 0x14], 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 + 0x204], eax
movss dword [edx + 0x208], xmm0
movss dword [edx + 0x20c], xmm1
movss dword [edx + 0x210], xmm2
je 0x100172c4
call fcn.100194b0
cmp edi, eax
jne 0x100172c4
cmp dword [edi + 0x9c], 0
jg 0x100172c4
mov dl, 1
mov dword [esp + 0x1c], 0x3a0
jmp 0x100172ce
xor dl, dl
mov dword [esp + 0x1c], 0x390
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x1b14]
test eax, eax
je 0x100172e8
cmp edi, dword [eax + 0x2f4]
jne 0x100172e8
mov al, 1
jmp 0x100172ea
xor al, al
movss xmm3, dword [0x10045f48]
mov byte [esp + 0x11], al
test dl, dl
jne 0x10017302
test al, al
je 0x100175a2
mov eax, dword [0x1004ad74]
mov edx, dword [esp + 0x1c]
movss xmm5, dword [ecx + 0x1c3c]
movss xmm1, dword [0x10045ecc]
mulss xmm5, dword [eax + 0x1510]
movups xmm2, xmmword [eax + edx + 0x1510]
movaps xmm0, xmm2
movaps xmmword [esp + 0x90], xmm2
shufps xmm0, xmm2, 0xff
mulss xmm5, xmm0
movss xmm0, dword [esp + 0x28]
comiss xmm0, xmm2
jbe 0x1001734e
movaps xmm4, xmm0
jmp 0x10017355
movaps xmm4, xmm1
minss xmm4, xmm2
movss xmm2, dword [0x10045e9c]
movss xmm6, dword [esp + 0x94]
comiss xmm0, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si ecx, xmm4
jbe 0x1001737c
movaps xmm4, xmm0
jmp 0x10017383
movaps xmm4, xmm1
minss xmm4, xmm6
movss xmm6, dword [esp + 0x98]
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 8
or ecx, eax
comiss xmm0, xmm6
jbe 0x100173a7
movaps xmm4, xmm0
jmp 0x100173ae
movaps xmm4, xmm1
minss xmm4, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm5
jbe 0x100173c9
movaps xmm1, xmm0
jmp 0x100173cd
minss xmm1, xmm5
mulss xmm1, xmm3
push 0xf
push ecx
mov dword [esp], 0
addss xmm1, xmm2
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov ecx, dword [edi + 0x274]
push eax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x100]
push eax
call fcn.10027980
cmp byte [esp + 0x11], 0
je 0x100175a2
mov ecx, dword [esp + 0x38]
cmp edi, dword [ecx + 0x1b14]
jne 0x100175a2
movss xmm3, dword [edi + 0xc]
movss xmm4, dword [edi + 0x10]
movaps xmm1, xmm3
movss xmm0, dword [ecx + 0x18c4]
movaps xmm5, xmm4
addss xmm3, dword [edi + 0x14]
addss xmm4, dword [edi + 0x18]
movss xmm2, dword [esp + 0x28]
subss xmm1, xmm0
subss xmm5, xmm0
addss xmm3, xmm0
addss xmm4, xmm0
comiss xmm2, xmm1
movss dword [esp + 0xf0], xmm1
movss dword [esp + 0xf4], xmm5
movss dword [esp + 0xf8], xmm3
movss dword [esp + 0xfc], xmm4
jb 0x10017497
comiss xmm2, xmm5
jb 0x10017497
comiss xmm3, dword [esp + 0x3c]
jb 0x10017497
comiss xmm4, dword [esp + 0x24]
jae 0x100175a2
mov eax, dword [0x1004ad74]
movss xmm5, dword [ecx + 0x1b20]
mulss xmm5, dword [0x10045e88]
movups xmm1, xmmword [eax + 0x1890]
mulss xmm5, dword [eax + 0x1510]
comiss xmm2, xmm1
movaps xmm0, xmm1
movaps xmmword [esp + 0x90], xmm1
shufps xmm0, xmm1, 0xff
mulss xmm5, xmm0
movss xmm0, dword [0x10045ecc]
jbe 0x100174e0
movaps xmm4, xmm2
jmp 0x100174e7
movaps xmm4, xmm0
minss xmm4, xmm1
movss xmm3, dword [0x10045f48]
movss xmm1, dword [0x10045e9c]
movss xmm6, dword [esp + 0x94]
comiss xmm2, xmm6
mulss xmm4, xmm3
addss xmm4, xmm1
cvttss2si edx, xmm4
jbe 0x10017516
movaps xmm4, xmm2
jmp 0x1001751d
movaps xmm4, xmm0
minss xmm4, xmm6
movss xmm6, dword [esp + 0x98]
mulss xmm4, xmm3
addss xmm4, xmm1
cvttss2si eax, xmm4
shl eax, 8
or edx, eax
comiss xmm2, xmm6
jbe 0x10017541
movaps xmm4, xmm2
jmp 0x10017548
movaps xmm4, xmm0
minss xmm4, xmm6
mulss xmm4, xmm3
addss xmm4, xmm1
cvttss2si eax, xmm4
shl eax, 0x10
or edx, eax
comiss xmm2, xmm5
ja 0x10017565
movaps xmm2, xmm0
minss xmm2, xmm5
movss xmm0, dword [ecx + 0x151c]
mulss xmm2, xmm3
push 0xf
push ecx
mov ecx, dword [edi + 0x274]
addss xmm2, xmm1
movss dword [esp], xmm0
cvttss2si eax, xmm2
shl eax, 0x18
or eax, edx
push eax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x100]
push eax
call fcn.10027980
mov eax, dword [esp + 0x14]
and eax, 0x5000000
mov byte [esp + 0x11], 0
cmp eax, 0x1000000
jne 0x100175f1
cmp dword [esp + 0x34], 0x3000000
je 0x100175f1
mov edx, dword [edi + 0x274]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0x28], 0
jne 0x100175f1
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x274]
cmp dword [eax + 0x18], 0
jle 0x100175f1
mov byte [esp + 0x11], 1
mov dword [edi + 0x274], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 0x1b10]
test edx, edx
jne 0x10017605
mov edx, dword [ecx + 0x1ad0]
cmp byte [esp + 0x40], 0
jne 0x10017625
test edx, edx
je 0x1001761e
mov eax, dword [edi + 0x2f8]
cmp eax, dword [edx + 0x2f8]
je 0x10017625
mov byte [esp + 0x1c], 0
jmp 0x1001762a
mov byte [esp + 0x1c], 1
movd xmm0, esi
lea eax, [esp + 0x100]
cvtdq2ps xmm0, xmm0
push ecx
lea edx, [esp + 0xa4]
mov ecx, edi
movss dword [esp], xmm0
push eax
push dword [esp + 0x74]
push dword [esp + 0x28]
call fcn.10014900
add esp, 0x10
cmp byte [esp + 0x11], 0
je 0x1001766b
lea eax, [edi + 0x278]
mov dword [edi + 0x274], eax
mov esi, dword [esp + 0x38]
movss xmm4, dword [esp + 0x28]
cmp dword [esi + 0x1b14], edi
jne 0x100178fd
movss xmm5, dword [edi + 0xc]
movss xmm2, dword [esi + 0x18c4]
movaps xmm7, xmm5
movss xmm3, dword [edi + 0x10]
subss xmm7, xmm2
movss xmm0, dword [edi + 0x3c]
movaps xmm6, xmm3
maxss xmm0, dword [esi + 0x151c]
addss xmm5, dword [edi + 0x14]
addss xmm3, dword [edi + 0x18]
comiss xmm4, xmm7
movss dword [esp + 0x34], xmm0
subss xmm6, xmm2
addss xmm5, xmm2
addss xmm3, xmm2
jb 0x10017711
comiss xmm4, xmm6
jb 0x10017711
comiss xmm5, dword [esp + 0x3c]
jb 0x10017711
comiss xmm3, dword [esp + 0x24]
movss xmm1, dword [0x10045ecc]
jb 0x10017719
xorps xmm2, xmmword [0x10046100]
subss xmm2, xmm1
movaps xmm0, xmm2
subss xmm7, xmm2
addss xmm5, xmm0
movss xmm0, dword [edi + 0x3c]
subss xmm6, xmm2
movss dword [esp + 0x34], xmm0
addss xmm3, xmm2
jmp 0x10017719
movss xmm1, dword [0x10045ecc]
mov eax, dword [0x1004ad74]
movss xmm2, dword [esi + 0x1b20]
mov ecx, dword [edi + 0x274]
mov dword [esp + 0x1c], ecx
movups xmm0, xmmword [eax + 0x1890]
mulss xmm2, dword [eax + 0x1510]
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xf0], xmm0
shufps xmm0, xmmword [esp + 0xd0], 0xff
mulss xmm2, xmm0
movss dword [esp + 0x3c], xmm2
movups xmm2, xmmword [eax + 0x1890]
comiss xmm4, xmm2
jbe 0x10017773
movaps xmm0, xmm4
jmp 0x1001777a
movaps xmm0, xmm1
minss xmm0, xmm2
comiss xmm4, dword [esp + 0xf4]
movss xmm2, dword [0x10045f48]
mulss xmm0, xmm2
movss dword [esp + 0x6c], xmm0
movss xmm1, dword [esp + 0x6c]
movss xmm0, dword [0x10045e9c]
addss xmm1, xmm0
cvttss2si edx, xmm1
movss xmm1, dword [0x10045ecc]
jbe 0x100177bc
movss dword [esp + 0x24], xmm4
jmp 0x100177d6
movaps xmm2, xmm1
minss xmm2, dword [esp + 0xf4]
movss dword [esp + 0x24], xmm2
movss xmm2, dword [0x10045f48]
movss xmm4, dword [esp + 0x24]
mulss xmm4, xmm2
addss xmm4, xmm0
cvttss2si eax, xmm4
movss xmm4, dword [esp + 0x28]
shl eax, 8
or edx, eax
comiss xmm4, dword [esp + 0xf8]
jbe 0x1001780d
movss xmm1, dword [0x10045ecc]
movss dword [esp + 0x24], xmm4
jmp 0x10017827
movaps xmm0, xmm1
minss xmm0, dword [esp + 0xf8]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x10045e9c]
movss xmm4, dword [esp + 0x24]
mulss xmm4, xmm2
addss xmm4, xmm0
cvttss2si eax, xmm4
movss xmm4, dword [esp + 0x28]
shl eax, 0x10
or edx, eax
comiss xmm4, dword [esp + 0x3c]
jbe 0x10017850
movaps xmm1, xmm4
jmp 0x10017856
minss xmm1, dword [esp + 0x3c]
mulss xmm1, xmm2
addss xmm1, xmm0
cvttss2si eax, xmm1
shl eax, 0x18
or eax, edx
mov dword [esp + 0x6c], eax
test eax, 0xff000000
je 0x100178fd
test byte [ecx + 0x24], 1
addss xmm7, xmm0
addss xmm6, xmm0
push 0xffffffffffffffff
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x6c]
movss dword [esp + 0x6c], xmm7
movss dword [esp + 0x70], xmm6
push eax
je 0x100178a6
subss xmm5, xmm0
subss xmm3, xmm0
jmp 0x100178b6
subss xmm5, dword [0x10045e98]
subss xmm3, dword [0x10045e98]
movss dword [esp + 0x6c], xmm3
movss xmm3, dword [esp + 0x40]
movss dword [esp + 0x68], xmm5
call fcn.10027550
mov eax, dword [esp + 0x1c]
push ecx
mov dword [esp], 0x40400000
mov ecx, eax
push 1
push dword [esp + 0x74]
push dword [eax + 0x58]
push dword [eax + 0x60]
call fcn.10026370
mov eax, dword [esp + 0x1c]
movss xmm4, dword [esp + 0x28]
mov dword [eax + 0x58], 0
mov ecx, dword [esp + 0x14]
mov edx, ecx
movss xmm7, dword [edi + 0x2c]
shr edx, 3
not dl
and dl, 1
ucomiss xmm7, xmm4
lahf
test ah, 0x44
jnp 0x10017921
movss dword [esp + 0x24], xmm7
jmp 0x1001795a
mov eax, ecx
and eax, 0x808
cmp eax, 0x800
jne 0x10017936
movss xmm2, dword [edi + 0x24]
jmp 0x10017939
movaps xmm2, xmm4
movss xmm1, dword [edi + 0x34]
movss xmm0, dword [edi + 0x14]
addss xmm1, xmm1
subss xmm0, xmm1
subss xmm0, dword [edi + 0x70]
maxss xmm2, xmm0
movss dword [esp + 0x24], xmm2
movss xmm5, dword [edi + 0x30]
ucomiss xmm5, xmm4
lahf
test ah, 0x44
jnp 0x10017970
movss dword [esp + 0x3c], xmm5
jmp 0x100179a5
test dl, dl
je 0x1001797b
movss xmm2, dword [edi + 0x28]
jmp 0x1001797e
movaps xmm2, xmm4
movss xmm0, dword [edi + 0x38]
movss xmm1, dword [edi + 0x18]
addss xmm0, xmm0
subss xmm1, xmm0
subss xmm1, dword [esp + 0x30]
subss xmm1, dword [edi + 0x74]
maxss xmm2, xmm1
movss dword [esp + 0x3c], xmm2
movss xmm0, dword [edi + 0x50]
movss xmm1, dword [edi + 0x1d4]
movss xmm6, dword [edi + 0x34]
subss xmm1, xmm0
movss dword [esp + 0x1c], xmm0
movaps xmm0, xmm6
maxss xmm0, dword [edi + 0x40]
movss xmm3, dword [esp + 0x30]
ucomiss xmm7, xmm4
addss xmm1, xmm0
movss xmm0, dword [edi + 0x38]
movss dword [esp + 0x6c], xmm0
maxss xmm0, dword [edi + 0x40]
cvttss2si eax, xmm1
movss xmm1, dword [edi + 0x54]
movss dword [esp + 0x34], xmm1
movss xmm1, dword [edi + 0x1d8]
subss xmm1, dword [esp + 0x34]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
addss xmm1, xmm0
movss dword [edi + 0x1f4], xmm2
addss xmm2, dword [esp + 0x24]
cvttss2si eax, xmm1
movss xmm1, dword [esp + 0x6c]
movss dword [edi + 0x1fc], xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
lahf
movss dword [edi + 0x1f8], xmm0
addss xmm0, dword [esp + 0x3c]
movss dword [edi + 0x200], xmm0
movss xmm0, dword [edi + 0xc]
movss dword [esp + 0x64], xmm0
subss xmm0, dword [esp + 0x1c]
addss xmm0, xmm6
movss dword [edi + 0x214], xmm0
movss xmm2, dword [edi + 0x10]
movss dword [esp + 0x5c], xmm0
subss xmm2, dword [esp + 0x34]
addss xmm2, xmm1
addss xmm2, xmm3
movss dword [edi + 0x218], xmm2
test ah, 0x44
jp 0x10017aaa
movss xmm7, dword [edi + 0x14]
movaps xmm0, xmm6
addss xmm0, xmm6
subss xmm7, xmm0
movss xmm0, dword [esp + 0x5c]
subss xmm7, dword [edi + 0x70]
ucomiss xmm5, xmm4
addss xmm7, xmm0
lahf
movss dword [edi + 0x21c], xmm7
test ah, 0x44
jp 0x10017ad8
movss xmm5, dword [edi + 0x18]
movaps xmm0, xmm1
addss xmm0, xmm1
subss xmm5, xmm0
subss xmm5, xmm3
subss xmm5, dword [edi + 0x74]
addss xmm6, xmm4
addss xmm5, xmm2
addss xmm1, xmm3
subss xmm6, dword [esp + 0x1c]
movss dword [edi + 0x220], xmm5
subss xmm1, dword [esp + 0x34]
movss dword [edi + 0x1b4], xmm6
addss xmm6, xmm4
mov dword [edi + 0x1b8], 0
mov dword [edi + 0x1bc], 0
addss xmm1, dword [edi + 0x10]
addss xmm6, dword [esp + 0x64]
movss dword [edi + 0xd8], xmm6
movss dword [edi + 0xdc], xmm1
movss dword [edi + 0xc8], xmm6
movss dword [edi + 0xcc], xmm1
movss dword [edi + 0xd0], xmm6
movss dword [edi + 0xd4], xmm1
movss dword [edi + 0xe0], xmm6
movss dword [edi + 0xe4], xmm1
mov dword [edi + 0xf0], 0
mov dword [edi + 0xf4], 0
mov dword [edi + 0xe8], 0
mov dword [edi + 0xec], 0
mov dword [edi + 0xfc], 0
mov dword [edi + 0xf8], 0
mov byte [edi + 0x140], 0
movss xmm0, dword [edi + 0x5c]
comiss xmm0, xmm4
seta al
mov byte [edi + 0x141], al
mov eax, dword [edi + 0x13c]
mov dword [edi + 0x138], eax
lea eax, [edi + 0x14c]
mov dword [edi + 0x13c], 0
mov byte [edi + 0x142], 0
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10017c03
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.1001dbe0
lea eax, [edi + 0x14c]
mov ecx, dword [esp + 0x44]
mov dword [eax], 0
mov dword [edi + 0x15c], 1
test ecx, ecx
je 0x10017c43
mov eax, dword [ecx + 0x15c]
mov dword [edi + 0x160], eax
mov dword [edi + 0x168], 0xffffffff
mov dword [edi + 0x164], 0xffffffff
mov eax, dword [ecx + 0x16c]
jmp 0x10017c63
mov dword [edi + 0x160], 1
xor eax, eax
mov dword [edi + 0x168], 0xffffffff
mov dword [edi + 0x164], 0xffffffff
mov dword [edi + 0x16c], eax
lea ecx, [edi + 0x178]
mov eax, dword [edi + 0x22c]
mov dword [edi + 0x170], eax
push 0
mov dword [edi + 0x174], 0xbf800000
call fcn.1001dc60
push ecx
lea ecx, [edi + 0x184]
call fcn.1001dde0
push ecx
lea ecx, [edi + 0x190]
call fcn.1001dde0
mov dword [edi + 0x1c0], 0
lea eax, [edi + 0x254]
mov dword [edi + 0x100], 0
lea ecx, [edi + 0x19c]
mov dword [edi + 0x104], 0
push 0
mov dword [edi + 0x158], eax
call fcn.1001d9b0
cmp byte [esp + 0x1b], 0
lea ecx, [edi + 0x248]
movss xmm0, dword [esi + 0x1558]
mov dword [edi + 0x238], 0
mov dword [edi + 0x234], 0
movss dword [edi + 0x230], xmm0
je 0x10017d1a
xorps xmm0, xmm0
movq qword [ecx], xmm0
mov dword [ecx + 8], 0
movss xmm1, dword [esp + 0x28]
xor edx, edx
test edx, edx
je 0x10017d47
movss xmm0, dword [ecx]
comiss xmm0, xmm1
jbe 0x10017d47
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 - 0xc], xmm0
movss xmm0, dword [ecx]
addss xmm0, dword [edi + 0x234]
movss dword [edi + 0x234], xmm0
mov dword [ecx], 0
add ecx, 4
cmp edx, 3
jl 0x10017d22
test dword [esp + 0x14], 0x1000000
je 0x10017db2
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x16c]
cmp dword [edi + 0x16c], eax
je 0x10017db2
mov dword [edi + 0x16c], eax
lea ecx, [edi + 0x178]
lea eax, [edi + 0x16c]
push eax
call fcn.1001dd30
mov al, byte [edi + 0x90]
test al, al
jle 0x10017dc4
dec al
mov byte [edi + 0x90], al
mov al, byte [edi + 0x91]
test al, al
jle 0x10017dd6
dec al
mov byte [edi + 0x91], al
cmp byte [esp + 0x40], 0
je 0x10017ded
mov ecx, edi
call fcn.100182e0
xor dl, dl
mov ecx, edi
call fcn.1001a970
test byte [esp + 0x14], 1
jne 0x10017e0a
push ecx
push dword [esp + 0x78]
lea edx, [esp + 0xa8]
mov ecx, edi
call fcn.10015230
add esp, 8
mov ecx, dword [0x1004ad74]
mov eax, dword [edi + 0x48]
movss xmm3, dword [esp + 0x50]
movss xmm4, dword [esp + 0x54]
movss xmm2, dword [esp + 0x48]
movss xmm5, dword [esp + 0xa4]
mov dword [edi + 0x108], eax
movss xmm1, dword [ecx + 0x1568]
movss xmm0, dword [ecx + 0x156c]
subss xmm3, xmm1
addss xmm4, xmm1
movss xmm1, dword [ecx + 0xe8]
addss xmm2, xmm0
subss xmm5, xmm0
comiss xmm1, xmm3
jb 0x10017e7f
movss xmm0, dword [ecx + 0xec]
comiss xmm0, xmm5
jb 0x10017e7f
comiss xmm4, xmm1
jbe 0x10017e7f
comiss xmm2, xmm0
jbe 0x10017e7f
mov eax, 1
jmp 0x10017e81
xor eax, eax
movups xmm0, xmmword [esp + 0xa0]
mov dword [edi + 0x10c], eax
movups xmmword [edi + 0x110], xmm0
jmp 0x10017ed6
mov ecx, dword [0x1004ad74]
movss xmm0, dword [ecx + 0x18c8]
mov dword [ecx + 0x19b0], edi
mov eax, dword [edi + 0x2f0]
mulss xmm0, dword [edi + 0x26c]
test eax, eax
je 0x10017ec6
mulss xmm0, dword [eax + 0x26c]
movss dword [ecx + 0x18d8], xmm0
movss dword [ecx + 0x18c4], xmm0
mov eax, dword [ecx + 0x19b0]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19b0]
movss xmm3, dword [edi + 0x1ec]
movss xmm2, dword [edi + 0x1f0]
movss xmm1, dword [edi + 0x1e4]
movss xmm0, dword [edi + 0x1e8]
mov dword [esp + 0x6c], eax
mov eax, dword [eax + 0x274]
mov dword [esp + 0x40], eax
movss dword [esp + 0x80], xmm1
movss dword [esp + 0x84], xmm0
mov ecx, dword [eax + 0x40]
movss dword [esp + 0x88], xmm3
movss dword [esp + 0x8c], xmm2
test ecx, ecx
je 0x10017fb4
mov eax, dword [eax + 0x48]
add ecx, ecx
movups xmm4, xmmword [eax + ecx*8 - 0x10]
comiss xmm4, xmm1
movaps xmmword [esp + 0xb0], xmm4
jbe 0x10017f62
movaps xmm1, xmm4
movss dword [esp + 0x80], xmm1
movss xmm4, dword [esp + 0xb4]
comiss xmm4, xmm0
jbe 0x10017f7c
movaps xmm0, xmm4
movss dword [esp + 0x84], xmm0
movss xmm4, dword [esp + 0xb8]
comiss xmm3, xmm4
jbe 0x10017f96
movaps xmm3, xmm4
movss dword [esp + 0x88], xmm3
movss xmm4, dword [esp + 0xbc]
comiss xmm2, xmm4
mov eax, dword [esp + 0x40]
jbe 0x10017fb4
movaps xmm2, xmm4
movss dword [esp + 0x8c], xmm2
comiss xmm1, xmm3
jb 0x10017fc2
movss dword [esp + 0x88], xmm1
comiss xmm0, xmm2
jb 0x10017fd0
movss dword [esp + 0x8c], xmm0
mov edx, dword [eax + 0x40]
lea ecx, [eax + 0x40]
mov eax, dword [ecx + 4]
mov dword [esp + 0x54], ecx
cmp edx, eax
jne 0x1001800c
inc edx
mov dword [esp + 0x48], edx
test eax, eax
je 0x10017ff8
cdq
sub eax, edx
mov edx, dword [esp + 0x48]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x10017ffd
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.1002b8a0
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
movups xmm0, xmmword [esp + 0x80]
shl eax, 4
add eax, dword [ecx + 8]
movups xmmword [eax], xmm0
inc dword [ecx]
mov ecx, dword [esp + 0x40]
call fcn.10025ed0
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0x274]
mov ecx, dword [eax + 0x40]
mov eax, dword [eax + 0x48]
shl ecx, 4
movss xmm0, dword [ecx + eax - 0xc]
movss xmm1, dword [ecx + eax - 8]
movss xmm2, dword [ecx + eax - 4]
mov eax, dword [ecx + eax - 0x10]
mov dword [edx + 0x204], eax
mov eax, dword [esp + 0x7c]
movss dword [edx + 0x208], xmm0
movss dword [edx + 0x20c], xmm1
movss dword [edx + 0x210], xmm2
cmp eax, dword [esp + 0x78]
je 0x1001807f
mov byte [edi + 0x7c], 0
inc word [edi + 0x84]
mov eax, dword [esp + 0x14]
mov dword [esi + 0x1a2c], 0
test eax, 0x1000000
je 0x1001811b
test al, 0x40
jne 0x100180e1
cmp byte [edi + 0x90], 0
jg 0x100180e1
cmp byte [edi + 0x91], 0
jg 0x100180e1
movss xmm0, dword [edi + 0x1c4]
comiss xmm0, dword [edi + 0x1cc]
jae 0x100180d7
movss xmm0, dword [edi + 0x1c8]
comiss xmm0, dword [edi + 0x1d0]
jb 0x100180e1
mov dword [edi + 0x98], 1
mov eax, dword [esp + 0x44]
test eax, eax
je 0x1001811b
cmp byte [eax + 0x7d], 0
jne 0x100180f8
cmp dword [eax + 0x98], 0
jle 0x10018102
mov dword [edi + 0x98], 1
cmp byte [eax + 0x7d], 0
jne 0x10018111
cmp dword [eax + 0x9c], 0
jle 0x1001811b
mov dword [edi + 0x9c], 1
movss xmm0, dword [esp + 0x28]
comiss xmm0, dword [esi + 0x1510]
jb 0x10018134
mov dword [edi + 0x98], 1
cmp dword [edi + 0x98], 0
jg 0x1001814a
cmp dword [edi + 0x9c], 0
jg 0x1001814a
xor cl, cl
jmp 0x1001814c
mov cl, 1
xor al, al
mov byte [edi + 0x81], cl
cmp byte [edi + 0x7d], al
jne 0x10018162
cmp byte [edi + 0x7a], al
je 0x10018162
test cl, cl
je 0x10018186
cmp byte [edi + 0x90], 0
jg 0x10018186
cmp byte [edi + 0x91], 0
jg 0x10018186
cmp dword [edi + 0x9c], 0
mov ecx, 1
movzx eax, al
cmovle eax, ecx
mov ecx, dword [esp + 0x11c]
mov byte [edi + 0x7f], al
xor al, 1
pop edi
pop esi
xor ecx, esp
call fcn.1003f23d
mov esp, ebp
pop ebp
ret