Function at 0x14000656e
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x18
mov rcx, rdx
mov rdx, r8
cmp r8, 0x20
ja 0x1400065a5
cmp rdx, 0x10
ja 0x1400065c0
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140006838
cmp rdx, 0x40
ja 0x1400065d6
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400069a2
nop
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140006916
movabs r12, 0xb492b66fbe98f273
movabs r8, 0x9ddfea08eb382d69
mov rbp, rdx
mov rdi, qword [rcx + rdx - 0x28]
mov r13, qword [rcx + rdx - 0x10]
mov rax, qword [rcx + rdx - 0x38]
mov rsi, qword [rcx + rdx - 0x30]
lea r9, [rax + r13]
mov r11, qword [rcx + rdx - 0x18]
lea rbx, [rsi + rdx]
xor rbx, r11
imul rbx, r8
mov r10, r11
xor r10, rbx
shr rbx, 0x2f
xor rbx, r10
imul rbx, r8
mov rdx, rbx
shr rdx, 0x2f
xor rdx, rbx
imul rdx, r8
mov r14, qword [rcx + rbp - 0x40]
add r14, rbp
lea r15, [r14 + rdi]
add r15, rdx
rol r15, 0x2b
add rax, rsi
add rax, r14
mov rbx, rax
rol rbx, 0x14
add rbx, r14
add rbx, r15
add rax, rdi
mov rsi, qword [rcx + rbp - 0x20]
add rsi, r9
mov r15, qword [rcx + rbp - 8]
mov r8, r12
add rsi, r12
lea r12, [r15 + rdi]
add r12, rsi
rol r12, 0x2b
add r11, r13
add r11, rsi
mov r14, r11
rol r14, 0x14
add r14, rsi
add r14, r12
imul rdi, r8
mov qword [rsp], rcx
add rdi, qword [rcx]
add r11, r15
dec rbp
and rbp, 0xffffffffffffffc0
mov qword [rsp + 8], rbp
xor r15d, r15d
mov rbp, qword [rsp]
mov r13, rdx
add rdi, rax
add rdi, r9
mov rsi, qword [rbp + r15 + 8]
mov r12, qword [rbp + r15 + 0x10]
add rdi, rsi
rol rdi, 0x1b
add r9, rbx
mov rcx, qword [rbp + r15 + 0x30]
mov qword [rsp + 0x10], rcx
add r9, rcx
rol r9, 0x16
movabs r8, 0xb492b66fbe98f273
imul rdi, r8
mov r10, r9
imul r10, r8
mov rdx, rdi
xor rdx, r14
mov rcx, qword [rbp + r15 + 0x28]
add rax, rcx
mov r9, rax
add r9, r10
add r13, r11
imul rbx, r8
mov r10, qword [rbp + r15 + 0x18]
add rbx, qword [rbp + r15]
add r11, r10
add r11, rdx
add r11, rbx
rol r11, 0x2b
add rsi, r12
add rsi, rbx
mov rax, rsi
rol rax, 0x14
add rbx, rax
add rbx, r11
rol r13, 0x1f
mov rax, rsi
mov rdi, r13
imul rdi, r8
add rax, r10
add r12, r9
add r14, rdi
add r14, qword [rbp + r15 + 0x20]
mov r10, qword [rbp + r15 + 0x38]
add r12, r10
add r12, r14
add rcx, qword [rsp + 0x10]
add rcx, r14
mov r8, rcx
rol r8, 0x14
add r14, r8
rol r12, 0x2b
add r14, r12
mov r11, rcx
add r11, r10
add r15, 0x40
cmp qword [rsp + 8], r15
jne 0x1400066af
xor rbx, r14
movabs r8, 0x9ddfea08eb382d69
imul rbx, r8
mov r10, rbx
shr r10, 0x2f
xor r10, r14
xor r10, rbx
imul r10, r8
mov rcx, r10
shr rcx, 0x2f
xor rcx, r10
imul rcx, r8
add rcx, rdi
xor rax, r11
imul rax, r8
mov r10, rax
shr r10, 0x2f
xor r10, r11
xor r10, rax
imul r10, r8
mov rax, r10
shr rax, 0x2f
xor rax, r10
imul rax, r8
mov r10, r9
shr r10, 0x2f
xor r10, r9
movabs r9, 0xb492b66fbe98f273
imul r10, r9
add r10, rdx
add r10, rax
xor r10, rcx
imul r10, r8
xor rcx, r10
shr r10, 0x2f
xor r10, rcx
imul r10, r8
mov rax, r10
shr rax, 0x2f
xor rax, r10
imul rax, r8
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rcx
cmp rdx, 9
jb 0x140006883
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
ret
cmp rdx, 4
jb 0x1400068c3
mov eax, dword [r8]
mov ecx, dword [r8 + rdx - 4]
lea rdx, [rdx + 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
imul rax, r8
ret
movabs rax, 0x9ae16a3b2f90404f
test rdx, rdx
je 0x140006915
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
ret
movabs rax, 0xb492b66fbe98f273
imul rax, qword [rcx]
mov r9, qword [rcx + 8]
movabs r8, 0x9ae16a3b2f90404f
imul r8, qword [rcx + rdx - 8]
movabs r10, 0xc3a5c85c97cb3127
imul r10, qword [rcx + rdx - 0x10]
movabs rcx, 0xc949d7c7509e6557
xor rcx, r9
rol rcx, 0x2c
add rdx, rax
add rcx, rdx
sub rcx, r8
sub rax, r9
rol rax, 0x15
rol r8, 0x22
add r8, rax
add r8, r10
xor r8, rcx
movabs rdx, 0x9ddfea08eb382d69
imul r8, rdx
xor rcx, r8
shr r8, 0x2f
xor r8, rcx
imul r8, rdx
mov rax, r8
shr rax, 0x2f
xor rax, r8
imul rax, rdx
ret