Function at 0x18001ff10
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x88
mov rdx, qword [0x18008dc98]
mov qword [rax + 0x10], rbx
mov rbx, rdx
mov qword [rax + 0x18], rbp
mov qword [rax - 8], rsi
cmp byte [rdx], 0
mov qword [rax - 0x10], rdi
mov qword [rax - 0x18], r14
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x58], xmm9
jne 0x18001ff56
call fcn.180021a30
mov rdx, qword [0x18008dc98]
movss xmm0, dword [rbx + 0x1808]
xor edi, edi
inc dword [rbx + 0x180c]
addss xmm0, dword [rbx + 0x10]
mov dword [rbx + 0x29e8], edi
mov dword [rbx + 0x1858], edi
movss dword [rbx + 0x1808], xmm0
mov rcx, qword [rdx + 0xa8]
test rcx, rcx
jne 0x18001ff99
mov rax, qword [rdx + 0x98]
mov rcx, qword [rax + 0x38]
mov rcx, qword [rcx]
movss xmm1, dword [rdx + 0xa0]
xorps xmm7, xmm7
mov rax, qword [rdx + 0x1860]
mov qword [rdx + 0x1770], rcx
mulss xmm1, dword [rcx]
mulss xmm1, dword [rcx + 4]
movss dword [rdx + 0x177c], xmm1
test rax, rax
je 0x18001ffd2
mulss xmm1, dword [rax + 0x268]
jmp 0x18001ffd5
xorps xmm1, xmm1
movss dword [rdx + 0x1778], xmm1
lea rbp, [rbx + 0x19c8]
mov rax, qword [rcx + 0x58]
movsd xmm0, qword [rax + 0x28]
mov qword [rdx + 0x1788], rcx
mov rcx, rbp
movsd qword [rdx + 0x1780], xmm0
movss dword [rdx + 0x1790], xmm1
movss xmm0, dword [rbx + 8]
movss xmm1, dword [rbx + 0xc]
mov qword [rbx + 0x1798], rdi
movss dword [rbx + 0x17a0], xmm0
movss dword [rbx + 0x17a4], xmm1
mov eax, dword [rbx + 0x14b8]
mov dword [rbx + 0x1794], eax
call fcn.180038170
mov r8d, dword [rbp + 0x74]
mov ecx, dword [rbp + 0x70]
mov r14, qword [rbx + 0x98]
cmp ecx, r8d
jne 0x180020075
inc ecx
test r8d, r8d
je 0x180020060
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x180020065
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
lea rcx, [rbp + 0x70]
call fcn.180030060
movsxd rdx, dword [rbp + 0x70]
mov rcx, qword [rbp + 0x78]
mov rax, qword [r14]
mov qword [rcx + rdx*8], rax
mov rcx, rbp
inc dword [rbp + 0x70]
call fcn.180038600
mov rax, qword [rbp + 0x38]
xor r9d, r9d
mov rcx, rbp
movss xmm1, dword [rax + 0x24]
movss xmm0, dword [rax + 0x20]
movss xmm2, dword [rax + 0x1c]
unpcklps xmm0, xmm1
movss xmm1, dword [rax + 0x18]
movq r8, xmm0
unpcklps xmm1, xmm2
movq rdx, xmm1
call fcn.1800386c0
movzx eax, byte [rbx + 0x14b5]
mov r14, qword [rsp + 0x70]
neg al
mov rbp, qword [rsp + 0xa0]
mov eax, edi
sbb ecx, ecx
mov byte [rbx + 0x1980], dil
and ecx, 2
mov qword [rbx + 0x1988], rdi
cmp byte [rbx + 0x14b4], dil
mov qword [rbx + 0x1994], rdi
setne al
mov dword [rbx + 0x1990], edi
or ecx, eax
mov dword [rbx + 0x19f8], ecx
cmp dword [rbx + 0x1888], edi
jne 0x18002011a
mov dword [rbx + 0x188c], edi
mov eax, dword [rbx + 0x1880]
mov rsi, qword [0x18008dc98]
mov dword [rbx + 0x1888], eax
mov dword [rbx + 0x1880], edi
mov byte [rbx + 0x1884], dil
cmp byte [rbx + 0x189c], dil
jne 0x180020184
mov eax, dword [rbx + 0x1890]
cmp dword [rbx + 0x1894], eax
jne 0x180020184
test eax, eax
je 0x180020184
mov ecx, dword [rsi + 0x1890]
test ecx, ecx
setne al
mov byte [rsi + 0x189d], al
test ecx, ecx
je 0x180020170
mov dword [rsi + 0x1898], edi
mov dword [rsi + 0x1890], edi
mov byte [rsi + 0x189e], dil
mov qword [rsi + 0x18a8], rdi
mov eax, dword [rbx + 0x1890]
test eax, eax
je 0x1800201a3
movss xmm0, dword [rbx + 0x10]
addss xmm0, dword [rbx + 0x1898]
movss dword [rbx + 0x1898], xmm0
mov ecx, dword [rbx + 0x29b0]
mov dword [rbx + 0x1894], eax
mov word [rbx + 0x189c], di
test ecx, ecx
je 0x1800201c4
cmp eax, ecx
je 0x1800201c4
mov dword [rbx + 0x29b0], edi
cmp byte [rbx + 0x1be0], dil
je 0x180020277
mov eax, dword [rbx + 0x1c04]
inc eax
cmp eax, dword [rbx + 0x180c]
jge 0x180020277
mov qword [rsi + 0x1bfc], rdi
xor eax, eax
mov qword [rsi + 0x1bf0], rdi
mov dword [rsi + 0x1bf8], edi
mov byte [rsi + 0x1be0], dil
mov qword [rsi + 0x1c08], rax
mov dword [rsi + 0x1c10], eax
mov word [rsi + 0x1c14], ax
mov dword [rsi + 0x1c04], 0xffffffff
mov byte [rsi + 0x1c16], al
mov qword [rsi + 0x1c30], rdi
mov dword [rsi + 0x1c2c], 0x7f7fffff
mov dword [rsi + 0x1c38], 0xffffffff
mov rcx, qword [rbx + 0x1c48]
test rcx, rcx
je 0x18002026e
mov qword [rbx + 0x1c40], rdi
dec dword [rsi + 0x354]
call qword [rsi + 0xf8]
mov rsi, qword [0x18008dc98]
mov qword [rbx + 0x1c48], rdi
xor eax, eax
mov qword [rbx + 0x1c50], rax
mov eax, dword [rbx + 0x1c30]
lea rcx, [rbx + 0xc28]
lea rdx, [rbx + 0x428]
mov dword [rbx + 0x1c34], eax
mov r8d, 0x800
mov qword [rbx + 0x1c2c], 0x7f7fffff
call fcn.18006f690
movss xmm4, dword [0x18008261c]
lea rcx, [rbx + 0x12a]
lea rax, [rbx + 0x42c]
mov r8d, 0x80
cmp byte [rcx - 1], dil
je 0x1800202df
movss xmm0, dword [rax - 4]
comiss xmm7, xmm0
jbe 0x1800202d8
movaps xmm0, xmm7
jmp 0x1800202e2
addss xmm0, dword [rbx + 0x10]
jmp 0x1800202e2
movaps xmm0, xmm4
movss dword [rax - 4], xmm0
cmp byte [rcx], dil
je 0x180020301
movss xmm0, dword [rax]
comiss xmm7, xmm0
jbe 0x1800202fa
movaps xmm0, xmm7
jmp 0x180020304
addss xmm0, dword [rbx + 0x10]
jmp 0x180020304
movaps xmm0, xmm4
movss dword [rax], xmm0
cmp byte [rcx + 1], dil
je 0x180020324
movss xmm0, dword [rax + 4]
comiss xmm7, xmm0
jbe 0x18002031d
movaps xmm0, xmm7
jmp 0x180020327
addss xmm0, dword [rbx + 0x10]
jmp 0x180020327
movaps xmm0, xmm4
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], dil
je 0x180020348
movss xmm0, dword [rax + 8]
comiss xmm7, xmm0
jbe 0x180020341
movaps xmm0, xmm7
jmp 0x18002034b
addss xmm0, dword [rbx + 0x10]
jmp 0x18002034b
movaps xmm0, xmm4
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x1800202c3
lea rax, [rbx + 0x110]
test rax, rax
jne 0x180020375
lea rax, [rsi + 0x110]
movss xmm0, dword [rax]
movss xmm1, dword [0x180082638]
comiss xmm0, xmm1
jb 0x1800203d4
movss xmm0, dword [rax + 4]
comiss xmm0, xmm1
jb 0x1800203d4
lea rcx, [rbx + 0x36c]
mov rax, rcx
test rcx, rcx
jne 0x1800203a6
lea rax, [rsi + 0x110]
movss xmm0, dword [rax]
comiss xmm0, xmm1
jb 0x1800203d4
movss xmm0, dword [rax + 4]
comiss xmm0, xmm1
jb 0x1800203d4
movss xmm0, dword [rbx + 0x110]
movss xmm1, dword [rbx + 0x114]
subss xmm0, dword [rcx]
subss xmm1, dword [rcx + 4]
jmp 0x1800203f3
movaps xmm0, xmm7
unpcklps xmm0, xmm7
movaps xmm1, xmm0
movsd qword [rsp + 0x90], xmm0
movss xmm0, dword [rsp + 0x90]
shufps xmm1, xmm1, 0x55
movss dword [rbx + 0x364], xmm0
lea rdx, [rbx + 0x3b0]
movss dword [rbx + 0x368], xmm1
lea rax, [rbx + 0x374]
movsd xmm0, qword [rbx + 0x110]
lea rcx, [rbx + 0x3c4]
movss xmm5, dword [0x180082790]
mov r9d, 5
movss xmm6, dword [0x18008263c]
movsd qword [rbx + 0x36c], xmm0
nop
movzx r8d, byte [rdx - 0x298]
test r8b, r8b
je 0x180020478
comiss xmm7, dword [rcx]
jbe 0x180020478
mov byte [rdx], 1
xor r8b, r8b
mov byte [rdx + 0xa], r8b
movss xmm0, dword [rcx]
movss dword [rcx + 0x14], xmm0
cmp byte [rdx - 0x298], dil
je 0x180020495
comiss xmm7, xmm0
jbe 0x18002048e
movaps xmm0, xmm7
jmp 0x180020498
mov byte [rdx], dil
test r8b, r8b
jne 0x180020455
movss xmm0, dword [rcx]
comiss xmm0, xmm7
jb 0x180020455
mov r8b, 1
jmp 0x180020458
addss xmm0, dword [rbx + 0x10]
jmp 0x180020498
movaps xmm0, xmm4
movss dword [rcx], xmm0
mov byte [rdx + 5], dil
cmp byte [rdx], dil
je 0x180020513
movss xmm2, dword [rbx + 0x1808]
movss xmm0, dword [rbx + 0x28]
movaps xmm1, xmm2
subss xmm1, dword [rcx - 0x28]
comiss xmm0, xmm1
jbe 0x1800204f9
movss xmm1, dword [rbx + 0x110]
movss xmm2, dword [rbx + 0x114]
subss xmm2, dword [rax + 4]
subss xmm1, dword [rax]
movss xmm0, dword [rbx + 0x2c]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
comiss xmm0, xmm2
jbe 0x1800204f6
mov byte [rdx + 5], 1
movaps xmm2, xmm6
movss dword [rcx - 0x28], xmm2
movsd xmm0, qword [rbx + 0x110]
movsd qword [rax], xmm0
mov qword [rax + 0x78], rdi
mov dword [rcx + 0x50], edi
jmp 0x180020577
cmp byte [rdx - 0x298], dil
je 0x180020577
movss xmm3, dword [rbx + 0x110]
subss xmm3, dword [rax]
movss xmm2, dword [rbx + 0x114]
subss xmm2, dword [rax + 4]
movss xmm0, dword [rax + 0x78]
movaps xmm1, xmm3
mulss xmm3, xmm3
andps xmm1, xmm5
maxss xmm0, xmm1
movaps xmm1, xmm2
andps xmm1, xmm5
mulss xmm2, xmm2
movss dword [rax + 0x78], xmm0
addss xmm3, xmm2
movss xmm0, dword [rax + 0x7c]
maxss xmm0, xmm1
movss dword [rax + 0x7c], xmm0
movss xmm0, dword [rcx + 0x50]
maxss xmm0, xmm3
movss dword [rcx + 0x50], xmm0
add rcx, 4
inc rdx
add rax, 8
sub r9, 1
jne 0x180020440
movsxd rax, dword [rbx + 0x2c38]
movss xmm1, dword [rbx + 0x10]
movss xmm9, dword [0x180082534]
movaps xmm0, xmm1
subss xmm0, dword [rbx + rax*4 + 0x2a58]
addss xmm0, dword [rbx + 0x2c3c]
movss dword [rbx + 0x2c3c], xmm0
movaps xmm0, xmm9
movss dword [rbx + rax*4 + 0x2a58], xmm1
mov eax, 0x88888889
movss xmm1, dword [rbx + 0x2c3c]
divss xmm1, dword [0x1800825f4]
mov ecx, dword [rbx + 0x2c38]
inc ecx
imul ecx
divss xmm0, xmm1
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x78
movss dword [rbx + 0x350], xmm0
sub ecx, eax
mov eax, dword [rbx + 0x18b8]
mov dword [rbx + 0x2c38], ecx
test eax, eax
je 0x1800206c6
mov edx, dword [rbx + 0x1890]
cmp eax, edx
jne 0x1800206c6
mov ecx, dword [rsi + 0x1890]
cmp ecx, edx
jne 0x180020639
mov byte [rsi + 0x189c], 1
cmp byte [rbx + 0x118], dil
je 0x1800206f7
mov rax, qword [rbx + 0x18b0]
movss xmm2, dword [rbx + 0x110]
subss xmm2, dword [rbx + 0x18a0]
movss xmm1, dword [rbx + 0x114]
mov rcx, qword [rax + 0x280]
subss xmm1, dword [rbx + 0x18a4]
movss xmm0, dword [rcx + 0x10]
ucomiss xmm0, xmm2
jp 0x18002068c
jne 0x18002068c
movss xmm0, dword [rcx + 0x14]
ucomiss xmm0, xmm1
jp 0x18002068c
je 0x1800206b1
test dword [rcx + 0xc], 0x100
jne 0x1800206a7
comiss xmm7, dword [rsi + 0x2a10]
jb 0x1800206a7
mov eax, dword [rsi + 0x14]
mov dword [rsi + 0x2a10], eax
movss dword [rcx + 0x10], xmm2
movss dword [rcx + 0x14], xmm1
mov rcx, qword [rbx + 0x18b0]
call fcn.180028f10
mov rsi, qword [0x18008dc98]
jmp 0x18002072d
mov rax, qword [rbx + 0x18a8]
test rax, rax
je 0x180020720
mov edx, dword [rbx + 0x1890]
cmp dword [rax + 0x68], edx
jne 0x180020720
mov ecx, dword [rsi + 0x1890]
cmp ecx, edx
jne 0x1800206ee
mov byte [rsi + 0x189c], 1
cmp byte [rbx + 0x118], dil
jne 0x180020720
test ecx, ecx
setne al
mov byte [rsi + 0x189d], al
test ecx, ecx
je 0x18002070c
mov dword [rsi + 0x1898], edi
mov qword [rsi + 0x18a8], rdi
mov byte [rsi + 0x189e], dil
mov dword [rsi + 0x1890], edi
mov dword [rbx + 0x18b8], edi
mov qword [rbx + 0x18b0], rdi
movss xmm0, dword [rbx + 0x2a10]
comiss xmm0, xmm7
jbe 0x180020747
subss xmm0, dword [rbx + 0x10]
movss dword [rbx + 0x2a10], xmm0
mov rax, qword [rbx + 0x18b0]
movaps xmmword [rsp + 0x40], xmm8
test rax, rax
je 0x180020775
test dword [rax + 0xc], 0x200
jne 0x180020775
mov qword [rbx + 0x1870], rax
mov rdx, qword [rax + 0x280]
jmp 0x180020824
mov eax, dword [rsi + 0x1818]
sub eax, 1
movss xmm8, dword [rbx + 0x110]
movss xmm6, dword [rbx + 0x114]
js 0x18002081a
movsxd rcx, eax
mov rax, qword [rsi + 0x1820]
lea rdx, [rax + rcx*8]
mov rax, qword [rdx]
cmp byte [rax + 0x90], dil
je 0x180020810
test dword [rax + 0xc], 0x200
jne 0x180020810
movss xmm2, dword [rsi + 0x147c]
movss xmm1, dword [rsi + 0x1480]
movaps xmm4, xmm2
movss xmm0, dword [rax + 0x1f0]
movaps xmm5, xmm1
movss xmm3, dword [rax + 0x1f4]
subss xmm0, xmm2
addss xmm4, dword [rax + 0x1f8]
addss xmm5, dword [rax + 0x1fc]
subss xmm3, xmm1
comiss xmm8, xmm0
jb 0x180020810
comiss xmm6, xmm3
jb 0x180020810
comiss xmm4, xmm8
jbe 0x180020810
comiss xmm5, xmm6
ja 0x18002089b
sub rdx, 8
sub rcx, 1
jns 0x1800207a3
mov qword [rbx + 0x1870], rdi
mov rdx, rdi
movaps xmm8, xmmword [rsp + 0x40]
mov qword [rbx + 0x1878], rdx
mov eax, dword [rsi + 0x18f0]
sub eax, 1
js 0x180020870
mov r9, qword [rsi + 0x18f8]
movsxd r8, eax
add r9, 8
lea rcx, [r8 + r8*2]
shl rcx, 4
add r9, rcx
mov rcx, qword [r9]
test rcx, rcx
je 0x180020866
test dword [rcx + 0xc], 0x8000000
jne 0x1800208b7
sub r9, 0x30
sub r8, 1
jns 0x180020855
mov rcx, rdi
mov dword [rbx + 0x19c0], edi
cmp byte [rbx + 0x3b0], dil
je 0x180020913
cmp qword [rbx + 0x1870], rdi
jne 0x18002090b
cmp dword [rbx + 0x18f0], edi
jne 0x18002090b
xor al, al
jmp 0x18002090d
mov qword [rbx + 0x1870], rax
test rax, rax
je 0x180020821
mov rdx, qword [rax + 0x280]
jmp 0x180020824
movss xmm0, dword [rbx + 0x10]
mulss xmm0, dword [0x1800825c8]
addss xmm0, dword [rbx + 0x19c0]
minss xmm0, xmm9
movss dword [rbx + 0x19c0], xmm0
test rdx, rdx
je 0x180020879
cmp qword [rdx + 0x280], rcx
je 0x180020879
cmp rdx, rcx
je 0x180020879
mov rdx, qword [rdx + 0x278]
test rdx, rdx
jne 0x1800208e7
mov qword [rbx + 0x1870], rdi
mov qword [rbx + 0x1878], rdi
jmp 0x180020879
mov al, 1
mov byte [rbx + 0x3bf], al
movzx r8d, byte [rbx + 0x118]
mov edx, 0xffffffff
test r8b, r8b
cmovne edx, edi
cmp byte [rbx + 0x3b1], dil
je 0x18002094c
cmp qword [rbx + 0x1870], rdi
jne 0x180020944
cmp dword [rbx + 0x18f0], edi
jne 0x180020944
xor al, al
jmp 0x180020946
mov al, 1
mov byte [rbx + 0x3c0], al
movzx eax, byte [rbx + 0x119]
or r8b, al
test al, al
je 0x180020979
cmp edx, 0xffffffff
je 0x180020974
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3a0]
jbe 0x180020979
mov edx, 1
cmp byte [rbx + 0x3b2], dil
je 0x18002099f
cmp qword [rbx + 0x1870], rdi
jne 0x180020997
cmp dword [rbx + 0x18f0], edi
jne 0x180020997
xor al, al
jmp 0x180020999
mov al, 1
mov byte [rbx + 0x3c1], al
movzx eax, byte [rbx + 0x11a]
or r8b, al
test al, al
je 0x1800209cc
cmp edx, 0xffffffff
je 0x1800209c7
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3a4]
jbe 0x1800209cc
mov edx, 2
cmp byte [rbx + 0x3b3], dil
je 0x1800209f2
cmp qword [rbx + 0x1870], rdi
jne 0x1800209ea
cmp dword [rbx + 0x18f0], edi
jne 0x1800209ea
xor al, al
jmp 0x1800209ec
mov al, 1
mov byte [rbx + 0x3c2], al
movzx eax, byte [rbx + 0x11b]
or r8b, al
test al, al
je 0x180020a1f
cmp edx, 0xffffffff
je 0x180020a1a
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3a8]
jbe 0x180020a1f
mov edx, 3
cmp byte [rbx + 0x3b4], dil
je 0x180020a45
cmp qword [rbx + 0x1870], rdi
jne 0x180020a3d
cmp dword [rbx + 0x18f0], edi
jne 0x180020a3d
xor al, al
jmp 0x180020a3f
mov al, 1
mov byte [rbx + 0x3c3], al
movzx eax, byte [rbx + 0x11c]
or r8b, al
test al, al
je 0x180020a72
cmp edx, 0xffffffff
je 0x180020a6d
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3ac]
jbe 0x180020a72
mov edx, 4
cmp edx, 0xffffffff
je 0x180020a88
movsxd rax, edx
cmp byte [rax + rbx + 0x3bf], dil
jne 0x180020a88
xor dl, dl
jmp 0x180020a8a
mov dl, 1
mov eax, dword [rbx + 0x2c40]
cmp eax, 0xffffffff
je 0x180020a9c
test eax, eax
setne al
jmp 0x180020abc
test dl, dl
je 0x180020aae
cmp qword [rbx + 0x1870], rdi
jne 0x180020aba
test r8b, r8b
jne 0x180020aba
cmp dword [rbx + 0x18f0], edi
jne 0x180020aba
xor al, al
jmp 0x180020abc
mov al, 1
mov byte [rbx + 0x34c], al
mov eax, dword [rbx + 0x2c44]
cmp eax, 0xffffffff
je 0x180020ad4
test eax, eax
setne al
jmp 0x180020ae7
cmp dword [rbx + 0x1890], edi
jne 0x180020ae5
test rcx, rcx
jne 0x180020ae5
xor al, al
jmp 0x180020ae7
mov al, 1
mov byte [rbx + 0x34d], al
mov ecx, dword [rbx + 0x2c48]
cmp ecx, 0xffffffff
je 0x180020aff
test ecx, ecx
setne al
jmp 0x180020b01
mov eax, edi
mov byte [rbx + 0x34e], al
mov dword [rbx + 0x1a70], edi
mov qword [rbx + 0x2c44], 0xffffffffffffffff
mov dword [rbx + 0x2c40], 0xffffffff
mov dword [rbx + 0x2a00], 0x3f800000
mov dword [rbx + 0x2a04], 0x3f800000
cmp byte [rbx + 0x1be0], dil
je 0x180020b4c
test byte [rbx + 0x1be4], 0x10
je 0x180020b4c
mov al, 1
jmp 0x180020b4e
xor al, al
test dl, dl
jne 0x180020b64
test al, al
jne 0x180020b64
mov qword [rbx + 0x1878], rdi
mov qword [rbx + 0x1870], rdi
mov rcx, qword [rbx + 0x1870]
test rcx, rcx
je 0x180020d14
movss xmm0, dword [rbx + 0x120]
ucomiss xmm0, xmm7
jp 0x180020b87
je 0x180020d14
cmp byte [rcx + 0x93], dil
jne 0x180020d14
cmp byte [rbx + 0x125], dil
je 0x180020c6d
cmp byte [rbx + 0xa4], dil
je 0x180020d14
mulss xmm0, dword [0x1800824f8]
movss xmm2, dword [rcx + 0x268]
movss xmm1, dword [0x18008250c]
addss xmm0, xmm2
comiss xmm1, xmm0
ja 0x180020bdb
movss xmm1, dword [0x180082580]
minss xmm1, xmm0
movss dword [rcx + 0x268], xmm1
movaps xmm6, xmm1
movss xmm0, dword [rbx + 0x110]
subss xmm0, dword [rcx + 0x18]
movss xmm3, dword [rbx + 0x114]
subss xmm3, dword [rcx + 0x1c]
divss xmm6, xmm2
shufps xmm6, xmm6, 0
subss xmm9, xmm6
movaps xmm4, xmm9
mulss xmm9, dword [rcx + 0x24]
mulss xmm4, dword [rcx + 0x20]
mulss xmm3, xmm9
mulss xmm4, xmm0
divss xmm3, dword [rcx + 0x24]
divss xmm4, dword [rcx + 0x20]
movaps xmm1, xmm3
addss xmm1, dword [rcx + 0x1c]
addss xmm3, dword [rcx + 0x14]
movaps xmm0, xmm4
addss xmm0, dword [rcx + 0x18]
addss xmm4, dword [rcx + 0x10]
movss dword [rcx + 0x1c], xmm1
movss dword [rcx + 0x14], xmm3
movss dword [rcx + 0x18], xmm0
movups xmm0, xmmword [rcx + 0x20]
movss dword [rcx + 0x10], xmm4
mulps xmm0, xmm6
movups xmmword [rcx + 0x20], xmm0
jmp 0x180020d14
mov eax, dword [rcx + 0xc]
bt eax, 0x18
jae 0x180020c98
and eax, 0x218
cmp eax, 0x10
jne 0x180020c98
mov rax, qword [rcx + 0x278]
test rax, rax
je 0x180020c98
mov rcx, rax
mov eax, dword [rax + 0xc]
bt eax, 0x18
jb 0x180020c76
test dword [rcx + 0xc], 0x210
jne 0x180020d14
movss xmm0, dword [rcx + 0x54]
subss xmm0, dword [rcx + 0x4c]
movss xmm1, dword [rcx + 0x5c]
movss xmm3, dword [rcx + 0x70]
addss xmm1, xmm1
movss xmm2, dword [rcx + 0x268]
mulss xmm2, dword [rsi + 0x177c]
addss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm2, dword [0x1800825c4]
addss xmm3, dword [rcx + 0xfc]
mulss xmm0, dword [0x180082518]
minss xmm2, xmm0
xorps xmm0, xmm0
cvttss2si eax, xmm2
cvtsi2ss xmm0, eax
mulss xmm0, dword [rbx + 0x120]
subss xmm1, xmm0
subss xmm3, xmm1
movss dword [rcx + 0x70], xmm1
movss dword [rcx + 0xfc], xmm3
movaps xmm9, xmmword [rsp + 0x30]
cmp dword [rbx + 0x1890], edi
jne 0x180020d55
mov rcx, qword [rbx + 0x1868]
test rcx, rcx
je 0x180020d55
cmp byte [rcx + 0x90], dil
je 0x180020d55
movsxd rax, dword [rsi + 0x34]
test eax, eax
js 0x180020d55
movss xmm0, dword [rsi + rax*4 + 0x428]
ucomiss xmm0, xmm7
jp 0x180020d55
jne 0x180020d55
mov dword [rcx + 0x2a4], edi
mov r8d, edi
movaps xmm7, xmmword [rsp + 0x50]
cmp dword [rbx + 0x1818], edi
je 0x180020da7
mov rdx, rdi
nop dword [rax + rax]
mov rax, qword [rbx + 0x1820]
lea rdx, [rdx + 8]
inc r8d
mov rcx, qword [rdx + rax - 8]
movzx eax, byte [rcx + 0x90]
mov byte [rcx + 0x91], al
mov byte [rcx + 0x90], dil
mov byte [rcx + 0x92], dil
cmp r8d, dword [rbx + 0x1818]
jne 0x180020d70
mov rax, qword [rbx + 0x1868]
test rax, rax
je 0x180020e06
cmp byte [rax + 0x91], dil
jne 0x180020e06
mov edx, dword [rsi + 0x1818]
sub edx, 1
js 0x180020e06
mov rcx, qword [rsi + 0x1820]
movsxd rax, edx
lea r8, [rcx + rax*8]
mov rax, qword [r8]
test rax, rax
je 0x180020def
cmp byte [rax + 0x91], dil
je 0x180020def
test dword [rax + 0xc], 0x1000000
je 0x180020dfa
sub r8, 8
sub edx, 1
jns 0x180020dd5
jmp 0x180020e06
movsxd rax, edx
mov rcx, qword [rcx + rax*8]
call fcn.180028f10
lea rcx, [rbx + 0x1838]
call fcn.1800300f0
mov ecx, dword [rbx + 0x1904]
test ecx, ecx
jns 0x180020e38
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x1900]
test eax, eax
cmovg edx, eax
call fcn.1800307f0
mov dword [rbx + 0x1900], edi
mov rcx, qword [rbx + 0x1868]
call fcn.180024250
mov rax, qword [0x18008dc98]
movsd xmm0, qword [str.wQWCPe]
mov rsi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x98]
mov dword [rax + 0x1938], 0x43c80000
mov dword [rax + 0x193c], 0x43c80000
mov dword [rax + 0x1914], 4
cmp dword [0x18008d088], 2
mov eax, dword [0x180082430]
mov dword [rsp + 0x28], eax
movzx eax, word [0x180082434]
mov word [rsp + 0x2c], ax
movzx eax, byte [0x180082436]
mov byte [rsp + 0x2e], al
movsd qword [rsp + 0x20], xmm0
jl 0x180020fbe
movdqa xmm2, xmmword [0x1800826b0]
mov edi, 8
movdqa xmm3, xmmword [0x1800826c0]
movdqa xmm1, xmm2
movdqa xmm4, xmmword [0x1800827c0]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800826d0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [str.wQWCPe]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1800826f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.3333333333333333]
xorps xmm2, xmm0
punpckldq xmm1, xmm3
movd dword [rsp + 0x20], xmm2
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800826d0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rsp + 0x24]
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800826f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.3333333333333333]
xorps xmm2, xmm0
movd dword [rsp + 0x24], xmm2
movaps xmm6, xmmword [rsp + 0x60]
lea r8, [rsp + 0x20]
movsxd rax, edi
add r8, rax
nop
mov eax, 0x92492493
lea r8, [r8 + 1]
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x38
movzx eax, dil
inc edi
sub al, cl
add al, 0x33
xor byte [r8 - 1], al
cmp edi, 0xf
jl 0x180020fd0
mov rdi, qword [rsp + 0x78]
lea rcx, [rsp + 0x20]
xor r8d, r8d
xor edx, edx
call fcn.180026060
add rsp, 0x88
ret