Function at 0x20141820
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2014186c
test edx, edx
je 0x201418bc
test r8d, r8d
je 0x201418fc
test r9d, r9d
je 0x20141979
movzx eax, byte [0x20453c33]
cmp al, 0xd0
je 0x20141864
mov cl, 0xec
nop dword [rax + rax]
mov al, 0x61
lock cmpxchg byte [0x20453c33], cl
je 0x20141af9
cmp al, 0xd0
jne 0x20141850
lea rax, [0x20453c30]
ret
test edx, edx
je 0x2014193c
test r8d, r8d
je 0x201419ac
test r9d, r9d
je 0x20141a29
movzx eax, byte [0x20453bf5]
cmp al, 0x56
je 0x201418b4
mov cl, 0x90
nop word cs:[rax + rax]
mov al, 0xdb
lock cmpxchg byte [0x20453bf5], cl
je 0x20141bc9
cmp al, 0x56
jne 0x201418a0
lea rax, [0x20453be0]
ret
test r8d, r8d
je 0x201419e9
test r9d, r9d
je 0x20141a59
movzx eax, byte [0x20453d46]
cmp al, 0xf8
je 0x201418f4
mov cl, 0xa3
nop dword [rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x20453d46], cl
je 0x20141c01
cmp al, 0xf8
jne 0x201418e0
lea rax, [0x20453d20]
ret
test r9d, r9d
je 0x20141a89
movzx eax, byte [0x20453c86]
cmp al, 0xc9
je 0x20141934
mov cl, 0x1a
nop word cs:[rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x20453c86], cl
je 0x20141c41
cmp al, 0xc9
jne 0x20141920
lea rax, [0x20453c80]
ret
test r8d, r8d
je 0x20141ab9
test r9d, r9d
je 0x20141b31
movzx eax, byte [0x20453dab]
cmp al, 0x58
je 0x20141d19
mov cl, 0x79
nop
mov al, 0x51
lock cmpxchg byte [0x20453dab], cl
je 0x20141ceb
cmp al, 0x58
jne 0x20141960
jmp 0x20141d19
movzx eax, byte [0x20453c50]
cmp al, 0x7b
je 0x201419a4
mov cl, 0xf3
nop word cs:[rax + rax]
mov al, 0x9b
lock cmpxchg byte [0x20453c50], cl
je 0x20141c81
cmp al, 0x7b
jne 0x20141990
lea rax, [0x20453c40]
ret
test r9d, r9d
je 0x20141b69
movzx eax, byte [0x20453d1f]
cmp al, 0xea
je 0x20141d59
mov cl, 0x99
nop word cs:[rax + rax]
mov al, 0x97
lock cmpxchg byte [0x20453d1f], cl
je 0x20141d21
cmp al, 0xea
jne 0x201419d0
jmp 0x20141d59
test r9d, r9d
je 0x20141b99
movzx eax, byte [0x20453dbc]
cmp al, 0x5f
je 0x20141d99
mov cl, 0x63
nop word cs:[rax + rax]
mov al, 0xcf
lock cmpxchg byte [0x20453dbc], cl
je 0x20141d61
cmp al, 0x5f
jne 0x20141a10
jmp 0x20141d99
movzx eax, byte [0x20453bd6]
cmp al, 0x23
je 0x20141dd9
mov cl, 0x4c
nop word [rax + rax]
mov al, 0x64
lock cmpxchg byte [0x20453bd6], cl
je 0x20141da1
cmp al, 0x23
jne 0x20141a40
jmp 0x20141dd9
movzx eax, byte [0x20453b3e]
cmp al, 0xe
je 0x20141e19
mov cl, 0x1c
nop word [rax + rax]
mov al, 0xc0
lock cmpxchg byte [0x20453b3e], cl
je 0x20141de1
cmp al, 0xe
jne 0x20141a70
jmp 0x20141e19
movzx eax, byte [0x20453c26]
cmp al, 0x1a
je 0x20141e59
mov cl, 0xfc
nop word [rax + rax]
mov al, 0xbb
lock cmpxchg byte [0x20453c26], cl
je 0x20141e21
cmp al, 0x1a
jne 0x20141aa0
jmp 0x20141e59
test r9d, r9d
je 0x20141cc1
movzx eax, byte [0x20453d62]
cmp al, 0x3e
je 0x20141e99
mov cl, 0x8b
nop word cs:[rax + rax]
mov al, 0xd0
lock cmpxchg byte [0x20453d62], cl
je 0x20141e61
cmp al, 0x3e
jne 0x20141ae0
jmp 0x20141e99
xor eax, eax
lea rcx, [0x20453c30]
lea rdx, [0x20373eb0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x20141b10
mov al, 0xd0
xchg byte [0x20453c33], al
lea rax, [0x20453c30]
ret
movzx eax, byte [0x20453b98]
cmp al, 0xaf
je 0x20141ed9
mov cl, 0x8c
nop word cs:[rax + rax]
mov al, 0xe2
lock cmpxchg byte [0x20453b98], cl
je 0x20141ea1
cmp al, 0xaf
jne 0x20141b50
jmp 0x20141ed9
movzx eax, byte [0x20453cc3]
cmp al, 0x82
je 0x20141f19
mov cl, 0x5f
nop word [rax + rax]
mov al, 0xe3
lock cmpxchg byte [0x20453cc3], cl
je 0x20141ee1
cmp al, 0x82
jne 0x20141b80
jmp 0x20141f19
movzx eax, byte [0x20453d0b]
cmp al, 0xc7
je 0x20141f59
mov cl, 0xfa
nop word [rax + rax]
mov al, 0xff
lock cmpxchg byte [0x20453d0b], cl
je 0x20141f21
cmp al, 0xc7
jne 0x20141bb0
jmp 0x20141f59
xor eax, eax
lea rcx, [0x20453be0]
lea rdx, [0x20373e60]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x20141be0
mov al, 0x56
xchg byte [0x20453bf5], al
lea rax, [0x20453be0]
ret
xor eax, eax
lea rcx, [0x20453d20]
lea rdx, [0x20373fd0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x20141c20
mov al, 0xf8
xchg byte [0x20453d46], al
lea rax, [0x20453d20]
ret
xor eax, eax
lea rcx, [0x20453c80]
lea rdx, [0x20373ef0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 6
jl 0x20141c60
mov al, 0xc9
xchg byte [0x20453c86], al
lea rax, [0x20453c80]
ret
xor eax, eax
lea rcx, [0x20453c40]
lea rdx, [0x20373ec0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x20141ca0
mov al, 0x7b
xchg byte [0x20453c50], al
lea rax, [0x20453c40]
ret
movzx eax, byte [0x20453d52]
cmp al, 0x2e
je 0x20141f8a
mov cl, 0xfd
mov al, 0x47
lock cmpxchg byte [0x20453d52], cl
je 0x20141f61
cmp al, 0x2e
jne 0x20141cd2
jmp 0x20141f8a
xor eax, eax
lea rcx, [0x20453da0]
lea rdx, [0x20374050]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20141d00
mov al, 0x58
xchg byte [0x20453dab], al
lea rax, [0x20453da0]
ret
xor eax, eax
lea rcx, [0x20453d10]
lea rdx, [0x20373fc0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x20141d40
mov al, 0xea
xchg byte [0x20453d1f], al
lea rax, [0x20453d10]
ret
xor eax, eax
lea rcx, [0x20453db0]
lea rdx, [0x20374060]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x20141d80
mov al, 0x5f
xchg byte [0x20453dbc], al
lea rax, [0x20453db0]
ret
xor eax, eax
lea rcx, [0x20453bc0]
lea rdx, [0x20373e40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x20141dc0
mov al, 0x23
xchg byte [0x20453bd6], al
lea rax, [0x20453bc0]
ret
xor eax, eax
lea rcx, [0x20453b30]
lea rdx, [0x20373dc0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xe
jl 0x20141e00
mov al, 0xe
xchg byte [0x20453b3e], al
lea rax, [0x20453b30]
ret
xor eax, eax
lea rcx, [0x20453c10]
lea rdx, [0x20373e90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x20141e40
mov al, 0x1a
xchg byte [0x20453c26], al
lea rax, [0x20453c10]
ret
xor eax, eax
lea rcx, [0x20453d60]
lea rdx, [0x20374010]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x20141e80
mov al, 0x3e
xchg byte [0x20453d62], al
lea rax, [0x20453d60]
ret
xor eax, eax
lea rcx, [0x20453b80]
lea rdx, [0x20373e00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x18
jl 0x20141ec0
mov al, 0xaf
xchg byte [0x20453b98], al
lea rax, [0x20453b80]
ret
xor eax, eax
lea rcx, [0x20453cc0]
lea rdx, [0x20373f70]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x20141f00
mov al, 0x82
xchg byte [0x20453cc3], al
lea rax, [0x20453cc0]
ret
xor eax, eax
lea rcx, [0x20453d00]
lea rdx, [0x20373fb0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20141f40
mov al, 0xc7
xchg byte [0x20453d0b], al
lea rax, [0x20453d00]
ret
xor eax, eax
lea rcx, [0x20453d50]
lea rdx, [0x20374000]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x20141f71
mov al, 0x2e
xchg byte [0x20453d52], al
lea rax, [0x20453d50]
ret