Function at 0x18001ff60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
sub rsp, 0x20
mov r9d, 5
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x50]
mov rbx, rcx
call fcn.180021930
test al, al
je 0x180020217
cmp dword [rsp + 0x48], 0
je 0x180020175
mov rax, qword [rbx]
mov rcx, qword [rax]
test rcx, rcx
je 0x180020217
mov r8d, dword [rax + 0x10]
mov r10d, dword [rsp + 0x50]
lea rax, [r10 + 1]
cmp rax, r8
jae 0x180020217
mov edx, dword [r10 + rcx]
lea eax, [r10 + 4]
mov r9d, eax
inc rax
cmp rax, r8
jae 0x180020217
mov edi, dword [rcx + r9]
add r10d, 8
test edi, edi
jne 0x18001ffe7
test edx, edx
je 0x180020175
movss xmm1, dword [0x180074be8]
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
xorps xmm2, xmm2
ucomiss xmm0, xmm2
jne 0x180020002
movaps xmm0, xmm1
cmp qword [0x180083b78], 0x10
lea r8, [0x180083b60]
mov r11, qword [0x180083b70]
cmovae r8, qword [0x180083b60]
xor r9d, r9d
mov ecx, r9d
mov edx, r9d
test r11, r11
je 0x18002004c
nop
movzx eax, byte [rdx + r8]
inc rdx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp rdx, r11
jne 0x180020030
mov rsi, qword [rbx + 0x278]
lea eax, [rcx + rcx*8]
mov ecx, eax
xorps xmm3, xmm3
shr ecx, 0xb
xor ecx, eax
mov eax, 0x446f8657
imul r8d, ecx, 0x8001
cvtsi2ss xmm3, rdi
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
add r8d, 0x36
ucomiss xmm3, xmm2
addss xmm0, dword [rsi + r8*4]
movss dword [rsi + r8*4], xmm0
jne 0x1800200a1
movaps xmm3, xmm1
cmp qword [0x180083a78], 0x10
lea r8, [0x180083a60]
mov r11, qword [0x180083a70]
mov ecx, r9d
cmovae r8, qword [0x180083a60]
mov rdx, r9
test r11, r11
je 0x1800200ec
nop word [rax + rax]
movzx eax, byte [rdx + r8]
inc rdx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp rdx, r11
jne 0x1800200d0
lea eax, [rcx + rcx*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
mov eax, 0x446f8657
imul r8d, ecx, 0x8001
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
lea rdx, [rdi - 8]
shr eax, 7
imul eax, eax, 0xca
shr rdx, 1
sub r8d, eax
add r8d, 0x36
addss xmm3, dword [rsi + r8*4]
movss dword [rsi + r8*4], xmm3
test edx, edx
je 0x180020175
mov r8, qword [rbx]
mov edi, 0x10b
mov ebp, 0xfeff
mov r11, qword [r8]
test r11, r11
je 0x180020184
mov eax, dword [r8 + 0x10]
mov ecx, r10d
inc rcx
cmp rcx, rax
jae 0x180020184
movzx eax, word [rbx + 0x270]
sub ax, di
test bp, ax
jne 0x180020217
add r10d, 2
add edx, 0xffffffff
jne 0x180020145
mov al, 1
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
pop rsi
pop rbp
ret
test r10d, r10d
je 0x180020194
mov eax, r10d
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
cmp qword [0x180080dc0], 0x10
lea rdx, [0x180080da8]
mov r8, qword [0x180080db8]
mov rcx, r9
cmovae rdx, qword [0x180080da8]
test r8, r8
je 0x1800201df
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
inc rcx
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
cmp rcx, r8
jne 0x1800201c0
lea ecx, [r9 + r9*8]
mov eax, 0x446f8657
mov edx, ecx
shr edx, 0xb
xor edx, ecx
imul ecx, edx, 0x8001
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub ecx, eax
add ecx, 0x36
addss xmm1, dword [rsi + rcx*4]
movss dword [rsi + rcx*4], xmm1
mov rbx, qword [rsp + 0x40]
xor al, al
add rsp, 0x20
pop rdi
pop rsi
pop rbp
ret