Function at 0x18014ac40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rax, rcx
mov qword [rsp + 0x20], 4
sub rax, rdx
lea r9, [rdx + 2]
mov qword [rsp + 8], r9
mov qword [rsp + 0x38], rax
lea rcx, [rax - 1]
mov qword [rsp + 0x30], rcx
lea rcx, [rax - 2]
mov qword [rsp + 0x28], rcx
nop dword [rax + rax]
movzx edx, byte [r9 - 2]
movzx r8d, byte [r9]
movzx r12d, byte [r9 + 1]
shr dl, 7
movzx ebx, r12b
movzx ecx, dl
add bl, bl
imul ecx, ecx, 0x1b
movzx edx, byte [r9 - 2]
add dl, dl
xor dl, cl
mov dword [rsp + 0x1c], ecx
movzx ecx, dl
mov byte [rsp], dl
shr cl, 7
add dl, dl
movzx ecx, cl
imul ecx, ecx, 0x1b
xor dl, cl
mov dword [rsp + 0x10], ecx
mov byte [rsp + 0x90], dl
movzx edx, byte [r9 - 1]
movzx ecx, dl
add dl, dl
shr cl, 7
movzx ecx, cl
imul r11d, ecx, 0x1b
xor dl, r11b
movzx ecx, dl
mov byte [rsp + 1], dl
shr cl, 7
add dl, dl
movzx ecx, cl
imul ecx, ecx, 0x1b
xor dl, cl
mov dword [rsp + 0x18], ecx
movzx ecx, r8b
mov byte [rsp + 0x98], dl
shr cl, 7
add r8b, r8b
movzx ecx, cl
imul ebp, ecx, 0x1b
xor r8b, bpl
movzx ecx, r8b
movzx r14d, r8b
shr cl, 7
add r14b, r14b
movzx ecx, cl
imul edi, ecx, 0x1b
movzx ecx, r12b
shr cl, 7
movzx ecx, cl
imul ecx, ecx, 0x1b
xor r14b, dil
xor bl, cl
mov dword [rsp + 0x14], ecx
movzx ecx, bl
movzx r13d, bl
shr cl, 7
add r13b, r13b
movzx ecx, cl
imul r15d, ecx, 0x1b
xor r13b, r15b
movzx ecx, r13b
shr cl, 7
movzx ecx, cl
imul esi, ecx, 0x1b
movzx ecx, r14b
shr cl, 7
movzx ecx, cl
imul r10d, ecx, 0x1b
movzx ecx, dl
shr cl, 7
movzx ecx, cl
imul r9d, ecx, 0x1b
movzx ecx, byte [rsp + 0x90]
shr cl, 7
movzx ecx, cl
imul edx, ecx, 0x1b
movzx ecx, r8b
xor cl, byte [rsp]
xor cl, r13b
mov rax, qword [rsp + 8]
xor cl, r14b
xor cl, byte [rsp + 0x98]
xor cl, byte [rax - 1]
xor cl, byte [rsp + 0x90]
xor cl, byte [rax - 2]
add cl, cl
xor cl, dl
xor cl, r9b
xor cl, r10b
xor cl, sil
xor cl, dil
xor cl, r11b
xor cl, byte [rsp + 0x10]
xor cl, byte [rsp + 0x1c]
xor cl, r12b
mov r12, qword [rsp + 0x28]
xor cl, byte [rax]
xor cl, byte [rax - 1]
mov byte [r12 + rax], cl
movzx ecx, r13b
xor cl, bl
movzx r12d, byte [rax + 1]
xor cl, r14b
xor cl, byte [rsp + 0x98]
xor cl, byte [rsp + 1]
xor cl, byte [rsp + 0x90]
xor cl, byte [rax]
xor cl, byte [rax - 1]
add cl, cl
xor cl, dl
xor cl, r9b
xor cl, r10b
xor cl, sil
xor cl, r15b
xor cl, bpl
xor cl, byte [rsp + 0x18]
xor cl, r11b
mov r11, rax
xor cl, r12b
xor cl, byte [rax]
xor cl, byte [rax - 2]
mov rax, qword [rsp + 0x30]
mov byte [rax + r11], cl
movzx ecx, r13b
xor cl, r14b
xor r13b, bl
xor cl, r8b
xor r13b, r14b
xor cl, byte [rsp + 0x98]
mov r8, r11
xor cl, byte [rsp + 0x90]
mov rax, r11
xor cl, byte [rsp]
xor r13b, byte [rsp + 0x98]
xor cl, r12b
xor cl, byte [r11]
xor r13b, byte [rsp + 1]
add cl, cl
mov r8d, dword [rsp + 0x14]
xor cl, dl
xor r13b, byte [rsp + 0x90]
xor cl, r9b
xor cl, r10b
xor r13b, r12b
xor cl, sil
xor cl, r8b
mov r8, r11
xor cl, dil
movzx edi, byte [r11 - 1]
xor cl, bpl
mov rbp, r11
xor cl, byte [rsp + 0x10]
movzx ebp, byte [rax - 2]
xor cl, r12b
mov rax, qword [rsp + 0x38]
xor cl, dil
xor cl, bpl
xor r13b, bpl
mov byte [rax + r11], cl
mov r8d, dword [rsp + 0x14]
add r13b, r13b
xor r13b, dl
xor r13b, r9b
mov r9, r11
xor r13b, r10b
add r9, 4
xor r13b, sil
mov qword [rsp + 8], r9
xor r13b, r15b
xor r13b, r8b
xor r13b, byte [rsp + 0x18]
xor r13b, byte [rsp + 0x1c]
xor r13b, byte [r11]
xor r13b, dil
xor r13b, bpl
sub qword [rsp + 0x20], 1
mov byte [rax + r11 + 1], r13b
jne 0x18014ac90
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret