Function at 0x2008c270
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
test ecx, ecx
je 0x2008c2b9
mov eax, dword [0x205b3514]
cmp eax, 0x55
xor eax, eax
test al, al
jne 0x2008c280
test edx, edx
je 0x2008c2dc
movzx eax, byte [0x2053320e]
cmp al, 0x1b
je 0x2008c786
mov cl, 0x84
nop dword [rax + rax]
mov al, 0x1a
lock cmpxchg byte [0x2053320e], cl
je 0x2008c339
cmp al, 0x1b
jne 0x2008c2a0
jmp 0x2008c786
mov eax, 0xf3dea17
add eax, dword [0x205338c8]
cmp edx, eax
jne 0x2008c305
mov eax, dword [0x205b3514]
cmp eax, 0x57
jle 0x2008c4d0
jmp 0x2008c4f5
movzx eax, byte [0x20533324]
cmp al, 0x10
je 0x2008c716
mov cl, 0x7b
nop dword [rax]
mov al, 0x50
lock cmpxchg byte [0x20533324], cl
je 0x2008c377
cmp al, 0x10
jne 0x2008c2f0
jmp 0x2008c716
movzx eax, byte [0x2053334f]
cmp al, 0x8c
je 0x2008c4aa
mov cl, 0xf2
nop word cs:[rax + rax]
mov al, 0xda
lock cmpxchg byte [0x2053334f], cl
je 0x2008c43d
cmp al, 0x8c
jne 0x2008c320
jmp 0x2008c4aa
xor eax, eax
lea rcx, [0x20533200]
lea rdx, [0x2046c270]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x2008c368
inc rax
jmp 0x2008c350
mov al, 1
test al, al
je 0x2008c770
jmp 0x2008c741
xor r9d, r9d
lea r10, [0x20533310]
lea r11, [0x2046c380]
jmp 0x2008c399
inc r9d
cmp r9d, 0x14
jge 0x2008c415
mov eax, dword [0x205b3510]
mov ecx, dword [0x205338c8]
sub ecx, eax
add ecx, 0x2134e754
imul ecx, eax
movsxd rsi, r9d
test cl, 1
jne 0x2008c3e0
nop dword [rax + rax]
movzx eax, byte [rsi + r11]
xor byte [rsi + r10], al
mov eax, dword [0x205b3510]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x2008c390
nop word [rax + rax]
movzx eax, byte [rsi + r10]
movzx ecx, byte [rsi + r11]
sub al, cl
mul cl
mov edx, eax
shl dl, cl
mov r8d, eax
mov ecx, edx
shl r8b, cl
mov ecx, r8d
shl al, cl
shl al, cl
xor al, r8b
mov byte [rsi + r10], al
mov eax, dword [0x205b3514]
cmp eax, 0x1d
jge 0x2008c3e0
jmp 0x2008c3c0
mov eax, dword [0x205338c8]
mov ecx, eax
xor ecx, 0xf3dea17
not eax
and eax, 0x70c215e8
or eax, ecx
not eax
add eax, eax
add eax, ecx
jne 0x2008c730
jmp 0x2008c71f
xor edx, edx
lea rax, [0x20533340]
lea rcx, [0x2046c3b0]
nop dword [rax]
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 [0x205338c8]
add edx, r8d
add edx, 0xf3dea18
cmp edx, 0xf
jl 0x2008c450
mov eax, dword [0x205b3510]
mov eax, 0xf3dea59
nop dword [rax]
mov ecx, dword [0x205b3514]
mov edx, dword [0x205338c8]
add edx, eax
cmp ecx, edx
jge 0x2008c490
mov al, 0x8c
xchg byte [0x2053334f], al
mov eax, dword [0x205b3510]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x2008c4c0
lea rax, [0x20533340]
jmp 0x2008c6d3
movzx eax, byte [0x205330d2]
mov ecx, dword [0x205b3510]
mov edx, dword [0x205338c8]
neg edx
add edx, ecx
add edx, 0xa1a057f0
imul edx, ecx
test dl, 1
je 0x2008c51b
mov eax, 0xf3dea52
nop word [rax + rax]
movzx ecx, byte [0x205330d2]
mov ecx, dword [0x205b3514]
mov edx, dword [0x205338c8]
add edx, eax
cmp ecx, edx
jge 0x2008c500
jmp 0x2008c4d0
cmp al, 0x38
je 0x2008c6a6
mov ecx, 0xf3dea17
mov dl, 0xbc
mov r8d, 0xf3dea18
lea rax, [fcn.2008c270]
lea r9d, [rax + rax]
add r9d, 0x160
mov r10b, 1
jmp 0x2008c558
cmp al, 0x38
je 0x2008c6a6
mov eax, dword [0x205b3510]
lea r11d, [rax - 1]
imul r11d, eax
and r11d, 1
mov eax, dword [0x205338c8]
add eax, ecx
cmp r11d, eax
jne 0x2008c597
mov al, 0xce
lock cmpxchg byte [0x205330d2], dl
sete r11b
mov esi, dword [0x205b3510]
lea edi, [rsi - 1]
imul edi, esi
test dil, 1
je 0x2008c5d0
movzx r11d, byte [0x205338cc]
lea eax, [r11 + 0x44]
mov ebx, r11d
xor bl, 0x32
and r11b, 0x32
add r11b, r11b
add r11b, bl
lock cmpxchg byte [0x205330d2], r11b
mov eax, dword [0x205b3514]
cmp eax, 0x60
jge 0x2008c558
jmp 0x2008c577
test r11b, r11b
jne 0x2008c60e
nop word cs:[rax + rax]
mov r11d, dword [0x205b3514]
cmp r11d, 0x19
jle 0x2008c5f2
test r10b, r10b
je 0x2008c5e0
mov r11d, dword [0x205338c8]
add r11d, r8d
mov esi, r9d
xor esi, r11d
not esi
test esi, r11d
jne 0x2008c5ed
jmp 0x2008c550
xor eax, eax
mov cl, 1
nop word cs:[rax + rax]
mov edx, dword [0x205b3514]
cmp edx, 0x33
jg 0x2008c62f
test al, al
je 0x2008c635
test cl, cl
je 0x2008c620
jmp 0x2008c62b
xor eax, eax
lea rcx, [0x205330c0]
lea rdx, [0x2046c150]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r9d
not r10b
mov r11d, r8d
xor r11b, r10b
xor r10b, r9b
and r10b, r8b
xor r10b, r9b
and r11b, r8b
add r11b, r11b
mov r8d, r10d
xor r8b, r11b
and r11b, r10b
add r11b, r11b
add r11b, r8b
mov byte [rax + rcx], r11b
lea r8d, [rax + 1]
cmp r8d, 0x11
jg 0x2008c697
inc rax
jmp 0x2008c650
movzx eax, byte [0x205338cc]
add al, 0xae
xchg byte [0x205330d2], al
xor eax, eax
nop dword [rax + rax]
mov ecx, dword [0x205b3514]
cmp ecx, 0x5a
jg 0x2008c6bf
test al, al
je 0x2008c6cc
mov ecx, dword [0x205b3514]
cmp ecx, 0x48
jge 0x2008c6b0
jmp 0x2008c6bb
lea rax, [0x205330c0]
pop rbx
pop rdi
pop rsi
ret
mov ecx, dword [0x205b3510]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x2008c70a
mov cl, 0x10
xchg byte [0x20533324], cl
mov ecx, dword [0x205b3510]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x2008c6e0
mov cl, 0x10
xchg byte [0x20533324], cl
test al, al
jne 0x2008c6f1
lea rax, [0x20533310]
jmp 0x2008c6d3
mov al, 1
test al, al
jne 0x2008c73d
nop word cs:[rax + rax]
mov eax, dword [0x205b3514]
cmp eax, 0x57
jge 0x2008c730
jmp 0x2008c71f
xor eax, eax
jmp 0x2008c6e0
movzx eax, byte [0x205338cc]
add al, 0x91
xchg byte [0x2053320e], al
lea rax, [fcn.2008c270]
add eax, eax
add eax, 0x6a0
mov ecx, eax
not ecx
test ecx, eax
je 0x2008c786
nop word cs:[rax + rax]
mov al, 0x1b
xchg byte [0x2053320e], al
cmp dword [0x205338c8], 0xf0c215e9
jne 0x2008c770
jmp 0x2008c741
lea rax, [0x20533200]
jmp 0x2008c6d3