Function at 0x14019d140
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
mov eax, 0x10e0
call fcn.1401d9390
sub rsp, rax
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x1050], xmm6
mov qword [rbp + 0x1048], 0xfffffffffffffffe
cmp r9, 0x20
ja 0x14019d448
mov rdi, r9
movabs rax, 0x101010000
bt rax, r9
jae 0x14019d448
cmp qword [rbp + 0x10b8], 0xc
jne 0x14019d42e
mov rbx, r8
mov r14b, dl
mov rsi, rcx
mov rax, qword [rbp + 0x10b0]
mov byte [rbp + 0x100e], 0
mov word [rbp + 0x100c], 0
mov rcx, qword [rax]
mov qword [rbp + 0x1000], rcx
mov eax, dword [rax + 8]
mov dword [rbp + 0x1008], eax
mov byte [rbp + 0x100f], 1
mov qword [rsp + 0x20], 0x10
lea r9, [rbp + 0x1000]
mov ecx, edx
mov rdx, r8
mov r8, rdi
call fcn.14019dbd0
mov rcx, rax
xorps xmm6, xmm6
movaps xmmword [rbp + 0xff0], xmm6
movaps xmmword [rbp + 0xfe0], xmm6
mov qword [rbp + 0x1028], rdx
mov rax, qword [rdx + 0x18]
mov byte [rbp + 0x1047], 1
mov qword [rsp + 0x20], 0x10
lea rdx, [rbp + 0xff0]
lea r9, [rbp + 0xfe0]
mov r8d, 0x10
mov qword [rbp + 0x1020], rcx
call rax
movaps xmmword [rbp + 0x1010], xmm6
mov byte [rbp + 0x1047], 1
mov qword [rsp + 0x20], 0x10
lea r9, [rbp + 0xff0]
mov ecx, r14d
mov rdx, rbx
mov r8, rdi
call fcn.14019dbd0
mov qword [rbp + 0x1030], rdx
mov r10, qword [rdx + 0x18]
mov byte [rbp + 0x1046], 1
mov qword [rsp + 0x20], 0x10
lea rdx, [rbp + 0xff0]
lea r9, [rbp + 0x1010]
mov r8d, 0x10
mov qword [rbp + 0x1038], rax
mov rcx, rax
call r10
mov rdi, qword [rbp + 0x10c8]
mov rbx, qword [rbp + 0x10c0]
lea rcx, [rbp - 0x50]
mov r8d, 0x800
mov dl, 1
call sub.VCRUNTIME140.dll_memset
mov eax, dword [rbp + 0x1010]
mov ecx, dword [rbp + 0x1014]
bswap eax
bswap ecx
mov r9d, dword [rbp + 0x1018]
bswap r9d
mov edx, dword [rbp + 0x101c]
bswap edx
mov r8d, 0xc
mov r10d, eax
nop word cs:[rax + rax]
mov dword [rbp + r8 - 0x5c], edx
mov dword [rbp + r8 - 0x58], r9d
mov dword [rbp + r8 - 0x54], ecx
mov dword [rbp + r8 - 0x50], eax
mov r11d, edx
and r11d, 1
neg r11d
and r11d, 0xe1000000
shr r10d, 1
shld eax, ecx, 0x1f
shld ecx, r9d, 0x1f
xor r10d, r11d
shrd edx, r9d, 1
add r8, 0x10
mov r9d, ecx
mov ecx, eax
mov eax, r10d
cmp r8, 0x80c
jne 0x14019d300
lea r14, [rbp + 0x7b0]
lea rdx, [rbp - 0x50]
mov r8d, 0x800
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rbp + 0xfb0]
lea rdx, [rbp + 0xfc0]
lea rax, [rbp + 0xfc8]
mov byte [rbp + 0xfd9], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0xfb0], xmm0
movups xmmword [rbp + 0xfb9], xmm0
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
mov r8, rbx
mov r9, rdi
call fcn.14019f980
lea rcx, [rsi + 0x20]
lea rdx, [rbp + 0x7b0]
mov r8d, 0x830
call sub.VCRUNTIME140.dll_memcpy
movaps xmm0, xmmword [rbp + 0xfe0]
mov rax, qword [rbp + 0x1020]
mov qword [rsi + 0x10], rax
mov rax, qword [rbp + 0x1028]
mov qword [rsi + 0x18], rax
mov byte [rsi + 0x850], 0
movups xmmword [rsi], xmm0
mov rcx, qword [rbp + 0x1038]
mov rax, qword [rbp + 0x1030]
call qword [rax]
mov rax, qword [rbp + 0x1030]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x14019d416
mov r8, qword [rax + 0x10]
mov rcx, qword [rbp + 0x1038]
call fcn.140016e90
mov rax, rsi
movaps xmm6, xmmword [rbp + 0x1050]
add rsp, 0x10e0
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
lea rcx, [0x1402acb9a]
lea r8, [0x1402acc38]
mov edx, 0x23
call fcn.1401e1be0
ud2
lea rcx, str.assertion_failed:_key.len____16__key.len____24__key.len____32
lea r8, [0x1402acc98]
mov edx, 0x47
call fcn.1401e1be0
ud2