Function at 0x20160d80
Capabilities:
Encode data using xor

Disassembly:
xor eax, eax
test al, al
nop word cs:[rax + rax]
cmp dword [0x2054e6cc], 0x557428df
jne 0x20160d90
test ecx, ecx
je 0x20160dd9
test edx, edx
je 0x20160dec
movzx eax, byte [0x2054e0be]
cmp al, 0xb7
je 0x20160ece
mov cl, 0x82
nop word cs:[rax + rax]
mov al, 0xf5
lock cmpxchg byte [0x2054e0be], cl
je 0x20160e5c
cmp al, 0xb7
jne 0x20160dc0
jmp 0x20160ece
test edx, edx
je 0x20160e2c
xor eax, eax
test al, al
je 0x20160fdb
jmp 0x20161000
movzx eax, byte [0x2054e1b2]
movzx ecx, byte [0x2054e6c8]
add cl, 0x5b
cmp al, cl
je 0x20160e24
mov cl, 0xd8
nop word cs:[rax + rax]
mov al, 0x56
lock cmpxchg byte [0x2054e1b2], cl
je 0x20160ed6
cmp al, 0x2d
jne 0x20160e10
lea rax, [0x2054e1a0]
ret
movzx eax, byte [0x2054dfbd]
cmp al, 0x41
je 0x20160e54
mov cl, 0x45
nop dword [rax]
mov al, 0x84
lock cmpxchg byte [0x2054dfbd], cl
je 0x20160f80
cmp al, 0x41
jne 0x20160e40
lea rax, [0x2054dfb0]
ret
xor eax, eax
lea rcx, [0x2054e0b0]
lea rdx, [0x20471900]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x20160e88
inc rax
jmp 0x20160e70
lea rax, [fcn.20160d80]
add eax, eax
add eax, 0x2c80
mov ecx, eax
not ecx
xor edx, edx
nop dword [rax]
test ecx, eax
je 0x20160ec0
movzx r8d, byte [0x2054e6c8]
add r8b, 0xe5
xchg byte [0x2054e0be], r8b
cmp byte [0x205b3c80], 0
jne 0x20160ea0
mov r8b, 0xb7
xchg byte [0x2054e0be], r8b
test dl, dl
jne 0x20160ea4
lea rax, [0x2054e0b0]
ret
xor eax, eax
lea rcx, [0x2054e1a0]
lea rdx, [0x204719f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0x11
jg 0x20160f18
inc rax
jmp 0x20160ef0
mov eax, 0xaa8bd722
lea rcx, [fcn.20160d80]
lea edx, [rcx + rcx]
add edx, 0x180
nop dword [rax]
mov r8d, dword [0x2054e6cc]
add r8d, eax
test edx, r8d
jne 0x20160f59
mov r8d, dword [0x2054e6cc]
add r8d, eax
lea r9d, [rcx + rcx]
add r9d, 0x1740
test r9d, r8d
je 0x20160f70
mov r8d, dword [0x205b3c78]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
jne 0x20160f30
jmp 0x20160f3f
mov al, 0x2d
xchg byte [0x2054e1b2], al
lea rax, [0x2054e1a0]
ret
xor edx, edx
lea rax, [0x2054dfb0]
lea rcx, [0x20471800]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x20160f90
mov eax, dword [0x205b3c78]
nop word cs:[rax + rax]
mov eax, dword [0x205b3c7c]
cmp eax, 0x11
jg 0x20160fc0
mov al, 0x41
xchg byte [0x2054dfbd], al
lea rax, [0x2054dfb0]
ret
movzx eax, byte [0x2054e03d]
mov ecx, dword [0x205b3c78]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0xaa8bd721
add ecx, dword [0x2054e6cc]
cmp edx, ecx
je 0x20161009
movzx eax, byte [0x2054e03d]
jmp 0x20160fdb
cmp al, 0x79
je 0x2016118d
lea rax, [fcn.20160d80]
lea ecx, [rax + rax]
add ecx, 0x17a0
mov edx, 0xaa8bd721
nop word cs:[rax + rax]
mov eax, dword [0x2054e6cc]
mov r8d, eax
xor r8d, 0xaa8bd722
and eax, 0x2a8bd722
lea eax, [r8 + rax*2]
test ecx, eax
jne 0x201610a0
nop dword [rax]
movzx r8d, byte [0x2054e6c8]
lea eax, [r8 - 0x7d]
add r8b, 0x6a
lock cmpxchg byte [0x2054e03d], r8b
sete r8b
mov r9d, dword [0x205b3c78]
lea r10d, [r9 - 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x2054e6cc]
add r9d, edx
cmp r10d, r9d
jne 0x201610a0
test r8b, r8b
jne 0x201610c0
cmp al, 0x79
jne 0x20161030
jmp 0x2016118d
movzx r8d, byte [0x2054e6c8]
lea eax, [r8 - 0x7d]
add r8b, 0x6a
lock cmpxchg byte [0x2054e03d], r8b
jmp 0x20161050
mov eax, dword [0x205b3c7c]
cmp eax, 0x5c
jle 0x201610d6
mov eax, dword [0x205b3c7c]
cmp eax, 0x18
jge 0x201610c0
mov eax, dword [0x205b3c7c]
cmp eax, 0x42
jg 0x201610cb
xor eax, eax
lea rcx, [0x2054e030]
lea rdx, [0x20471880]
mov r8d, 0xaa8bd72e
nop word [rax + rax]
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x2054e6cc]
add r10d, r8d
cmp r9d, r10d
jge 0x20161121
inc rax
jmp 0x20161100
mov eax, dword [0x205b3c7c]
cmp eax, 0x1a
jge 0x20161132
mov al, 1
test al, al
jne 0x20161150
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x20161140
jmp 0x2016112c
mov eax, dword [0x205b3c7c]
cmp eax, 0x19
jle 0x20161174
mov al, 0x79
xchg byte [0x2054e03d], al
mov eax, dword [0x205b3c78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20161150
mov al, 0x79
xchg byte [0x2054e03d], al
mov eax, dword [0x205b3c78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x2016115b
lea rax, [0x2054e030]
ret