Function at 0x2016aa30
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2016aa7c
test edx, edx
je 0x2016aacc
test r8d, r8d
je 0x2016ab0c
movzx eax, byte [0x20457a74]
cmp al, 0xca
je 0x2016aa74
mov cl, 8
nop word cs:[rax + rax]
mov al, 0xcc
lock cmpxchg byte [0x20457a74], cl
je 0x2016abec
cmp al, 0xca
jne 0x2016aa60
lea rax, [0x20457a60]
ret
test edx, edx
je 0x2016ab3c
test r8d, r8d
je 0x2016ab79
test r9d, r9d
je 0x2016ac21
movzx eax, byte [0x20457885]
cmp al, 0x28
je 0x2016aac4
mov cl, 0x34
nop word cs:[rax + rax]
mov al, 0x21
lock cmpxchg byte [0x20457885], cl
je 0x2016ad79
cmp al, 0x28
jne 0x2016aab0
lea rax, [0x20457880]
ret
test r8d, r8d
je 0x2016abb9
movzx eax, byte [0x204579dd]
cmp al, 0xdc
je 0x2016ab04
mov cl, 0x66
nop word cs:[rax + rax]
mov al, 0xd0
lock cmpxchg byte [0x204579dd], cl
je 0x2016ac99
cmp al, 0xdc
jne 0x2016aaf0
lea rax, [0x204579d0]
ret
movzx eax, byte [0x20457799]
cmp al, 0xd5
je 0x2016ab34
mov cl, 0x82
nop dword [rax]
mov al, 0xc1
lock cmpxchg byte [0x20457799], cl
je 0x2016acd1
cmp al, 0xd5
jne 0x2016ab20
lea rax, [0x20457790]
ret
test r8d, r8d
je 0x2016ac59
test r9d, r9d
je 0x2016ad11
movzx eax, byte [0x20457972]
cmp al, 0x68
je 0x2016ae49
mov cl, 0x66
nop
mov al, 0xea
lock cmpxchg byte [0x20457972], cl
je 0x2016ae1b
cmp al, 0x68
jne 0x2016ab60
jmp 0x2016ae49
test r9d, r9d
je 0x2016ad49
movzx eax, byte [0x20457916]
cmp al, 0xe4
je 0x2016ae89
mov cl, 0xb5
nop word cs:[rax + rax]
mov al, 0xd8
lock cmpxchg byte [0x20457916], cl
je 0x2016ae51
cmp al, 0xe4
jne 0x2016aba0
jmp 0x2016ae89
movzx eax, byte [0x2045787c]
cmp al, 7
je 0x2016abe4
mov cl, 0x97
nop word cs:[rax + rax]
mov al, 0xa3
lock cmpxchg byte [0x2045787c], cl
je 0x2016adb1
cmp al, 7
jne 0x2016abd0
lea rax, [0x20457860]
ret
xor eax, eax
lea rcx, [0x20457a60]
lea rdx, [0x20375170]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x14
jl 0x2016ac00
mov al, 0xca
xchg byte [0x20457a74], al
lea rax, [0x20457a60]
ret
movzx eax, byte [0x2045798d]
cmp al, 0x50
je 0x2016aec9
mov cl, 0x3f
nop word cs:[rax + rax]
mov al, 0x9e
lock cmpxchg byte [0x2045798d], cl
je 0x2016ae91
cmp al, 0x50
jne 0x2016ac40
jmp 0x2016aec9
test r9d, r9d
je 0x2016adf1
movzx eax, byte [0x20457aa5]
cmp al, 0x1d
je 0x2016af09
mov cl, 0xea
nop word cs:[rax + rax]
mov al, 0xd3
lock cmpxchg byte [0x20457aa5], cl
je 0x2016aed1
cmp al, 0x1d
jne 0x2016ac80
jmp 0x2016af09
xor eax, eax
lea rcx, [0x204579d0]
lea rdx, [0x203750e0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x2016acb0
mov al, 0xdc
xchg byte [0x204579dd], al
lea rax, [0x204579d0]
ret
xor eax, eax
lea rcx, [0x20457790]
lea rdx, [0x20374eb0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x2016acf0
mov al, 0xd5
xchg byte [0x20457799], al
lea rax, [0x20457790]
ret
movzx eax, byte [0x20457831]
cmp al, 0xdf
je 0x2016af49
mov cl, 0xd2
nop word cs:[rax + rax]
mov al, 0x1a
lock cmpxchg byte [0x20457831], cl
je 0x2016af11
cmp al, 0xdf
jne 0x2016ad30
jmp 0x2016af49
movzx eax, byte [0x20457a5d]
cmp al, 0xc5
je 0x2016af89
mov cl, 0x3a
nop word [rax + rax]
mov al, 0x9d
lock cmpxchg byte [0x20457a5d], cl
je 0x2016af51
cmp al, 0xc5
jne 0x2016ad60
jmp 0x2016af89
xor eax, eax
lea rcx, [0x20457880]
lea rdx, [0x20374f90]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x2016ad90
mov al, 0x28
xchg byte [0x20457885], al
lea rax, [0x20457880]
ret
xor eax, eax
lea rcx, [0x20457860]
lea rdx, [0x20374f70]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x2016add0
mov al, 7
xchg byte [0x2045787c], al
lea rax, [0x20457860]
ret
movzx eax, byte [0x204578db]
cmp al, 0x21
je 0x2016afba
mov cl, 0x13
mov al, 0xac
lock cmpxchg byte [0x204578db], cl
je 0x2016af91
cmp al, 0x21
jne 0x2016ae02
jmp 0x2016afba
xor eax, eax
lea rcx, [0x20457960]
lea rdx, [0x20375070]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x2016ae30
mov al, 0x68
xchg byte [0x20457972], al
lea rax, [0x20457960]
ret
xor eax, eax
lea rcx, [0x204578f0]
lea rdx, [0x20375000]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x2016ae70
mov al, 0xe4
xchg byte [0x20457916], al
lea rax, [0x204578f0]
ret
xor eax, eax
lea rcx, [0x20457980]
lea rdx, [0x20375090]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x2016aeb0
mov al, 0x50
xchg byte [0x2045798d], al
lea rax, [0x20457980]
ret
xor eax, eax
lea rcx, [0x20457a90]
lea rdx, [0x203751a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x2016aef0
mov al, 0x1d
xchg byte [0x20457aa5], al
lea rax, [0x20457a90]
ret
xor eax, eax
lea rcx, [0x20457820]
lea rdx, [0x20374f40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x11
jl 0x2016af30
mov al, 0xdf
xchg byte [0x20457831], al
lea rax, [0x20457820]
ret
xor eax, eax
lea rcx, [0x20457a50]
lea rdx, [0x20375160]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x2016af70
mov al, 0xc5
xchg byte [0x20457a5d], al
lea rax, [0x20457a50]
ret
xor eax, eax
lea rcx, [0x204578d0]
lea rdx, [0x20374fe0]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x2016afa1
mov al, 0x21
xchg byte [0x204578db], al
lea rax, [0x204578d0]
ret