Function at 0x14021e3b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
cmp rdx, 0xffffffffffffffff
je 0x14021e6d5
mov rsi, rcx
mov rax, rdx
or rax, 1
xor ecx, ecx
nop word cs:[rax + rax]
test cl, cl
jne 0x14021e3e0
and edx, 1
add rdx, rax
mov rcx, qword [rsi]
lea r8, [rcx + rcx]
movabs rax, 0x555555555555555
mov r9d, 4
nop word cs:[rax + rax]
mov r10d, dword [0x141588860]
add r10d, dword [0x141588864]
mov r11d, r10d
and r11d, 0x2a813dd6
add r11d, r11d
sub r10d, r11d
imul r10d, r10d, 0x4743b06e
add r10d, 0xa70db1f4
or r10d, 0x71123ab2
cmp r8, rdx
mov r12, rdx
cmova r12, r8
cmp r12, 5
cmovb r12, r9
cmp r10d, 0x97f27f
jb 0x14021e410
xor edi, edi
cmp r12, rax
setbe dil
mov edx, r12d
not edx
and edx, 0x18
mov rax, r12
and rax, 0xffffffffffffffe7
imul rax, rdx
mov edx, r12d
and edx, 0x18
mov rbx, r12
or rbx, 0x18
imul rbx, rdx
test rcx, rcx
je 0x14021e578
shl rcx, 3
lea rcx, [rcx + rcx*2]
nop dword [rax]
mov edx, dword [0x141588868]
sub edx, dword [0x14158886c]
or edx, 0xc7948a8b
imul r8, rdx, 0xbc7e203
shr r8, 0x20
sub edx, r8d
shr edx, 1
add edx, r8d
shr edx, 0x1d
cmp edx, 0xc749347b
je 0x14021e4a0
mov edx, dword [0x141588870]
imul edx, dword [0x141588874]
add edx, 0xb64775f7
or edx, 0x609c8b83
mov r8d, 0xb1cb0c21
imul r8, rdx
shr r8, 0x3e
cmp r8d, 0xcf77c999
jne 0x14021e510
mov rdx, qword [rsi + 8]
mov qword [rsp + 0x28], rdx
nop dword [rax]
mov edx, dword [0x141588878]
mov r8d, dword [0x14158887c]
mov r9d, edx
not r9d
and r9d, r8d
mov r10d, r8d
not r10d
and r10d, edx
imul r10d, r9d
mov r9d, edx
and r9d, r8d
or edx, r8d
imul edx, r9d
add edx, r10d
add edx, 0x1ec6a5f9
imul rdx, rdx, 0x4cecf3e1
shr rdx, 0x3e
imul edx, edx, 0x10f547f2
mov r8, qword [rsi + 8]
mov qword [rsp + 0x28], r8
cmp edx, 0x8f70fa9d
je 0x14021e510
mov qword [rsp + 0x38], rcx
mov r13d, 8
jmp 0x14021e57b
xor r13d, r13d
add rbx, rax
shl rdi, 3
mov eax, dword [0x141588880]
xor edx, edx
div dword [0x141588884]
or eax, 0x143b0f2b
add eax, 0xeca667fa
xor eax, 0x1352740b
cmp eax, 0x44342efe
jbe 0x14021e5c0
mov qword [rsp + 0x30], r13
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x28]
mov rdx, rdi
mov r8, rbx
call fcn.14020b2a0
lea r14, [rsp + 0x40]
lea r15, [rsp + 0x28]
nop word [rax + rax]
mov eax, dword [0x141588888]
xor edx, edx
div dword [0x14158888c]
mov ecx, eax
and ecx, 0x3dec157c
xor eax, 0xbdec157c
lea ebp, [rax + rcx*2]
add ebp, 0x8b92b11
mov eax, ebp
xor eax, 0x54197e7c
and ebp, 0x2be68183
add ebp, ebp
sub ebp, eax
mov qword [rsp + 0x30], r13
mov rcx, r14
mov rdx, rdi
mov r8, rbx
mov r9, r15
call fcn.1400316e0
cmp ebp, 0x34f6418b
je 0x14021e5d0
cmp qword [rsp + 0x40], 0
jne 0x14021e650
mov rax, qword [rsp + 0x48]
mov qword [rsi + 8], rax
mov qword [rsi], r12
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141588890]
sub eax, dword [0x141588894]
and eax, 0x1739b7fb
xor eax, 0x1400372a
add eax, 0x574f00ae
cmp eax, 0x8274899f
ja 0x14021e650
nop word cs:[rax + rax]
mov eax, dword [0x141588898]
and eax, dword [0x14158889c]
mov ecx, eax
and ecx, 0x16d2e2f2
mov edx, ecx
not edx
mov r8d, eax
and r8d, 0x69202b2
and edx, 0xb864e041
imul edx, r8d
and eax, 0x1040e040
or ecx, 0xb864e041
imul ecx, eax
add ecx, edx
mov eax, ecx
xor eax, 0xce41bf1e
and ecx, 0x31be40e0
add ecx, ecx
sub ecx, eax
cmp ecx, 0xb781c8bc
ja 0x14021e680
mov eax, dword [0x1415888a0]
sub eax, dword [0x1415888a4]
mov ecx, eax
not ecx
or eax, 0x4a411bf4
or ecx, 0xb5bee40b
and ecx, eax
not ecx
add ecx, 0x48110a8f
mov eax, ecx
not eax
and eax, 0xd3c09622
mov edx, ecx
and edx, 0x2c3f69dd
imul edx, eax
mov eax, ecx
and eax, 0xd3c09622
or ecx, 0xd3c09622
imul ecx, eax
add ecx, edx
cmp ecx, 0xe1bc1a3d
ja 0x14021e766
mov eax, dword [0x1415888a8]
or eax, dword [0x1415888ac]
mov ecx, eax
and ecx, 0x1b1be074
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x9b1be074
mov ecx, eax
xor ecx, 0xc0dc8010
xor eax, 0x3b227bc4
or ecx, 0x3f212d6b
and ecx, eax
ud2
ud2