Function at 0x140050950
Capabilities:
Encode data using xor

Disassembly:
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
jmp 0x140050950
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x10
cmp rdx, 0x20
ja 0x140050985
cmp rdx, 0x10
ja 0x140050a66
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140050d40
cmp rdx, 0x40
ja 0x140050adf
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
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0x9ae16a3b2f90404f
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 0x140050a55
movabs r11, 0xb492b66fbe98f273
movabs rbp, 0x9ddfea08eb382d69
mov rdi, qword [rcx + rdx - 0x28]
mov r8, qword [rcx + rdx - 0x10]
mov r14, qword [rcx + rdx - 0x38]
mov r9, qword [rcx + rdx - 0x30]
lea r10, [r14 + r8]
mov rsi, qword [rcx + rdx - 0x18]
lea rbx, [r9 + rdx]
xor rbx, rsi
imul rbx, rbp
mov rax, rbx
shr rax, 0x2f
xor rbx, rsi
xor rbx, rax
imul rbx, rbp
mov r13, rbx
shr r13, 0x2f
xor r13, rbx
imul r13, rbp
mov rax, qword [rcx + rdx - 0x40]
add rax, rdx
lea rbp, [rax + rdi]
add rbp, r13
rol rbp, 0x2b
add r14, r9
add r14, rax
mov rbx, r14
rol rbx, 0x14
add rbx, rax
add rbx, rbp
add r14, rdi
mov rbp, qword [rcx + rdx - 0x20]
add rbp, r10
mov r9, qword [rcx + rdx - 8]
add rbp, r11
lea r15, [r9 + rdi]
add r15, rbp
rol r15, 0x2b
add rsi, r8
add rsi, rbp
mov rax, rsi
rol rax, 0x14
add rax, rbp
add rax, r15
imul rdi, r11
add rdi, qword [rcx]
add rsi, r9
dec rdx
and rdx, 0xffffffffffffffc0
xor r15d, r15d
mov qword [rsp], r13
add rdi, r14
add rdi, r10
mov r8, qword [rcx + r15 + 8]
mov r12, qword [rcx + r15 + 0x10]
add rdi, r8
rol rdi, 0x1b
add r10, rbx
mov rbp, qword [rcx + r15 + 0x30]
mov qword [rsp + 8], rbp
add r10, rbp
rol r10, 0x16
movabs rbp, 0xb492b66fbe98f273
imul rdi, rbp
mov r11, r10
imul r11, rbp
mov r13, rdi
xor r13, rax
mov r9, qword [rcx + r15 + 0x28]
add r14, r9
mov r10, r14
add r10, r11
mov rbp, qword [rsp]
add rbp, rsi
movabs rdi, 0xb492b66fbe98f273
imul rbx, rdi
mov r11, qword [rcx + r15 + 0x18]
add rbx, qword [rcx + r15]
add rsi, r11
add rsi, r13
add rsi, rbx
rol rsi, 0x2b
add r8, r12
add r8, rbx
mov rdi, r8
rol rdi, 0x14
add rbx, rdi
add rbx, rsi
mov rdi, rbp
rol rdi, 0x1f
mov r14, r8
movabs rbp, 0xb492b66fbe98f273
imul rdi, rbp
add r14, r11
add r12, r10
add rax, rdi
add rax, qword [rcx + r15 + 0x20]
mov rbp, qword [rcx + r15 + 0x38]
add r12, rbp
add r12, rax
add r9, qword [rsp + 8]
add r9, rax
mov rsi, r9
rol rsi, 0x14
add rax, rsi
rol r12, 0x2b
add rax, r12
mov rsi, r9
add rsi, rbp
add r15, 0x40
cmp rdx, r15
jne 0x140050ba5
xor rbx, rax
movabs rbp, 0x9ddfea08eb382d69
imul rbx, rbp
mov rcx, rbx
shr rcx, 0x2f
xor rbx, rax
xor rbx, rcx
imul rbx, rbp
mov rax, rbx
shr rax, 0x2f
xor rax, rbx
imul rax, rbp
add rax, rdi
xor r14, rsi
imul r14, rbp
mov rcx, r14
shr rcx, 0x2f
xor r14, rsi
xor r14, rcx
imul r14, rbp
mov rcx, r14
shr rcx, 0x2f
xor rcx, r14
imul rcx, rbp
mov rdx, r10
shr rdx, 0x2f
xor rdx, r10
movabs rbx, 0xb492b66fbe98f273
imul rdx, rbx
add rdx, r13
add rdx, rcx
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
jmp 0x140050a55
movabs rax, 0x9ae16a3b2f90404f
cmp rdx, 8
jb 0x140050d9c
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
mov rcx, rdx
shr rcx, 0x2f
xor rdx, rax
xor rdx, rcx
imul rdx, r8
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
imul rax, r8
ret
cmp rdx, 4
jb 0x140050dc6
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
mov rax, rdx
shr rax, 0x2f
xor rdx, rcx
xor rdx, rax
jmp 0x140050d89
test rdx, rdx
je 0x140050e0d
movzx r8d, byte [rcx]
mov r9, rdx
shr r9, 1
movzx r9d, byte [rcx + r9]
movzx ecx, byte [rdx + rcx - 1]
shl r9, 8
or r9, r8
lea rcx, [rdx + rcx*4]
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