Function at 0x14007ab60
Capabilities:
Encode data using xor

Disassembly:
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov rcx, rax
jmp 0x14007ab60
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x10
cmp rdx, 0x20
ja 0x14007ac0e
cmp rdx, 0x10
ja 0x14007ab95
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x14007af40
movabs rax, 0x9ae16a3b2f90404f
movabs r9, 0xb492b66fbe98f273
imul r9, qword [rcx]
mov rsi, rdx
lea rdx, [rax + rdx*2]
mov r10, qword [rcx + 8]
mov r8, qword [rcx + rsi - 8]
lea r11, [r10 + rax]
imul rax, qword [rcx + rsi - 0x10]
rol r11, 0x2e
imul r8, rdx
add r11, r9
add r11, r8
add r9, r10
rol r9, 0x15
rol r8, 0x22
add r8, r9
add r8, rax
xor r8, r11
imul r8, rdx
xor r11, r8
shr r8, 0x2f
xor r8, r11
imul r8, rdx
mov rax, r8
shr rax, 0x2f
xor rax, r8
imul rax, rdx
jmp 0x14007ae60
cmp rdx, 0x40
jbe 0x14007ae71
movabs r12, 0xb492b66fbe98f273
movabs r9, 0x9ddfea08eb382d69
mov r8, rdx
mov rdi, qword [rcx + rdx - 0x28]
mov r13, qword [rcx + rdx - 0x10]
mov r10, qword [rcx + rdx - 0x38]
mov rdx, qword [rcx + rdx - 0x30]
lea rax, [r10 + r13]
mov rsi, qword [rcx + r8 - 0x18]
lea rbx, [rdx + r8]
xor rbx, rsi
imul rbx, r9
mov r11, rsi
xor r11, rbx
shr rbx, 0x2f
xor rbx, r11
imul rbx, r9
mov r11, rbx
shr r11, 0x2f
xor r11, rbx
imul r11, r9
mov rbp, rcx
mov r14, qword [rcx + r8 - 0x40]
add r14, r8
lea r15, [r14 + rdi]
add r15, r11
rol r15, 0x2b
add rdx, r10
add rdx, r14
mov rbx, rdx
rol rbx, 0x14
add rbx, r14
add rbx, r15
add rdx, rdi
mov r10, qword [rcx + r8 - 0x20]
add r10, rax
mov r15, qword [rcx + r8 - 8]
mov rcx, r12
add r10, r12
lea r12, [r15 + rdi]
add r12, r10
rol r12, 0x2b
add rsi, r13
add rsi, r10
mov r14, rsi
rol r14, 0x14
add r14, r10
add r14, r12
imul rdi, rcx
add rdi, qword [rbp]
add rsi, r15
dec r8
and r8, 0xffffffffffffffc0
mov qword [rsp], r8
xor r15d, r15d
nop dword [rax]
mov r13, r11
add rdi, rdx
add rdi, rax
mov r10, qword [rbp + r15 + 8]
mov r12, qword [rbp + r15 + 0x10]
add rdi, r10
rol rdi, 0x1b
add rax, rbx
mov rcx, qword [rbp + r15 + 0x30]
mov qword [rsp + 8], rcx
add rax, rcx
rol rax, 0x16
movabs rcx, 0xb492b66fbe98f273
imul rdi, rcx
mov r9, rax
imul r9, rcx
mov r11, rdi
xor r11, r14
mov r8, qword [rbp + r15 + 0x28]
add rdx, r8
mov rax, rdx
add rax, r9
add r13, rsi
imul rbx, rcx
mov r9, qword [rbp + r15 + 0x18]
add rbx, qword [rbp + r15]
add rsi, r9
add rsi, rbx
add rsi, r11
rol rsi, 0x2b
add r10, r12
add r10, rbx
mov rdx, r10
rol rdx, 0x14
add rbx, rdx
add rbx, rsi
rol r13, 0x1f
mov rdx, r10
mov rdi, r13
imul rdi, rcx
add rdx, r9
add r14, rdi
mov r9, qword [rbp + r15 + 0x38]
add r14, qword [rbp + r15 + 0x20]
add r12, r9
add r12, rax
add r12, r14
add r8, qword [rsp + 8]
add r8, r14
mov r10, r8
rol r10, 0x14
add r14, r10
rol r12, 0x2b
add r14, r12
mov rsi, r8
add rsi, r9
add r15, 0x40
cmp qword [rsp], r15
jne 0x14007acf0
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 rdx, rsi
imul rdx, r9
xor rsi, rdx
shr rdx, 0x2f
xor rdx, rsi
imul rdx, r9
mov r8, rdx
shr r8, 0x2f
xor r8, rdx
imul r8, r9
mov rdx, rax
shr rdx, 0x2f
xor rdx, rax
movabs rax, 0xb492b66fbe98f273
imul rdx, rax
add rdx, r11
add rdx, r8
xor rdx, rcx
imul rdx, r9
xor rcx, rdx
shr rdx, 0x2f
xor rdx, rcx
imul rdx, r9
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
imul rax, r9
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0x9ae16a3b2f90404f
mov r14, rdx
lea r8, [rax + rdx*2]
mov rsi, qword [rcx]
imul rsi, rax
mov r9, qword [rcx + rdx - 0x20]
mov r11, qword [rcx + rdx - 0x18]
imul rax, qword [rcx + 0x10]
mov rbx, qword [rcx + 8]
mov rdx, qword [rcx + 0x18]
lea rdi, [rdx + rdx*8]
mov r10, qword [rcx + r14 - 8]
mov rcx, qword [rcx + r14 - 0x10]
imul rcx, r8
add rsi, r10
mov r14, rsi
rol r14, 0x15
add rax, rdi
mov rdx, rax
add rax, r11
add r10, rax
add rax, rbx
rol rbx, 0x22
add rbx, r11
lea rbx, [rbx + rbx*8]
add rbx, r14
xor rsi, r9
lea r14, [rdi + rsi]
add rsi, rdi
inc rsi
add rsi, rbx
imul rsi, r8
bswap rsi
rol rdx, 0x16
add rdx, r11
lea r11, [rcx + r14]
inc r11
add r11, rsi
imul r11, r8
bswap r11
add r10, rdx
add r10, r11
imul r10, r8
bswap r10
add rax, r10
imul rax, r8
add rcx, r9
add rcx, rax
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r8
add rax, rdx
jmp 0x14007ae60
movabs rax, 0x9ae16a3b2f90404f
cmp rdx, 8
jb 0x14007af99
lea r8, [rax + rdx*2]
add rax, qword [rcx]
mov rcx, qword [rcx + rdx - 8]
mov rdx, rcx
rol rdx, 0x1b
imul rdx, r8
add rdx, rax
rol rax, 0x27
add rax, rcx
imul rax, r8
xor rdx, rax
imul rdx, r8
xor rax, rdx
shr rdx, 0x2f
xor rdx, rax
imul rdx, r8
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
imul rax, r8
ret
cmp rdx, 4
jb 0x14007afc0
lea r8, [rax + rdx*2]
mov eax, dword [rcx]
mov ecx, dword [rcx + rdx - 4]
lea rdx, [rdx + rax*8]
xor rdx, rcx
imul rdx, r8
xor rcx, rdx
shr rdx, 0x2f
xor rdx, rcx
jmp 0x14007af86
test rdx, rdx
je 0x14007b009
movzx r8d, byte [rcx]
mov r9, rdx
shr r9, 1
movzx r9d, byte [rcx + r9]
movzx ecx, byte [rcx + rdx - 1]
shl r9d, 8
or r9, r8
shl ecx, 2
or rcx, rdx
imul r9, rax
movabs rdx, 0xc3a5c85c97cb3127
imul rdx, rcx
xor rdx, r9
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rax, rcx
ret