Function at 0x1401be1d0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov eax, 0xaa8bd721
mov r8d, dword [0x1405ad48c]
add r8d, eax
cmp ecx, r8d
jne 0x1401be240
nop word [rax + rax]
mov ecx, dword [0x140612a58]
lea r8d, [rcx - 1]
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x1405ad48c]
add ecx, eax
cmp r8d, ecx
jne 0x1401be233
mov ecx, dword [0x140612a58]
mov r8d, 0xf0316385
sub r8d, ecx
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x1405ad48c]
add ecx, eax
cmp r8d, ecx
je 0x1401be26c
mov ecx, dword [0x140612a5c]
cmp ecx, 0x1f
jge 0x1401be1f0
jmp 0x1401be20f
test edx, edx
je 0x1401be2a5
mov ecx, dword [0x140612a58]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xaa8bd723
add ecx, dword [0x1405ad48c]
xor edx, edx
div ecx
test edx, edx
jne 0x1401be561
jmp 0x1401be549
test edx, edx
je 0x1401be2d9
movzx eax, byte [0x1405acedd]
cmp al, 0x6c
je 0x1401be37f
mov cl, 0x84
nop word cs:[rax + rax]
mov al, 0x7d
lock cmpxchg byte [0x1405acedd], cl
je 0x1401be313
cmp al, 0x6c
jne 0x1401be290
jmp 0x1401be37f
movzx eax, byte [0x1405acd3f]
cmp al, 0x28
je 0x1401be510
mov cl, 0xb2
nop word cs:[rax + rax]
mov al, 0x1b
lock cmpxchg byte [0x1405acd3f], cl
je 0x1401be38b
cmp al, 0x28
jne 0x1401be2c0
jmp 0x1401be510
movzx eax, byte [0x1405acead]
cmp al, 0x6d
je 0x1401be53e
mov cl, 0x31
nop word [rax + rax]
mov al, 0x83
lock cmpxchg byte [0x1405acead], cl
je 0x1401be46d
movzx edx, byte [0x1405ad488]
add dl, 0x9b
cmp al, dl
jne 0x1401be2f0
jmp 0x1401be53e
xor eax, eax
lea rcx, [0x1405aced0]
lea rdx, [0x1404cf9a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
not r11b
and r10b, r9b
and r11b, r8b
mov r8d, r11d
xor r8b, r11b
not r8b
and r8b, r10b
and r10b, r11b
xor r8b, r11b
or r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x1401be377
inc rax
jmp 0x1401be330
mov al, 0x6c
xchg byte [0x1405acedd], al
lea rax, [0x1405aced0]
jmp 0x1401be545
xor r8d, r8d
lea r9, [0x1405acd30]
lea r10, [0x1404cf800]
mov r11d, 0xaa8bd738
mov esi, 0xaa8bd76c
jmp 0x1401be3bd
inc r8d
cmp r8d, 0xf
jge 0x1401be501
mov eax, dword [0x140612a5c]
movsxd rdi, r8d
cmp eax, 0x54
jg 0x1401be3f0
nop dword [rax + rax]
movzx eax, byte [rdi + r10]
add byte [rdi + r9], al
mov eax, dword [0x140612a5c]
mov ecx, dword [0x1405ad48c]
add ecx, r11d
cmp eax, ecx
jl 0x1401be3b0
nop dword [rax]
movzx eax, byte [rdi + r9]
movzx ecx, byte [rdi + r10]
mov dl, 0x9a
sub dl, al
sub al, cl
mul cl
mov ecx, eax
mov eax, edx
xor al, cl
and dl, cl
add dl, dl
add dl, al
add dl, 0x66
shl dl, cl
sub cl, dl
mov bl, 0x14
sub bl, cl
mov eax, ebx
xor al, 0xec
and bl, 0x6c
add bl, bl
add al, dl
add al, bl
add cl, al
add al, cl
neg al
mul cl
sub al, cl
mul cl
mov edx, eax
lea eax, [rdx - 0x1b]
mov ebx, eax
xor bl, 0xbf
and al, 0x3f
add al, al
add al, bl
sub al, cl
add al, 0x5c
mul cl
mov ecx, eax
sub dl, al
mov eax, edx
mul cl
add al, cl
mov byte [rdi + r9], al
mov eax, dword [0x140612a5c]
mov ecx, dword [0x1405ad48c]
add ecx, esi
cmp eax, ecx
jge 0x1401be3f0
jmp 0x1401be3d0
xor r8d, r8d
lea rax, [0x1405acea0]
lea rcx, [0x1404cf970]
mov edx, 0xaa8bd72e
nop word cs:[rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rax]
movzx r10d, byte [r8 + rcx]
not r9b
mov r11d, r9d
and r11b, r10b
or r9b, r10b
not r9b
or r9b, r11b
mov byte [r8 + rax], r9b
mov r9d, r8d
not r9d
mov r10d, r8d
xor r10d, 1
and r10d, r9d
mov r11d, r8d
xor r11d, 0xfffffffe
and r9d, 1
or r9d, r11d
not r9d
or r9d, r10d
and r8d, 1
lea r8d, [r9 + r8*2]
mov r9d, dword [0x1405ad48c]
add r9d, edx
cmp r8d, r9d
jl 0x1401be490
mov eax, dword [0x140612a58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401be524
jmp 0x1401be519
movzx eax, byte [0x1405ad488]
add al, 0x56
xchg byte [0x1405acd3f], al
lea rax, [0x1405acd30]
jmp 0x1401be545
mov eax, dword [0x140612a5c]
cmp eax, 0xe
jl 0x1401be536
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x1401be530
jmp 0x1401be519
mov al, 0x6d
xchg byte [0x1405acead], al
lea rax, [0x1405acea0]
pop rbx
pop rdi
pop rsi
ret
movzx eax, byte [0x1405acd49]
mov ecx, dword [0x140612a58]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
je 0x1401be56a
movzx eax, byte [0x1405acd49]
jmp 0x1401be549
cmp al, 0x2c
je 0x1401be67b
mov ecx, 0xaa8bd722
lea rax, [fcn.1401be1d0]
lea edx, [rax + rax]
add edx, 0x2ae0
mov r8d, edx
not r8d
mov r9b, 0x12
xor r10d, r10d
nop word cs:[rax + rax]
mov eax, dword [0x1405ad48c]
add eax, ecx
mov r11d, edx
xor r11d, eax
not eax
and eax, r8d
or eax, r11d
cmp eax, 0xffffffff
jne 0x1401be600
nop dword [rax + rax]
mov al, 0x4c
lock cmpxchg byte [0x1405acd49], r9b
sete r11b
test r10b, r10b
jne 0x1401be600
test r11b, r11b
jne 0x1401be60d
movzx r11d, byte [0x1405ad488]
mov ebx, r11d
xor bl, 0x5a
and r11b, 0x5a
add r11b, r11b
add r11b, bl
cmp al, r11b
jne 0x1401be5a0
jmp 0x1401be67b
mov al, 0x4c
lock cmpxchg byte [0x1405acd49], r9b
jmp 0x1401be5c0
xor eax, eax
lea rcx, [0x1405acd40]
lea rdx, [0x1404cf810]
nop dword [rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
mov r11d, r8d
and r11b, r9b
not r9b
mov ebx, r10d
and bl, r9b
or bl, r11b
xor r10b, r9b
and r10b, r8b
or r10b, bl
and r9b, r8b
not r9b
mov r8d, r9d
xor r8b, r10b
or r9b, r10b
not r9b
or r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 8
jg 0x1401be673
inc rax
jmp 0x1401be620
mov al, 0x2c
xchg byte [0x1405acd49], al
lea rax, [0x1405acd40]
jmp 0x1401be545