Function at 0x20224120
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2022416c
test edx, edx
je 0x202241bc
test r8d, r8d
je 0x202241fc
test r9d, r9d
je 0x20224279
movzx eax, byte [0x2046f1cb]
cmp al, 0xb9
je 0x20224164
mov cl, 0xbb
nop dword [rax + rax]
mov al, 0x6d
lock cmpxchg byte [0x2046f1cb], cl
je 0x202243f9
cmp al, 0xb9
jne 0x20224150
lea rax, [0x2046f1c0]
ret
test edx, edx
je 0x2022423c
test r8d, r8d
je 0x202242ac
test r9d, r9d
je 0x20224329
movzx eax, byte [0x2046f30d]
cmp al, 0xc2
je 0x202241b4
mov cl, 3
nop word cs:[rax + rax]
mov al, 0xda
lock cmpxchg byte [0x2046f30d], cl
je 0x202244c9
cmp al, 0xc2
jne 0x202241a0
lea rax, [0x2046f300]
ret
test r8d, r8d
je 0x202242e9
test r9d, r9d
je 0x20224359
movzx eax, byte [0x2046f15b]
cmp al, 0x6f
je 0x202241f4
mov cl, 0x32
nop dword [rax + rax]
mov al, 0x81
lock cmpxchg byte [0x2046f15b], cl
je 0x20224501
cmp al, 0x6f
jne 0x202241e0
lea rax, [0x2046f150]
ret
test r9d, r9d
je 0x20224389
movzx eax, byte [0x2046f196]
cmp al, 0xca
je 0x20224234
mov cl, 0xea
nop word cs:[rax + rax]
mov al, 0x43
lock cmpxchg byte [0x2046f196], cl
je 0x20224541
cmp al, 0xca
jne 0x20224220
lea rax, [0x2046f170]
ret
test r8d, r8d
je 0x202243b9
test r9d, r9d
je 0x20224431
movzx eax, byte [0x2046f105]
cmp al, 0x77
je 0x20224619
mov cl, 0xd0
nop
mov al, 0xf5
lock cmpxchg byte [0x2046f105], cl
je 0x202245eb
cmp al, 0x77
jne 0x20224260
jmp 0x20224619
movzx eax, byte [0x2046f16f]
cmp al, 0x7f
je 0x202242a4
mov cl, 0x87
nop word cs:[rax + rax]
mov al, 0x25
lock cmpxchg byte [0x2046f16f], cl
je 0x20224581
cmp al, 0x7f
jne 0x20224290
lea rax, [0x2046f160]
ret
test r9d, r9d
je 0x20224469
movzx eax, byte [0x2046f29d]
cmp al, 0x64
je 0x20224659
mov cl, 0x47
nop word cs:[rax + rax]
mov al, 0x8a
lock cmpxchg byte [0x2046f29d], cl
je 0x20224621
cmp al, 0x64
jne 0x202242d0
jmp 0x20224659
test r9d, r9d
je 0x20224499
movzx eax, byte [0x2046f2dc]
cmp al, 0xa4
je 0x20224699
mov cl, 0x7b
nop word cs:[rax + rax]
mov al, 0x73
lock cmpxchg byte [0x2046f2dc], cl
je 0x20224661
cmp al, 0xa4
jne 0x20224310
jmp 0x20224699
movzx eax, byte [0x2046f33c]
cmp al, 0xf
je 0x202246d9
mov cl, 0x2d
nop word [rax + rax]
mov al, 0xec
lock cmpxchg byte [0x2046f33c], cl
je 0x202246a1
cmp al, 0xf
jne 0x20224340
jmp 0x202246d9
movzx eax, byte [0x2046f23d]
cmp al, 0xb
je 0x20224719
mov cl, 0xce
nop word [rax + rax]
mov al, 0xd8
lock cmpxchg byte [0x2046f23d], cl
je 0x202246e1
cmp al, 0xb
jne 0x20224370
jmp 0x20224719
movzx eax, byte [0x2046f229]
cmp al, 0x11
je 0x20224759
mov cl, 0xae
nop word [rax + rax]
mov al, 0xa2
lock cmpxchg byte [0x2046f229], cl
je 0x20224721
cmp al, 0x11
jne 0x202243a0
jmp 0x20224759
test r9d, r9d
je 0x202245c1
movzx eax, byte [0x2046f2be]
cmp al, 0x52
je 0x20224799
mov cl, 0xf6
nop word cs:[rax + rax]
mov al, 0x57
lock cmpxchg byte [0x2046f2be], cl
je 0x20224761
cmp al, 0x52
jne 0x202243e0
jmp 0x20224799
xor eax, eax
lea rcx, [0x2046f1c0]
lea rdx, [0x203825d0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20224410
mov al, 0xb9
xchg byte [0x2046f1cb], al
lea rax, [0x2046f1c0]
ret
movzx eax, byte [0x2046f2cd]
cmp al, 0xb4
je 0x202247d9
mov cl, 0xfb
nop word cs:[rax + rax]
mov al, 0x20
lock cmpxchg byte [0x2046f2cd], cl
je 0x202247a1
cmp al, 0xb4
jne 0x20224450
jmp 0x202247d9
movzx eax, byte [0x2046f1b2]
cmp al, 0x2c
je 0x20224819
mov cl, 0x56
nop word [rax + rax]
mov al, 0xd8
lock cmpxchg byte [0x2046f1b2], cl
je 0x202247e1
cmp al, 0x2c
jne 0x20224480
jmp 0x20224819
movzx eax, byte [0x2046f0fc]
cmp al, 0x6d
je 0x20224859
mov cl, 0x11
nop word [rax + rax]
mov al, 0x6a
lock cmpxchg byte [0x2046f0fc], cl
je 0x20224821
cmp al, 0x6d
jne 0x202244b0
jmp 0x20224859
xor eax, eax
lea rcx, [0x2046f300]
lea rdx, [0x20382710]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x202244e0
mov al, 0xc2
xchg byte [0x2046f30d], al
lea rax, [0x2046f300]
ret
xor eax, eax
lea rcx, [0x2046f150]
lea rdx, [0x20382560]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20224520
mov al, 0x6f
xchg byte [0x2046f15b], al
lea rax, [0x2046f150]
ret
xor eax, eax
lea rcx, [0x2046f170]
lea rdx, [0x20382580]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x20224560
mov al, 0xca
xchg byte [0x2046f196], al
lea rax, [0x2046f170]
ret
xor eax, eax
lea rcx, [0x2046f160]
lea rdx, [0x20382570]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x202245a0
mov al, 0x7f
xchg byte [0x2046f16f], al
lea rax, [0x2046f160]
ret
movzx eax, byte [0x2046f1ec]
cmp al, 0x90
je 0x2022488a
mov cl, 0x8b
mov al, 1
lock cmpxchg byte [0x2046f1ec], cl
je 0x20224861
cmp al, 0x90
jne 0x202245d2
jmp 0x2022488a
xor eax, eax
lea rcx, [0x2046f100]
lea rdx, [0x20382510]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x20224600
mov al, 0x77
xchg byte [0x2046f105], al
lea rax, [0x2046f100]
ret
xor eax, eax
lea rcx, [0x2046f290]
lea rdx, [0x203826a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20224640
mov al, 0x64
xchg byte [0x2046f29d], al
lea rax, [0x2046f290]
ret
xor eax, eax
lea rcx, [0x2046f2d0]
lea rdx, [0x203826e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x20224680
mov al, 0xa4
xchg byte [0x2046f2dc], al
lea rax, [0x2046f2d0]
ret
xor eax, eax
lea rcx, [0x2046f330]
lea rdx, [0x20382740]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x202246c0
mov al, 0xf
xchg byte [0x2046f33c], al
lea rax, [0x2046f330]
ret
xor eax, eax
lea rcx, [0x2046f230]
lea rdx, [0x20382640]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20224700
mov al, 0xb
xchg byte [0x2046f23d], al
lea rax, [0x2046f230]
ret
xor eax, eax
lea rcx, [0x2046f220]
lea rdx, [0x20382630]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x20224740
mov al, 0x11
xchg byte [0x2046f229], al
lea rax, [0x2046f220]
ret
xor eax, eax
lea rcx, [0x2046f2b0]
lea rdx, [0x203826c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xe
jl 0x20224780
mov al, 0x52
xchg byte [0x2046f2be], al
lea rax, [0x2046f2b0]
ret
xor eax, eax
lea rcx, [0x2046f2c0]
lea rdx, [0x203826d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x202247c0
mov al, 0xb4
xchg byte [0x2046f2cd], al
lea rax, [0x2046f2c0]
ret
xor eax, eax
lea rcx, [0x2046f1b0]
lea rdx, [0x203825c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x20224800
mov al, 0x2c
xchg byte [0x2046f1b2], al
lea rax, [0x2046f1b0]
ret
xor eax, eax
lea rcx, [0x2046f0e0]
lea rdx, [0x203824f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x20224840
mov al, 0x6d
xchg byte [0x2046f0fc], al
lea rax, [0x2046f0e0]
ret
xor eax, eax
lea rcx, [0x2046f1e0]
lea rdx, [0x203825f0]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x20224871
mov al, 0x90
xchg byte [0x2046f1ec], al
lea rax, [0x2046f1e0]
ret