Function at 0x2018a670
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2018a6ac
test edx, edx
je 0x2018a6ec
test r8d, r8d
je 0x2018a72c
movzx eax, byte [0x203cb3a4]
cmp al, 0xdb
je 0x2018a6a4
mov cl, 8
nop
mov al, 0xdf
lock cmpxchg byte [0x203cb3a4], cl
je 0x2018a7fc
cmp al, 0xdb
jne 0x2018a690
lea rax, [0x203cb390]
ret
test edx, edx
je 0x2018a75c
test r8d, r8d
je 0x2018a79c
movzx eax, byte [0x203cb1e9]
cmp al, 0xe1
je 0x2018a6e4
mov cl, 0x5a
nop word [rax + rax]
mov al, 0x63
lock cmpxchg byte [0x203cb1e9], cl
je 0x2018a869
cmp al, 0xe1
jne 0x2018a6d0
lea rax, [0x203cb1d0]
ret
test r8d, r8d
je 0x2018a7cc
movzx eax, byte [0x203cb185]
cmp al, 8
je 0x2018a724
mov cl, 0xad
nop word cs:[rax + rax]
mov al, 0xdc
lock cmpxchg byte [0x203cb185], cl
je 0x2018a8a1
cmp al, 8
jne 0x2018a710
lea rax, [0x203cb180]
ret
movzx eax, byte [0x203cb0f4]
cmp al, 0x68
je 0x2018a754
mov cl, 1
nop dword [rax]
mov al, 0xf6
lock cmpxchg byte [0x203cb0f4], cl
je 0x2018a8e1
cmp al, 0x68
jne 0x2018a740
lea rax, [0x203cb0f0]
ret
test r8d, r8d
je 0x2018a831
movzx eax, byte [0x203cb37f]
cmp al, 0xc0
je 0x2018a794
mov cl, 0x91
nop word cs:[rax + rax]
mov al, 0x64
lock cmpxchg byte [0x203cb37f], cl
je 0x2018a921
cmp al, 0xc0
jne 0x2018a780
lea rax, [0x203cb370]
ret
movzx eax, byte [0x203cb22a]
cmp al, 0x1c
je 0x2018a7c4
mov cl, 0x29
nop dword [rax]
mov al, 5
lock cmpxchg byte [0x203cb22a], cl
je 0x2018a961
cmp al, 0x1c
jne 0x2018a7b0
lea rax, [0x203cb210]
ret
movzx eax, byte [0x203cb102]
cmp al, 0x38
je 0x2018a7f4
mov cl, 0xe5
nop dword [rax]
mov al, 0xbb
lock cmpxchg byte [0x203cb102], cl
je 0x2018a9a1
cmp al, 0x38
jne 0x2018a7e0
lea rax, [0x203cb100]
ret
xor eax, eax
lea rcx, [0x203cb390]
lea rdx, [0x202fc9f0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x14
jl 0x2018a810
mov al, 0xdb
xchg byte [0x203cb3a4], al
lea rax, [0x203cb390]
ret
movzx eax, byte [0x203cb1cc]
cmp al, 0xc
je 0x2018aa19
mov cl, 5
nop word cs:[rax + rax]
mov al, 0xc1
lock cmpxchg byte [0x203cb1cc], cl
je 0x2018a9e1
cmp al, 0xc
jne 0x2018a850
jmp 0x2018aa19
xor eax, eax
lea rcx, [0x203cb1d0]
lea rdx, [0x202fc830]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x19
jl 0x2018a880
mov al, 0xe1
xchg byte [0x203cb1e9], al
lea rax, [0x203cb1d0]
ret
xor eax, eax
lea rcx, [0x203cb180]
lea rdx, [0x202fc7e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x2018a8c0
mov al, 8
xchg byte [0x203cb185], al
lea rax, [0x203cb180]
ret
xor eax, eax
lea rcx, [0x203cb0f0]
lea rdx, [0x202fc760]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 4
jl 0x2018a900
mov al, 0x68
xchg byte [0x203cb0f4], al
lea rax, [0x203cb0f0]
ret
xor eax, eax
lea rcx, [0x203cb370]
lea rdx, [0x202fc9d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x2018a940
mov al, 0xc0
xchg byte [0x203cb37f], al
lea rax, [0x203cb370]
ret
xor eax, eax
lea rcx, [0x203cb210]
lea rdx, [0x202fc870]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1a
jl 0x2018a980
mov al, 0x1c
xchg byte [0x203cb22a], al
lea rax, [0x203cb210]
ret
xor eax, eax
lea rcx, [0x203cb100]
lea rdx, [0x202fc770]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x2018a9c0
mov al, 0x38
xchg byte [0x203cb102], al
lea rax, [0x203cb100]
ret
xor eax, eax
lea rcx, [0x203cb1c0]
lea rdx, [0x202fc820]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x2018aa00
mov al, 0xc
xchg byte [0x203cb1cc], al
lea rax, [0x203cb1c0]
ret