Function at 0x14021b7d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x40
test ecx, ecx
je 0x14021b889
mov ecx, edx
mov edx, 0xf27101d1
mov r8d, 0xa3f4ed75
call fcn.1400a9ce0
test al, 1
je 0x14021b912
mov ecx, dword [0x140564f08]
mov edx, 0x752b1fab
mov r8d, 0x877f9219
call fcn.14021cba0
jmp 0x14021b836
movzx eax, byte [0x14051eefc]
mov ecx, 0x24ef8a75
mov edx, 0xfba1abc4
call fcn.14021cb60
test al, 1
je 0x14021b820
movzx eax, byte [0x14051eefc]
mov ecx, 0xe353e11
add ecx, dword [0x14051f240]
lea rdx, [fcn.14021b7d0]
add edx, edx
add edx, 0xa0
xor edx, ecx
not edx
test edx, ecx
jne 0x14021b820
cmp al, 0x67
je 0x14021baca
mov cl, 0xeb
nop dword [rax]
mov al, 0x55
lock cmpxchg byte [0x14051eefc], cl
je 0x14021ba20
cmp al, 0x67
jne 0x14021b870
jmp 0x14021baca
test edx, edx
je 0x14021b977
movzx eax, byte [0x14051f02d]
cmp al, 0x33
je 0x14021bba1
mov cl, 0x81
xor edx, edx
mov r8d, 0xe353e11
lea rax, [fcn.14021b7d0]
lea r9d, [rax + rax]
add r9d, 0xd60
jmp 0x14021b8c8
cmp al, 0x33
je 0x14021bba1
mov al, 0x14
lock cmpxchg byte [0x14051f02d], cl
je 0x14021baf1
nop dword [rax + rax]
test dl, dl
jne 0x14021b903
mov r10d, dword [0x14051f240]
add r10d, r8d
mov r11d, r9d
xor r11d, r10d
or r10d, r9d
not r10d
or r10d, r11d
cmp r10d, 0xffffffff
je 0x14021b8c0
mov r10d, dword [0x140564f0c]
cmp r10d, 0x5f
jge 0x14021b8e0
jmp 0x14021b8e4
movzx eax, byte [0x14051ee85]
cmp al, 0x3f
je 0x14021bae5
lea rsi, [rsp + 0x30]
xor edi, edi
nop dword [rax + rax]
mov rcx, rsi
mov edx, 0xa7b5be33
mov r8d, 0x4becb7cf
call fcn.14021cb80
test al, 1
jne 0x14021ba48
movzx ebx, byte [rsp + 0x30]
mov rcx, rsi
mov edx, 0x6e55bfff
mov r8d, 0xf85bbc68
call fcn.1400aaf10
cmp dword [rsp + 0x30], 0
test dil, dil
jne 0x14021b968
cmp bl, 0x3f
jne 0x14021b930
jmp 0x14021bae5
movzx eax, byte [0x14051efba]
movzx ecx, byte [0x14051f250]
add cl, 0xf2
cmp al, cl
je 0x14021bc43
mov cl, 0x15
lea rax, [fcn.14021b7d0]
lea edx, [rax + rax]
add edx, 0x1f60
mov r8d, edx
not r8d
nop dword [rax + rax]
mov al, 0xa9
lock cmpxchg byte [0x14051efba], cl
je 0x14021bbe0
mov r9d, dword [0x14051f240]
lea r10d, [r9 + 0xe353e11]
mov r11d, edx
xor r11d, r10d
not r10d
and r10d, r8d
or r10d, r11d
not r10d
add r9d, 0xe353e10
cmp r10d, r9d
mov r9d, dword [0x14051f240]
mov r10d, r9d
xor r10d, 0xe353e10
and r9d, 0xe353e10
add r9d, r9d
add r9d, r10d
jne 0x14021b9ea
movzx r9d, byte [0x14051f250]
add r9b, 0xf2
cmp al, r9b
jne 0x14021b9b0
jmp 0x14021bc43
xor eax, eax
lea rcx, [0x14051eef0]
lea rdx, [0x1404321c0]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xb
jg 0x14021bac2
inc rax
jmp 0x14021ba30
xor esi, esi
lea rdi, [rsp + 0x3c]
lea rbx, [rsp + 0x30]
lea r14, [0x140432140]
lea r15, [0x14051ee70]
nop word cs:[rax + rax]
mov eax, dword [0x14051f240]
lea r9d, [rax - 0x3361da16]
mov ecx, eax
xor ecx, 0x5ba68be9
and eax, 0x5ba68be9
lea eax, [rcx + rax*2]
add eax, 0xc4213a9b
mov dword [rsp + 0x20], eax
mov ecx, esi
mov rdx, rdi
mov r8, rbx
call fcn.14021cb20
movzx eax, byte [rsp + 0x3c]
mov rcx, qword [rsp + 0x30]
add al, byte [rcx + r14]
mov byte [rsi + r15], al
lea eax, [rsi + 1]
cmp eax, 0x14
jg 0x14021bad6
inc rsi
jmp 0x14021ba70
mov al, 0x67
xchg byte [0x14051eefc], al
lea rax, [0x14051eef0]
jmp 0x14021bc4a
mov ecx, 0x15f10248
mov edx, 0x591c5eaa
call fcn.14021cb40
lea rax, [0x14051ee70]
jmp 0x14021bc4a
xor edx, edx
lea rax, [0x14051f020]
lea rcx, [0x1404322f0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
not r8d
mov r9d, r8d
and r9d, 1
mov r10d, edx
and r10d, 0xfffffffe
or r10d, r9d
xor edx, 1
and r8d, 0x7ffffffe
or r8d, edx
not r8d
lea edx, [r10 + r8*2]
cmp edx, 0xd
jl 0x14021bb10
mov al, 1
nop
mov ecx, dword [0x140564f0c]
cmp ecx, 0x38
jg 0x14021bb6c
mov ecx, dword [0x140564f08]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x14021bb72
test al, al
je 0x14021bb50
jmp 0x14021bb5b
mov al, 0x33
xchg byte [0x14051f02d], al
jmp 0x14021bba1
mov eax, dword [0x140564f0c]
mov ecx, dword [0x14051f240]
mov edx, ecx
xor edx, 0xe353e1c
and ecx, 0xe353e1c
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x14021bbac
mov eax, dword [0x140564f0c]
cmp eax, 0xc
jg 0x14021bb80
mov eax, dword [0x140564f08]
mov ecx, eax
sub ecx, dword [0x14051f240]
add ecx, 0xf1cac1ef
imul ecx, eax
mov edx, 0x2e326a0f
mov r8d, 0x251d7a87
call fcn.140178560
test al, 1
je 0x14021bb80
lea rax, [0x14051f020]
jmp 0x14021bc4a
xor eax, eax
lea rcx, [0x14051ef90]
lea rdx, [0x140432260]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x29
jg 0x14021bc08
inc rax
jmp 0x14021bbf0
lea rcx, [rsp + 0x3c]
lea rdx, [rsp + 0x30]
mov r8d, 0xc69198f2
mov r9d, 0x7dc90075
call fcn.14021d1d0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14021bc30
mov ecx, 0x6c5fa5b2
mov edx, 0xc69198f2
call fcn.14021cb50
lea rax, [0x14051ef90]
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret