Function at 0x2018d440
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2018d4ac
mov eax, 0x2683e712
mov ecx, dword [0x205522e0]
add ecx, eax
cmp edx, ecx
jne 0x2018d52f
movzx eax, byte [0x20550c73]
cmp al, 0xcd
je 0x2018d58e
movzx ecx, byte [0x205522f0]
lea eax, [rcx + 0x67]
add cl, 0xaf
lock cmpxchg byte [0x20550c73], cl
jne 0x2018d460
xor eax, eax
lea rcx, [0x20550c50]
lea rdx, [0x204722f0]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x22
jg 0x2018d586
inc rax
jmp 0x2018d490
test edx, edx
je 0x2018d551
movzx eax, byte [0x20550cfd]
cmp al, 0xa8
je 0x2018d5f6
mov cl, 0xbe
mov dl, 1
jmp 0x2018d4e5
movzx r8d, byte [0x205522f0]
add r8b, 0x77
cmp al, r8b
je 0x2018d5f6
mov al, 0x53
lock cmpxchg byte [0x20550cfd], cl
je 0x2018d596
mov r8d, dword [0x205b3d50]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
jne 0x2018d520
nop word [rax + rax]
test dl, dl
jne 0x2018d4d0
nop word cs:[rax + rax]
mov r8d, dword [0x205b3d54]
cmp r8d, 0x21
jge 0x2018d520
jmp 0x2018d510
mov ecx, dword [0x205b3d50]
lea edx, [rcx + 1]
imul edx, ecx
and edx, 1
add eax, dword [0x205522e0]
cmp edx, eax
je 0x2018d638
jmp 0x2018d645
movzx eax, byte [0x20550bfe]
cmp al, 0x72
je 0x2018d57e
mov cl, 0x2c
nop
mov al, 0x12
lock cmpxchg byte [0x20550bfe], cl
je 0x2018d5fe
movzx edx, byte [0x205522f0]
add dl, 0x41
cmp al, dl
jne 0x2018d560
lea rax, [0x20550bf0]
ret
mov al, 0xcd
xchg byte [0x20550c73], al
lea rax, [0x20550c50]
ret
xor eax, eax
lea rcx, [0x20550cf0]
lea rdx, [0x20472390]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x2018d5c8
inc rax
jmp 0x2018d5b0
xor eax, eax
mov cl, 1
nop dword [rax]
mov edx, dword [0x205b3d50]
lea r8d, [rdx + 1]
imul r8d, edx
test r8b, 1
jne 0x2018d5e8
test al, al
je 0x2018d5ee
test cl, cl
je 0x2018d5d0
jmp 0x2018d5e4
mov al, 0xa8
xchg byte [0x20550cfd], al
lea rax, [0x20550cf0]
ret
xor eax, eax
lea rcx, [0x20550bf0]
lea rdx, [0x204722a0]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x2018d628
inc rax
jmp 0x2018d610
mov al, 0x72
xchg byte [0x20550bfe], al
lea rax, [0x20550bf0]
ret
movzx eax, byte [0x20550d2d]
xor ecx, ecx
test cl, cl
je 0x2018d6a0
movzx eax, byte [0x20550d2d]
jmp 0x2018d638
movzx ecx, byte [0x205522f0]
lea eax, [rcx + 0x48]
add cl, 0xe4
lock cmpxchg byte [0x20550d2d], cl
je 0x2018d6ac
mov ecx, dword [0x205b3d50]
lea edx, [rcx - 1]
imul edx, ecx
jmp 0x2018d690
mov ecx, dword [0x205b3d50]
mov edx, 1
sub edx, ecx
imul edx, ecx
test dl, 1
jne 0x2018d680
mov ecx, dword [0x205b3d54]
cmp ecx, 0x4d
jge 0x2018d680
cmp al, 0xf5
jne 0x2018d650
lea rax, [0x20550d20]
ret
mov eax, dword [0x205b3d50]
lea ecx, [rax + 1]
jmp 0x2018d6c9
mov eax, dword [0x205b3d50]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x2018d6c0
mov al, 1
test al, al
je 0x2018d6c0
xor edx, edx
lea rax, [0x20550d20]
lea rcx, [0x204723c0]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x205522e0]
add edx, r8d
add edx, 0x2683e713
cmp edx, 0xd
jl 0x2018d6f0
mov eax, dword [0x205b3d50]
xor eax, eax
nop dword [rax]
test al, al
jne 0x2018d720
mov al, 0xf5
xchg byte [0x20550d2d], al
lea rax, [0x20550d20]
ret