Function at 0x20110500
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2011054c
test edx, edx
je 0x2011059c
test r8d, r8d
je 0x201105dc
movzx eax, byte [0x2044e553]
cmp al, 0x31
je 0x20110544
mov cl, 0x9b
nop word cs:[rax + rax]
mov al, 0x61
lock cmpxchg byte [0x2044e553], cl
je 0x201106bc
cmp al, 0x31
jne 0x20110530
lea rax, [0x2044e530]
ret
test edx, edx
je 0x2011060c
test r8d, r8d
je 0x20110649
test r9d, r9d
je 0x201106f1
movzx eax, byte [0x2044e56b]
cmp al, 0x90
je 0x20110594
mov cl, 0x8c
nop word cs:[rax + rax]
mov al, 9
lock cmpxchg byte [0x2044e56b], cl
je 0x20110839
cmp al, 0x90
jne 0x20110580
lea rax, [0x2044e560]
ret
test r8d, r8d
je 0x20110689
test r9d, r9d
je 0x20110729
movzx eax, byte [0x2044e5db]
cmp al, 0xaf
je 0x201105d4
xor ecx, ecx
nop dword [rax + rax]
mov al, 0x34
lock cmpxchg byte [0x2044e5db], cl
je 0x20110871
cmp al, 0xaf
jne 0x201105c0
lea rax, [0x2044e5d0]
ret
movzx eax, byte [0x2044e5b2]
cmp al, 1
je 0x20110604
mov cl, 0x45
nop dword [rax]
mov al, 0x9f
lock cmpxchg byte [0x2044e5b2], cl
je 0x20110799
cmp al, 1
jne 0x201105f0
lea rax, [0x2044e5b0]
ret
test r8d, r8d
je 0x20110759
test r9d, r9d
je 0x201107db
movzx eax, byte [0x2044e523]
cmp al, 0xf4
je 0x20110949
mov cl, 0x58
nop
mov al, 0xe3
lock cmpxchg byte [0x2044e523], cl
je 0x2011091b
cmp al, 0xf4
jne 0x20110630
jmp 0x20110949
test r9d, r9d
je 0x20110809
movzx eax, byte [0x2044e4c5]
cmp al, 0xb4
je 0x20110989
mov cl, 0x9c
nop word cs:[rax + rax]
mov al, 0xa7
lock cmpxchg byte [0x2044e4c5], cl
je 0x20110951
cmp al, 0xb4
jne 0x20110670
jmp 0x20110989
movzx eax, byte [0x2044e5c2]
cmp al, 0x74
je 0x201106b4
mov cl, 0xf2
nop word cs:[rax + rax]
mov al, 0x1c
lock cmpxchg byte [0x2044e5c2], cl
je 0x201108b1
cmp al, 0x74
jne 0x201106a0
lea rax, [0x2044e5c0]
ret
xor eax, eax
lea rcx, [0x2044e530]
lea rdx, [0x203730b0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x201106d0
mov al, 0x31
xchg byte [0x2044e553], al
lea rax, [0x2044e530]
ret
movzx eax, byte [0x2044e57f]
cmp al, 0x67
je 0x201109c9
mov cl, 0x29
nop word cs:[rax + rax]
mov al, 0xf0
lock cmpxchg byte [0x2044e57f], cl
je 0x20110991
cmp al, 0x67
jne 0x20110710
jmp 0x201109c9
movzx eax, byte [0x2044e4e2]
cmp al, 0xab
je 0x20110a09
mov cl, 0x6f
nop word [rax + rax]
mov al, 0xf8
lock cmpxchg byte [0x2044e4e2], cl
je 0x201109d1
cmp al, 0xab
jne 0x20110740
jmp 0x20110a09
test r9d, r9d
je 0x201108f1
movzx eax, byte [0x2044e4a0]
cmp al, 0x37
je 0x20110a49
mov cl, 0x71
nop word cs:[rax + rax]
mov al, 0x89
lock cmpxchg byte [0x2044e4a0], cl
je 0x20110a11
cmp al, 0x37
jne 0x20110780
jmp 0x20110a49
xor eax, eax
lea rcx, [0x2044e5b0]
lea rdx, [0x20373130]
nop dword [rax]
mov dword [0x204a1ee0], 0
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x201107b0
mov al, 1
xchg byte [0x2044e5b2], al
lea rax, [0x2044e5b0]
ret
movzx eax, byte [0x2044e515]
cmp al, 0xd0
je 0x20110a89
mov cl, 0xe1
nop dword [rax]
mov al, 0x70
lock cmpxchg byte [0x2044e515], cl
je 0x20110a51
cmp al, 0xd0
jne 0x201107f0
jmp 0x20110a89
movzx eax, byte [0x2044e5a6]
cmp al, 0x89
je 0x20110ac9
mov cl, 0xbf
nop word [rax + rax]
mov al, 0x3b
lock cmpxchg byte [0x2044e5a6], cl
je 0x20110a91
cmp al, 0x89
jne 0x20110820
jmp 0x20110ac9
xor eax, eax
lea rcx, [0x2044e560]
lea rdx, [0x203730e0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20110850
mov al, 0x90
xchg byte [0x2044e56b], al
lea rax, [0x2044e560]
ret
xor eax, eax
lea rcx, [0x2044e5d0]
lea rdx, [0x20373150]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20110890
mov al, 0xaf
xchg byte [0x2044e5db], al
lea rax, [0x2044e5d0]
ret
xor eax, eax
lea rcx, [0x2044e5c0]
lea rdx, [0x20373140]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x201108d0
mov al, 0x74
xchg byte [0x2044e5c2], al
lea rax, [0x2044e5c0]
ret
movzx eax, byte [0x2044e50c]
cmp al, 0xc7
je 0x20110afa
mov cl, 0x9c
mov al, 7
lock cmpxchg byte [0x2044e50c], cl
je 0x20110ad1
cmp al, 0xc7
jne 0x20110902
jmp 0x20110afa
xor eax, eax
lea rcx, [0x2044e520]
lea rdx, [0x203730a0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x20110930
mov al, 0xf4
xchg byte [0x2044e523], al
lea rax, [0x2044e520]
ret
xor eax, eax
lea rcx, [0x2044e4b0]
lea rdx, [0x20373030]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x20110970
mov al, 0xb4
xchg byte [0x2044e4c5], al
lea rax, [0x2044e4b0]
ret
xor eax, eax
lea rcx, [0x2044e570]
lea rdx, [0x203730f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x201109b0
mov al, 0x67
xchg byte [0x2044e57f], al
lea rax, [0x2044e570]
ret
xor eax, eax
lea rcx, [0x2044e4d0]
lea rdx, [0x20373050]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x201109f0
mov al, 0xab
xchg byte [0x2044e4e2], al
lea rax, [0x2044e4d0]
ret
xor eax, eax
lea rcx, [0x2044e490]
lea rdx, [0x20373020]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x20110a30
mov al, 0x37
xchg byte [0x2044e4a0], al
lea rax, [0x2044e490]
ret
xor eax, eax
lea rcx, [0x2044e510]
lea rdx, [0x20373090]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x20110a70
mov al, 0xd0
xchg byte [0x2044e515], al
lea rax, [0x2044e510]
ret
xor eax, eax
lea rcx, [0x2044e580]
lea rdx, [0x20373100]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x20110ab0
mov al, 0x89
xchg byte [0x2044e5a6], al
lea rax, [0x2044e580]
ret
xor eax, eax
lea rcx, [0x2044e4f0]
lea rdx, [0x20373070]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x20110ae1
mov al, 0xc7
xchg byte [0x2044e50c], al
lea rax, [0x2044e4f0]
ret