Function at 0x1800021b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea r15, [rcx + 4]
mov r13, rdx
mov qword [rsp + 0x60], r15
mov dl, 0x10
nop
add dl, 0xff
movzx r8d, dl
movzx eax, byte [r8 + rcx + 0x24]
mov byte [r8 + r15], al
xor byte [r8 + r13], al
movzx eax, byte [r8 + rcx + 0x34]
mov byte [r8 + r15 + 0x10], al
test dl, dl
jne 0x1800021d0
mov byte [rsp + 0x58], 1
lea r12, [r13 + 0x10]
mov byte [rsp + 0x50], 1
lea r11, [0x18039d2b0]
nop dword [rax]
mov r8b, 0x10
mov rdx, r12
nop word [rax + rax]
movzx eax, byte [rdx - 1]
lea rdx, [rdx - 1]
movzx ecx, byte [rax + r11]
xor cl, 0xaa
mov byte [rdx], cl
add r8b, 0xff
jne 0x180002220
movzx eax, byte [r13 + 5]
xor r12b, r12b
movzx ecx, byte [r13 + 1]
mov r15, r13
mov byte [r13 + 1], al
movzx eax, byte [r13 + 9]
mov byte [r13 + 5], al
movzx eax, byte [r13 + 0xd]
mov byte [r13 + 9], al
movzx eax, byte [r13 + 2]
mov byte [r13 + 0xd], cl
movzx ecx, byte [r13 + 0xa]
mov byte [r13 + 0xa], al
movzx eax, byte [r13 + 0xf]
mov byte [r13 + 2], cl
movzx ecx, byte [r13 + 3]
mov byte [r13 + 3], al
movzx eax, byte [r13 + 0xb]
mov byte [r13 + 0xf], al
movzx eax, byte [r13 + 7]
mov byte [r13 + 0xb], al
movzx eax, byte [r13 + 6]
mov byte [r13 + 7], cl
movzx ecx, byte [r13 + 0xe]
mov byte [r13 + 0xe], al
mov byte [r13 + 6], cl
nop word [rax + rax]
movzx esi, byte [r15]
lea r10, [r13 + 1]
movzx r14d, byte [r15 + 3]
lea r15, [r15 + 4]
movzx eax, r12b
movzx r11d, r14b
movzx ebx, byte [rax + r13 + 2]
lea rdi, [rax + r13]
add r10, rax
xor r11b, bl
movzx ebp, r11b
movzx r9d, byte [r10]
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, bl
cmovns edx, ecx
xor r8b, r9b
xor dl, bpl
movzx eax, r8b
xor dl, sil
add al, al
mov byte [r15 - 4], 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], dl
movzx edx, al
test r11b, r11b
cmovns edx, ecx
xor r8b, sil
xor dl, bl
movzx eax, r8b
xor dl, bpl
add al, al
mov byte [rdi + 2], dl
movzx ecx, al
movzx eax, cl
xor al, 0x1b
test r8b, r8b
movzx edx, al
cmovns edx, ecx
add r12b, 4
xor dl, bpl
xor dl, r14b
mov byte [r15 - 1], dl
cmp r12b, 0x10
jb 0x1800022b0
movzx r9d, byte [rsp + 0x58]
lea r12, [r13 + 0x10]
mov r15, qword [rsp + 0x60]
test r9b, 1
je 0x1800023e2
mov r8, qword [rsp + 0x48]
mov dl, 0x10
sub r8, r13
mov rcx, r12
add r8, 0x14
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rcx - 1]
dec rcx
xor byte [rcx], al
add dl, 0xff
jne 0x1800023c0
movzx r10d, byte [rsp + 0x50]
lea r11, [0x18039d2b0]
jmp 0x180002550
movzx r10d, byte [rsp + 0x50]
lea r11, [0x18039d2b0]
movzx eax, byte [r15 + 0x1d]
lea rdx, [r15 + 5]
mov r8b, 4
movzx ecx, byte [rax + r11]
xor cl, byte [r15]
movzx eax, byte [r15 + 0x1e]
xor cl, r10b
xor cl, 0xaa
mov byte [r15], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 1]
movzx eax, byte [r15 + 0x1f]
xor cl, 0xaa
mov byte [r15 + 1], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 2]
movzx eax, byte [r15 + 0x1c]
xor cl, 0xaa
mov byte [r15 + 2], cl
movzx ecx, byte [rax + r11]
movzx eax, r10b
xor cl, byte [r15 + 3]
add r10b, r10b
xor cl, 0xaa
shr al, 7
mov byte [r15 + 3], cl
movzx eax, al
imul ecx, eax, 0x1b
xor cl, r10b
movzx r10d, cl
mov byte [rsp + 0x50], cl
nop word [rax + rax]
movzx eax, r8b
add r8b, 4
movzx ecx, byte [rax + r15 - 4]
movzx eax, byte [rdx - 4]
xor byte [rdx], al
movzx eax, byte [rdx - 3]
xor byte [rdx + 1], al
movzx eax, byte [rdx - 2]
xor byte [rdx + 2], al
xor byte [rdx - 1], cl
add rdx, 4
cmp r8b, 0x10
jb 0x180002470
movzx eax, byte [r15 + 0xc]
mov r8b, 0x14
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 0x10]
movzx eax, byte [r15 + 0xd]
xor cl, 0xaa
mov byte [r15 + 0x10], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 0x11]
movzx eax, byte [r15 + 0xe]
xor cl, 0xaa
mov byte [r15 + 0x11], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 0x12]
movzx eax, byte [r15 + 0xf]
xor cl, 0xaa
mov byte [r15 + 0x12], cl
movzx ecx, byte [rax + r11]
lea rax, [r15 + 0x15]
xor cl, byte [r15 + 0x13]
xor cl, 0xaa
mov byte [r15 + 0x13], cl
nop word [rax + rax]
movzx ecx, r8b
lea rax, [rax + 4]
add r8b, 4
movzx edx, byte [rcx + r15 - 4]
movzx ecx, byte [rax - 8]
xor byte [rax - 4], cl
movzx ecx, byte [rax - 7]
xor byte [rax - 3], cl
movzx ecx, byte [rax - 6]
xor byte [rax - 2], cl
xor byte [rax - 5], dl
cmp r8b, 0x20
jb 0x180002500
mov r8, r15
mov dl, 0x10
sub r8, r13
mov rcx, r12
nop dword [rax + rax]
movzx eax, byte [r8 + rcx - 1]
dec rcx
xor byte [rcx], al
add dl, 0xff
jne 0x180002540
inc r9b
mov byte [rsp + 0x58], r9b
cmp r9b, 0xe
jb 0x180002210
mov r8b, 0x10
mov rdx, r12
nop dword [rax + rax]
movzx eax, byte [rdx - 1]
lea rdx, [rdx - 1]
movzx ecx, byte [rax + r11]
xor cl, 0xaa
mov byte [rdx], cl
add r8b, 0xff
jne 0x180002570
movzx eax, byte [r13 + 5]
lea rdx, [r15 + 5]
movzx ecx, byte [r13 + 1]
mov r8b, 4
mov byte [r13 + 1], al
movzx eax, byte [r13 + 9]
mov byte [r13 + 5], al
movzx eax, byte [r13 + 0xd]
mov byte [r13 + 0xd], cl
movzx ecx, byte [r13 + 0xa]
mov byte [r13 + 9], al
movzx eax, byte [r13 + 2]
mov byte [r13 + 2], cl
movzx ecx, byte [r13 + 3]
mov byte [r13 + 0xa], al
movzx eax, byte [r13 + 0xf]
mov byte [r13 + 3], al
movzx eax, byte [r13 + 0xb]
mov byte [r13 + 0xf], al
movzx eax, byte [r13 + 7]
mov byte [r13 + 7], cl
movzx ecx, byte [r13 + 0xe]
mov byte [r13 + 0xb], al
movzx eax, byte [r13 + 6]
mov byte [r13 + 6], cl
mov byte [r13 + 0xe], al
movzx eax, byte [r15 + 0x1d]
movzx ecx, byte [rax + r11]
xor cl, byte [r15]
movzx eax, byte [r15 + 0x1e]
xor cl, r10b
xor cl, 0xaa
mov byte [r15], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 1]
movzx eax, byte [r15 + 0x1f]
xor cl, 0xaa
mov byte [r15 + 1], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 2]
movzx eax, byte [r15 + 0x1c]
xor cl, 0xaa
mov byte [r15 + 2], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 3]
xor cl, 0xaa
mov byte [r15 + 3], cl
movzx eax, r8b
lea rdx, [rdx + 4]
add r8b, 4
movzx ecx, byte [rax + r15 - 4]
movzx eax, byte [rdx - 8]
xor byte [rdx - 4], al
movzx eax, byte [rdx - 7]
xor byte [rdx - 3], al
movzx eax, byte [rdx - 6]
xor byte [rdx - 2], al
xor byte [rdx - 5], cl
cmp r8b, 0x10
jb 0x180002650
movzx eax, byte [r15 + 0xc]
lea rdx, [r15 + 0x15]
mov r8b, 0x14
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 0x10]
movzx eax, byte [r15 + 0xd]
xor cl, 0xaa
mov byte [r15 + 0x10], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 0x11]
movzx eax, byte [r15 + 0xe]
xor cl, 0xaa
mov byte [r15 + 0x11], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 0x12]
movzx eax, byte [r15 + 0xf]
xor cl, 0xaa
mov byte [r15 + 0x12], cl
movzx ecx, byte [rax + r11]
xor cl, byte [r15 + 0x13]
xor cl, 0xaa
mov byte [r15 + 0x13], cl
nop dword [rax + rax]
movzx eax, r8b
lea rdx, [rdx + 4]
add r8b, 4
movzx ecx, byte [rax + r15 - 4]
movzx eax, byte [rdx - 8]
xor byte [rdx - 4], al
movzx eax, byte [rdx - 7]
xor byte [rdx - 3], al
movzx eax, byte [rdx - 6]
xor byte [rdx - 2], al
xor byte [rdx - 5], cl
cmp r8b, 0x20
jb 0x1800026e0
mov cl, 0x10
sub r15, r13
nop word [rax + rax]
movzx eax, byte [r15 + r12 - 1]
lea r12, [r12 - 1]
xor byte [r12], al
add cl, 0xff
jne 0x180002720
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret