Function at 0x140017ef0
Capabilities:
Encode data using xor

Disassembly:
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
jmp 0x140017ef0
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
push rax
cmp rdx, 0x20
ja 0x140017f7d
movabs rax, 0x9ae16a3b2f90404f
cmp rdx, 0x10
ja 0x140018052
cmp rdx, 8
jb 0x1400180c1
lea rbp, [rax + rdx*2]
add rax, qword [rcx]
mov rcx, qword [rcx + rdx - 8]
mov rdx, rcx
rol rdx, 0x1b
imul rdx, rbp
add rdx, rax
rol rax, 0x27
add rax, rcx
imul rax, rbp
xor rdx, rax
imul rdx, rbp
mov rcx, rdx
shr rcx, 0x2f
xor rdx, rax
xor rdx, rcx
imul rdx, rbp
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
imul rax, rbp
add rsp, 8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rdx, 0x40
ja 0x1400180de
movabs rax, 0x9ae16a3b2f90404f
lea r15, [rax + rdx*2]
mov rsi, qword [rcx]
imul rsi, rax
mov r8, qword [rcx + rdx - 0x20]
mov r9, qword [rcx + rdx - 0x18]
imul rax, qword [rcx + 0x10]
mov r10, qword [rcx + 8]
mov rbp, qword [rcx + 0x18]
lea r11, [rbp*8]
add r11, rbp
mov rdi, qword [rcx + rdx - 8]
mov rcx, qword [rcx + rdx - 0x10]
imul rcx, r15
add rsi, rdi
mov r14, rsi
rol r14, 0x15
add rax, r11
mov rbp, rax
add rax, r9
add rdi, rax
add rax, r10
rol r10, 0x22
add r10, r9
lea rdx, [r10 + r10*8]
add rdx, r14
xor rsi, r8
lea rbx, [r11 + rsi]
add rsi, r11
inc rsi
add rsi, rdx
imul rsi, r15
bswap rsi
rol rbp, 0x16
add rbp, r9
lea rdx, [rcx + rbx]
inc rdx
add rdx, rsi
imul rdx, r15
bswap rdx
add rdi, rbp
add rdi, rdx
imul rdi, r15
bswap rdi
add rax, rdi
imul rax, r15
add rcx, r8
add rcx, rax
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r15
add rax, rbp
jmp 0x140017f6c
lea r8, [rax + rdx*2]
movabs rdi, 0xb492b66fbe98f273
imul rdi, qword [rcx]
mov rsi, qword [rcx + 8]
mov rbx, qword [rcx + rdx - 8]
imul rbx, r8
lea rbp, [rsi + rax]
imul rax, qword [rcx + rdx - 0x10]
rol rbp, 0x2e
add rbp, rdi
add rdi, rsi
rol rdi, 0x15
add rbp, rbx
rol rbx, 0x22
add rbx, rdi
add rbx, rax
xor rbx, rbp
imul rbx, r8
mov rax, rbx
shr rax, 0x2f
xor rbx, rbp
xor rbx, rax
imul rbx, r8
mov rax, rbx
shr rax, 0x2f
xor rax, rbx
imul rax, r8
jmp 0x140017f6c
cmp rdx, 4
jb 0x140018319
lea rbp, [rax + rdx*2]
mov eax, dword [rcx]
mov ecx, dword [rcx + rdx - 4]
lea rdx, [rdx + rax*8]
jmp 0x140018300
movabs r12, 0xb492b66fbe98f273
movabs r10, 0x9ddfea08eb382d69
mov rdi, qword [rcx + rdx - 0x28]
mov r8, qword [rcx + rdx - 0x10]
mov rbx, qword [rcx + rdx - 0x38]
mov r9, qword [rcx + rdx - 0x30]
lea r14, [rbx + r8]
mov rax, qword [rcx + rdx - 0x18]
lea rsi, [r9 + rdx]
xor rsi, rax
imul rsi, r10
mov rbp, rsi
shr rbp, 0x2f
xor rsi, rax
xor rsi, rbp
imul rsi, r10
mov rbp, rsi
shr rbp, 0x2f
xor rbp, rsi
imul rbp, r10
mov r10, qword [rcx + rdx - 0x40]
add r10, rdx
lea rsi, [r10 + rdi]
mov r11, rbp
add rsi, rbp
rol rsi, 0x2b
add r9, rbx
add r9, r10
mov rbx, r9
rol rbx, 0x14
add rbx, r10
add rbx, rsi
add r9, rdi
mov rbp, qword [rcx + rdx - 0x20]
add rbp, r14
mov r10, qword [rcx + rdx - 8]
add rbp, r12
lea r15, [r10 + rdi]
add r15, rbp
rol r15, 0x2b
add rax, r8
add rax, rbp
mov rsi, rax
rol rsi, 0x14
add rsi, rbp
add rsi, r15
imul rdi, r12
add rdi, qword [rcx]
add rax, r10
dec rdx
and rdx, 0xffffffffffffffc0
xor r15d, r15d
mov r13, r11
add rdi, r9
add rdi, r14
mov r10, qword [rcx + r15 + 8]
mov r12, qword [rcx + r15 + 0x10]
add rdi, r10
rol rdi, 0x1b
add r14, rbx
mov rbp, qword [rcx + r15 + 0x30]
mov qword [rsp], rbp
add r14, rbp
rol r14, 0x16
movabs rbp, 0xb492b66fbe98f273
imul rdi, rbp
mov r11, r14
imul r11, rbp
xor rdi, rsi
mov r8, qword [rcx + r15 + 0x28]
add r9, r8
mov r14, r9
add r14, r11
add r13, rax
imul rbx, rbp
mov rbp, qword [rcx + r15 + 0x18]
add rbx, qword [rcx + r15]
add rax, rbp
mov r11, rdi
add rax, rdi
add rax, rbx
rol rax, 0x2b
add r10, r12
add r10, rbx
mov rdi, r10
rol rdi, 0x14
add rbx, rdi
add rbx, rax
rol r13, 0x1f
mov r9, r10
mov rdi, r13
movabs rax, 0xb492b66fbe98f273
imul rdi, rax
add r9, rbp
add r12, r14
add rsi, rdi
add rsi, qword [rcx + r15 + 0x20]
mov rbp, qword [rcx + r15 + 0x38]
add r12, rbp
add r12, rsi
add r8, qword [rsp]
add r8, rsi
mov rax, r8
rol rax, 0x14
add rsi, rax
rol r12, 0x2b
add rsi, r12
mov rax, r8
add rax, rbp
add r15, 0x40
cmp rdx, r15
jne 0x1400181a7
xor rbx, rsi
movabs rbp, 0x9ddfea08eb382d69
imul rbx, rbp
mov rcx, rbx
shr rcx, 0x2f
xor rbx, rsi
xor rbx, rcx
imul rbx, rbp
mov rcx, rbx
shr rcx, 0x2f
xor rcx, rbx
imul rcx, rbp
add rcx, rdi
xor r9, rax
imul r9, rbp
mov rdx, r9
shr rdx, 0x2f
xor r9, rax
xor r9, rdx
imul r9, rbp
mov rax, r9
shr rax, 0x2f
xor rax, r9
imul rax, rbp
mov rdx, r14
shr rdx, 0x2f
xor rdx, r14
movabs rbx, 0xb492b66fbe98f273
imul rdx, rbx
add rdx, r11
add rdx, rax
xor rdx, rcx
imul rdx, rbp
mov rax, rdx
shr rax, 0x2f
xor rdx, rcx
xor rdx, rax
jmp 0x140017f5a
test rdx, rdx
je 0x140017f6c
movzx ebp, byte [rcx]
mov rbx, rdx
shr rbx, 1
movzx ebx, byte [rcx + rbx]
movzx ecx, byte [rdx + rcx - 1]
shl rbx, 8
or rbx, rbp
lea rcx, [rdx + rcx*4]
imul rbx, rax
movabs rdx, 0xc3a5c85c97cb3127
imul rdx, rcx
xor rdx, rbx
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rax, rcx
jmp 0x140017f6c