Function at 0x1401afb20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov edi, r9d
mov esi, dword [rsp + 0x90]
test ecx, ecx
je 0x1401afbf2
test edx, edx
je 0x1401afcac
movzx eax, byte [0x140547303]
cmp al, 0x2c
je 0x1401afd8b
mov eax, esi
not eax
mov ecx, esi
xor ecx, 0x6aea7bf1
and ecx, eax
and eax, 0xe2fdfcea
mov ebp, esi
and ebp, 0x1d020315
or ebp, eax
mov r14d, esi
and r14d, 0x9515840e
or r14d, ecx
lea rbx, [rsp + 0x28]
nop word cs:[rax + rax]
movzx ecx, byte [0x140549fc8]
mov eax, esi
xor al, 0x3f
add al, cl
mov edx, esi
xor dl, 0xbd
add dl, cl
lock cmpxchg byte [0x140547303], dl
sete dl
mov ecx, dword [0x140549fb8]
add ecx, ebp
mov r9d, ecx
xor r9d, ecx
not r9d
and r9d, edi
xor r9d, ecx
mov dword [rsp + 0x20], r14d
mov ecx, eax
mov r8, rbx
call fcn.1401afe80
test al, 1
jne 0x1401afd29
mov eax, esi
xor al, 0xec
add al, byte [0x140549fc8]
cmp byte [rsp + 0x28], al
jne 0x1401afb90
jmp 0x1401afd8b
test edx, edx
je 0x1401afcf6
movzx eax, byte [0x14054740b]
nop word cs:[rax + rax]
cmp al, 0x51
je 0x1401afca0
movzx ecx, byte [0x140549fc8]
mov eax, esi
xor al, 0x52
add al, cl
mov edx, esi
xor dl, 0xa4
add dl, cl
lock cmpxchg byte [0x14054740b], dl
jne 0x1401afc10
xor eax, eax
lea r15, [0x1405473f0]
mov ecx, edi
not ecx
xor edi, 0x56bfd9d
and ecx, 0xfa940262
or edi, ecx
not edi
or edi, ecx
xor esi, 0xd1d790fd
lea rbx, [rsp + 0x28]
movsxd r14, eax
movzx ebp, byte [r14 + r15]
mov ecx, r14d
mov rdx, rbx
mov r8d, edi
mov r9d, esi
call fcn.1401b1720
mov rax, qword [rsp + 0x28]
add bpl, byte [rax]
mov byte [r14 + r15], bpl
mov eax, r14d
xor eax, 1
and r14d, 1
lea eax, [rax + r14*2]
cmp eax, 0x1b
jl 0x1401afc60
mov al, 0x51
xchg byte [0x14054740b], al
lea rax, [0x1405473f0]
jmp 0x1401afe67
movzx eax, byte [0x140547382]
cmp al, 0xa1
je 0x1401afe24
mov r14b, 0x6b
mov ebx, edi
xor ebx, 0x2d55963d
mov ebp, esi
xor ebp, 0x81542e6
nop
mov al, 0x32
lock cmpxchg byte [0x140547382], r14b
je 0x1401afd97
mov ecx, eax
mov edx, ebx
mov r8d, ebp
call fcn.1401b15d0
test al, 1
je 0x1401afcd0
jmp 0x1401afe24
movzx eax, byte [0x140547484]
cmp al, 0x9c
je 0x1401afe60
mov cl, 0xc2
nop word [rax + rax]
mov al, 0x8c
lock cmpxchg byte [0x140547484], cl
je 0x1401afe2d
cmp al, 0x9c
jne 0x1401afd10
jmp 0x1401afe60
xor edx, edx
lea rax, [0x140547300]
lea rcx, [0x140468f90]
xor esi, 0xee097058
nop
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, dword [0x140549fb8]
add r8d, esi
mov r9d, edx
xor r9d, r8d
not edx
not r8d
and r8d, edx
or r8d, r9d
not r8d
lea edx, [r9 + r8*2]
cmp edx, 3
jl 0x1401afd40
mov al, 0x2c
xchg byte [0x140547303], al
lea rax, [0x140547300]
jmp 0x1401afe67
xor ebx, ebx
xor edi, 0x9303477e
mov eax, esi
not eax
mov ecx, eax
and ecx, 0x12a4e6fb
mov ebp, esi
and ebp, 0xed5b1904
or ebp, ecx
lea r14, [rsp + 0x28]
lea r15, [0x140469000]
lea r12, [0x140547370]
and eax, 0xee09704b
and esi, 0x11f68fb4
or esi, eax
nop word cs:[rax + rax]
mov ecx, ebx
mov rdx, r14
mov r8d, edi
mov r9d, ebp
call fcn.1401aff30
mov rax, qword [rsp + 0x28]
movzx ecx, byte [rbx + r15]
mov edx, ecx
xor dl, cl
not dl
and dl, byte [rax]
xor dl, cl
mov byte [rbx + r12], dl
lea eax, [rbx + 1]
mov ecx, dword [0x140549fb8]
add ecx, esi
cmp eax, ecx
jge 0x1401afe1c
inc rbx
jmp 0x1401afde0
mov al, 0xa1
xchg byte [0x140547382], al
lea rax, [0x140547370]
jmp 0x1401afe67
xor eax, eax
lea rcx, [0x140547470]
lea rdx, [0x140469100]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x13
jg 0x1401afe58
inc rax
jmp 0x1401afe40
mov al, 0x9c
xchg byte [0x140547484], al
lea rax, [0x140547470]
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret