Function at 0x201d2a80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, qword [rcx]
test rsi, rsi
sete dl
movzx r9d, byte [0x205b3f6a]
mov r8, qword [0x20558870]
movsxd rax, dword [r8]
mov ecx, dword [0x20473c0c]
test r9b, dl
jne 0x201d2b08
xor r9b, dl
jne 0x201d2b08
mov edi, dword [0x2055886c]
lea ebx, [rdi + 1]
mov dword [0x2055886c], ebx
test edi, ebx
jne 0x201d2ae3
mov edx, dword [0x205b3f64]
xor edx, edx
test ecx, ecx
jg 0x201d2b15
xor r14d, r14d
mov rcx, rsi
call fcn.201b06f0
mov eax, dword [0x205b3f60]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201d2bda
jmp 0x201d2b8f
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
add rax, r8
xor r8d, r8d
xor r14d, r14d
jmp 0x201d2b2c
xor r14, r9
add r8d, 8
cmp r8d, ecx
jge 0x201d2ae6
movsxd r10, r8d
add r10, rax
test dl, dl
jne 0x201d2b58
nop word cs:[rax + rax]
mov r9, qword [r10]
mov r11d, dword [0x205b3f60]
lea r15d, [r11 - 1]
imul r15d, r11d
test r15b, 1
je 0x201d2b60
mov r9, qword [r10]
jmp 0x201d2b40
mov r10d, dword [0x205b3f60]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x201d2b20
nop word cs:[rax + rax]
mov r10d, dword [0x205b3f64]
cmp r10d, 0x16
jge 0x201d2b80
jmp 0x201d2b20
mov eax, edi
and eax, ebx
mov r8, qword [0x20473c18]
cmp eax, 1
movabs rcx, 0x2909556efeb620c9
sbb rcx, 0xffffffffffffffff
mov edx, dword [0x205b3f60]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x20558880]
mov r9d, edx
xor r9d, 0xe268f637
and edx, 0x6268f637
lea r9d, [r9 + rdx*2]
xor edx, edx
div r9d
test edx, edx
je 0x201d2be3
mov rax, qword [0x20473c18]
jmp 0x201d2b8f
movabs rax, 0xd6f6aa910149df36
add rcx, rax
sub r8, r14
movabs rdx, 0xfb8545e1ee540208
add rdx, r8
movabs rax, 0x47aba1e11abfdf8
add rax, rdx
nop dword [rax]
mov edx, dword [0x205b3f64]
mov r8d, dword [0x20558880]
mov r9d, r8d
xor r9d, 0xe268f657
and r8d, 0x6268f657
lea r8d, [r9 + r8*2]
cmp edx, r8d
jge 0x201d2c10
mov rdx, rax
not rdx
xor rax, rcx
not rcx
and rcx, rdx
or rcx, rax
mov eax, 0xe268f636
lea rdx, [fcn.201d2a80]
add edx, edx
add edx, 0x620
nop dword [rax]
mov r8d, dword [0x205b3f64]
cmp r8d, 0x37
jg 0x201d2c7c
mov r8d, dword [0x20558880]
add r8d, eax
test edx, r8d
je 0x201d2c93
mov r8d, dword [0x205b3f60]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
jne 0x201d2c60
jmp 0x201d2c6d
not rcx
mov rax, rcx
shr rax, 0x20
mov edx, dword [0x205b3f64]
nop word cs:[rax + rax]
mov edx, dword [0x205b3f64]
cmp edx, 0x1d
jg 0x201d2cb0
or eax, ecx
mov ecx, eax
shr ecx, 0x10
or ecx, eax
add word [0x205b3f68], cx
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x201d2d5e
mov rdx, qword [rsi + 0x18]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x201d2d45
mov rax, qword [rcx - 8]
movabs r8, 0xe415d61104d20efb
add r8, rcx
movabs rcx, 0x7ffffffffffffff8
and rcx, r8
xor r8, 0xfffffffffffffff8
lea rcx, [r8 + rcx*2]
sub rcx, rax
movabs r8, 0x1bea29eefb2df105
add r8, rcx
movabs rcx, 0xa7626fa49c10c9c3
add rcx, qword [0x20558888]
cmp r8, rcx
jae 0x201d2d83
mov rcx, rdx
xor rcx, 0x27
and edx, 0x27
lea rdx, [rcx + rdx*2]
mov rcx, rax
mov dword [rsp + 0x20], 0x8dcdc2ff
mov r8d, 0x81d39d91
mov r9d, 0x82a7c3b
call fcn.2008bfb0
mov rcx, rsi
mov edx, 0x4d2ce10c
mov r8d, 0xb017507a
mov r9d, 0xfd900890
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
jmp fcn.2008bfc0
call fcn.20407a4c
int3