Function at 0x14000a970
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov r8, rcx
cmp rdx, 0x20
ja 0x14000a9df
cmp rdx, 0x10
ja 0x14000aaa1
cmp rdx, 9
jb 0x14000ad48
mov r9, qword [r8 + rdx - 8]
lea rax, [r9 + rdx]
mov ecx, edx
ror rax, cl
mov rcx, qword [r8]
xor rcx, rax
movabs rdx, 0x9ddfea08eb382d69
imul rcx, rdx
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
imul rcx, rdx
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, rdx
xor rax, r9
jmp 0x14000ad3b
movabs rax, 0xc3a5c85c97cb3127
cmp rdx, 0x40
ja 0x14000ab47
mov r9, qword [r8 + 0x10]
mov rsi, qword [r8 + 0x18]
mov rbx, qword [r8 + rdx - 0x10]
mov rcx, qword [r8 + rdx - 8]
lea r10, [rbx + rdx]
imul r10, rax
add r10, qword [r8]
lea r11, [r10 + rsi]
mov r14, r10
add r10, qword [r8 + 8]
mov rdi, r10
add r10, r9
add r9, qword [r8 + rdx - 0x20]
lea r15, [r9 + rcx]
mov r12, r9
add r9, qword [r8 + rdx - 0x18]
rol r11, 0xc
rol r14, 0x1b
rol rdi, 0x39
rol r15, 0xc
rol r12, 0x1b
add rdi, r14
mov rdx, r9
rol rdx, 0x39
add r9, rbx
add rcx, r9
rol r9, 0x21
add r12, rsi
add r12, r15
add r12, rdx
add r12, r9
add r12, r10
rol r10, 0x21
add rdi, r11
add r10, rdi
movabs rdx, 0x9ae16a3b2f90404f
imul r12, rdx
add rcx, r10
imul rcx, rax
add rcx, r12
mov r8, rcx
shr r8, 0x2f
xor r8, rcx
imul r8, rax
add r8, r10
jmp 0x14000ad2d
movabs rax, 0xb492b66fbe98f273
imul rax, qword [r8]
mov r11, qword [r8 + 8]
mov rcx, qword [r8 + rdx - 8]
movabs r9, 0x9ae16a3b2f90404f
imul r9, rcx
movabs r10, 0xc3a5c85c97cb3127
imul r10, qword [r8 + rdx - 0x10]
mov r8, rax
sub r8, r11
rol r8, 0x15
movabs rsi, 0xc949d7c7509e6557
xor rsi, r11
rol rsi, 0x2c
add rax, rdx
add rax, rsi
sub rax, r9
shr r9, 0x1e
movabs rdx, 0xbe41013c00000000
imul rdx, rcx
add rdx, r9
add rdx, r10
add rdx, r8
xor rdx, rax
movabs rcx, 0x9ddfea08eb382d69
imul rdx, rcx
xor rax, rdx
shr rdx, 0x2f
xor rdx, rax
imul rdx, rcx
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
imul rax, rcx
jmp 0x14000ad3b
movabs rcx, 0xb492b66fbe98f273
mov r11, qword [r8 + rdx - 0x10]
mov r10, rdx
imul r10, rcx
add r10, qword [r8 + rdx - 0x20]
mov rsi, qword [r8 + rdx - 0x18]
add rsi, r10
add rsi, r11
xor r11, rcx
mov r14, qword [r8 + rdx - 0x38]
mov rbx, qword [r8 + rdx - 0x28]
mov r15, qword [r8 + rdx - 0x40]
add r15, rdx
lea r9, [r15 + r11]
add r9, rbx
rol r9, 0x2b
lea rdi, [r15 + r14]
xor r14, rax
add rdi, qword [r8 + rdx - 0x30]
mov r12, rdi
rol r12, 0x14
add rdi, rbx
mov rbx, qword [r8 + rdx - 8]
add rax, rbx
add rax, r10
rol rax, 0x2b
add r9, r15
mov r15, rsi
rol r15, 0x14
add r9, r12
add rsi, rbx
add rax, r10
mov rbx, r9
shr rbx, 0x2f
xor rbx, r9
imul rbx, rcx
add rbx, r14
mov r10, qword [r8]
add r10, rbx
rol r10, 0x19
add rax, r15
imul r10, rcx
rol r11, 0x1f
imul r11, rcx
dec rdx
and rdx, 0xffffffffffffffc0
xor r14d, r14d
nop dword [rax]
mov rbp, rbx
add r10, rdi
add r10, r11
mov r12, qword [r8 + r14 + 0x10]
add r10, r12
rol r10, 0x1b
mov r13, qword [r8 + r14 + 0x18]
imul r10, rcx
add r11, r9
mov r15, qword [r8 + r14 + 0x30]
add r11, r15
rol r11, 0x16
mov rbx, r10
xor rbp, rsi
mov r10, rbp
rol r10, 0x1f
imul r11, rcx
imul r9, rcx
add r9, qword [r8 + r14]
xor rbx, rax
add rsi, r13
add rsi, r9
add rsi, rbx
rol rsi, 0x2b
add r12, qword [r8 + r14 + 8]
xor r11, rdi
add r12, r9
mov rdi, r12
rol r12, 0x14
add rdi, r13
add r9, r12
add rax, r10
mov r12, qword [r8 + r14 + 0x38]
add rax, qword [r8 + r14 + 0x20]
lea r13, [rax + r12]
add r13, r11
rol r13, 0x2b
add r9, rsi
mov rsi, qword [r8 + r14 + 0x28]
add rsi, rax
add rsi, r15
mov r15, rsi
rol r15, 0x14
add rsi, r12
add rax, r15
add rax, r13
add r14, 0x40
cmp rdx, r14
jne 0x14000ac00
xor rdi, rsi
movabs rdx, 0x9ddfea08eb382d69
imul rdi, rdx
xor rsi, rdi
shr rdi, 0x2f
xor rdi, rsi
imul rdi, rdx
mov rsi, rdi
shr rsi, 0x2f
xor rsi, rdi
imul rsi, rdx
mov r8, r11
shr r8, 0x2f
xor r8, r11
imul r8, rcx
add r8, rbx
add r8, rsi
xor r9, rax
imul r9, rdx
xor rax, r9
shr r9, 0x2f
xor r9, rax
imul r9, rdx
mov rax, r9
shr rax, 0x2f
xor rax, r9
imul rax, rdx
add rax, r10
xor r8, rax
imul r8, rdx
xor rax, r8
shr r8, 0x2f
xor r8, rax
imul r8, rdx
mov rax, r8
shr rax, 0x2f
xor rax, r8
imul rax, rdx
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rdx, 4
jb 0x14000ad85
mov eax, dword [r8]
lea rcx, [rdx + rax*8]
mov eax, dword [r8 + rdx - 4]
xor rcx, rax
movabs rdx, 0x9ddfea08eb382d69
imul rcx, rdx
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
imul rcx, rdx
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
jmp 0x14000ad37
movabs rax, 0x9ae16a3b2f90404f
test rdx, rdx
je 0x14000ad3b
movzx ecx, byte [r8]
mov r9, rdx
shr r9, 1
movzx r9d, byte [r8 + r9]
movzx r8d, byte [rdx + r8 - 1]
shl r9, 8
or r9, rcx
lea rcx, [rdx + r8*4]
imul r9, rax
movabs rdx, 0xc949d7c7509e6557
imul rdx, rcx
xor rdx, r9
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rax, rcx
jmp 0x14000ad3b