Function at 0x14001c920
Capabilities:
Encode data using xor

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