Function at 0x20222030
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x20222089
test edx, edx
je 0x202220d9
test r8d, r8d
je 0x20222119
test r9d, r9d
je 0x20222199
movzx eax, byte [0x2046f07c]
cmp al, 0xc5
je 0x20222349
xor ecx, ecx
nop word cs:[rax + rax]
mov al, 0xda
lock cmpxchg byte [0x2046f07c], cl
je 0x20222319
cmp al, 0xc5
jne 0x20222070
jmp 0x20222349
test edx, edx
je 0x20222159
test r8d, r8d
je 0x202221c9
test r9d, r9d
je 0x20222249
movzx eax, byte [0x2046f0bf]
cmp al, 0x3a
je 0x20222419
mov cl, 0x47
nop word cs:[rax + rax]
mov al, 0x1f
lock cmpxchg byte [0x2046f0bf], cl
je 0x202223e9
cmp al, 0x3a
jne 0x202220c0
jmp 0x20222419
test r8d, r8d
je 0x20222209
test r9d, r9d
je 0x20222279
movzx eax, byte [0x2046efc6]
cmp al, 0x44
je 0x20222459
mov cl, 0x25
nop dword [rax]
mov al, 0xbc
lock cmpxchg byte [0x2046efc6], cl
je 0x20222425
cmp al, 0x44
jne 0x20222100
jmp 0x20222459
test r9d, r9d
je 0x202222a9
movzx eax, byte [0x2046edd6]
cmp al, 0x68
je 0x20222499
mov cl, 0xe4
nop word cs:[rax + rax]
mov al, 0x50
lock cmpxchg byte [0x2046edd6], cl
je 0x20222465
cmp al, 0x68
jne 0x20222140
jmp 0x20222499
test r8d, r8d
je 0x202222d9
test r9d, r9d
je 0x20222355
movzx eax, byte [0x2046f0ab]
cmp al, 0x1e
je 0x20222539
mov cl, 0xf4
nop dword [rax]
mov al, 0xf8
lock cmpxchg byte [0x2046f0ab], cl
je 0x2022250f
cmp al, 0x1e
jne 0x20222180
jmp 0x20222539
movzx eax, byte [0x2046f09f]
cmp al, 0xfd
je 0x202224d9
mov cl, 0xbf
nop word [rax + rax]
mov al, 0x5a
lock cmpxchg byte [0x2046f09f], cl
je 0x202224a5
cmp al, 0xfd
jne 0x202221b0
jmp 0x202224d9
test r9d, r9d
je 0x20222389
movzx eax, byte [0x2046f04b]
cmp al, 0xbd
je 0x20222579
mov cl, 0xaa
nop word cs:[rax + rax]
mov al, 0xf7
lock cmpxchg byte [0x2046f04b], cl
je 0x20222545
cmp al, 0xbd
jne 0x202221f0
jmp 0x20222579
test r9d, r9d
je 0x202223b9
movzx eax, byte [0x2046eec9]
cmp al, 0x9e
je 0x20222619
mov esi, dword [rsp + 0x60]
mov cl, 0xa0
nop word [rax + rax]
mov al, 0x49
lock cmpxchg byte [0x2046eec9], cl
je 0x20222585
cmp al, 0x9e
jne 0x20222230
jmp 0x20222619
movzx eax, byte [0x2046ed24]
cmp al, 0x80
je 0x20222659
mov cl, 0xb3
nop word [rax + rax]
mov al, 0xcc
lock cmpxchg byte [0x2046ed24], cl
je 0x20222625
cmp al, 0x80
jne 0x20222260
jmp 0x20222659
movzx eax, byte [0x2046ee70]
cmp al, 0x46
je 0x20222699
mov cl, 0x1e
nop word [rax + rax]
mov al, 0x19
lock cmpxchg byte [0x2046ee70], cl
je 0x20222665
cmp al, 0x46
jne 0x20222290
jmp 0x20222699
movzx eax, byte [0x2046ed4a]
cmp al, 0x7c
je 0x202226d9
mov cl, 0xca
nop word [rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x2046ed4a], cl
je 0x202226a5
cmp al, 0x7c
jne 0x202222c0
jmp 0x202226d9
test r9d, r9d
je 0x202224e5
movzx eax, byte [0x2046f03d]
cmp al, 0xd9
je 0x20222719
mov cl, 0xae
nop word cs:[rax + rax]
mov al, 0xe9
lock cmpxchg byte [0x2046f03d], cl
je 0x202226e5
cmp al, 0xd9
jne 0x20222300
jmp 0x20222719
xor eax, eax
lea rcx, [0x2046f070]
lea rdx, [0x20382340]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x20222330
mov al, 0xc5
xchg byte [0x2046f07c], al
lea rax, [0x2046f070]
jmp 0x20222812
movzx eax, byte [0x2046ee09]
cmp al, 0xf7
je 0x20222759
mov cl, 0xa4
nop word cs:[rax + rax]
mov al, 0xa7
lock cmpxchg byte [0x2046ee09], cl
je 0x20222725
cmp al, 0xf7
jne 0x20222370
jmp 0x20222759
movzx eax, byte [0x2046eee8]
cmp al, 0x24
je 0x20222799
mov cl, 0x2d
nop word [rax + rax]
mov al, 0x2b
lock cmpxchg byte [0x2046eee8], cl
je 0x20222765
cmp al, 0x24
jne 0x202223a0
jmp 0x20222799
movzx eax, byte [0x2046eea6]
cmp al, 0xa4
je 0x202227d9
mov cl, 0xbd
nop word [rax + rax]
mov al, 0x8c
lock cmpxchg byte [0x2046eea6], cl
je 0x202227a2
cmp al, 0xa4
jne 0x202223d0
jmp 0x202227d9
xor eax, eax
lea rcx, [0x2046f0b0]
lea rdx, [0x20382380]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x20222400
mov al, 0x3a
xchg byte [0x2046f0bf], al
lea rax, [0x2046f0b0]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046efa0]
lea rdx, [0x20382270]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x20222440
mov al, 0x44
xchg byte [0x2046efc6], al
lea rax, [0x2046efa0]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046edc0]
lea rdx, [0x20382080]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x20222480
mov al, 0x68
xchg byte [0x2046edd6], al
lea rax, [0x2046edc0]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046f090]
lea rdx, [0x20382360]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x202224c0
mov al, 0xfd
xchg byte [0x2046f09f], al
lea rax, [0x2046f090]
jmp 0x20222812
movzx eax, byte [0x2046f00b]
cmp al, 0x29
je 0x2022280b
mov cl, 0x75
mov al, 0x2a
lock cmpxchg byte [0x2046f00b], cl
je 0x202227e2
cmp al, 0x29
jne 0x202224f6
jmp 0x2022280b
xor eax, eax
lea rcx, [0x2046f0a0]
lea rdx, [0x20382370]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20222520
mov al, 0x1e
xchg byte [0x2046f0ab], al
lea rax, [0x2046f0a0]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046f040]
lea rdx, [0x20382310]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20222560
mov al, 0xbd
xchg byte [0x2046f04b], al
lea rax, [0x2046f040]
jmp 0x20222812
cmp qword [0x204a3688], 0
jne 0x202225e4
mov r9d, esi
xor r9d, 0xfd0398de
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.2010af60
mov rdi, rax
mov qword [0x204a3688], rax
xor esi, 0x245c1d0f
lea rcx, [0x20221950]
mov edx, esi
call fcn.200ec9f0
xor eax, eax
lea rcx, [0x20382170]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x202225d5
mov rax, qword [0x204a3688]
xor ecx, ecx
lea rdx, [0x20382180]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
xor byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x20222600
mov al, 0x9e
xchg byte [0x2046eec9], al
mov rax, qword [0x204a3688]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046ed20]
lea rdx, [0x20381fe0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 4
jl 0x20222640
mov al, 0x80
xchg byte [0x2046ed24], al
lea rax, [0x2046ed20]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046ee60]
lea rdx, [0x20382110]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x20222680
mov al, 0x46
xchg byte [0x2046ee70], al
lea rax, [0x2046ee60]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046ed40]
lea rdx, [0x20382000]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xa
jl 0x202226c0
mov al, 0x7c
xchg byte [0x2046ed4a], al
lea rax, [0x2046ed40]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046f030]
lea rdx, [0x20382300]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20222700
mov al, 0xd9
xchg byte [0x2046f03d], al
lea rax, [0x2046f030]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046ee00]
lea rdx, [0x203820c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x20222740
mov al, 0xf7
xchg byte [0x2046ee09], al
lea rax, [0x2046ee00]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046eee0]
lea rdx, [0x203821c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 8
jl 0x20222780
mov al, 0x24
xchg byte [0x2046eee8], al
lea rax, [0x2046eee0]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046eea0]
lea rdx, [0x20382140]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 6
jl 0x202227c0
mov al, 0xa4
xchg byte [0x2046eea6], al
lea rax, [0x2046eea0]
jmp 0x20222812
xor eax, eax
lea rcx, [0x2046f000]
lea rdx, [0x203822d0]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x202227f2
mov al, 0x29
xchg byte [0x2046f00b], al
lea rax, [0x2046f000]
add rsp, 0x28
pop rdi
pop rsi
ret