Function at 0x14028a900
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov esi, r9d
mov r14d, dword [rsp + 0x90]
test ecx, ecx
je 0x14028a998
mov eax, esi
xor eax, 0x6dd50660
mov ecx, edx
mov edx, eax
call fcn.140178950
test al, 1
je 0x14028aa1b
movzx eax, byte [0x14062c46d]
cmp al, 0x75
je 0x14028ab91
mov cl, 0xa8
nop dword [rax + rax]
mov al, 0x8d
lock cmpxchg byte [0x14062c46d], cl
je 0x14028aadc
movzx edx, byte [0x14062d07c]
mov r8d, r14d
xor r8b, 0x8e
mov r9d, r14d
and r9b, 0xc
add r9b, r9b
add r9b, r8b
mov r8d, r9d
xor r8b, dl
and r9b, dl
add r9b, r9b
add r9b, r8b
add r9b, 0x74
cmp al, r9b
jne 0x14028a950
jmp 0x14028ab91
mov eax, r14d
xor eax, 0xef7780f5
add eax, dword [0x14062d078]
cmp edx, eax
jne 0x14028aa5d
movzx eax, byte [0x14062bd85]
cmp al, 0x7a
je 0x14028ac95
mov edi, esi
xor edi, 0x80edecfc
lea rbx, [rsp + 0x20]
xor r14d, 0xbaf01397
nop word cs:[rax + rax]
mov rcx, rbx
mov edx, edi
call fcn.140289580
cmp byte [rsp + 0x21], 0
jne 0x14028ab9d
movzx ecx, byte [rsp + 0x20]
mov eax, dword [0x14062d078]
mov edx, r14d
xor edx, eax
and eax, r14d
lea edx, [rdx + rax*2]
xor edx, esi
call fcn.14028a4e0
test al, 1
je 0x14028a9e0
jmp 0x14028ac95
xor esi, 0x8688dce0
mov ecx, esi
call fcn.14028a520
test al, 1
jne 0x14028ab73
movzx ecx, byte [0x14062d07c]
mov eax, r14d
xor al, 0x8e
add al, cl
mov edx, r14d
xor dl, 0x97
add dl, cl
lock cmpxchg byte [0x14062c48d], dl
je 0x14028ab2b
cmp al, 0xb6
jne 0x14028aa30
jmp 0x14028ab73
mov edx, r14d
xor edx, 0xd2483ff7
add edx, dword [0x14062d078]
xor edx, esi
lea rcx, [rsp + 0x20]
call fcn.14028a890
mov eax, r14d
xor al, 0xa1
add al, byte [0x14062d07c]
cmp byte [rsp + 0x20], al
je 0x14028ac84
mov bpl, 0xce
mov eax, esi
not eax
and eax, 0xf94a990b
mov edi, esi
xor edi, 0x6b566f4
or edi, eax
not edi
or edi, eax
nop word [rax + rax]
mov al, 0xed
lock cmpxchg byte [0x14062c3cd], bpl
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, edi
call fcn.140237bf0
test al, 1
jne 0x14028abf0
cmp bl, 0x12
jne 0x14028aab0
jmp 0x14028ac84
xor eax, eax
lea rcx, [0x14062c460]
lea rdx, [0x14053a2a0]
mov r8d, r14d
xor r8d, 0xef7780e0
nop word cs:[rax + rax]
movzx r9d, byte [rax + rdx]
xor byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x14062d078]
mov r11d, r8d
xor r11d, r10d
and r10d, r8d
lea r10d, [r11 + r10*2]
cmp r9d, r10d
jge 0x14028ab7f
inc rax
jmp 0x14028ab00
xor edx, edx
lea rax, [0x14062c480]
lea rcx, [0x14053a2c0]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
add edx, 0x256a6666
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
add edx, 0xda95999a
cmp edx, 0xd
jl 0x14028ab40
mov al, 0xb6
xchg byte [0x14062c48d], al
lea rax, [0x14062c480]
jmp 0x14028ac9c
xor r14b, 2
add r14b, byte [0x14062d07c]
xchg byte [0x14062c46d], r14b
lea rax, [0x14062c460]
jmp 0x14028ac9c
xor edi, edi
lea r14, [0x14062bd70]
xor esi, 0xd5ff0b34
lea rbx, [rsp + 0x20]
nop word cs:[rax + rax]
movzx ebp, byte [rdi + r14]
mov rcx, rdi
mov rdx, rbx
mov r8d, esi
call fcn.140287820
mov rax, qword [rsp + 0x20]
xor bpl, byte [rax]
mov byte [rdi + r14], bpl
lea eax, [rdi + 1]
cmp eax, 0x14
jg 0x14028ac8d
inc rdi
jmp 0x14028abc0
xor ebp, ebp
mov edi, esi
xor edi, 0x6a8e05a1
lea rbx, [rsp + 0x20]
lea r15, [0x14053a200]
xor esi, 0xab988913
lea r12, [0x14062c3c0]
nop word cs:[rax + rax]
mov ecx, ebp
mov rdx, rbx
mov r8d, edi
call fcn.1402884c0
mov rax, qword [rsp + 0x20]
movzx r13d, byte [rax]
movsxd rbp, ebp
lea rcx, [r15 + rbp]
mov rdx, rbx
mov r8d, esi
call fcn.14017dc80
add r13b, byte [rsp + 0x20]
mov byte [rbp + r12], r13b
mov eax, ebp
xor eax, 1
and ebp, 1
lea ebp, [rax + rbp*2]
cmp ebp, 0xd
jl 0x14028ac20
mov eax, r14d
not al
xor r14b, 0x5e
and al, 0xa1
or r14b, al
not r14b
or r14b, al
add r14b, byte [0x14062d07c]
xchg byte [0x14062c3cd], r14b
lea rax, [0x14062c3c0]
jmp 0x14028ac9c
mov al, 0x7a
xchg byte [0x14062bd85], al
lea rax, [0x14062bd70]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret