Function at 0x1402b4a50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, rcx
mov rax, qword [0x140554790]
xor rax, rsp
mov qword [rsp + 0x40], rax
test rcx, rcx
sete cl
test rdx, rdx
sete al
or al, cl
test r9, r9
sete cl
xor r15d, r15d
test al, cl
jne 0x1402b4e48
xor al, cl
jne 0x1402b4e48
mov rdi, r9
mov r13, r8
mov rsi, rdx
cmp r8, 0x10
jb 0x1402b4c69
mov qword [rsp + 0x28], r13
shr r13, 4
lea r15, [r14 + 0x50]
lea rbp, [rdi + 0x10]
lea rbx, [rsi + 0x10]
nop word cs:[rax + rax]
lea r12, [rbp - 0x10]
mov eax, dword [0x140565ba4]
cmp eax, 0x4e
jg 0x1402b4b3b
nop
mov rax, qword [r14 + 0x20]
mov rcx, r14
mov rdx, r15
lea r8, [rsp + 0x30]
call qword [0x1404ee420]
mov eax, dword [rsp + 0x30]
xor eax, dword [rbx - 0x10]
mov dword [rbp - 0x10], eax
mov eax, dword [rsp + 0x34]
xor eax, dword [rbx - 0xc]
mov dword [rbp - 0xc], eax
mov eax, dword [rsp + 0x38]
xor eax, dword [rbx - 8]
mov dword [rbp - 8], eax
mov eax, dword [rsp + 0x3c]
xor eax, dword [rbx - 4]
mov dword [rbp - 4], eax
movups xmm0, xmmword [r12]
movups xmmword [r15], xmm0
mov eax, dword [0x140565ba0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1402b4c40
mov rax, qword [r14 + 0x20]
mov rcx, r14
mov rdx, r15
lea r8, [rsp + 0x30]
call qword [0x1404ee420]
movzx ecx, byte [rbx - 0x10]
mov eax, dword [rsp + 0x30]
mov edx, eax
shl edx, cl
mov r8d, eax
sub r8d, edx
imul r8d, edx
mov ecx, eax
sub ecx, r8d
imul ecx, r8d
sub eax, ecx
imul eax, ecx
sub ecx, eax
mov edx, eax
shl edx, cl
mov ecx, edx
sub ecx, eax
xor ecx, edx
mov dword [rbp - 0x10], ecx
mov ecx, dword [rbx - 0xc]
mov eax, dword [rsp + 0x34]
sub eax, ecx
imul eax, ecx
mov edx, eax
neg edx
mov r8d, edx
xor r8d, ecx
and ecx, edx
lea ecx, [r8 + rcx*2]
shl eax, cl
imul edx, eax
mov ecx, eax
shl edx, cl
xor edx, eax
mov dword [rbp - 0xc], edx
mov eax, dword [rbx - 8]
mov edx, dword [rsp + 0x38]
mov r8d, edx
sub r8d, eax
imul r8d, eax
mov ecx, edx
sub ecx, r8d
imul ecx, r8d
mov eax, edx
shl eax, cl
mov ecx, eax
shl edx, cl
sub eax, edx
xor eax, edx
mov dword [rbp - 8], eax
mov eax, dword [rbx - 4]
mov edx, dword [rsp + 0x3c]
mov ecx, edx
sub ecx, eax
imul ecx, eax
sub edx, ecx
imul edx, ecx
mov eax, dword [0x140536fb0]
sub eax, edx
shl edx, cl
add eax, 0x25bed5f3
imul eax, edx
mov ecx, eax
neg ecx
mov r8d, eax
sub r8d, edx
imul r8d, edx
mov edx, ecx
xor edx, r8d
and r8d, ecx
lea ecx, [rdx + r8*2]
sub ecx, eax
mov edx, ecx
xor edx, ecx
not edx
and edx, eax
xor edx, ecx
mov dword [rbp - 4], edx
movups xmm0, xmmword [r12]
movups xmmword [r15], xmm0
jmp 0x1402b4ae0
cmp r13, 1
je 0x1402b4c5e
add rdi, 0x10
add rsi, 0x10
add rbp, 0x10
add rbx, 0x10
dec r13
jmp 0x1402b4ad0
mov rsi, rbx
mov rdi, rbp
mov r13, qword [rsp + 0x28]
mov rbx, r13
and rbx, 0xf
je 0x1402b4e45
movabs r12, 0xd8eb721b653866d5
mov rax, qword [r14 + 0x20]
lea r15, [r14 + 0x50]
lea r8, [rsp + 0x30]
mov rcx, r14
mov rdx, r15
call qword [0x1404ee420]
mov eax, r13d
and eax, 3
cmp ebx, 4
jae 0x1402b4d3c
xor ecx, ecx
mov rdx, qword [0x140536fb8]
lea r8, [r12 - 1]
mov r9, r8
xor r9, rdx
and r8, rdx
lea rdx, [r9 + r8*2]
cmp rax, rdx
je 0x1402b4d1e
movabs rdx, 0x82684d9aa527e969
xor r8d, r8d
lea r9, [r12 + rdx]
nop dword [rax]
movzx r10d, byte [rsp + rcx + 0x30]
xor r10b, byte [rsi + rcx]
mov byte [rdi + rcx], r10b
mov r10, qword [0x140536fb8]
lea r11, [r9 + r10]
sub r11, rdx
add rcx, r11
mov r11, r12
xor r11, r10
and r10, r12
lea r10, [r11 + r10*2]
mov r11, r8
xor r11, r10
and r8, r10
lea r8, [r11 + r8*2]
cmp r8, rax
jne 0x1402b4ce0
mov eax, dword [0x140565ba4]
mov ecx, 0x25bed630
add ecx, dword [0x140536fb0]
cmp eax, ecx
jl 0x1402b4dd0
jmp 0x1402b4dda
movabs rdx, 0x7d58e24bc9862285
mov r8, rbx
sub r8, rax
mov ecx, 4
xor r9d, r9d
mov r10, r12
sub r10, rdx
nop word [rax + rax]
movzx r11d, byte [rsp + rcx + 0x2c]
xor r11b, byte [rsi + rcx - 4]
mov byte [rdi + rcx - 4], r11b
movzx r11d, byte [rsp + rcx + 0x2d]
xor r11b, byte [rsi + rcx - 3]
mov byte [rdi + rcx - 3], r11b
movzx r11d, byte [rsp + rcx + 0x2e]
xor r11b, byte [rsi + rcx - 2]
mov byte [rdi + rcx - 2], r11b
movzx r11d, byte [rsp + rcx + 0x2f]
xor r11b, byte [rsi + rcx - 1]
mov byte [rdi + rcx - 1], r11b
cmp byte [0x140565ba8], 0
jne 0x1402b4caa
mov r11, qword [0x140536fb8]
add r11, r10
add r11, rdx
add r9, r11
add r9, 3
cmp r9, r8
je 0x1402b4caa
add rcx, 4
jmp 0x1402b4d60
cmp qword [0x140564d38], 0
je 0x1402b4df0
mov al, 1
nop dword [rax]
mov dword [0x140565ba4], 0x1c
test al, al
je 0x1402b4de0
jmp 0x1402b4dd0
add rdi, rbx
cmp r13, 0xf
ja 0x1402b4e3d
movabs rax, 0xe838c4beade5f6be
mov rdx, qword [0x140564d38]
sub rdx, r13
sub rdx, rax
lea rbx, [rax + rdx]
add rbx, 0x10
lea rdx, [r15 + r13]
mov rcx, r15
mov r8, rbx
call fcn.14040bf30
add r15, rbx
sub rdi, r13
mov rcx, r15
mov rdx, rdi
mov r8, r13
call fcn.14040bf30
jmp 0x1402b4e45
movups xmm0, xmmword [rdi - 0x10]
movups xmmword [r15], xmm0
mov r15, r13
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1403e4010
mov rax, r15
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret