Function at 0x2021c300
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x136d98de
add eax, dword [0x20560dd4]
cmp ecx, eax
jne 0x2021c34c
test edx, edx
je 0x2021c3dd
movzx eax, byte [0x2055f0bc]
cmp al, 0xd4
je 0x2021c344
mov cl, 0x54
nop word cs:[rax + rax]
mov al, 0xaf
lock cmpxchg byte [0x2055f0bc], cl
je 0x2021c47c
cmp al, 0xd4
jne 0x2021c330
lea rax, [0x2055f0b0]
ret
mov eax, 0x136d991b
nop word cs:[rax + rax]
mov ecx, dword [0x205b4760]
mov r8d, dword [0x20560dd4]
add r8d, ecx
dec r8d
imul r8d, ecx
test r8b, 1
jne 0x2021c392
mov ecx, dword [0x205b4764]
mov r8d, dword [0x20560dd4]
add r8d, eax
cmp ecx, r8d
jl 0x2021c3c5
mov ecx, dword [0x205b4760]
lea r8d, [rcx - 1]
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x20560dd4]
mov r9d, ecx
xor r9d, 0x136d98de
and ecx, 0x136d98de
lea ecx, [r9 + rcx*2]
cmp r8d, ecx
jne 0x2021c360
jmp 0x2021c37d
test edx, edx
je 0x2021c3f1
mov eax, dword [0x205b4764]
cmp eax, 0x30
jle 0x2021c62f
jmp 0x2021c642
mov eax, dword [0x205b4764]
cmp eax, 0x52
jle 0x2021c59f
jmp 0x2021c5ac
xor eax, eax
lea rcx, [fcn.2021c300]
add ecx, ecx
add ecx, 0x2a40
nop word cs:[rax + rax]
mov edx, dword [0x205b4764]
cmp edx, 0x4e
jg 0x2021c426
movzx edx, byte [0x2055f34f]
test al, al
je 0x2021c458
movzx edx, byte [0x2055f34f]
mov edx, dword [0x20560dd4]
lea r8d, [rdx + 0x136d98df]
and r8d, ecx
mov r9d, edx
xor r9d, 0x136d98de
and edx, 0x136d98de
lea edx, [r9 + rdx*2]
cmp r8d, edx
jne 0x2021c410
jmp 0x2021c41b
cmp dl, 0x3a
je 0x2021c474
mov cl, 0x14
nop
mov al, 0x50
lock cmpxchg byte [0x2055f34f], cl
je 0x2021c55b
cmp al, 0x3a
jne 0x2021c460
lea rax, [0x2055f340]
ret
xor edx, edx
lea r8, [0x2055f0b0]
lea r9, [0x20477180]
nop dword [rax]
mov eax, dword [0x205b4764]
cmp eax, 0x15
jg 0x2021c4d0
nop dword [rax + rax]
movzx eax, byte [rdx + r9]
add byte [rdx + r8], al
mov eax, dword [0x205b4764]
cmp eax, 0x23
jg 0x2021c4d0
lea eax, [rdx + 1]
cmp eax, 0xb
jg 0x2021c508
inc rdx
jmp 0x2021c490
movzx r10d, byte [0x20560dd0]
lea ecx, [r10 - 0x55]
mov r11d, ecx
sub r11b, byte [rdx + r8]
movzx eax, byte [rdx + r9]
add al, r11b
sub r10b, r11b
sub cl, al
add cl, r10b
add cl, 0xab
sub al, cl
mul cl
shl al, cl
neg al
mul cl
add al, cl
mov byte [rdx + r8], al
jmp 0x2021c4a0
mov eax, 0x136d98de
nop dword [rax]
mov ecx, dword [0x205b4764]
cmp ecx, 0xd
jg 0x2021c536
mov ecx, dword [0x205b4760]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x20560dd4]
add ecx, eax
cmp edx, ecx
je 0x2021c544
cmp dword [0x20560dd4], 0xec926722
jne 0x2021c510
jmp 0x2021c51b
movzx eax, byte [0x20560dd0]
add al, 0x7f
xchg byte [0x2055f0bc], al
lea rax, [0x2055f0b0]
ret
xor edx, edx
lea rax, [0x2055f340]
lea rcx, [0x20477410]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xf
jl 0x2021c570
mov al, 0x3a
xchg byte [0x2055f34f], al
lea rax, [0x2055f340]
ret
movzx eax, byte [0x2055f40d]
xor ecx, ecx
test cl, cl
je 0x2021c5b5
movzx eax, byte [0x2055f40d]
jmp 0x2021c59f
cmp al, 0xe5
je 0x2021c5d0
mov cl, 0x68
nop dword [rax + rax]
mov al, 0xea
lock cmpxchg byte [0x2055f40d], cl
je 0x2021c5d8
cmp al, 0xe5
jne 0x2021c5c0
lea rax, [0x2055f400]
ret
xor edx, edx
lea rax, [0x2055f400]
lea rcx, [0x204774d0]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x2021c5f0
movzx eax, byte [0x20560dd0]
mov ecx, eax
xor cl, 0x90
and al, 0x10
add al, al
add al, cl
xchg byte [0x2055f40d], al
lea rax, [0x2055f400]
ret
movzx eax, byte [0x2055edbd]
cmp dword [0x20560dd4], 0xec926722
je 0x2021c64b
movzx eax, byte [0x2055edbd]
jmp 0x2021c62f
cmp al, 0xc9
je 0x2021c6e9
xor ecx, ecx
mov dl, 0xd3
nop word [rax + rax]
test cl, cl
jne 0x2021c6a0
nop word cs:[rax + rax]
mov al, 0x45
lock cmpxchg byte [0x2055edbd], dl
sete r8b
test cl, cl
jne 0x2021c6a0
test r8b, r8b
jne 0x2021c6ac
movzx r8d, byte [0x20560dd0]
add r8b, 0x74
cmp al, r8b
jne 0x2021c660
jmp 0x2021c6e9
mov al, 0x45
lock cmpxchg byte [0x2055edbd], dl
jmp 0x2021c670
xor edx, edx
lea rax, [0x2055eda0]
lea rcx, [0x20476ea0]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x20560dd4]
add edx, r8d
add edx, 0x136d98df
cmp edx, 0x1d
jl 0x2021c6c0
mov al, 0xc9
xchg byte [0x2055edbd], al
lea rax, [0x2055eda0]
ret