Function at 0x14028cad0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r15d, dword [rsp + 0xa0]
test ecx, ecx
je 0x14028cb65
test edx, edx
je 0x14028cbd9
mov edx, r15d
xor edx, 0xc9ab9fa2
mov ecx, r15d
xor ecx, 0x7e085524
add ecx, dword [0x14062d078]
call fcn.14028ad10
test al, 1
jne 0x14028cd6d
nop dword [rax]
movzx ecx, byte [0x14062d07c]
mov edx, r15d
not dl
mov r8d, edx
and r8b, 0xcb
mov eax, r15d
and al, 0x34
or al, r8b
add al, cl
and dl, 0xec
mov r8d, r15d
and r8b, 0x13
or r8b, dl
add r8b, cl
lock cmpxchg byte [0x14062be28], r8b
je 0x14028ccce
cmp al, 0x94
jne 0x14028cb20
jmp 0x14028cd6d
mov eax, r15d
xor eax, 0x9f400016
mov esi, r15d
not esi
mov r8d, esi
and r8d, r15d
xor r8d, eax
mov ecx, edx
mov edx, 0xb33d49dc
call fcn.140178950
test al, 1
je 0x14028cc35
movzx ecx, byte [0x14062c75d]
mov r8d, r15d
xor r8d, 0x4bd6768e
add r8d, dword [0x14062d078]
xor r8d, r15d
mov edx, 0x93df3a79
call fcn.14028ba40
test al, 1
jne 0x14028cef8
mov cl, 0x14
nop
mov al, 0x6c
lock cmpxchg byte [0x14062c75d], cl
je 0x14028ce3f
cmp al, 0x58
jne 0x14028cbc0
jmp 0x14028cef8
movzx eax, byte [0x14062c3ed]
cmp al, 0x30
je 0x14028ce33
mov bl, 0xed
mov edi, r15d
xor edi, 0xe005b5fd
lea rsi, [rsp + 0x30]
nop dword [rax + rax]
mov al, 0x48
lock cmpxchg byte [0x14062c3ed], bl
sete dl
mov dword [rsp + 0x20], edi
mov ecx, eax
mov r8, rsi
mov r9d, 0xe76d715d
call fcn.1400aabc0
test al, 1
jne 0x14028cd79
cmp byte [rsp + 0x30], 0x30
jne 0x14028cc00
jmp 0x14028ce33
movzx eax, byte [0x14062be06]
cmp al, 0xb
je 0x14028cf54
mov bl, 0xbf
mov eax, r15d
xor eax, 0x306b4e95
and eax, esi
mov ecx, r15d
xor ecx, 0xcf94b16a
and esi, 0x306b4e95
or esi, ecx
not esi
or esi, eax
lea rdi, [rsp + 0x30]
mov ebp, r15d
xor ebp, 0xcf80b3d
nop word cs:[rax + rax]
mov al, 0x27
lock cmpxchg byte [0x14062be06], bl
sete dl
mov dword [rsp + 0x20], esi
mov ecx, eax
mov r8, rdi
mov r9d, 0x3308d06d
call fcn.1400aabc0
test al, 1
jne 0x14028cf01
movzx ecx, byte [rsp + 0x30]
mov r8d, dword [0x14062d078]
add r8d, ebp
xor r8d, r15d
mov edx, 0xac4ecba5
call fcn.14028dac0
test al, 1
je 0x14028cc80
jmp 0x14028cf54
xor esi, esi
mov eax, r15d
not eax
mov ecx, eax
and ecx, 0xcb3f7db8
mov edi, r15d
and edi, 0x34c08247
or edi, ecx
and eax, 0x159dfe45
mov ebp, r15d
xor ebp, 0x159dfe45
and ebp, r15d
or ebp, eax
lea rbx, [rsp + 0x30]
lea r14, [0x140539c70]
lea r12, [0x14062be10]
nop
mov r8d, dword [0x14062d078]
add r8d, ebp
mov ecx, esi
mov rdx, rbx
mov r9d, edi
call fcn.14028ca40
movzx eax, byte [rsp + 0x30]
movzx ecx, byte [rsi + r14]
mov edx, eax
not dl
mov r8d, edx
xor r8b, cl
not cl
and al, cl
or al, r8b
not al
xor dl, cl
and dl, cl
or dl, al
mov byte [rsi + r12], dl
lea eax, [rsi + 1]
cmp eax, 0x17
jg 0x14028cd5b
inc rsi
jmp 0x14028cd10
xor r15b, 0x5a
add r15b, byte [0x14062d07c]
xchg byte [0x14062be28], r15b
lea rax, [0x14062be10]
jmp 0x14028cf5b
xor ebx, ebx
mov eax, r15d
not eax
mov ecx, eax
and ecx, 0x1235af69
mov esi, r15d
and esi, 0xedca5096
or esi, ecx
lea rdi, [rsp + 0x30]
lea r14, [0x14062c3e0]
lea r12, [0x14053a220]
mov ecx, eax
and ecx, 0x85fb1ce3
mov r13d, r15d
xor r13d, 0x85fb1ce3
and r13d, r15d
or r13d, ecx
and eax, 0x6ceb84ab
mov ebp, r15d
and ebp, 0x93147b54
or ebp, eax
nop
mov ecx, ebx
mov rdx, rdi
mov r8d, 0xd187a038
mov r9d, esi
call fcn.1400a9970
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + r14]
movsxd rcx, ebx
movzx edx, byte [rcx + r12]
not al
mov r8d, eax
and r8b, dl
not dl
xor al, dl
and al, dl
or al, r8b
mov byte [rcx + r14], al
mov r8d, dword [0x14062d078]
lea r9d, [r8 + r13]
xor r9d, r15d
add r8d, ebp
mov rdx, rdi
call fcn.14028acc0
mov ebx, dword [rsp + 0x30]
test al, 1
je 0x14028cdd0
mov al, 0x30
xchg byte [0x14062c3ed], al
lea rax, [0x14062c3e0]
jmp 0x14028cf5b
xor r14d, r14d
lea r12, [0x14062c750]
mov edi, r15d
xor edi, 0x79550e39
lea r13, [0x14053a590]
mov ebp, r15d
xor ebp, 0x4b20e745
mov ebx, r15d
xor ebx, 0x5e62aee5
nop dword [rax + rax]
movsxd r14, r14d
lea rcx, [r12 + r14]
lea rdx, [rsp + 0x30]
mov r8d, 0x29120677
mov r9d, edi
call fcn.14017dc80
movzx eax, byte [rsp + 0x30]
xor al, byte [r14 + r13]
mov byte [r14 + r12], al
mov eax, r14d
xor eax, 1
mov ecx, r14d
xor ecx, 0x7ffffffe
and ecx, r14d
add ecx, ecx
mov edx, eax
xor edx, ecx
and ecx, eax
lea r14d, [rdx + rcx*2]
mov edx, dword [0x14062d078]
add edx, ebx
mov ecx, r14d
mov r8d, ebp
call fcn.14028da90
test al, 1
je 0x14028ce70
mov eax, esi
and eax, 0xed15e036
mov ecx, r15d
and ecx, 0x12ea1fc9
or ecx, eax
add ecx, dword [0x14062d078]
xor esi, r15d
and esi, ecx
xor esi, r15d
mov ecx, 0x9a0249b0
mov edx, esi
call fcn.14028e060
lea rax, [0x14062c750]
jmp 0x14028cf5b
xor eax, eax
lea rcx, [0x14062be00]
lea rdx, [0x140539c60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 5
jg 0x14028cf4c
inc rax
jmp 0x14028cf20
mov al, 0xb
xchg byte [0x14062be06], al
lea rax, [0x14062be00]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret