Function at 0x140016060
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r14, qword [rdx]
xor esi, esi
mov r15, rdx
mov r13d, esi
mov eax, esi
mov r11d, esi
mov edi, esi
mov r10d, esi
test r14, r14
je 0x1400160ec
mov rbx, qword [rdx + 8]
nop dword [rax]
mov rdx, qword [rbx]
lea rbx, [rbx + 8]
mov rcx, rdx
mov r9, rdx
shr r9, 1
and ecx, 1
or r9, rcx
mov r8, rdi
neg r9
xor r8, r11
shr r9, 0x3f
mov rcx, r10
neg r9
xor rcx, r13
mov rdi, rdx
and r8, r9
xor rdx, rax
and rcx, r9
and rdx, r9
xor r11, r8
xor rax, rdx
xor r13, rcx
inc r10
cmp r10, r14
jb 0x1400160a0
mov r14d, 6
mov rbp, rsi
mov edi, r14d
mov ebx, 0x40
nop dword [rax]
ror rbx, 1
mov rdx, rax
mov r8, rax
mov r9d, 0x40
sub r9, rbx
mov rcx, r9
shr rdx, cl
mov rcx, rbx
shl r8, cl
mov r10, rdx
and edx, 1
shr r10, 1
or r10, rdx
mov rcx, r9
neg r10
mov rdx, r11
shr rdx, cl
mov rcx, rbx
or r8, rdx
shr r10, 0x3f
xor r8, rax
mov rdx, r11
shl rdx, cl
xor r10, 1
neg r10
lea rcx, [rbx + rbp]
xor rcx, rbp
xor rdx, r11
and rcx, r10
and r8, r10
and rdx, r10
xor rbp, rcx
xor rax, r8
xor r11, rdx
sub rdi, 1
jne 0x140016100
shr rax, 0x20
mov ecx, eax
call fcn.140018380
mov edi, eax
mov r12, rsi
shl rdi, 0x20
mov r9d, 0x40
nop dword [rax]
ror r9, 1
dec r14
mov rcx, r14
mov rdx, rdi
mov rax, r12
mov r8, rbp
shr r8, cl
mov ecx, 0x40
sub cl, r9b
and r8d, 1
shr rdx, cl
neg r8
mov rcx, r9
shl rax, cl
or rdx, rax
mov rax, rdi
shl rax, cl
xor rdx, r12
xor rax, rdi
and rdx, r8
and rax, r8
xor r12, rdx
xor rdi, rax
test r14, r14
jne 0x140016190
mov rbp, qword [r15]
mov ecx, 0xbf
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax]
add rbp, rax
shl rbp, 6
add rbp, 3
cmp rbp, rcx
mov rax, rbp
cmova rax, rcx
sub rbp, rax
add rbp, 0x3f
and rbp, 0xffffffffffffffc0
add rbp, rcx
mov qword [rsp + 0xa8], rbp
lea rbx, [rbp + 0x41]
shr rbx, 6
mov rcx, rbx
call fcn.140017260
mov r9, rbp
shl r13, 6
sub r9, r13
mov r8, rdi
sub r9, 0x7f
mov rdx, rax
shr r9, 6
mov rcx, rax
mov r14, rax
call fcn.1400157e0
inc r9
mov r8, r12
mov rdx, r14
mov rcx, r14
call fcn.1400157e0
mov rcx, rbx
call fcn.140017260
lea r9, [rbp + 1]
mov r8d, 1
shr r9, 6
mov rdx, rax
mov rcx, rax
mov r13, rax
call fcn.1400157e0
mov rcx, qword [r15]
add rcx, rbx
call fcn.140017260
mov rdi, rax
mov rcx, qword [rax]
cmp rbx, rcx
cmova rcx, rbx
call fcn.140017260
mov rbp, rax
mov rcx, qword [rax]
add rcx, rbx
call fcn.140017260
mov rdx, qword [r14]
mov rbx, rax
mov r8, qword [rbp]
mov qword [rsp + 0x20], rax
mov rcx, qword [rax]
call fcn.140017b50
mov r8, qword [r15]
mov r9, rax
mov rcx, qword [rdi]
call fcn.140017b50
cmp rax, r9
cmova r9, rax
mov rcx, r9
call fcn.140017260
mov r9, qword [rbx]
lea rcx, [rsp + 0x40]
mov r12, rax
mov rdx, rbx
mov rax, qword [rsp + 0xa8]
shr rax, 6
mov r8, rax
mov qword [rsp + 0xa8], rax
call fcn.140017230
mov ebx, 0x14
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax]
shl rax, 6
add rax, 4
mov qword [rsp + 0x28], rax
cmp rbx, rax
jae 0x1400163ac
mov rsi, rdx
nop dword [rax]
movups xmm0, xmmword [r12]
lea r9, [rsp + 0x30]
mov r8, r15
mov rdx, r14
mov rcx, rdi
movaps xmmword [rsp + 0x30], xmm0
call fcn.140017820
mov r8, rdi
mov rdx, r13
mov rcx, rbp
call fcn.140018320
movups xmm0, xmmword [r12]
lea r9, [rsp + 0x30]
mov r8, rbp
mov rdx, r14
mov rcx, rsi
movaps xmmword [rsp + 0x30], xmm0
call fcn.140017820
mov r8d, 0x3f
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.140017e00
lea rbx, [rbx*2 - 1]
cmp rbx, qword [rsp + 0x28]
jb 0x140016340
xor esi, esi
mov rcx, rdi
call fcn.140016580
mov rcx, rbp
call fcn.140016580
mov rcx, qword [rsp + 0x20]
call fcn.140016580
mov rcx, r12
call fcn.140016580
mov rbx, qword [rsp + 0xa0]
mov rcx, r14
mov rdx, rbx
call fcn.140017660
mov r8, qword [rsp + 0xa8]
lea rcx, [rsp + 0x40]
mov rdx, rax
mov qword [rsp + 0xa0], rax
mov r9, qword [rax]
call fcn.140017230
mov rcx, qword [rbx]
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
call fcn.140017260
mov r8d, 0x3f
lea rdx, [rsp + 0x40]
mov rcx, rax
mov r12, rax
call fcn.140017e00
mov rcx, qword [r15]
call fcn.140017260
mov r8, r15
mov rdx, r12
mov rcx, rax
mov rdi, rax
call fcn.140017ae0
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
call fcn.140018320
mov ebp, 2
mov rdx, r15
mov rcx, rdi
call fcn.140015e90
mov r9d, eax
mov r8, r15
mov rdx, rdi
mov rcx, rdi
mov ebx, eax
call fcn.140015f50
add esi, ebx
sub rbp, 1
jne 0x140016453
mov r8d, esi
mov rdx, r12
mov rcx, r12
call fcn.1400157a0
mov rax, qword [rsp + 0xb0]
test rax, rax
je 0x14001649f
mov rdx, r12
mov rcx, rax
call fcn.140016000
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x1400164b7
mov rdx, rdi
mov rcx, rax
call fcn.140016000
mov rcx, r14
call fcn.140016580
mov rcx, r13
call fcn.140016580
mov rcx, qword [rsp + 0xa0]
call fcn.140016580
mov rcx, r12
call fcn.140016580
mov rcx, rdi
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.140016580