Function at 0x201c1340
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
mov eax, dword [0x205b3ecc]
cmp eax, 0x46
jg 0x201c13b7
mov r9d, dword [0x20555f78]
lea edx, [r9 + 0x57160a04]
lea r8d, [r9 + 0x6df3b530]
add r9d, 0x37d6c358
lea rcx, [rbp - 0x48]
call fcn.201c2210
mov rbx, qword [rbp - 0x48]
mov r9, qword [rbp - 0x40]
mov eax, dword [0x205b3ec8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov r15d, 0x14602deb
mov eax, dword [0x20555f78]
add eax, r15d
cmp ecx, eax
je 0x201c13d3
lea rcx, [rbp - 0x48]
mov edx, 0x42b5dc19
mov r8d, 0x59938745
mov r9d, 0x2376956d
call fcn.201c2210
jmp 0x201c1368
movabs r10, 0x359d2913b7923492
movabs r11, 0x6bd8a7e8c4c25cc
movabs r14, 0xf942758173b3da34
lea rsi, [fcn.201c1340]
mov qword [rbp - 0x30], r9
jmp 0x201c1450
mov r8d, dword [0x20555f78]
mov eax, 0xf7298e3c
add r8d, eax
mov r9d, r8d
call fcn.2008bfb0
mov rcx, qword [rbx + 8]
mov rax, rdi
call qword [case.0x2010e313.0]
mov r9, qword [rbp - 0x30]
movabs r10, 0x359d2913b7923492
movabs r11, 0x6bd8a7e8c4c25cc
movabs r14, 0xf942758173b3da34
add rbx, 0x10
nop dword [rax + rax]
mov ecx, dword [0x205b3ec8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x20555f78]
lea r8d, [rcx + 0x14602ded]
xor edx, edx
div r8d
add ecx, 0x14602deb
cmp edx, ecx
jne 0x201c1450
mov rcx, qword [0x20555d38]
movsxd rdx, dword [rcx]
mov rax, qword [0x20555f80]
sub rax, rdx
sub rax, rcx
add rax, r10
mov ecx, dword [0x205b3ecc]
cmp ecx, 0x58
jge 0x201c14b0
mov ecx, dword [0x205b3ec8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x201c14bd
nop
mov ecx, dword [0x205b3ecc]
cmp ecx, 0x3a
jge 0x201c14b0
jmp 0x201c149d
mov rcx, qword [0x20555f80]
add rcx, r10
mov rdx, rcx
xor rdx, r11
and rcx, r11
lea rdi, [rdx + rcx*2]
sub rdi, rax
add rdi, r14
mov r12d, dword [0x204732c4]
nop word cs:[rax + rax]
mov eax, dword [0x205b3ecc]
cmp eax, 0xb
jg 0x201c1506
mov eax, dword [0x205b3ecc]
cmp eax, 0x5a
jle 0x201c1513
mov eax, dword [0x205b3ecc]
cmp eax, 0x27
jge 0x201c14f0
jmp 0x201c14fb
cmp rbx, r9
je 0x201c19c6
nop dword [rax]
cmp qword [rbx + 8], 0
setne cl
sete al
movzx edx, byte [0x205b35a8]
mov r8d, dword [0x205b3ecc]
cmp r8d, 0x34
jl 0x201c155e
nop
mov eax, dword [0x205b3ec8]
mov ecx, dword [0x20555f78]
add ecx, eax
add ecx, 0xeb9fd214
imul ecx, eax
test cl, 1
jne 0x201c1540
jmp 0x201c1520
mov r8d, edx
not r8b
and r8b, cl
xor al, dl
or r8b, al
xor r8b, 1
or r8b, al
test r8b, 1
jne 0x201c1444
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], 0xf
mov dword [rsp + 0x20], 0xa1d995f7
mov ecx, 1
xor edx, edx
mov r8d, 0x57541da4
mov r9d, 0xbca2a257
call fcn.201c2a00
mov rcx, qword [rax]
mov rax, qword [rax + 7]
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x21], rax
movzx eax, byte [0x20555f88]
mov ecx, eax
xor cl, 0x17
and al, 0x17
add al, al
add al, cl
mov byte [rbp - 0x19], al
mov ecx, dword [0x205b3ec8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x20555f78]
mov edx, ecx
xor edx, 0x14602ded
and ecx, 0x14602ded
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
je 0x201c160b
nop dword [rax]
mov eax, dword [0x205b3ecc]
cmp eax, 0x45
jge 0x201c1600
mov eax, dword [0x20555d30]
lea r13d, [rax + 1]
mov dword [0x20555d30], r13d
xor r13d, eax
not r13d
and r13d, eax
mov eax, dword [0x20555f78]
add eax, r15d
xor r14d, r14d
mov dword [rbp - 4], eax
cmp r13d, eax
jne 0x201c1647
mov eax, dword [0x20555f78]
add eax, r15d
cmp eax, r12d
jl 0x201c1693
lea rcx, [rbp - 0x28]
call fcn.201c1cc0
mov rdi, rax
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
jb 0x201c1415
mov rcx, qword [rbp - 0x28]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x201c13fe
mov edx, dword [0x205b3ec8]
lea r8d, [rdx + 1]
imul r8d, edx
test r8b, 1
jne 0x201c1900
jmp 0x201c184d
xor eax, eax
xor r14d, r14d
jmp 0x201c16b0
add eax, 4
cmp eax, r12d
jge 0x201c1647
nop word cs:[rax + rax]
mov ecx, dword [0x205b3ecc]
cmp ecx, 0x62
jg 0x201c16e0
nop dword [rax + rax]
mov ecx, dword [0x205b3ec8]
mov edx, dword [0x20555f78]
neg edx
add edx, ecx
add edx, 0xeb9fd214
imul edx, ecx
test dl, 1
je 0x201c1700
nop
lea ecx, [rsi + rsi]
add ecx, 0x3761
lea edx, [rsi + rsi]
add edx, 0x3760
xor edx, ecx
cmp edx, 1
jne 0x201c16e0
jmp 0x201c16c0
mov ecx, dword [0x205b3ec8]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x20555f78]
mov r8d, ecx
xor r8d, 0x14602deb
and ecx, 0x14602deb
lea ecx, [r8 + rcx*2]
cmp edx, ecx
jne 0x201c1742
mov ecx, dword [0x205b3ec8]
mov edx, 0x2741aecd
sub edx, ecx
imul edx, ecx
test dl, 1
je 0x201c1777
mov ecx, dword [0x205b3ecc]
mov edx, dword [0x20555f78]
mov r8d, edx
xor r8d, 0x14602df5
and edx, 0x14602df5
add edx, edx
mov r9d, r8d
xor r9d, edx
and edx, r8d
lea edx, [r9 + rdx*2]
cmp ecx, edx
jge 0x201c16b0
jmp 0x201c172d
movsxd rcx, eax
add rcx, rdi
mov edx, dword [0x205b3ecc]
cmp edx, 0x50
mov edx, dword [0x205b3ecc]
cmp edx, 0x2e
jg 0x201c1786
mov ecx, dword [rcx]
mov edx, dword [0x205b3ecc]
nop dword [rax]
mov edx, dword [0x205b3ec8]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x20555f78]
add edx, r15d
cmp r8d, edx
jne 0x201c17a0
xor r14d, ecx
mov ecx, dword [0x205b3ec8]
lea edx, [rcx + 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x20555f78]
add ecx, r15d
cmp edx, ecx
jne 0x201c1810
mov ecx, dword [0x20555f78]
add ecx, r15d
lea edx, [rsi + rsi]
add edx, 0x18c0
mov r8d, edx
not r8d
and r8d, edx
cmp r8d, ecx
je 0x201c169a
nop word cs:[rax + rax]
mov ecx, dword [0x20555f78]
mov edx, ecx
xor edx, 0x14602dec
mov r8d, ecx
and r8d, 0x14602dec
lea edx, [rdx + r8*2]
lea r8d, [rsi + rsi]
add r8d, 0x3d60
xor r8d, edx
not r8d
and r8d, edx
add ecx, 0x14602deb
cmp r8d, ecx
jne 0x201c1810
jmp 0x201c17df
mov edx, dword [0x204732c0]
mov r8d, dword [0x205b3ecc]
cmp r8d, 0x57
jge 0x201c1900
xor r8d, r8d
cmp r13d, dword [rbp - 4]
setne r8b
or r8d, 0x19e7f85e
mov r9d, r8d
xor r9d, 0xe61807a1
and r8d, 1
lea r8d, [r9 + r8*2]
sub edx, r14d
xor r8d, edx
not r8d
and r8d, edx
sub r8, qword [0x20555f80]
add r8, qword [0x205b38a0]
movabs rdx, 0xca62d6ec486dcb6e
add r8, rdx
mov qword [0x205b38a0], r8
nop word cs:[rax + rax]
mov edx, dword [0x205b3ecc]
cmp edx, 9
jg 0x201c18df
lea edx, [rsi + rsi]
add edx, 0x6a0
mov r8d, edx
not r8d
test r8d, edx
je 0x201c1937
mov edx, dword [0x205b3ec8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x201c18c0
jmp 0x201c18cb
mov edx, dword [0x204732c0]
mov edx, dword [0x20555f78]
lea r8d, [rdx + 0x14602dec]
lea r9d, [rsi + rsi]
add r9d, 0x22e0
xor r9d, r8d
not r9d
and r9d, r8d
add edx, 0x14602deb
cmp r9d, edx
jne 0x201c1900
jmp 0x201c184d
mov rdx, qword [rcx - 8]
mov r8, qword [0x205b38a0]
mov r9, r8
not r9
mov r10, rdx
not r10
mov r11, r10
xor r11, r9
and r9, rdx
and r11, r10
or r11, r9
and r8, rdx
lea r8, [r11 + r8*2]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x201c19b0
sub rax, qword [0x20555f80]
movabs rcx, 0xca62d6ec486dcb96
add rax, rcx
mov rdx, rax
mov rcx, r8
jmp 0x201c13fe
mov eax, dword [0x205b3ec8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201c19b0
call fcn.20407a4c
lea rcx, [rbp - 0x48]
call fcn.201c0dc0
nop
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret