Function at 0x2021b0c0
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rdi, r9
mov rsi, rcx
mov eax, edx
and eax, 0x1f
loopne 0x2021b0f4
cmp eax, 0xa
jb 0x2021b12c
cmp eax, 0xf
ja 0x2021b15e
cmp eax, 0xc
jb case.default.0x2021b0f9
invalid
fild dword [rax]
add byte [rax], al
add eax, 0xfffffff4
lea rcx, [0x2047a954]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
xor eax, eax
sub eax, dword [rsi - 4]
cdqe
add rsi, rax
add rsi, 0xffffffffffffff78
mov rcx, rsi
mov rdi, r8
call fcn.201162c0
test edi, edi
je 0x2021ba63
mov rcx, rsi
call fcn.200782c0
jmp 0x2021ba63
cmp eax, 4
ja 0x2021b191
cmp eax, 2
jae 0x2021b1f9
test eax, eax
je 0x2021b351
nop
movzx eax, byte [0x205960a9]
cmp al, 0x47
jne 0x2021b4ae
lea rsi, [0x205960a0]
jmp 0x2021ba63
cmp eax, 0x13
jae 0x2021b23f
cmp eax, 0x10
je 0x2021b389
cmp eax, 0x12
jne 0x2021b412
test edi, edi
je 0x2021b349
mov rcx, r8
mov rsi, r8
call fcn.200782c0
jmp 0x2021ba63
cmp eax, 5
jne 0x2021b289
xor eax, eax
nop dword [rax]
cmp rdi, rax
je 0x2021ba63
lea rcx, [rax + 1]
test dl, 0x20
movzx r9d, byte [r8 + rax]
mov byte [rsi + rax], r9b
mov rax, rcx
jne 0x2021b1a0
jmp 0x2021ba63
cmp eax, 0xa
jne 0x2021b2d2
nop
mov rax, qword [r8 + 0x38]
mov rcx, qword [rax]
mov esi, 0xffffffff
test rcx, rcx
je 0x2021ba63
nop
mov rdx, qword [r8 + 0x50]
cmp dword [rdx], 0
jle 0x2021b6bf
nop
movzx esi, byte [rcx]
jmp 0x2021ba63
je 0x2021b403
cmp eax, 4
jne 0x2021b477
xor eax, eax
sub eax, dword [rdi - 4]
cdqe
lea rsi, [rdi + rax]
add rsi, 0xffffffffffffff68
mov ecx, 0x28ed5d61
mov rdx, rsi
mov rdi, r8
call fcn.20219390
test edi, edi
je 0x2021ba63
mov rcx, rsi
call fcn.200782c0
jmp 0x2021ba63
cmp eax, 0x15
jbe 0x2021b2e6
cmp eax, 0x16
jne 0x2021b4e6
nop
movzx eax, byte [0x20596076]
lea rsi, [0x20596060]
cmp al, 0xb4
je 0x2021ba63
mov cl, 0x55
nop word [rax + rax]
mov al, 0xf3
lock cmpxchg byte [0x20596076], cl
je 0x2021b72b
cmp al, 0xb4
jne 0x2021b270
jmp 0x2021ba63
cmp eax, 6
jbe 0x2021b30c
cmp eax, 9
je 0x2021b6b8
cmp eax, 7
jne 0x2021b54c
nop
movzx eax, byte [0x20596055]
lea rsi, [0x20596040]
cmp al, 0xf
je 0x2021ba63
mov cl, 1
mov al, 0x91
lock cmpxchg byte [0x20596055], cl
je 0x2021b79c
cmp al, 0xf
jne 0x2021b2b9
jmp 0x2021ba63
test edi, edi
je 0x2021b349
mov rcx, r8
mov rsi, r8
call fcn.200782c0
jmp 0x2021ba63
cmp eax, 0x13
je 0x2021b53d
cmp eax, 0x15
jne 0x2021b562
test esi, esi
je 0x2021b349
mov rcx, r8
mov rsi, r8
call fcn.200782c0
jmp 0x2021ba63
nop
mov r8, qword [rdi + 8]
movzx eax, byte [0x20595f72]
cmp al, 0x79
je 0x2021b669
mov cl, 0x98
nop word cs:[rax + rax]
mov al, 0xed
lock cmpxchg byte [0x20595f72], cl
je 0x2021b5dc
cmp al, 0x79
jne 0x2021b330
jmp 0x2021b669
mov rsi, r8
jmp 0x2021ba63
nop
movzx eax, byte [0x20596023]
lea rsi, [0x20596020]
cmp al, 0x50
je 0x2021ba63
mov cl, 0x25
nop word [rax + rax]
mov al, 0x1e
lock cmpxchg byte [0x20596023], cl
je 0x2021b708
cmp al, 0x50
jne 0x2021b370
jmp 0x2021ba63
lea rax, [0x2046f1b8]
mov qword [rdi], rax
mov rcx, rdi
call fcn.200a3bf0
lea rax, [0x2046e1c8]
mov qword [rdi], rax
mov rbx, qword [rdi + 0x60]
test rbx, rbx
je 0x2021b3eb
nop
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x2021b3e3
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c66ec.0]
test rax, rax
je 0x2021b3e3
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c66ec.0]
mov rcx, rbx
call fcn.200782c0
test esi, esi
je 0x2021b67c
mov rcx, rdi
call fcn.200782c0
mov rsi, rdi
jmp 0x2021ba63
mov rcx, rdi
call fcn.20422308
mov esi, eax
jmp 0x2021ba63
lea rax, [0x2046e1c8]
mov qword [rsi], rax
mov rbx, qword [rsi + 0x60]
test rbx, rbx
je 0x2021b462
nop
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x2021b45a
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c66ec.0]
test rax, rax
je 0x2021b45a
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c66ec.0]
mov rcx, rbx
call fcn.200782c0
test edi, edi
je 0x2021ba63
mov rcx, rsi
call fcn.200782c0
jmp 0x2021ba63
nop
movzx eax, byte [0x20596095]
lea rsi, [0x20596080]
cmp al, 0x88
je 0x2021ba63
test dl, 0x20
jne 0x2021b4ae
mov cl, 0xe5
mov al, 0xc5
lock cmpxchg byte [0x20596095], cl
je 0x2021b81e
cmp al, 0x88
jne 0x2021b495
jmp 0x2021ba63
mov cl, 0x38
lea rsi, [0x205960a0]
add byte [rsi + 0xf], ah
invalid
test byte [rax], al
add byte [rax], al
add byte [rax], al
mov al, 0x1f
lock cmpxchg byte [0x205960a9], cl
je 0x2021b518
cmp al, 0x47
jne 0x2021b4c0
jmp 0x2021ba63
movzx esi, r8b
jmp 0x2021ba63
mov rax, rsi
mov rsi, r8
jmp 0x2021b565
cmp eax, 0x17
jbe 0x2021b684
mov rcx, r8
call fcn.20421e98
xor esi, esi
jmp 0x2021ba63
mov rcx, r8
mov edx, 0x75e54097
mov r8, rsi
mov r9, rdi
call fcn.2021b0c0
mov esi, eax
jmp 0x2021ba63
movabs rax, 0xb54a06beffb1ef32
xor qword [0x205960a0], rax
xor byte [0x205960a8], 0x2a
mov al, 0x47
xchg byte [0x205960a9], al
jmp 0x2021ba63
mov rcx, r8
call fcn.20423908
xor esi, esi
jmp 0x2021ba63
test r8d, r8d
je 0x2021ba63
mov rcx, rsi
call fcn.200782c0
jmp 0x2021ba63
mov rax, r8
mov r8, rsi
sub r8, rdi
jae 0x2021b5a8
test rax, rax
je 0x2021ba63
cmp rax, 1
mov rcx, rax
adc rcx, 0
xor edx, edx
cmp rax, 8
jb 0x2021b906
cmp r8, 0x20
jb 0x2021b906
cmp rax, 0x20
jae 0x2021b8a9
xor edx, edx
jmp 0x2021b8e1
test rax, rax
je 0x2021ba63
cmp rax, 4
jb 0x2021b9ff
mov rcx, rdi
sub rcx, rsi
cmp rcx, 0x10
jb 0x2021b9ff
cmp rax, 0x10
jae 0x2021b978
xor ecx, ecx
jmp 0x2021b9b9
lea r9, [0x2047a760]
mov r10d, 0x9dcd6dd5
add r10, r9
mov r11d, 0x9dcd6dd4
xor esi, esi
movabs rdi, 0xe38e38e38e38e38f
lea rbx, [0x20595f60]
mov ecx, 0x9dcd6dd4
nop word [rax + rax]
mov rax, rcx
mul rdi
shr rdx, 3
and rdx, 0xfffffffffffffffe
lea rax, [rdx + rdx*8]
mov rdx, r10
sub rdx, rax
mov r14, r9
sub r14, rax
add r14, rsi
movzx eax, byte [rsi + rbx]
movzx ebp, byte [rsi + rbx + 1]
xor al, byte [r11 + r14]
xor al, 0x19
mov byte [rsi + rbx], al
xor bpl, byte [rdx]
xor bpl, 0x19
mov byte [rsi + rbx + 1], bpl
add rsi, 2
add r10, 2
add rcx, 2
cmp rsi, 0x12
jne 0x2021b610
mov al, 0x79
xchg byte [0x20595f72], al
test r8, r8
lea rsi, [0x20595f60]
cmovne rsi, r8
jmp 0x2021ba63
mov rsi, rdi
jmp 0x2021ba63
test rsi, rsi
je 0x2021b6b8
cmp rsi, 1
mov rax, rsi
adc rax, 0
xor esi, esi
xor ecx, ecx
nop
movzx edx, byte [rdi + rcx]
movzx r9d, byte [r8 + rcx]
cmp dl, r9b
jne 0x2021b89e
inc rcx
cmp rax, rcx
jne 0x2021b698
jmp 0x2021ba63
xor esi, esi
jmp 0x2021ba63
nop
mov r9, qword [r8 + 0x40]
mov r10, qword [r9]
test r10, r10
je 0x2021ba63
nop
test byte [r8 + 0x70], 4
jne 0x2021ba63
nop
mov r9, qword [r8 + 0x68]
cmp r9, r10
cmovb r9, r10
cmp r9, rcx
jbe 0x2021ba63
nop
mov qword [r8 + 0x68], r9
sub r9d, dword [rax]
mov dword [rdx], r9d
mov rax, qword [r8 + 0x38]
mov rcx, qword [rax]
jmp 0x2021b1f0
nop
add byte [0x20596020], 8
add byte [0x20596021], 0x24
add byte [0x20596022], 0x1a
mov al, 0x50
xchg byte [0x20596023], al
jmp 0x2021ba63
mov ecx, 0x589fc41a
xor r8d, r8d
movabs r9, 0x2e8ba2e8ba2e8ba3
lea r10, [0x2047a7e0]
lea rsi, [0x20596060]
nop dword [rax + rax]
mov rax, rcx
mul r9
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r10
movzx edx, byte [r8 + rax + 0x589fc41a]
movzx eax, byte [r8 + rax + 0x589fc41b]
xor dl, 0x9e
add byte [r8 + rsi], dl
xor al, 0x9e
add byte [r8 + rsi + 1], al
add r8, 2
add rcx, 2
cmp r8, 0x16
jne 0x2021b750
mov al, 0xb4
xchg byte [0x20596076], al
jmp 0x2021ba63
mov eax, 1
mov ecx, 0xf065125a
mov edx, 0xf9aedb8
mov r8d, 0xf065125b
mov r9d, 0xcccccccd
lea rsi, [0x20596040]
lea r10, [0x2047a7c0]
mov r11d, edx
imul r11, r9
shr r11, 0x24
shl r11d, 2
lea r11d, [r11 + r11*4]
lea edi, [r8 + r11]
movzx ebx, byte [rdi + r10]
xor bl, 0x78
add byte [rax + rsi - 1], bl
cmp rax, 0x15
je 0x2021b811
add r11d, ecx
mov r11d, r11d
movzx r11d, byte [r11 + r10]
xor r11b, 0x78
add byte [rax + rsi], r11b
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
jmp 0x2021b7c5
mov al, 0xf
xchg byte [0x20596055], al
jmp 0x2021ba63
mov eax, 1
mov ecx, 0x37f20352
mov edx, 0xc80dfcbe
mov r8d, 0x37f20353
lea rsi, [0x20596080]
lea r9, [0x2047a800]
mov r10d, edx
imul r10, r10, 0x38e38e39
shr r10, 0x22
add r10d, r10d
lea r10d, [r10 + r10*8]
lea r11d, [r8 + r10]
movzx r11d, byte [r11 + r9]
xor r11b, 0x76
add byte [rax + rsi - 1], r11b
cmp rax, 0x15
je 0x2021b891
add r10d, ecx
mov r10d, r10d
movzx r10d, byte [r10 + r9]
xor r10b, 0x76
add byte [rax + rsi], r10b
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
jmp 0x2021b841
mov al, 0x88
xchg byte [0x20596095], al
jmp 0x2021ba63
sub edx, r9d
mov rsi, rdx
jmp 0x2021ba63
mov rdx, rcx
and rdx, 0xffffffffffffffe0
xor r8d, r8d
nop
movups xmm0, xmmword [rdi + r8]
movups xmm1, xmmword [rdi + r8 + 0x10]
movups xmmword [rsi + r8], xmm0
movups xmmword [rsi + r8 + 0x10], xmm1
add r8, 0x20
cmp rdx, r8
jne 0x2021b8b3
cmp rcx, rdx
je 0x2021ba63
test cl, 0x18
je 0x2021b906
mov r8, rdx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
nop
mov r9, qword [rdi + r8]
mov qword [rsi + r8], r9
add r8, 8
cmp rdx, r8
jne 0x2021b8eb
cmp rcx, rdx
je 0x2021ba63
mov r9, rcx
mov r8, rdx
and r9, 3
je 0x2021b932
mov r8, rdx
nop word cs:[rax + rax]
nop
movzx r10d, byte [rdi + r8]
mov byte [rsi + r8], r10b
inc r8
dec r9
jne 0x2021b920
sub rdx, rcx
cmp rdx, 0xfffffffffffffffc
ja 0x2021ba63
nop
movzx ecx, byte [rdi + r8]
mov byte [rsi + r8], cl
movzx ecx, byte [rdi + r8 + 1]
mov byte [rsi + r8 + 1], cl
movzx ecx, byte [rdi + r8 + 2]
mov byte [rsi + r8 + 2], cl
movzx ecx, byte [rdi + r8 + 3]
mov byte [rsi + r8 + 3], cl
add r8, 4
cmp rax, r8
jne 0x2021b93f
jmp 0x2021ba63
mov rcx, rax
and rcx, 0xfffffffffffffff0
lea rdx, [rsi + rax]
add rdx, 0xfffffffffffffff0
lea r8, [rdi + rax]
add r8, 0xfffffffffffffff0
mov r9, rcx
neg r9
xor r10d, r10d
nop
movups xmm0, xmmword [r8 + r10]
movups xmmword [rdx + r10], xmm0
add r10, 0xfffffffffffffff0
cmp r9, r10
jne 0x2021b998
cmp rcx, rax
je 0x2021ba63
test al, 0xc
je 0x2021b9fc
mov rdx, rax
and rdx, 0xfffffffffffffffc
mov r8d, eax
and r8d, 3
lea r9, [rsi + rax]
add r9, 0xfffffffffffffffc
neg rcx
lea r10, [rdi + rax]
add r10, 0xfffffffffffffffc
mov r11, rdx
neg r11
nop
mov ebx, dword [r10 + rcx]
mov dword [r9 + rcx], ebx
add rcx, 0xfffffffffffffffc
cmp r11, rcx
jne 0x2021b9e0
cmp rdx, rax
mov rax, r8
je 0x2021ba63
jmp 0x2021b9ff
and eax, 0xf
lea rdx, [rax - 1]
mov r8, rax
and r8, 3
je 0x2021ba29
nop dword [rax]
lea rcx, [rax - 1]
movzx r9d, byte [rdi + rax - 1]
mov byte [rsi + rax - 1], r9b
dec r8
mov rax, rcx
jne 0x2021ba10
jmp 0x2021ba2c
mov rcx, rax
cmp rdx, 3
jb 0x2021ba63
mov rax, rcx
nop
movzx edx, byte [rdi + rcx - 1]
mov byte [rsi + rcx - 1], dl
movzx edx, byte [rdi + rcx - 2]
mov byte [rsi + rcx - 2], dl
movzx edx, byte [rdi + rcx - 3]
mov byte [rsi + rcx - 3], dl
add rax, 0xfffffffffffffffc
movzx edx, byte [rdi + rcx - 4]
mov byte [rsi + rcx - 4], dl
mov rcx, rax
jne 0x2021ba35
mov rax, rsi
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret