Function at 0x2021f810
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x68
mov esi, edx
test ecx, ecx
je 0x2021f902
mov ecx, dword [0x205b4760]
mov r8d, dword [0x20560dd4]
lea edx, [r8 + 0x14664609]
add r8d, 0x2bbed4ca
call fcn.20223d40
jmp 0x2021f866
mov ecx, dword [0x205b4764]
mov edx, 0x3eeedabd
mov r8d, 0x4e20ac46
call fcn.20224060
test al, 1
je 0x2021f850
lea rdx, [rsp + 0x3e]
mov ecx, esi
mov r8d, 0x3646b0e4
mov r9d, 0x5fa09993
call fcn.20223c60
mov al, 1
test al, al
je 0x2021f850
test byte [rsp + 0x3e], 1
je 0x2021f959
movzx ecx, byte [0x2055ef08]
mov r8d, dword [0x20560dd4]
lea edx, [r8 + 0x50d1d2c3]
add r8d, 0xd4b22fb0
call fcn.20224480
test al, 1
jne 0x2021fa6c
lea rsi, [rsp + 0x40]
nop word cs:[rax + rax]
mov rcx, rsi
mov edx, 0x707776a1
mov r8d, 0x699fbac5
call fcn.202243f0
cmp byte [rsp + 0x41], 0
jne 0x2021fa15
movzx eax, byte [0x20560dd0]
add al, 0x6e
cmp byte [rsp + 0x40], al
jne 0x2021f8d0
jmp 0x2021fa6c
mov ecx, esi
mov edx, 0x90c512ac
mov r8d, 0x3c5f3f82
call fcn.2008e940
test al, 1
je 0x2021f997
mov ecx, 0x6e909fbb
mov edx, 0x7e239af4
call fcn.20223ce0
test al, 1
jne 0x2021fbe2
mov cl, 0x7e
nop word cs:[rax + rax]
mov al, 0xd4
lock cmpxchg byte [0x2055ead2], cl
je 0x2021fb53
cmp al, 0x6e
jne 0x2021f940
jmp 0x2021fbe2
movzx eax, byte [0x2055ee2d]
cmp al, 0xd
je 0x2021fc6f
lea rsi, [rsp + 0x3f]
nop dword [rax]
mov rcx, rsi
mov edx, 0x78180203
mov r8d, 0x8d998694
call fcn.20224410
test al, 1
jne 0x2021fa8b
cmp byte [rsp + 0x3f], 0xd
jne 0x2021f970
jmp 0x2021fc6f
movzx eax, byte [0x2055f0ad]
cmp al, 0x93
je 0x2021fc37
mov bl, 0xaa
lea rsi, [rsp + 0x50]
nop dword [rax]
mov edx, dword [0x20560dd4]
lea ecx, [rdx - 0x7da48080]
add edx, 0xa21df6cc
call fcn.2017a8b0
test al, 1
je 0x2021fa00
nop dword [rax + rax]
mov al, 0xaf
lock cmpxchg byte [0x2055f0ad], bl
sete cl
mov edx, dword [0x205b4764]
cmp edx, 0x15
jg 0x2021fa00
test cl, cl
jne 0x2021fb9f
cmp al, 0x93
jne 0x2021f9b0
jmp 0x2021fc37
mov rcx, rsi
mov edx, 0x1a808a54
mov r8d, 0xe71f57b
call fcn.20224200
jmp 0x2021f9d0
xor ecx, ecx
lea rdi, [0x2055ef00]
lea rbx, [0x20476fe0]
lea rsi, [rsp + 0x60]
nop word [rax + rax]
movsxd r8, ecx
movzx ecx, byte [r8 + rdi]
movzx edx, byte [r8 + rbx]
mov dword [rsp + 0x28], 0xdef1b2ca
mov dword [rsp + 0x20], 0xf8ba417e
mov r9, rsi
call fcn.20223a00
mov ecx, dword [rsp + 0x60]
test al, 1
je 0x2021fa30
mov ecx, 0x7e740a32
mov edx, 0xe1a6e36c
call fcn.20224490
lea rax, [fcn.2021f810]
add eax, eax
add eax, 0x4140
mov ecx, eax
not ecx
test ecx, eax
jne 0x2021fc4e
jmp 0x2021fc48
xor esi, esi
lea rdi, [0x2055ee20]
lea rbx, [0x20476f10]
nop dword [rax + rax]
movzx edx, byte [rsi + rbx]
add dl, byte [rsi + rdi]
mov eax, dword [0x20560dd4]
mov ecx, eax
xor ecx, 0xdea1078a
mov r8d, eax
and r8d, 0x5ea1078a
lea r8d, [rcx + r8*2]
mov ecx, eax
xor ecx, 0xd904106e
and eax, 0x5904106e
lea r9d, [rcx + rax*2]
add r9d, 0x4e036f7
mov rcx, rsi
call fcn.20223d10
lea eax, [rsi + 1]
cmp eax, 0xc
jg 0x2021faf0
inc rsi
jmp 0x2021faa0
mov eax, dword [0x205b4760]
lea ecx, [rax - 1]
imul ecx, eax
lea rdx, [rsp + 0x64]
mov r8d, 0xba09251e
mov r9d, 0xb2e3689e
call fcn.201294e0
mov eax, dword [0x20560dd4]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xec926721
mov r8d, ecx
and r8d, 0x136d98de
or r8d, edx
xor eax, 0x136d98de
and ecx, 0x6c926721
or ecx, eax
not ecx
lea eax, [r8 + rcx*2]
cmp dword [rsp + 0x64], eax
je 0x2021fc78
jmp 0x2021fc83
xor esi, esi
lea rdi, [rsp + 0x3d]
lea rbx, [0x20476bd0]
lea r14, [0x2055eab0]
nop dword [rax + rax]
mov ecx, esi
mov rdx, rdi
mov r8d, 0xb330912c
mov r9d, 0x14783779
call fcn.20224100
movzx eax, byte [rsp + 0x3d]
add al, byte [rsi + rbx]
mov byte [rsi + r14], al
lea eax, [rsi + 1]
cmp eax, 0x21
jg 0x2021fbda
inc rsi
jmp 0x2021fb70
mov eax, 0x136d98f0
nop word cs:[rax + rax]
mov ecx, dword [0x205b4764]
mov edx, dword [0x20560dd4]
add edx, eax
cmp ecx, edx
jge 0x2021fbcd
mov ecx, dword [0x205b4764]
cmp ecx, 0x2b
jle 0x2021fbeb
mov ecx, dword [0x205b4764]
cmp ecx, 0x2f
jge 0x2021fbb0
jmp 0x2021fbc2
mov al, 0x6e
xchg byte [0x2055ead2], al
lea rax, [0x2055eab0]
jmp 0x2021fc3e
xor eax, eax
lea rcx, [0x2055f0a0]
lea rdx, [0x20477170]
nop dword [rax + rax]
cdqe
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
mov r8d, dword [0x20560dd4]
mov r9d, r8d
xor r9d, 0x136d98df
and r8d, 0x136d98df
lea r8d, [r9 + r8*2]
add eax, r8d
cmp eax, 0xd
jl 0x2021fc00
mov al, 0x93
xchg byte [0x2055f0ad], al
lea rax, [0x2055f0a0]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
ret
mov al, 1
test al, al
jne 0x2021fc66
lea rax, [fcn.2021f810]
add eax, eax
add eax, 0x4100
mov ecx, eax
not ecx
test ecx, eax
jne 0x2021fc60
jmp 0x2021fc48
lea rax, [0x2055ef00]
jmp 0x2021fc3e
lea rax, [0x2055ee20]
jmp 0x2021fc3e
mov eax, dword [0x205b4764]
cmp eax, 0x3d
jl 0x2021fc96
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x2021fc90
jmp 0x2021fc78
mov al, 0xd
xchg byte [0x2055ee2d], al
jmp 0x2021fc6f