Function at 0x14016cb40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov r15, r8
mov r14, rdx
mov rsi, rcx
movabs rax, 0x27d4eb2f165667c5
movabs r13, 0xc2b2ae3d27d4eb4f
movabs r12, 0x9e3779b185ebca87
cmp rdx, 0x20
jb 0x14016cd1f
lea rdi, [rdx - 0x1f]
movabs r12, 0x60ea27eeadc0b5d6
add rdi, rcx
add r12, r8
add r13, r8
movabs rbx, 0x61c8864e7a143579
add rbx, r8
mov r8d, 8
lea rcx, [rbp + 0x48]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [rbp + 0x48]
mov rcx, r12
call fcn.14012aad8
mov r8d, 8
lea rdx, [rsi + 8]
lea rcx, [rbp + 0x58]
mov r12, rax
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [rbp + 0x58]
mov rcx, r13
call fcn.14012aad8
mov r8d, 8
lea rdx, [rsi + 0x10]
lea rcx, [rbp - 0x20]
mov r13, rax
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [rbp - 0x20]
mov rcx, r15
call fcn.14012aad8
mov r8d, 8
lea rdx, [rsi + 0x18]
lea rcx, [rbp - 0x18]
mov r15, rax
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [rbp - 0x18]
mov rcx, rbx
call fcn.14012aad8
add rsi, 0x20
mov rbx, rax
cmp rsi, rdi
jb 0x14016cbac
mov edx, 0x12
mov qword [rbp + 0x40], rax
mov rcx, rax
call sub.api_ms_win_crt_utility_l1_1_0.dll__rotl64
mov edx, 0xc
mov rcx, r15
mov rdi, rax
call sub.api_ms_win_crt_utility_l1_1_0.dll__rotl64
mov edx, 7
mov rcx, r13
add rdi, rax
call sub.api_ms_win_crt_utility_l1_1_0.dll__rotl64
mov edx, 1
mov rcx, r12
add rdi, rax
call sub.api_ms_win_crt_utility_l1_1_0.dll__rotl64
mov rdx, r12
xor ecx, ecx
add rdi, rax
call fcn.14012aad8
mov rbx, rax
movabs r12, 0x9e3779b185ebca87
xor rbx, rdi
movabs rax, 0x7a1435883d4d519d
imul rbx, r12
mov rdx, r13
xor ecx, ecx
sub rbx, rax
call fcn.14012aad8
mov rdi, rax
mov rdx, r15
xor rdi, rbx
movabs rax, 0x7a1435883d4d519d
imul rdi, r12
xor ecx, ecx
sub rdi, rax
call fcn.14012aad8
mov rdx, qword [rbp + 0x40]
mov rbx, rax
xor rbx, rdi
movabs r15, 0x7a1435883d4d519d
imul rbx, r12
xor ecx, ecx
sub rbx, r15
call fcn.14012aad8
xor rbx, rax
movabs rcx, 0x85ebca77c2b2ae63
imul rbx, r12
movabs r13, 0xc2b2ae3d27d4eb4f
add rbx, rcx
add rbx, r14
jmp 0x14016cd30
lea rbx, [rdx + rax]
movabs r15, 0x7a1435883d4d519d
add rbx, r8
and r14d, 0x1f
cmp r14, 8
jb 0x14016cd89
mov edi, r14d
shr rdi, 3
imul rax, rdi, 0xfffffffffffffff8
add r14, rax
mov r8d, 8
lea rcx, [rbp - 0x10]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [rbp - 0x10]
xor ecx, ecx
call fcn.14012aad8
xor rax, rbx
mov edx, 0x1b
mov rcx, rax
add rsi, 8
call sub.api_ms_win_crt_utility_l1_1_0.dll__rotl64
mov rbx, rax
imul rbx, r12
sub rbx, r15
sub rdi, 1
jne 0x14016cd48
mov edi, 4
movabs r15, 0x165667b19e3779f9
cmp r14, rdi
jb 0x14016cdce
mov r8d, edi
lea rcx, [rbp + 0x40]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [rbp + 0x40]
lea edx, [rdi + 0x13]
imul rcx, r12
add rsi, rdi
xor rcx, rbx
call sub.api_ms_win_crt_utility_l1_1_0.dll__rotl64
mov rbx, rax
imul rbx, r13
add rbx, r15
sub r14, rdi
test r14, r14
je 0x14016ce01
movabs rdi, 0x27d4eb2f165667c5
movzx ecx, byte [rsi]
mov edx, 0xb
imul rcx, rdi
inc rsi
xor rcx, rbx
call sub.api_ms_win_crt_utility_l1_1_0.dll__rotl64
mov rbx, rax
imul rbx, r12
sub r14, 1
jne 0x14016cddd
mov rax, rbx
shr rax, 0x21
xor rax, rbx
mov rbx, qword [rsp + 0x90]
imul rax, r13
mov rcx, rax
shr rcx, 0x1d
xor rcx, rax
imul rcx, r15
mov rax, rcx
shr rax, 0x20
xor rax, rcx
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret