Function at 0x1800021d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
lea rdi, [rcx + 4]
mov rbx, rdx
mov qword [rsp + 0x88], rdi
mov rsi, rcx
mov r8b, 0x10
nop word [rax + rax]
add r8b, 0xff
movzx edx, r8b
movzx eax, byte [rdx + rcx + 0x24]
mov byte [rdx + rdi], al
xor byte [rdx + rbx], al
movzx eax, byte [rdx + rcx + 0x34]
mov byte [rdx + rdi + 0x10], al
test r8b, r8b
jne 0x180002200
mov r13b, 1
lea r9, [rbx + 3]
sub rsi, rbx
mov byte [rsp + 0x80], r13b
mov qword [rsp + 0x70], rsi
lea r15, [rbx + 0x10]
nop dword [rax]
mov r8b, 0x10
lea rbx, [0x180286820]
mov rdx, r15
nop dword [rax]
movzx eax, byte [rdx - 1]
lea rdx, [rdx - 1]
movzx ecx, byte [rax + rbx]
xor cl, 0xaa
mov byte [rdx], cl
add r8b, 0xff
jne 0x180002250
mov rbx, qword [rsp + 0x78]
xor r15b, r15b
mov r12, r9
movzx eax, byte [rbx + 5]
movzx ecx, byte [rbx + 1]
mov byte [rbx + 1], al
movzx eax, byte [rbx + 9]
mov byte [rbx + 5], al
movzx eax, byte [rbx + 0xd]
mov byte [rbx + 9], al
movzx eax, byte [rbx + 2]
mov byte [rbx + 0xd], cl
movzx ecx, byte [rbx + 0xa]
mov byte [rbx + 0xa], al
movzx eax, byte [rbx + 0xf]
mov byte [rbx + 2], cl
movzx ecx, byte [r9]
mov byte [r9], al
movzx eax, byte [rbx + 0xb]
mov byte [rbx + 0xf], al
movzx eax, byte [rbx + 7]
mov byte [rbx + 0xb], al
movzx eax, byte [rbx + 6]
mov byte [rbx + 7], cl
movzx ecx, byte [rbx + 0xe]
mov byte [rbx + 0xe], al
mov byte [rbx + 6], cl
nop word [rax + rax]
movzx esi, byte [r12 - 3]
movzx r14d, byte [r12]
movzx edi, byte [r12 - 1]
lea r12, [r12 + 4]
movzx r10d, r15b
movzx r11d, r14b
xor r11b, dil
movzx ebp, r11b
movzx r9d, byte [r10 + rbx + 1]
xor bpl, r9b
movzx r8d, r9b
xor r8b, sil
xor bpl, sil
movzx eax, r8b
add al, al
movzx ecx, al
movzx eax, cl
xor al, 0x1b
movzx edx, al
test r8b, r8b
movzx r8d, dil
cmovns edx, ecx
xor r8b, r9b
xor dl, bpl
movzx eax, r8b
xor dl, sil
add al, al
mov byte [r12 - 7], dl
movzx ecx, al
movzx eax, cl
xor al, 0x1b
movzx edx, al
test r8b, r8b
movzx eax, r11b
movzx r8d, r14b
cmovns edx, ecx
add al, al
xor dl, r9b
movzx ecx, al
xor dl, bpl
movzx eax, cl
xor al, 0x1b
mov byte [r10 + rbx + 1], dl
movzx edx, al
test r11b, r11b
cmovns edx, ecx
xor r8b, sil
xor dl, bpl
movzx eax, r8b
xor dl, dil
add al, al
mov byte [r12 - 5], dl
movzx ecx, al
movzx eax, cl
xor al, 0x1b
test r8b, r8b
movzx edx, al
cmovns edx, ecx
add r15b, 4
xor dl, bpl
xor dl, r14b
mov byte [r12 - 4], dl
cmp r15b, 0x10
jb 0x1800022d0
lea r15, [rbx + 0x10]
test r13b, 1
je 0x1800023da
mov rsi, qword [rsp + 0x70]
mov dl, 0x10
mov rcx, r15
movzx eax, byte [rsi + rcx + 0x13]
lea rcx, [rcx - 1]
xor byte [rcx], al
add dl, 0xff
jne 0x1800023c0
mov rdi, qword [rsp + 0x88]
jmp 0x180002410
mov rdi, qword [rsp + 0x88]
lea rdx, [rsp + 0x80]
mov rcx, rdi
call fcn.180001ea0
mov rsi, qword [rsp + 0x70]
mov dl, 0x10
mov rcx, r15
nop dword [rax]
movzx eax, byte [rsi + rcx + 3]
lea rcx, [rcx - 1]
xor byte [rcx], al
add dl, 0xff
jne 0x180002400
inc r13b
lea r9, [rbx + 3]
cmp r13b, 0xe
jb 0x180002240
mov r8b, 0x10
lea r10, [0x180286820]
mov rdx, r15
nop
movzx eax, byte [rdx - 1]
lea rdx, [rdx - 1]
movzx ecx, byte [rax + r10]
xor cl, 0xaa
mov byte [rdx], cl
add r8b, 0xff
jne 0x180002430
movzx edx, byte [rbx + 0xa]
movzx eax, byte [rbx + 5]
movzx ecx, byte [rbx + 1]
mov byte [rbx + 1], al
movzx eax, byte [rbx + 9]
mov byte [rbx + 5], al
movzx eax, byte [rbx + 0xd]
mov byte [rbx + 9], al
movzx eax, byte [rbx + 2]
mov byte [rbx + 0xa], al
movzx eax, byte [rbx + 0xf]
mov byte [rbx + 2], dl
movzx edx, byte [rbx + 3]
mov byte [rbx + 3], al
movzx eax, byte [rbx + 0xb]
mov byte [rbx + 0xf], al
movzx eax, byte [rbx + 7]
mov byte [rbx + 7], dl
movzx edx, byte [rbx + 0xe]
mov byte [rbx + 0xb], al
movzx eax, byte [rbx + 6]
mov byte [rbx + 6], dl
lea rdx, [rsp + 0x80]
mov byte [rbx + 0xd], cl
mov rcx, rdi
mov byte [rbx + 0xe], al
call fcn.180001ea0
mov cl, 0x10
nop
movzx eax, byte [r15 + rsi + 3]
lea r15, [r15 - 1]
xor byte [r15], al
add cl, 0xff
jne 0x1800024b0
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret