Function at 0x14016b5a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x30
call fcn.1401c7590
sub rsp, rax
mov eax, dword [rcx + 0x18]
mov r12, r8
mov r8d, dword [rcx + 0x1c]
mov ebp, eax
mov r10d, dword [rcx + 0x20]
mov r14d, r8d
mov r9d, dword [rcx + 0xc]
mov r15d, r10d
mov r11d, dword [rcx]
mov rbx, rdx
mov edx, dword [rcx + 0x14]
mov edi, dword [rcx + 4]
mov esi, dword [rcx + 8]
mov r13d, dword [rcx + 0x10]
shr r14d, 2
shr ebp, 2
add r14d, r8d
shr r15d, 2
add ebp, eax
add r15d, r10d
mov dword [rsp], edx
mov dword [rsp + 0x80], r9d
cmp r12, 0x10
jb 0x14016b8a6
mov ecx, r14d
mov qword [rsp + 0x20], rcx
lea rcx, [rbx + 6]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x28], r10
shr r12, 4
movzx eax, byte [rcx - 4]
movzx ebx, byte [rcx - 3]
movzx r9d, byte [rcx + 1]
movzx r8d, byte [rcx + 5]
movzx edx, byte [rcx + 9]
shl r9, 8
shl rbx, 8
or rbx, rax
shl r8, 8
movzx eax, byte [rcx - 5]
shl rdx, 8
shl rbx, 8
or rbx, rax
movzx eax, byte [rcx - 6]
shl rbx, 8
or rbx, rax
mov eax, r11d
add rbx, rax
movzx eax, byte [rcx]
or r9, rax
movzx eax, byte [rcx - 1]
shl r9, 8
or r9, rax
movzx eax, byte [rcx - 2]
shl r9, 8
or r9, rax
mov rax, rbx
shr rax, 0x20
add r9, rax
mov eax, edi
add r9, rax
movzx eax, byte [rcx + 4]
or r8, rax
mov r10d, r9d
movzx eax, byte [rcx + 3]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 2]
shl r8, 8
or r8, rax
mov rax, r9
mov r9, qword [rsp + 0x18]
shr rax, 0x20
add r8, rax
mov eax, esi
add r8, rax
mov rsi, r9
movzx eax, byte [rcx + 8]
or rdx, rax
mov r11d, r8d
movzx eax, byte [rcx + 7]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + 6]
shl rdx, 8
or rdx, rax
mov rax, r8
shr rax, 0x20
add rdx, rax
mov eax, dword [rsp + 0x80]
add rdx, rax
mov rax, rdx
mov r8d, edx
shr rax, 0x20
add eax, dword [rsp + 0x88]
add r13d, eax
mov edx, ebx
imul rsi, rdx
mov eax, ebp
mov edi, r13d
imul rax, r8
mov ebx, r15d
add rsi, rax
mov eax, r14d
imul rax, r11
add rsi, rax
mov eax, r15d
imul rax, r10
add rsi, rax
mov rax, qword [rsp + 8]
imul edi, ebp
imul rax, rdx
add rdi, rax
mov eax, r8d
imul rax, qword [rsp + 0x20]
add rdi, rax
mov rax, r9
imul rax, r10
add rdi, rax
mov eax, r11d
imul rax, rbx
mov ebx, r13d
add rdi, rax
imul ebx, r14d
mov rax, rsi
shr rax, 0x20
add rdi, rax
mov rax, qword [rsp + 0x10]
imul rax, rdx
add rbx, rax
mov rax, r9
imul rax, r11
mov r9d, r15d
add rbx, rax
mov rax, qword [rsp + 8]
imul rax, r10
add rbx, rax
mov eax, r8d
imul rax, r9
mov r9d, r13d
imul r13d, dword [rsp]
add rbx, rax
imul r9d, r15d
mov rax, rdi
shr rax, 0x20
add rbx, rax
mov rax, qword [rsp + 0x28]
imul rax, rdx
add r9, rax
mov rax, qword [rsp + 0x10]
imul rax, r10
add r9, rax
mov rax, qword [rsp + 0x18]
imul rax, r8
add r9, rax
mov rax, qword [rsp + 8]
imul rax, r11
add r9, rax
mov rax, rbx
shr rax, 0x20
add r9, rax
mov rax, r9
shr rax, 0x20
add r13d, eax
mov edx, r13d
mov eax, r13d
and eax, 0xfffffffc
shr edx, 2
add edx, eax
mov r8d, r13d
lea r11d, [rdx + rsi]
mov eax, r11d
sub eax, edx
xor eax, edx
xor edx, r11d
or eax, edx
xor eax, r11d
shr eax, 0x1f
add edi, eax
mov edx, edi
sub edx, eax
xor edx, eax
xor eax, edi
or edx, eax
xor edx, edi
shr edx, 0x1f
lea esi, [rdx + rbx]
mov eax, esi
sub eax, edx
xor eax, edx
xor edx, esi
or eax, edx
xor eax, esi
lea rcx, [rcx + 0x10]
shr eax, 0x1f
and r8d, 3
add r9d, eax
mov r13d, r9d
mov dword [rsp + 0x80], r9d
sub r13d, eax
xor r13d, eax
xor eax, r9d
or r13d, eax
xor r13d, r9d
shr r13d, 0x1f
add r13d, r8d
sub r12, 1
jne 0x14016b640
mov rcx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov dword [rcx], r11d
mov dword [rcx + 4], edi
mov dword [rcx + 8], esi
mov dword [rcx + 0xc], r9d
mov dword [rcx + 0x10], r13d
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret