Function at 0x14005075e
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
cmp r8, 0x20
ja 0x140050883
cmp r8, 0x10
jbe 0x14005081d
movabs rax, 0xb492b66fbe98f273
imul rax, qword [rdx]
mov rbp, qword [rdx + 8]
movabs rcx, 0x9ae16a3b2f90404f
imul rcx, qword [rdx + r8 - 8]
movabs rbx, 0xc3a5c85c97cb3127
imul rbx, qword [rdx + r8 - 0x10]
movabs rdx, 0xc949d7c7509e6557
xor rdx, rbp
rol rdx, 0x2c
add r8, rax
add r8, rdx
sub rax, rbp
rol rax, 0x15
sub r8, rcx
rol rcx, 0x22
add rcx, rax
add rcx, rbx
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
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r8, 9
jae 0x140050948
cmp r8, 4
jae 0x140050be7
movabs rax, 0x9ae16a3b2f90404f
test r8, r8
je 0x14005080c
movzx ecx, byte [rdx]
mov rbp, r8
shr rbp, 1
movzx ebp, byte [rdx + rbp]
movzx edx, byte [r8 + rdx - 1]
shl rbp, 8
or rbp, rcx
lea rcx, [r8 + rdx*4]
imul rbp, rax
movabs rdx, 0xc949d7c7509e6557
imul rdx, rcx
xor rdx, rbp
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rax, rcx
jmp 0x14005080c
cmp r8, 0x40
ja 0x14005098f
mov r10, qword [rdx + r8 - 0x10]
lea rbp, [r10 + r8]
movabs r9, 0xc3a5c85c97cb3127
imul rbp, r9
add rbp, qword [rdx]
mov rbx, qword [rdx + 0x18]
lea r11, [rbx + rbp]
rol r11, 0xc
mov rdi, rbp
rol rdi, 0x1b
mov rsi, qword [rdx + 0x10]
add rbp, qword [rdx + 8]
mov rax, rbp
rol rax, 0x39
add rbp, rsi
mov r15, rbp
rol r15, 0x21
add rsi, qword [rdx + r8 - 0x20]
add rbp, rbx
add rbx, qword [rdx + r8 - 8]
add rax, rdi
lea r14, [rbx + rsi]
rol r14, 0xc
add rax, r11
mov rdi, rsi
rol rdi, 0x1b
add r15, rax
add rsi, qword [rdx + r8 - 0x18]
mov rax, rsi
rol rax, 0x39
add rsi, r10
add rbx, rsi
rol rsi, 0x21
add rdi, rbp
add rdi, rax
add rdi, r14
add rdi, rsi
movabs rdx, 0x9ae16a3b2f90404f
imul rdi, rdx
add rbx, r15
imul rbx, r9
add rbx, rdi
mov rcx, rbx
shr rcx, 0x2f
xor rcx, rbx
imul rcx, r9
add rcx, r15
jmp 0x1400507fe
mov rbp, qword [rdx + r8 - 8]
lea rax, [r8 + rbp]
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, rbp
jmp 0x14005080c
movabs r11, 0xb492b66fbe98f273
movabs r10, 0x9ddfea08eb382d69
mov rdi, qword [rdx + r8 - 0x28]
mov r9, qword [rdx + r8 - 0x10]
mov r14, qword [rdx + r8 - 0x38]
mov rbx, qword [rdx + r8 - 0x30]
lea rax, [r14 + r9]
mov rcx, qword [rdx + r8 - 0x18]
lea rsi, [rbx + r8]
xor rsi, rcx
imul rsi, r10
mov rbp, rcx
xor rbp, rsi
shr rsi, 0x2f
xor rsi, rbp
imul rsi, r10
mov r13, rsi
shr r13, 0x2f
xor r13, rsi
imul r13, r10
mov rbp, qword [rdx + r8 - 0x40]
add rbp, r8
lea rsi, [rdi + rbp]
add rsi, r13
rol rsi, 0x2b
add r14, rbx
add r14, rbp
mov rbx, r14
rol rbx, 0x14
add rbx, rbp
add rbx, rsi
add r14, rdi
mov rbp, qword [rdx + r8 - 0x20]
add rbp, rax
mov r10, qword [rdx + r8 - 8]
add rbp, r11
lea r15, [r10 + rdi]
add r15, rbp
rol r15, 0x2b
add rcx, r9
add rcx, rbp
mov rsi, rcx
rol rsi, 0x14
add rsi, rbp
add rsi, r15
imul rdi, r11
add rdi, qword [rdx]
add rcx, r10
dec r8
and r8, 0xffffffffffffffc0
xor r15d, r15d
mov qword [rsp], r13
add rdi, r14
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 rbp, qword [rdx + r15 + 0x30]
mov qword [rsp + 8], rbp
add rax, rbp
rol rax, 0x16
movabs rbp, 0xb492b66fbe98f273
imul rdi, rbp
mov r11, rax
imul r11, rbp
mov r13, rdi
xor r13, rsi
mov r9, qword [rdx + r15 + 0x28]
add r14, r9
mov rax, r14
add rax, r11
mov rbp, qword [rsp]
add rbp, rcx
movabs rdi, 0xb492b66fbe98f273
imul rbx, rdi
mov r11, qword [rdx + r15 + 0x18]
add rbx, qword [rdx + r15]
add rcx, r11
add rcx, r13
add rcx, rbx
rol rcx, 0x2b
add r10, r12
add r10, rbx
mov rdi, r10
rol rdi, 0x14
add rbx, rdi
add rbx, rcx
mov rdi, rbp
rol rdi, 0x1f
mov r14, r10
movabs rcx, 0xb492b66fbe98f273
imul rdi, rcx
add r14, r11
add r12, rax
add rsi, rdi
add rsi, qword [rdx + r15 + 0x20]
mov rbp, qword [rdx + r15 + 0x38]
add r12, rbp
add r12, rsi
add r9, qword [rsp + 8]
add r9, rsi
mov rcx, r9
rol rcx, 0x14
add rsi, rcx
rol r12, 0x2b
add rsi, r12
mov rcx, r9
add rcx, rbp
add r15, 0x40
cmp r8, r15
jne 0x140050a55
xor rbx, rsi
movabs r8, 0x9ddfea08eb382d69
imul rbx, r8
mov rdx, rbx
shr rdx, 0x2f
xor rdx, rsi
xor rdx, rbx
imul rdx, r8
mov rbp, rdx
shr rbp, 0x2f
xor rbp, rdx
imul rbp, r8
add rbp, rdi
xor r14, rcx
imul r14, r8
mov rdx, r14
shr rdx, 0x2f
xor rdx, rcx
xor rdx, r14
imul rdx, r8
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rcx, r8
mov rdx, rax
shr rdx, 0x2f
xor rdx, rax
movabs rax, 0xb492b66fbe98f273
imul rdx, rax
add rdx, r13
add rdx, rcx
xor rdx, rbp
imul rdx, r8
xor rbp, rdx
shr rdx, 0x2f
xor rdx, rbp
imul rdx, r8
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
imul rax, r8
jmp 0x14005080c
mov ecx, dword [rdx]
mov eax, dword [rdx + r8 - 4]
shl ecx, 3
add rcx, r8
xor rcx, rax
movabs rdx, 0x9ddfea08eb382d69
imul rcx, rdx
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
jmp 0x1400507fa