Function at 0x201cba90
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x201cbac9
test edx, edx
je 0x201cbafc
movzx eax, byte [0x20556b00]
cmp al, 0x39
je 0x201cbc61
mov cl, 0xc6
nop dword [rax]
mov al, 0xb8
lock cmpxchg byte [0x20556b00], cl
je 0x201cbbcc
cmp al, 0x39
jne 0x201cbab0
jmp 0x201cbc61
test edx, edx
je 0x201cbb96
movzx eax, byte [0x20556bb3]
cmp al, 0x28
je 0x201cbaf4
mov cl, 0xd7
nop
mov al, 6
lock cmpxchg byte [0x20556bb3], cl
je 0x201cbc94
cmp al, 0x28
jne 0x201cbae0
lea rax, [0x20556bb0]
ret
movzx eax, byte [0x20556be3]
cmp al, 0x5a
je 0x201cbd37
lea rax, [fcn.201cba90]
lea ecx, [rax + rax]
add ecx, 0x160
jmp 0x201cbb28
cmp al, 0x5a
je 0x201cbd37
movzx edx, byte [0x20557228]
lea eax, [rdx - 0x4b]
add dl, 0xee
lock cmpxchg byte [0x20556be3], dl
je 0x201cbce1
mov edx, dword [0x2055722c]
mov r8d, edx
xor r8d, 0x5371fd6b
and edx, 0x5371fd6b
lea edx, [r8 + rdx*2]
test ecx, edx
jne 0x201cbb80
nop word cs:[rax + rax]
mov edx, dword [0x205b3f34]
cmp edx, 0x3a
jl 0x201cbb20
nop dword [rax + rax]
mov edx, dword [0x205b3f30]
lea r8d, [rdx + 1]
imul r8d, edx
test r8b, 1
jne 0x201cbb80
jmp 0x201cbb70
movzx eax, byte [0x20556ae5]
cmp al, 0x9a
je 0x201cbbc4
mov cl, 0x73
nop word cs:[rax + rax]
mov al, 0xa3
lock cmpxchg byte [0x20556ae5], cl
je 0x201cbd3f
cmp al, 0x9a
jne 0x201cbbb0
lea rax, [0x20556ae0]
ret
xor eax, eax
lea rcx, [0x20556af0]
lea rdx, [0x204735f0]
xor r8d, r8d
xor r9d, r9d
test al, al
jne 0x201cbc1b
nop word cs:[rax + rax]
movzx r10d, byte [r9 + rdx]
add byte [r9 + rcx], r10b
mov r10d, dword [0x205b3f34]
cmp r10d, 0xc
jg 0x201cbc1b
lea r10d, [r9 + 1]
cmp r10d, 0xf
jg 0x201cbc2a
inc r9
add r8d, 4
test al, al
je 0x201cbbf0
movzx r10d, byte [r9 + rdx]
sub r10b, byte [r9 + rcx]
mov byte [r9 + rcx], r10b
jmp 0x201cbbf0
xor eax, eax
nop dword [rax]
mov ecx, dword [0x205b3f30]
mov edx, dword [0x2055722c]
add edx, ecx
dec edx
imul edx, ecx
test dl, 1
jne 0x201cbc4c
test al, al
je 0x201cbc59
mov ecx, dword [0x205b3f34]
cmp ecx, 0x1f
jge 0x201cbc30
jmp 0x201cbc48
mov al, 0x39
xchg byte [0x20556b00], al
mov ecx, dword [0x205b3f30]
mov r8d, dword [0x2055722c]
mov eax, ecx
sub eax, r8d
add eax, 0xac8e0295
imul eax, ecx
add r8d, 0x5371fd6c
xor edx, edx
div r8d
test edx, edx
jne 0x201cbe30
jmp 0x201cbe1b
xor eax, eax
lea rcx, [0x20556bb0]
lea rdx, [0x20473690]
mov r8d, 0x5371fd6d
nop word [rax + rax]
movzx r9d, byte [rax + rdx]
mov r10d, r9d
xor r10b, r9b
not r10b
and r10b, byte [rax + rcx]
xor r10b, r9b
mov byte [rax + rcx], r10b
lea r9d, [rax + 1]
mov r10d, dword [0x2055722c]
add r10d, r8d
cmp r9d, r10d
jge 0x201cbd18
inc rax
jmp 0x201cbcb0
xor eax, eax
lea rcx, [0x20556bc0]
lea rdx, [0x204736a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x22
jg 0x201cbd28
inc rax
jmp 0x201cbd00
mov al, 0x28
xchg byte [0x20556bb3], al
lea rax, [0x20556bb0]
ret
movzx eax, byte [0x20557228]
add al, 0x60
xchg byte [0x20556be3], al
lea rax, [0x20556bc0]
ret
xor edx, edx
lea rax, [0x20556ae0]
lea rcx, [0x204735e0]
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 [0x2055722c]
add edx, r8d
add edx, 0x5371fd6b
cmp edx, 5
jl 0x201cbd50
lea rax, [fcn.201cba90]
add eax, eax
add eax, 0x2900
nop
mov ecx, dword [0x205b3f34]
cmp ecx, 0x34
jle 0x201cbdbc
nop dword [rax + rax]
mov ecx, dword [0x2055722c]
lea edx, [rcx + 0x5371fd6b]
xor edx, eax
not edx
and edx, eax
add ecx, 0x5371fd6a
cmp edx, ecx
jne 0x201cbd90
mov ecx, dword [0x205b3f34]
cmp ecx, 0xf
jg 0x201cbda0
mov ecx, 0x5371fd6c
nop dword [rax]
mov edx, dword [0x205b3f30]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x2055722c]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x201cbe06
mov al, 0x9a
xchg byte [0x20556ae5], al
mov eax, dword [0x205b3f34]
cmp eax, 0x41
jle 0x201cbbc4
mov al, 0x9a
xchg byte [0x20556ae5], al
mov eax, dword [0x205b3f34]
cmp eax, 0xd
jge 0x201cbdd0
jmp 0x201cbdef
mov eax, dword [0x205b3f34]
mov ecx, 0x5371fdb8
add ecx, dword [0x2055722c]
cmp eax, ecx
jl 0x201cbe71
mov eax, 0x5371fd6b
lea rcx, [fcn.201cba90]
add ecx, ecx
add ecx, 0x29e0
mov edx, ecx
not edx
nop dword [rax + rax]
mov r8d, dword [0x2055722c]
add r8d, eax
mov r9d, ecx
xor r9d, r8d
not r8d
and r8d, edx
or r8d, r9d
cmp r8d, 0xffffffff
jne 0x201cbe50
jmp 0x201cbe1b
lea rax, [0x20556af0]
ret