Function at 0x20287550
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2028759c
test edx, edx
je 0x202875ec
test r8d, r8d
je 0x2028762c
test r9d, r9d
je 0x202876a9
movzx eax, byte [0x203f28c2]
cmp al, 0x3e
je 0x20287594
mov cl, 0x15
nop dword [rax + rax]
mov al, 0x5f
lock cmpxchg byte [0x203f28c2], cl
je 0x20287829
cmp al, 0x3e
jne 0x20287580
lea rax, [0x203f28c0]
ret
test edx, edx
je 0x2028766c
test r8d, r8d
je 0x202876dc
test r9d, r9d
je 0x20287759
movzx eax, byte [0x203f2893]
cmp al, 0x4c
je 0x202875e4
mov cl, 0x59
nop word cs:[rax + rax]
mov al, 4
lock cmpxchg byte [0x203f2893], cl
je 0x202878f9
cmp al, 0x4c
jne 0x202875d0
lea rax, [0x203f2890]
ret
test r8d, r8d
je 0x20287719
test r9d, r9d
je 0x20287789
movzx eax, byte [0x203f2fd4]
cmp al, 0xfe
je 0x20287624
mov cl, 0x66
nop dword [rax + rax]
mov al, 0xbe
lock cmpxchg byte [0x203f2fd4], cl
je 0x20287931
cmp al, 0xfe
jne 0x20287610
lea rax, [0x203f2fc0]
ret
test r9d, r9d
je 0x202877b9
movzx eax, byte [0x203f28a3]
cmp al, 0x2f
je 0x20287664
mov cl, 0xa
nop word cs:[rax + rax]
mov al, 0xd9
lock cmpxchg byte [0x203f28a3], cl
je 0x20287971
cmp al, 0x2f
jne 0x20287650
lea rax, [0x203f28a0]
ret
test r8d, r8d
je 0x202877e9
test r9d, r9d
je 0x20287861
movzx eax, byte [0x203f2ebd]
cmp al, 0x99
je 0x20287a49
mov cl, 0x56
nop
mov al, 0xfe
lock cmpxchg byte [0x203f2ebd], cl
je 0x20287a1b
cmp al, 0x99
jne 0x20287690
jmp 0x20287a49
movzx eax, byte [0x203f2cb2]
cmp al, 0xd1
je 0x202876d4
mov cl, 0x99
nop word cs:[rax + rax]
mov al, 0x6d
lock cmpxchg byte [0x203f2cb2], cl
je 0x202879b1
cmp al, 0xd1
jne 0x202876c0
lea rax, [0x203f2cb0]
ret
test r9d, r9d
je 0x20287899
movzx eax, byte [0x203f2ca6]
cmp al, 0x68
je 0x20287a89
mov cl, 0x69
nop word cs:[rax + rax]
mov al, 0x31
lock cmpxchg byte [0x203f2ca6], cl
je 0x20287a51
cmp al, 0x68
jne 0x20287700
jmp 0x20287a89
test r9d, r9d
je 0x202878c9
movzx eax, byte [0x203f2a4f]
cmp al, 0x33
je 0x20287ac9
mov cl, 0x87
nop word cs:[rax + rax]
mov al, 0x68
lock cmpxchg byte [0x203f2a4f], cl
je 0x20287a91
cmp al, 0x33
jne 0x20287740
jmp 0x20287ac9
movzx eax, byte [0x203f295a]
cmp al, 0x82
je 0x20287b09
mov cl, 0x3e
nop word [rax + rax]
mov al, 0x6f
lock cmpxchg byte [0x203f295a], cl
je 0x20287ad1
cmp al, 0x82
jne 0x20287770
jmp 0x20287b09
movzx eax, byte [0x203f2f2d]
cmp al, 0x99
je 0x20287b49
mov cl, 0x50
nop word [rax + rax]
mov al, 0x66
lock cmpxchg byte [0x203f2f2d], cl
je 0x20287b11
cmp al, 0x99
jne 0x202877a0
jmp 0x20287b49
movzx eax, byte [0x203f2885]
cmp al, 0x37
je 0x20287b89
mov cl, 0xf6
nop word [rax + rax]
mov al, 0x47
lock cmpxchg byte [0x203f2885], cl
je 0x20287b51
cmp al, 0x37
jne 0x202877d0
jmp 0x20287b89
test r9d, r9d
je 0x202879f1
movzx eax, byte [0x203f2fbd]
cmp al, 0xb2
je 0x20287bc9
mov cl, 0x3f
nop word cs:[rax + rax]
mov al, 0x5f
lock cmpxchg byte [0x203f2fbd], cl
je 0x20287b91
cmp al, 0xb2
jne 0x20287810
jmp 0x20287bc9
xor eax, eax
lea rcx, [0x203f28c0]
lea rdx, [0x203179e0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x20287840
mov al, 0x3e
xchg byte [0x203f28c2], al
lea rax, [0x203f28c0]
ret
movzx eax, byte [0x203f2cdb]
cmp al, 0x66
je 0x20287c09
mov cl, 0x4a
nop word cs:[rax + rax]
mov al, 0xd8
lock cmpxchg byte [0x203f2cdb], cl
je 0x20287bd1
cmp al, 0x66
jne 0x20287880
jmp 0x20287c09
movzx eax, byte [0x203f2e69]
cmp al, 0x94
je 0x20287c49
mov cl, 0xc1
nop word [rax + rax]
mov al, 0xaa
lock cmpxchg byte [0x203f2e69], cl
je 0x20287c11
cmp al, 0x94
jne 0x202878b0
jmp 0x20287c49
movzx eax, byte [0x203f2bbb]
cmp al, 0x20
je 0x20287c89
xor ecx, ecx
nop word [rax + rax]
mov al, 0x2a
lock cmpxchg byte [0x203f2bbb], cl
je 0x20287c51
cmp al, 0x20
jne 0x202878e0
jmp 0x20287c89
xor eax, eax
lea rcx, [0x203f2890]
lea rdx, [0x203179b0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x20287910
mov al, 0x4c
xchg byte [0x203f2893], al
lea rax, [0x203f2890]
ret
xor eax, eax
lea rcx, [0x203f2fc0]
lea rdx, [0x203180e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x14
jl 0x20287950
mov al, 0xfe
xchg byte [0x203f2fd4], al
lea rax, [0x203f2fc0]
ret
xor eax, eax
lea rcx, [0x203f28a0]
lea rdx, [0x203179c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x20287990
mov al, 0x2f
xchg byte [0x203f28a3], al
lea rax, [0x203f28a0]
ret
xor eax, eax
lea rcx, [0x203f2cb0]
lea rdx, [0x20317dd0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x202879d0
mov al, 0xd1
xchg byte [0x203f2cb2], al
lea rax, [0x203f2cb0]
ret
movzx eax, byte [0x203f2ead]
cmp al, 0x58
je 0x20287cba
mov cl, 0xea
mov al, 0xfc
lock cmpxchg byte [0x203f2ead], cl
je 0x20287c91
cmp al, 0x58
jne 0x20287a02
jmp 0x20287cba
xor eax, eax
lea rcx, [0x203f2eb0]
lea rdx, [0x20317fd0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20287a30
mov al, 0x99
xchg byte [0x203f2ebd], al
lea rax, [0x203f2eb0]
ret
xor eax, eax
lea rcx, [0x203f2c80]
lea rdx, [0x20317da0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x20287a70
mov al, 0x68
xchg byte [0x203f2ca6], al
lea rax, [0x203f2c80]
ret
xor eax, eax
lea rcx, [0x203f2a40]
lea rdx, [0x20317b60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x20287ab0
mov al, 0x33
xchg byte [0x203f2a4f], al
lea rax, [0x203f2a40]
ret
xor eax, eax
lea rcx, [0x203f2940]
lea rdx, [0x20317a60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x1a
jl 0x20287af0
mov al, 0x82
xchg byte [0x203f295a], al
lea rax, [0x203f2940]
ret
xor eax, eax
lea rcx, [0x203f2f20]
lea rdx, [0x20318040]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20287b30
mov al, 0x99
xchg byte [0x203f2f2d], al
lea rax, [0x203f2f20]
ret
xor eax, eax
lea rcx, [0x203f2870]
lea rdx, [0x20317990]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x20287b70
mov al, 0x37
xchg byte [0x203f2885], al
lea rax, [0x203f2870]
ret
xor eax, eax
lea rcx, [0x203f2fb0]
lea rdx, [0x203180d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20287bb0
mov al, 0xb2
xchg byte [0x203f2fbd], al
lea rax, [0x203f2fb0]
ret
xor eax, eax
lea rcx, [0x203f2cd0]
lea rdx, [0x20317df0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20287bf0
mov al, 0x66
xchg byte [0x203f2cdb], al
lea rax, [0x203f2cd0]
ret
xor eax, eax
lea rcx, [0x203f2e60]
lea rdx, [0x20317f80]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x20287c30
mov al, 0x94
xchg byte [0x203f2e69], al
lea rax, [0x203f2e60]
ret
xor eax, eax
lea rcx, [0x203f2b40]
lea rdx, [0x20317c60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x7b
jl 0x20287c70
mov al, 0x20
xchg byte [0x203f2bbb], al
lea rax, [0x203f2b40]
ret
xor eax, eax
lea rcx, [0x203f2ea0]
lea rdx, [0x20317fc0]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20287ca1
mov al, 0x58
xchg byte [0x203f2ead], al
lea rax, [0x203f2ea0]
ret