Function at 0x14015b999
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x14015bcfd
push rbx
push rbp
push rsi
push rdi
push r14
mov eax, reloc.WS2_32.dll_WSASetLastError
call fcn.1401f4630
sub rsp, rax
mov rax, qword [0x1402defb8]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r14, qword [rsp + 0xc0]
mov rbp, r9
mov qword [rsp + 0x60], r15
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
test rcx, rcx
je 0x14015b9e8
test rdx, rdx
je 0x14015b9e8
test r9, r9
je 0x14015b9e8
test r14, r14
jne 0x14015ba01
mov r8d, 0x2f
lea rdx, [0x140278088]
lea rcx, str.assertion_failed:_in__out__key__ivec
call fcn.140137580
mov r15d, dword [rsp + 0xc8]
cmp r15d, 1
jbe 0x14015ba28
mov r8d, 0x30
lea rdx, [0x140278088]
lea rcx, str.assertion_failed:__AES_ENCRYPT__enc____AES_DECRYPT__enc_
call fcn.140137580
test sil, 0xf
je 0x14015ba47
mov r8d, 0x31
lea rdx, [0x140278088]
lea rcx, str.assertion_failed:__length___AES_BLOCK_SIZE___0
call fcn.140137580
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0x68], r13
shr rsi, 4
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm7
cmp r15d, 1
jne 0x14015bb9c
cmp rbx, rdi
je 0x14015bb3e
movzx eax, r14b
or al, dil
or al, bl
test al, 3
jne 0x14015bb3e
lea rax, [r14 + 0x10]
mov rcx, r14
mov r12, rax
test rsi, rsi
je 0x14015bb2a
mov edx, dword [r14]
lea r15, [rdi + 8]
lea r13, [rbx + 8]
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [r13 - 8]
mov r8, rbp
xor eax, edx
lea rdx, [r15 - 8]
mov dword [r15 - 8], eax
mov eax, dword [r13 - 4]
xor eax, dword [rcx + 4]
mov dword [r15 - 4], eax
mov eax, dword [rcx + 8]
xor eax, dword [r13]
mov dword [r15], eax
mov eax, dword [r13 + 4]
xor eax, dword [rcx + 0xc]
lea rcx, [r15 - 8]
mov dword [r15 + 4], eax
call fcn.14015a170
mov eax, dword [r12]
lea rcx, [r15 - 8]
xor dword [r15 - 8], eax
mov eax, dword [r12 + 4]
xor dword [r15 - 4], eax
mov eax, dword [r12 + 8]
xor dword [r15], eax
mov eax, dword [r12 + 0xc]
lea r12, [r13 - 8]
xor dword [r15 + 4], eax
lea r13, [r13 + 0x10]
mov edx, dword [r15 - 8]
lea r15, [r15 + 0x10]
sub rsi, 1
jne 0x14015bab0
lea rax, [r14 + 0x10]
movups xmm0, xmmword [rcx]
movups xmmword [r14], xmm0
movups xmm0, xmmword [r12]
movups xmmword [rax], xmm0
jmp 0x14015bcca
movups xmm0, xmmword [r14]
movups xmm7, xmmword [r14 + 0x10]
test rsi, rsi
je 0x14015bb8e
nop dword [rax]
movups xmm6, xmmword [rbx]
mov r8, rbp
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x20]
pxor xmm0, xmm6
movdqa xmmword [rsp + 0x20], xmm0
call fcn.14015a170
lea rdi, [rdi + 0x10]
movdqa xmm0, xmm7
pxor xmm0, xmmword [rsp + 0x20]
movaps xmm7, xmm6
lea rbx, [rbx + 0x10]
movups xmmword [rdi - 0x10], xmm0
sub rsi, 1
jne 0x14015bb50
movups xmmword [r14], xmm0
movups xmmword [r14 + 0x10], xmm7
jmp 0x14015bcca
cmp rbx, rdi
je 0x14015bc6c
movzx eax, r14b
or al, dil
or al, bl
test al, 3
jne 0x14015bc6c
lea rax, [r14 + 0x10]
mov r12, r14
mov r15, rax
test rsi, rsi
je 0x14015bc5a
mov ecx, dword [rax]
lea r13, [rbx + 8]
add rdi, 8
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r13 - 8]
mov r8, rbp
xor eax, ecx
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], eax
mov eax, dword [r13 - 4]
xor eax, dword [r15 + 4]
mov dword [rsp + 0x24], eax
mov eax, dword [r15 + 8]
xor eax, dword [r13]
mov dword [rsp + 0x28], eax
mov eax, dword [r13 + 4]
xor eax, dword [r15 + 0xc]
lea r15, [rdi - 8]
mov rdx, r15
mov dword [rsp + 0x2c], eax
call fcn.140159b80
mov eax, dword [r12]
lea rdi, [rdi + 0x10]
xor dword [r15], eax
mov eax, dword [r12 + 4]
xor dword [rdi - 0x14], eax
mov eax, dword [r12 + 8]
xor dword [rdi - 0x10], eax
mov eax, dword [r12 + 0xc]
lea r12, [r13 - 8]
xor dword [rdi - 0xc], eax
lea r13, [r13 + 0x10]
mov ecx, dword [r15]
sub rsi, 1
jne 0x14015bbe0
lea rax, [r14 + 0x10]
movups xmm0, xmmword [r12]
movups xmmword [r14], xmm0
movups xmm0, xmmword [r15]
movups xmmword [rax], xmm0
jmp 0x14015bcca
movups xmm7, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
test rsi, rsi
je 0x14015bcc1
nop word [rax + rax]
movups xmm0, xmmword [rbx]
mov r8, rbp
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x20]
pxor xmm1, xmm0
movups xmm6, xmm0
movdqa xmmword [rsp + 0x20], xmm1
call fcn.140159b80
lea rdi, [rdi + 0x10]
movdqa xmm1, xmm7
pxor xmm1, xmmword [rsp + 0x20]
movaps xmm7, xmm6
lea rbx, [rbx + 0x10]
movups xmmword [rdi - 0x10], xmm1
sub rsi, 1
jne 0x14015bc80
movups xmmword [r14], xmm7
movups xmmword [r14 + 0x10], xmm1
movaps xmm6, xmmword [rsp + 0x50]
mov r12, qword [rsp + 0xb0]
mov r13, qword [rsp + 0x68]
movaps xmm7, xmmword [rsp + 0x40]
mov r15, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1401f4710
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret