Function at 0x2008cbf0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
test ecx, ecx
je 0x2008cc75
test edx, edx
je 0x2008ccb9
movzx eax, byte [0x20533156]
cmp al, 0x4e
je 0x2008ced7
mov cl, 0x88
xor edx, edx
jmp 0x2008cc28
cmp al, 0x4e
je 0x2008ced7
mov al, 0x4a
lock cmpxchg byte [0x20533156], cl
je 0x2008cd65
nop dword [rax + rax]
test dl, dl
jne 0x2008cc66
mov r8d, dword [0x205b3510]
mov r9d, dword [0x205338c8]
add r9d, r8d
add r9d, 0xf0c215e8
imul r9d, r8d
test r9b, 1
je 0x2008cc20
mov r8d, dword [0x205b3514]
cmp r8d, 0x22
jge 0x2008cc40
jmp 0x2008cc44
test edx, edx
je 0x2008cd51
movzx eax, byte [0x205332a6]
movzx ecx, byte [0x205338cc]
add cl, 0x79
cmp al, cl
je 0x2008cf50
mov cl, 0x3e
nop dword [rax + rax]
mov al, 0x99
lock cmpxchg byte [0x205332a6], cl
je 0x2008cee3
cmp al, 3
jne 0x2008cca0
jmp 0x2008cf50
movzx eax, byte [0x20533233]
cmp al, 0x6a
je 0x2008cf64
mov ecx, 0xf3dea19
mov r8b, 0xaa
mov edx, dword [0x205b3510]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x205338c8]
add r9d, ecx
xor edx, edx
div r9d
test edx, edx
jne 0x2008cd20
nop
mov al, 0x2f
lock cmpxchg byte [0x20533233], r8b
sete dl
mov r9d, dword [0x205b3510]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x2008cd40
nop word cs:[rax + rax]
mov al, 0x2f
lock cmpxchg byte [0x20533233], r8b
mov eax, dword [0x205b3514]
cmp eax, 0x46
jge 0x2008cd20
jmp 0x2008ccf0
test dl, dl
jne 0x2008cf18
cmp al, 0x6a
jne 0x2008ccd0
jmp 0x2008cf64
mov eax, dword [0x205b3514]
cmp eax, 0x12
jle 0x2008cf78
jmp 0x2008cf85
mov eax, 0xf3dea3b
nop word [rax + rax]
mov ecx, dword [0x205b3514]
mov edx, dword [0x205338c8]
add edx, eax
cmp ecx, edx
jge 0x2008cd70
xor edx, edx
lea r8, [0x20533140]
lea r9, [0x2046c1c0]
xor r10d, r10d
jmp 0x2008cdad
inc r10d
cmp r10d, 0x16
jge 0x2008ce6f
movsxd r11, r10d
test dl, dl
jne 0x2008cde0
nop word cs:[rax + rax]
movzx eax, byte [r11 + r9]
add byte [r11 + r8], al
mov eax, dword [0x205b3510]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x2008cda0
nop word [rax + rax]
movzx ebx, byte [r11 + r8]
movzx ecx, byte [r11 + r9]
mov esi, ebx
neg sil
mov eax, ebx
sub al, cl
mul cl
xor sil, al
mov ecx, esi
not cl
and cl, al
add cl, cl
add cl, sil
shl bl, cl
mov esi, ebx
shl sil, cl
mov eax, ebx
sub al, sil
mul sil
mov ecx, eax
mov eax, ebx
sub al, cl
mul cl
mov esi, ebx
mov ecx, eax
shl sil, cl
mov eax, ebx
neg al
dec bl
mov ecx, esi
not cl
mov edi, eax
and dil, cl
and cl, bl
and bl, sil
or dil, bl
xor al, sil
or cl, al
not cl
add cl, cl
add cl, dil
movzx eax, byte [0x205338cc]
sub al, cl
add sil, sil
add sil, al
add sil, 0x76
mov byte [r11 + r8], sil
mov eax, dword [0x205b3514]
cmp eax, 0x1e
jge 0x2008cde0
jmp 0x2008cdc0
mov ecx, 0xf3dea4a
nop word cs:[rax + rax]
mov edx, dword [0x205b3510]
mov r8d, dword [0x205338c8]
mov eax, edx
sub eax, r8d
add eax, 0xf0c215e8
imul eax, edx
add r8d, 0xf3dea19
xor edx, edx
div r8d
test edx, edx
jne 0x2008cebb
mov eax, dword [0x205b3510]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x2008cecf
mov eax, dword [0x205b3514]
mov edx, dword [0x205338c8]
add edx, ecx
cmp eax, edx
jge 0x2008ce80
jmp 0x2008ceaa
mov al, 0x4e
xchg byte [0x20533156], al
lea rax, [0x20533140]
jmp 0x2008d077
xor eax, eax
lea rcx, [0x205332a0]
lea rdx, [0x2046c310]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 5
jg 0x2008cf48
inc rax
jmp 0x2008cf00
xor eax, eax
lea rcx, [0x20533230]
lea rdx, [0x2046c2a0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 2
jg 0x2008cf5c
inc rax
jmp 0x2008cf30
mov al, 3
xchg byte [0x205332a6], al
lea rax, [0x205332a0]
jmp 0x2008d077
mov al, 0x6a
xchg byte [0x20533233], al
mov eax, dword [0x205b3514]
cmp eax, 0xf
jle 0x2008d07b
jmp 0x2008d08c
movzx eax, byte [0x2053335d]
mov cl, 1
test cl, cl
jne 0x2008cfad
lea rax, [fcn.2008cbf0]
add eax, eax
add eax, 0x2a00
mov ecx, eax
not ecx
nop word [rax + rax]
movzx edx, byte [0x2053335d]
test ecx, eax
jne 0x2008cfa0
jmp 0x2008cf78
cmp al, 0x43
je 0x2008d070
mov r8d, 0xf3dea19
xor r9d, r9d
nop
movzx ecx, byte [0x205338cc]
lea eax, [rcx + 0x24]
lock cmpxchg byte [0x2053335d], cl
je 0x2008d01b
mov ecx, eax
mov edx, dword [0x205b3510]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x205338c8]
add r10d, r8d
xor edx, edx
div r10d
test edx, edx
test r9b, r9b
jne 0x2008cff3
movzx eax, byte [0x205338cc]
mov edx, eax
xor dl, 0xb9
and al, 0x39
add al, al
mov r10d, edx
xor r10b, al
and al, dl
add al, al
add al, r10b
cmp cl, al
jne 0x2008cfc0
jmp 0x2008d070
xor eax, eax
lea rcx, [0x20533350]
lea rdx, [0x2046c3c0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x2008d048
inc rax
jmp 0x2008d030
mov eax, dword [0x205b3514]
nop
mov eax, dword [0x205b3510]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x2008d050
movzx eax, byte [0x205338cc]
add al, 0xb9
xchg byte [0x2053335d], al
lea rax, [0x20533350]
pop rbx
pop rdi
pop rsi
ret
mov eax, dword [0x205b3510]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x2008d096
mov al, 1
nop
test al, al
je 0x2008d090
jmp 0x2008d07b
lea rax, [0x20533230]
jmp 0x2008d077