Function at 0x14009c0f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
push rax
cmp r8, 0x20
ja 0x14009c16a
cmp r8, 0x10
ja 0x14009c23d
cmp r8, 9
jb 0x14009c2cc
mov r9, qword [rdx + r8 - 8]
lea rax, [r9 + r8]
mov ecx, r8d
ror rax, cl
mov rcx, qword [rdx]
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
add rsp, 8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r8, 0x40
ja 0x14009c30f
mov rsi, qword [rdx + r8 - 0x10]
lea r10, [rsi + r8]
movabs rax, 0xc3a5c85c97cb3127
imul r10, rax
add r10, qword [rdx]
mov rcx, qword [rdx + 0x18]
lea rdi, [r10 + rcx]
rol rdi, 0xc
mov rbx, r10
rol rbx, 0x1b
mov r11, qword [rdx + 0x10]
add r10, qword [rdx + 8]
mov r14, r10
rol r14, 0x39
add r10, r11
mov r9, r10
rol r9, 0x21
add r11, qword [rdx + r8 - 0x20]
add r10, rcx
add rcx, qword [rdx + r8 - 8]
add r14, rbx
lea rbx, [rcx + r11]
rol rbx, 0xc
add r14, rdi
mov rdi, r11
rol rdi, 0x1b
add r9, r14
add r11, qword [rdx + r8 - 0x18]
mov rdx, r11
rol rdx, 0x39
add r11, rsi
add rcx, r11
rol r11, 0x21
add rdi, r10
add rdi, rdx
add rdi, rbx
add rdi, r11
movabs rdx, 0x9ae16a3b2f90404f
imul rdi, rdx
add rcx, r9
imul rcx, rax
add rcx, rdi
mov r8, rcx
shr r8, 0x2f
xor r8, rcx
imul r8, rax
add r8, r9
mov rax, r8
shr rax, 0x2f
xor rax, r8
imul rax, rdx
jmp 0x14009c159
movabs rax, 0xb492b66fbe98f273
imul rax, qword [rdx]
mov r9, qword [rdx + 8]
movabs rcx, 0x9ae16a3b2f90404f
imul rcx, qword [rdx + r8 - 8]
movabs r10, 0xc3a5c85c97cb3127
imul r10, qword [rdx + r8 - 0x10]
movabs rdx, 0xc949d7c7509e6557
xor rdx, r9
rol rdx, 0x2c
add r8, rax
add r8, rdx
sub rax, r9
rol rax, 0x15
sub r8, rcx
rol rcx, 0x22
add rcx, rax
add rcx, r10
xor rcx, r8
movabs rdx, 0x9ddfea08eb382d69
imul rcx, rdx
xor r8, rcx
shr rcx, 0x2f
xor rcx, r8
imul rcx, rdx
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, rdx
jmp 0x14009c159
cmp r8, 4
jb 0x14009c560
mov eax, dword [rdx]
mov ecx, dword [rdx + r8 - 4]
lea rdx, [r8 + rax*8]
xor rdx, rcx
movabs r8, 0x9ddfea08eb382d69
imul rdx, r8
xor rcx, rdx
shr rdx, 0x2f
xor rdx, rcx
imul rdx, r8
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
jmp 0x14009c557
movabs rbp, 0xb492b66fbe98f273
movabs r14, 0x9ddfea08eb382d69
mov rdi, qword [rdx + r8 - 0x28]
mov rax, qword [rdx + r8 - 0x10]
mov rcx, qword [rdx + r8 - 0x38]
mov rsi, qword [rdx + r8 - 0x30]
lea r9, [rcx + rax]
mov r11, qword [rdx + r8 - 0x18]
lea rbx, [rsi + r8]
xor rbx, r11
imul rbx, r14
mov r10, r11
xor r10, rbx
shr rbx, 0x2f
xor rbx, r10
imul rbx, r14
mov r13, rbx
shr r13, 0x2f
xor r13, rbx
imul r13, r14
mov r14, qword [rdx + r8 - 0x40]
add r14, r8
lea r15, [r14 + rdi]
add r15, r13
rol r15, 0x2b
add rsi, rcx
add rsi, r14
mov rbx, rsi
rol rbx, 0x14
add rbx, r14
add rbx, r15
add rsi, rdi
mov rcx, qword [rdx + r8 - 0x20]
add rcx, r9
mov r15, qword [rdx + r8 - 8]
add rcx, rbp
lea r12, [r15 + rdi]
add r12, rcx
rol r12, 0x2b
add r11, rax
add r11, rcx
mov r14, r11
rol r14, 0x14
add r14, rcx
add r14, r12
imul rdi, rbp
add rdi, qword [rdx]
add r11, r15
dec r8
and r8, 0xffffffffffffffc0
xor r15d, r15d
mov rbp, r13
add rdi, rsi
add rdi, r9
mov rcx, qword [rdx + r15 + 8]
mov r12, qword [rdx + r15 + 0x10]
add rdi, rcx
rol rdi, 0x1b
add r9, rbx
mov rax, qword [rdx + r15 + 0x30]
mov qword [rsp], rax
add r9, rax
rol r9, 0x16
movabs rax, 0xb492b66fbe98f273
imul rdi, rax
mov r10, r9
imul r10, rax
mov r13, rdi
xor r13, r14
mov rax, qword [rdx + r15 + 0x28]
add rsi, rax
mov r9, rsi
add r9, r10
add rbp, r11
movabs r10, 0xb492b66fbe98f273
imul rbx, r10
mov r10, qword [rdx + r15 + 0x18]
add rbx, qword [rdx + r15]
add r11, r10
add r11, r13
add r11, rbx
rol r11, 0x2b
add rcx, r12
add rcx, rbx
mov rsi, rcx
rol rsi, 0x14
add rbx, rsi
add rbx, r11
rol rbp, 0x1f
mov rsi, rcx
mov rdi, rbp
movabs rcx, 0xb492b66fbe98f273
imul rdi, rcx
add rsi, r10
add r12, r9
add r14, rdi
add r14, qword [rdx + r15 + 0x20]
mov rcx, qword [rdx + r15 + 0x38]
add r12, rcx
add r12, r14
add rax, qword [rsp]
add rax, r14
mov r10, rax
rol r10, 0x14
add r14, r10
rol r12, 0x2b
add r14, r12
mov r11, rax
add r11, rcx
add r15, 0x40
cmp r8, r15
jne 0x14009c3d5
xor rbx, r14
movabs r8, 0x9ddfea08eb382d69
imul rbx, r8
mov rcx, rbx
shr rcx, 0x2f
xor rcx, r14
xor rcx, rbx
imul rcx, r8
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r8
add rax, rdi
xor rsi, r11
imul rsi, r8
mov rcx, rsi
shr rcx, 0x2f
xor rcx, r11
xor rcx, rsi
imul rcx, r8
mov rdx, rcx
shr rdx, 0x2f
xor rdx, rcx
imul rdx, r8
mov rcx, r9
shr rcx, 0x2f
xor rcx, r9
movabs r9, 0xb492b66fbe98f273
imul rcx, r9
add rcx, r13
add rcx, rdx
xor rcx, rax
imul rcx, r8
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
imul rcx, r8
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r8
jmp 0x14009c159
movabs rax, 0x9ae16a3b2f90404f
test r8, r8
je 0x14009c159
movzx ecx, byte [rdx]
mov r9, r8
shr r9, 1
movzx r9d, byte [rdx + r9]
movzx edx, byte [r8 + rdx - 1]
shl r9, 8
or r9, rcx
lea rcx, [r8 + rdx*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 0x14009c159