Function at 0x180020ad0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x88
mov rdx, qword [0x18008dc38]
mov qword [rax + 0x10], rbx
mov rbx, rdx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
cmp byte [rdx], 0
mov qword [rax - 8], rdi
mov qword [rax - 0x10], r14
mov qword [rax - 0x18], r15
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x58], xmm9
jne 0x180020b1a
call fcn.180022600
mov rdx, qword [0x18008dc38]
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 0x180020b5d
mov rax, qword [rdx + 0x98]
mov rcx, qword [rax + 0x38]
mov rcx, qword [rcx]
movss xmm0, dword [rdx + 0xa0]
xorps xmm6, xmm6
mov rax, qword [rdx + 0x1860]
mov qword [rdx + 0x1770], rcx
mulss xmm0, dword [rcx]
mulss xmm0, dword [rcx + 4]
movss dword [rdx + 0x177c], xmm0
test rax, rax
je 0x180020b9a
movss xmm1, dword [rax + 0x268]
mulss xmm1, xmm0
jmp 0x180020b9d
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.180039b40
mov r8d, dword [rbp + 0x74]
mov ecx, dword [rbp + 0x70]
mov r14, qword [rbx + 0x98]
cmp ecx, r8d
jne 0x180020c3d
inc ecx
test r8d, r8d
je 0x180020c28
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x180020c2d
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
lea rcx, [rbp + 0x70]
call fcn.180031940
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.180039fd0
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.18003a090
movzx eax, byte [rbx + 0x14b5]
neg al
mov byte [rbx + 0x1980], dil
mov eax, edi
mov qword [rbx + 0x1988], rdi
sbb ecx, ecx
mov qword [rbx + 0x1994], rdi
and ecx, 2
mov dword [rbx + 0x1990], edi
cmp byte [rbx + 0x14b4], dil
setne al
or ecx, eax
mov dword [rbx + 0x19f8], ecx
cmp dword [rbx + 0x1888], edi
jne 0x180020cd5
mov dword [rbx + 0x188c], edi
mov eax, dword [rbx + 0x1880]
mov rsi, qword [0x18008dc38]
mov dword [rbx + 0x1888], eax
mov dword [rbx + 0x1880], edi
mov byte [rbx + 0x1884], dil
cmp byte [rbx + 0x189c], dil
jne 0x180020d3f
mov eax, dword [rbx + 0x1890]
cmp dword [rbx + 0x1894], eax
jne 0x180020d3f
test eax, eax
je 0x180020d3f
mov ecx, dword [rsi + 0x1890]
test ecx, ecx
setne al
mov byte [rsi + 0x189d], al
test ecx, ecx
je 0x180020d2b
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 0x180020d5e
movss xmm0, dword [rbx + 0x1898]
addss xmm0, dword [rbx + 0x10]
movss dword [rbx + 0x1898], xmm0
mov ecx, dword [rbx + 0x29b0]
mov dword [rbx + 0x1894], eax
mov word [rbx + 0x189c], di
test ecx, ecx
je 0x180020d7f
cmp eax, ecx
je 0x180020d7f
mov dword [rbx + 0x29b0], edi
cmp byte [rbx + 0x1be0], dil
je 0x180020e32
mov eax, dword [rbx + 0x1c04]
inc eax
cmp eax, dword [rbx + 0x180c]
jge 0x180020e32
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 0x180020e29
mov qword [rbx + 0x1c40], rdi
dec dword [rsi + 0x354]
call qword [rsi + 0xf8]
mov rsi, qword [0x18008dc38]
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.180044cd0
movss xmm4, dword [0x180082734]
lea rcx, [rbx + 0x12a]
lea rax, [rbx + 0x42c]
mov r8d, 0x80
nop
cmp byte [rcx - 1], dil
je 0x180020e9c
movss xmm0, dword [rax - 4]
comiss xmm6, xmm0
jbe 0x180020e95
movaps xmm0, xmm6
jmp 0x180020e9f
addss xmm0, dword [rbx + 0x10]
jmp 0x180020e9f
movaps xmm0, xmm4
movss dword [rax - 4], xmm0
cmp byte [rcx], dil
je 0x180020ebe
movss xmm0, dword [rax]
comiss xmm6, xmm0
jbe 0x180020eb7
movaps xmm0, xmm6
jmp 0x180020ec1
addss xmm0, dword [rbx + 0x10]
jmp 0x180020ec1
movaps xmm0, xmm4
movss dword [rax], xmm0
cmp byte [rcx + 1], dil
je 0x180020ee1
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
jbe 0x180020eda
movaps xmm0, xmm6
jmp 0x180020ee4
addss xmm0, dword [rbx + 0x10]
jmp 0x180020ee4
movaps xmm0, xmm4
movss dword [rax + 4], xmm0
cmp byte [rcx + 2], dil
je 0x180020f05
movss xmm0, dword [rax + 8]
comiss xmm6, xmm0
jbe 0x180020efe
movaps xmm0, xmm6
jmp 0x180020f08
addss xmm0, dword [rbx + 0x10]
jmp 0x180020f08
movaps xmm0, xmm4
movss dword [rax + 8], xmm0
add rcx, 4
add rax, 0x10
sub r8, 1
jne 0x180020e80
lea rbp, [rbx + 0x110]
mov rax, rbp
test rbp, rbp
jne 0x180020f35
lea rax, [rsi + 0x110]
movss xmm0, dword [rax]
movss xmm1, dword [0x180082750]
comiss xmm0, xmm1
jb 0x180020f8e
movss xmm0, dword [rax + 4]
comiss xmm0, xmm1
jb 0x180020f8e
lea rax, [rbx + 0x36c]
mov rcx, rax
test rax, rax
jne 0x180020f66
lea rcx, [rsi + 0x110]
movss xmm0, dword [rcx]
comiss xmm0, xmm1
jb 0x180020f95
movss xmm0, dword [rcx + 4]
comiss xmm0, xmm1
jb 0x180020f95
movss xmm0, dword [rbp]
movss xmm1, dword [rbp + 4]
subss xmm0, dword [rax]
subss xmm1, dword [rax + 4]
jmp 0x180020f9b
lea rax, [rbx + 0x36c]
movaps xmm0, xmm6
movaps xmm1, xmm6
movss dword [rbx + 0x364], xmm0
lea rdx, [rbx + 0x3b0]
movss dword [rbx + 0x368], xmm1
lea rcx, [rbx + 0x374]
movsd xmm0, qword [rbp]
mov r15d, 5
movss xmm5, dword [0x1800828b0]
mov r9d, r15d
movss xmm7, dword [0x180082754]
movsd qword [rax], xmm0
lea rax, [rbx + 0x3c4]
movzx r8d, byte [rdx - 0x298]
test r8b, r8b
je 0x18002101a
comiss xmm6, dword [rax]
jbe 0x18002101a
mov byte [rdx], 1
xor r8b, r8b
mov byte [rdx + 0xa], r8b
movss xmm0, dword [rax]
movss dword [rax + 0x14], xmm0
cmp byte [rdx - 0x298], dil
je 0x180021037
comiss xmm6, xmm0
jbe 0x180021030
movaps xmm0, xmm6
jmp 0x18002103a
mov byte [rdx], dil
test r8b, r8b
jne 0x180020ff7
movss xmm0, dword [rax]
comiss xmm0, xmm6
jb 0x180020ff7
mov r8b, 1
jmp 0x180020ffa
addss xmm0, dword [rbx + 0x10]
jmp 0x18002103a
movaps xmm0, xmm4
movss dword [rax], xmm0
mov byte [rdx + 5], dil
cmp byte [rdx], dil
je 0x1800210ac
movss xmm2, dword [rbx + 0x1808]
movss xmm0, dword [rbx + 0x28]
movaps xmm1, xmm2
subss xmm1, dword [rax - 0x28]
comiss xmm0, xmm1
jbe 0x180021095
movss xmm2, dword [rbp]
movss xmm1, dword [rbp + 4]
subss xmm1, dword [rcx + 4]
subss xmm2, dword [rcx]
movss xmm0, dword [rbx + 0x2c]
mulss xmm0, xmm0
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm1, xmm2
comiss xmm0, xmm1
jbe 0x180021092
mov byte [rdx + 5], 1
movaps xmm2, xmm7
movss dword [rax - 0x28], xmm2
movsd xmm0, qword [rbp]
movsd qword [rcx], xmm0
mov qword [rcx + 0x78], rdi
mov dword [rax + 0x50], edi
jmp 0x18002110a
cmp byte [rdx - 0x298], dil
je 0x18002110a
movss xmm3, dword [rbp]
subss xmm3, dword [rcx]
movss xmm2, dword [rbp + 4]
subss xmm2, dword [rcx + 4]
movss xmm0, dword [rcx + 0x78]
movaps xmm1, xmm3
mulss xmm3, xmm3
andps xmm1, xmm5
maxss xmm0, xmm1
movaps xmm1, xmm2
andps xmm1, xmm5
mulss xmm2, xmm2
movss dword [rcx + 0x78], xmm0
addss xmm3, xmm2
movss xmm0, dword [rcx + 0x7c]
maxss xmm0, xmm1
movss dword [rcx + 0x7c], xmm0
movss xmm0, dword [rax + 0x50]
maxss xmm0, xmm3
movss dword [rax + 0x50], xmm0
add rax, 4
inc rdx
add rcx, 8
sub r9, 1
jne 0x180020fe2
movsxd rax, dword [rbx + 0x2c38]
movss xmm1, dword [rbx + 0x10]
movss xmm9, dword [0x18008264c]
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 [0x18008270c]
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 + 0x1890]
mov dword [rbx + 0x2c38], ecx
mov ecx, dword [rbx + 0x18b8]
test ecx, ecx
je 0x180021253
cmp ecx, eax
jne 0x180021253
mov edx, dword [rsi + 0x1890]
cmp edx, eax
jne 0x1800211cc
mov byte [rsi + 0x189c], 1
cmp byte [rbx + 0x118], dil
je 0x18002127e
mov rax, qword [rbx + 0x18b0]
movss xmm2, dword [rbp]
subss xmm2, dword [rbx + 0x18a0]
movss xmm1, dword [rbp + 4]
mov rcx, qword [rax + 0x280]
subss xmm1, dword [rbx + 0x18a4]
movss xmm0, dword [rcx + 0x10]
ucomiss xmm0, xmm2
jp 0x180021219
jne 0x180021219
movss xmm0, dword [rcx + 0x14]
ucomiss xmm0, xmm1
jp 0x180021219
je 0x18002123e
test dword [rcx + 0xc], 0x100
jne 0x180021234
comiss xmm6, dword [rsi + 0x2a10]
jb 0x180021234
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.180029dd0
mov rsi, qword [0x18008dc38]
jmp 0x1800212b4
mov rcx, qword [rbx + 0x18a8]
test rcx, rcx
je 0x1800212a7
cmp dword [rcx + 0x68], eax
jne 0x1800212a7
mov edx, dword [rsi + 0x1890]
cmp edx, eax
jne 0x180021275
mov byte [rsi + 0x189c], 1
cmp byte [rbx + 0x118], dil
jne 0x1800212a7
test edx, edx
setne al
mov byte [rsi + 0x189d], al
test edx, edx
je 0x180021293
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, xmm6
jbe 0x1800212ce
subss xmm0, dword [rbx + 0x10]
movss dword [rbx + 0x2a10], xmm0
mov rax, qword [rbx + 0x18b0]
movaps xmmword [rsp + 0x40], xmm8
test rax, rax
je 0x1800212ff
test dword [rax + 0xc], 0x200
jne 0x1800212ff
lea r8, [rbx + 0x1870]
mov qword [r8], rax
mov rdx, qword [rax + 0x280]
jmp 0x1800213b4
mov eax, dword [rsi + 0x1818]
sub eax, 1
movss xmm8, dword [rbp]
movss xmm7, dword [rbp + 4]
js 0x1800213a7
movsxd rcx, eax
mov rax, qword [rsi + 0x1820]
lea rdx, [rax + rcx*8]
nop word [rax + rax]
mov rax, qword [rdx]
cmp byte [rax + 0x90], dil
je 0x18002139d
test dword [rax + 0xc], 0x200
jne 0x18002139d
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 0x18002139d
comiss xmm7, xmm3
jb 0x18002139d
comiss xmm4, xmm8
jbe 0x18002139d
comiss xmm5, xmm7
ja 0x180021427
sub rdx, 8
sub rcx, 1
jns 0x180021330
lea r8, [rbx + 0x1870]
mov qword [r8], rdi
mov rdx, rdi
mov qword [rbx + 0x1878], rdx
mov eax, dword [rsi + 0x18f0]
sub eax, 1
js 0x1800213fb
mov r10, qword [rsi + 0x18f8]
movsxd r9, eax
add r10, 8
lea rcx, [r9 + r9*2]
shl rcx, 4
add r10, rcx
nop
mov rcx, qword [r10]
test rcx, rcx
je 0x1800213f1
test dword [rcx + 0xc], 0x8000000
jne 0x180021446
sub r10, 0x30
sub r9, 1
jns 0x1800213e0
mov rcx, rdi
mov dword [rbx + 0x19c0], edi
mov r14, qword [rsp + 0x78]
cmp byte [rbx + 0x3b0], dil
je 0x18002149e
cmp qword [r8], rdi
jne 0x180021496
cmp dword [rbx + 0x18f0], edi
jne 0x180021496
xor al, al
jmp 0x180021498
lea r8, [rbx + 0x1870]
mov qword [r8], rax
test rax, rax
je 0x1800213b1
mov rdx, qword [rax + 0x280]
jmp 0x1800213b4
movss xmm0, dword [rbx + 0x10]
mulss xmm0, dword [0x1800826e0]
addss xmm0, dword [rbx + 0x19c0]
minss xmm0, xmm9
movss dword [rbx + 0x19c0], xmm0
test rdx, rdx
je 0x180021404
cmp qword [rdx + 0x280], rcx
je 0x180021404
cmp rdx, rcx
je 0x180021404
mov rdx, qword [rdx + 0x278]
test rdx, rdx
jne 0x180021476
mov qword [r8], rdi
mov qword [rbx + 0x1878], rdi
jmp 0x180021404
mov al, 1
mov byte [rbx + 0x3bf], al
movzx r9d, byte [rbx + 0x118]
mov edx, 0xffffffff
test r9b, r9b
cmovne edx, edi
cmp byte [rbx + 0x3b1], dil
je 0x1800214d3
cmp qword [r8], rdi
jne 0x1800214cb
cmp dword [rbx + 0x18f0], edi
jne 0x1800214cb
xor al, al
jmp 0x1800214cd
mov al, 1
mov byte [rbx + 0x3c0], al
movzx eax, byte [rbx + 0x119]
or r9b, al
test al, al
je 0x180021500
cmp edx, 0xffffffff
je 0x1800214fb
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3a0]
jbe 0x180021500
mov edx, 1
cmp byte [rbx + 0x3b2], dil
je 0x180021522
cmp qword [r8], rdi
jne 0x18002151a
cmp dword [rbx + 0x18f0], edi
jne 0x18002151a
xor al, al
jmp 0x18002151c
mov al, 1
mov byte [rbx + 0x3c1], al
movzx eax, byte [rbx + 0x11a]
or r9b, al
test al, al
je 0x18002154f
cmp edx, 0xffffffff
je 0x18002154a
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3a4]
jbe 0x18002154f
mov edx, 2
cmp byte [rbx + 0x3b3], dil
je 0x180021571
cmp qword [r8], rdi
jne 0x180021569
cmp dword [rbx + 0x18f0], edi
jne 0x180021569
xor al, al
jmp 0x18002156b
mov al, 1
mov byte [rbx + 0x3c2], al
movzx eax, byte [rbx + 0x11b]
or r9b, al
test al, al
je 0x18002159e
cmp edx, 0xffffffff
je 0x180021599
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3a8]
jbe 0x18002159e
mov edx, 3
cmp byte [rbx + 0x3b4], dil
je 0x1800215c0
cmp qword [r8], rdi
jne 0x1800215b8
cmp dword [rbx + 0x18f0], edi
jne 0x1800215b8
xor al, al
jmp 0x1800215ba
mov al, 1
mov byte [rbx + 0x3c3], al
movzx eax, byte [rbx + 0x11c]
or r9b, al
test al, al
je 0x1800215ed
cmp edx, 0xffffffff
je 0x1800215e8
movsxd rax, edx
movss xmm0, dword [rbx + rax*4 + 0x39c]
comiss xmm0, dword [rbx + 0x3ac]
jbe 0x1800215ed
mov edx, 4
cmp edx, 0xffffffff
je 0x180021603
movsxd rax, edx
cmp byte [rax + rbx + 0x3bf], dil
jne 0x180021603
xor dl, dl
jmp 0x180021605
mov dl, 1
mov eax, dword [rbx + 0x2c40]
cmp eax, 0xffffffff
je 0x180021617
test eax, eax
setne al
jmp 0x180021633
test dl, dl
je 0x180021625
cmp qword [r8], rdi
jne 0x180021631
test r9b, r9b
jne 0x180021631
cmp dword [rbx + 0x18f0], edi
jne 0x180021631
xor al, al
jmp 0x180021633
mov al, 1
mov byte [rbx + 0x34c], al
mov eax, dword [rbx + 0x2c44]
cmp eax, 0xffffffff
je 0x18002164b
test eax, eax
setne al
jmp 0x18002165e
cmp dword [rbx + 0x1890], edi
jne 0x18002165c
test rcx, rcx
jne 0x18002165c
xor al, al
jmp 0x18002165e
mov al, 1
mov byte [rbx + 0x34d], al
mov ecx, dword [rbx + 0x2c48]
cmp ecx, 0xffffffff
je 0x180021676
test ecx, ecx
setne al
jmp 0x180021678
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 0x1800216c3
test byte [rbx + 0x1be4], 0x10
je 0x1800216c3
mov al, 1
jmp 0x1800216c5
xor al, al
test dl, dl
jne 0x1800216d7
test al, al
jne 0x1800216d7
mov qword [rbx + 0x1878], rdi
mov qword [r8], rdi
mov rcx, qword [r8]
test rcx, rcx
je 0x18002187d
movss xmm4, dword [rbx + 0x120]
ucomiss xmm4, xmm6
jp 0x1800216f6
je 0x18002187d
cmp byte [rcx + 0x93], dil
jne 0x18002187d
cmp byte [rbx + 0x125], dil
je 0x1800217da
cmp byte [rbx + 0xa4], dil
je 0x18002187d
mulss xmm4, dword [0x180082610]
movss xmm1, dword [rcx + 0x268]
movss xmm0, dword [0x180082624]
addss xmm4, xmm1
comiss xmm0, xmm4
ja 0x18002174a
movss xmm0, dword [0x180082698]
minss xmm0, xmm4
movss dword [rcx + 0x268], xmm0
movaps xmm5, xmm0
movss xmm0, dword [rbp]
subss xmm0, dword [rcx + 0x18]
divss xmm5, xmm1
shufps xmm5, xmm5, 0
subss xmm9, xmm5
movaps xmm3, xmm9
mulss xmm9, dword [rcx + 0x24]
mulss xmm3, dword [rcx + 0x20]
mulss xmm3, xmm0
movss xmm0, dword [rbp + 4]
subss xmm0, dword [rcx + 0x1c]
divss xmm3, dword [rcx + 0x20]
mulss xmm9, xmm0
movaps xmm0, xmm3
addss xmm0, dword [rcx + 0x18]
divss xmm9, dword [rcx + 0x24]
addss xmm3, dword [rcx + 0x10]
movss dword [rcx + 0x18], xmm0
movaps xmm1, xmm9
movups xmm0, xmmword [rcx + 0x20]
addss xmm1, dword [rcx + 0x1c]
addss xmm9, dword [rcx + 0x14]
mulps xmm0, xmm5
movss dword [rcx + 0x10], xmm3
movss dword [rcx + 0x1c], xmm1
movss dword [rcx + 0x14], xmm9
movups xmmword [rcx + 0x20], xmm0
jmp 0x18002187d
mov eax, dword [rcx + 0xc]
bt eax, 0x18
jae 0x180021805
and eax, 0x218
cmp eax, 0x10
jne 0x180021805
mov rax, qword [rcx + 0x278]
test rax, rax
je 0x180021805
mov rcx, rax
mov eax, dword [rax + 0xc]
bt eax, 0x18
jb 0x1800217e3
test dword [rcx + 0xc], 0x210
jne 0x18002187d
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 [0x1800826dc]
addss xmm3, dword [rcx + 0xfc]
mulss xmm0, dword [0x180082630]
minss xmm2, xmm0
xorps xmm0, xmm0
cvttss2si eax, xmm2
cvtsi2ss xmm0, eax
mulss xmm0, xmm4
subss xmm1, xmm0
subss xmm3, xmm1
movss dword [rcx + 0x70], xmm1
movss dword [rcx + 0xfc], xmm3
movaps xmm9, xmmword [rsp + 0x30]
mov rbp, qword [rsp + 0xa0]
cmp dword [rbx + 0x1890], edi
jne 0x1800218c6
mov rcx, qword [rbx + 0x1868]
test rcx, rcx
je 0x1800218c6
cmp byte [rcx + 0x90], dil
je 0x1800218c6
movsxd rax, dword [rsi + 0x34]
test eax, eax
js 0x1800218c6
movss xmm0, dword [rsi + rax*4 + 0x428]
ucomiss xmm0, xmm6
jp 0x1800218c6
jne 0x1800218c6
mov dword [rcx + 0x2a4], edi
mov r8d, edi
cmp dword [rbx + 0x1818], edi
je 0x180021917
mov rdx, rdi
nop dword [rax]
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 0x1800218e0
mov rax, qword [rbx + 0x1868]
test rax, rax
je 0x180021976
cmp byte [rax + 0x91], dil
jne 0x180021976
mov ecx, dword [rsi + 0x1818]
sub ecx, 1
js 0x180021976
mov r8, qword [rsi + 0x1820]
movsxd rax, ecx
lea rdx, [r8 + rax*8]
mov rax, qword [rdx]
test rax, rax
je 0x18002195f
cmp byte [rax + 0x91], dil
je 0x18002195f
test dword [rax + 0xc], 0x1000000
je 0x18002196a
sub rdx, 8
sub ecx, 1
jns 0x180021945
jmp 0x180021976
movsxd rcx, ecx
mov rcx, qword [r8 + rcx*8]
call fcn.180029dd0
lea rcx, [rbx + 0x1838]
call fcn.1800319d0
mov ecx, dword [rbx + 0x1904]
test ecx, ecx
jns 0x1800219a8
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.1800320c0
mov dword [rbx + 0x1900], edi
mov rcx, qword [rbx + 0x1868]
call fcn.180024fc0
mov rax, qword [0x18008dc38]
movsd xmm0, qword [str.vVV_Q]
mov rsi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x98]
mov dword [rax + 0x1938], 0x43c80000
mov dword [rax + 0x193c], 0x43c80000
mov dword [rax + 0x1914], 4
cmp dword [0x18008d028], 2
mov eax, dword [0x180082488]
mov dword [rsp + 0x28], eax
movzx eax, word [0x18008248c]
mov word [rsp + 0x2c], ax
movzx eax, byte [0x18008248e]
mov byte [rsp + 0x2e], al
movsd qword [rsp + 0x20], xmm0
jl 0x180021b38
movdqa xmm2, xmmword [0x1800827d0]
mov eax, 0x1f
movdqa xmm3, xmmword [0x1800827e0]
movdqa xmm1, xmm2
movdqa xmm4, xmmword [0x1800828e0]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
mov edi, 8
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
movd xmm6, r15d
movd xmm5, eax
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800827f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [str.vVV_Q]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x180082810]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.2222222222222222]
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, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800827f0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rsp + 0x24]
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x180082810]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.2222222222222222]
xorps xmm2, xmm0
movd dword [rsp + 0x24], xmm2
movaps xmm8, xmmword [rsp + 0x40]
lea r8, [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x60]
mov r15, qword [rsp + 0x70]
movsxd rax, edi
add r8, rax
nop dword [rax + rax]
mov eax, 0x8d3dcb09
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, 0x3a
movzx eax, dil
inc edi
sub al, cl
add al, 0x32
xor byte [r8 - 1], al
cmp edi, 0xf
jl 0x180021b60
mov rdi, qword [rsp + 0x80]
lea rcx, [rsp + 0x20]
xor r8d, r8d
xor edx, edx
call fcn.180026df0
add rsp, 0x88
ret