Function at 0x201d1040
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
lea rdi, [rcx + 0x40]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], 0
mov rcx, rdi
call fcn.20100f90
nop dword [rax + rax]
mov r14, qword [rsi]
mov r15, qword [r14]
mov eax, dword [0x205b3f5c]
cmp eax, 0x32
jg 0x201d1080
mov qword [rbp - 0x28], rdi
cmp r15, r14
je 0x201d1255
mov eax, dword [0x205b3f5c]
cmp eax, 0x32
jg 0x201d10ba
mov eax, dword [0x205b3f58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x201d10fd
lea rdi, [0x201d27b0]
mov ebx, 0x2c1beabd
nop word cs:[rax + rax]
mov ecx, 0x17
call fcn.20407ac4
mov qword [0x205b3f50], rax
mov rcx, rdi
call fcn.20427ec0
mov eax, dword [0x205b3f5c]
mov ecx, dword [0x205587fc]
add ecx, ebx
cmp eax, ecx
jge 0x201d10d0
jmp 0x201d10a9
lea rax, [fcn.201d1040]
lea r12d, [rax + rax]
add r12d, 0x1580
mov r13d, 0x2c1beab8
xor edi, edi
lea rbx, [rbp - 0x20]
jmp 0x201d112c
mov r15, rax
cmp rax, r14
je 0x201d1255
movups xmm0, xmmword [r15 + 0x20]
movaps xmmword [rbp - 0x40], xmm0
mov rcx, qword [rbp - 0x38]
call fcn.201d2890
test al, al
jne 0x201d11a0
mov eax, dword [0x205b3f5c]
cmp eax, 0x1b
test dil, dil
jne 0x201d114b
mov rdx, qword [rbp - 0x18]
cmp rdx, qword [rbp - 0x10]
je 0x201d1194
nop word [rax + rax]
mov rax, qword [rbp - 0x38]
mov qword [rdx], rax
add qword [rbp - 0x18], 8
mov eax, dword [0x205b3f5c]
cmp eax, 0x5e
jl 0x201d11a0
mov rax, qword [rbp - 0x38]
mov qword [rdx], rax
add qword [rbp - 0x18], 8
mov eax, dword [0x205b3f58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jmp 0x201d1160
mov rcx, rbx
lea r8, [rbp - 0x38]
call fcn.201d1b10
mov rcx, qword [r15 + 0x10]
cmp byte [rcx + 0x19], 0
je 0x201d11e8
nop word [rax + rax]
mov rax, qword [r15 + 8]
cmp byte [rax + 0x19], 0
jne 0x201d1120
mov rcx, r15
mov r15, rax
cmp rcx, qword [rax + 0x10]
je 0x201d11b0
mov rax, r15
jmp 0x201d1120
test dl, dl
jne 0x201d1120
mov rax, rcx
mov ecx, dword [0x205587fc]
lea edx, [rcx + 0x2c1bea7e]
and edx, r12d
add ecx, 0x2c1bea7d
cmp edx, ecx
jne 0x201d1240
nop word cs:[rax + rax]
mov rcx, qword [rax]
movzx edx, byte [rcx + 0x19]
mov r8d, dword [0x205b3f58]
mov r9d, r8d
sub r9d, dword [0x205587fc]
imul r9d, r8d
test r9b, 1
je 0x201d11e0
nop word cs:[rax + rax]
mov ecx, dword [0x205b3f5c]
mov edx, dword [0x205587fc]
add edx, r13d
cmp ecx, edx
jge 0x201d1240
jmp 0x201d1210
mov r14, qword [0x20558208]
mov ebx, dword [r14]
add ebx, dword [0x205b3b28]
mov edi, dword [0x20473a14]
mov eax, dword [0x205b3f58]
mov rcx, qword [rbp - 0x28]
call fcn.20101050
movsxd rbx, ebx
add rbx, r14
mov r14, qword [rbp - 0x20]
mov r15, qword [rbp - 0x18]
cmp r14, r15
je 0x201d12c0
nop dword [rax]
mov rcx, qword [rsi + 0xa8]
test rcx, rcx
je 0x201d1422
mov rdx, qword [r14]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x2010e313.0]
add r14, 8
cmp r14, r15
jne 0x201d1290
nop dword [rax]
mov eax, dword [0x205b3f58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201d12c0
mov r8, qword [rbp - 0x20]
mov eax, dword [0x20558204]
lea ecx, [rax + 1]
mov dword [0x20558204], ecx
mov edx, dword [0x205b3f58]
mov edx, eax
not edx
xor eax, ecx
not ecx
and ecx, edx
or ecx, eax
not ecx
mov r9d, 0x2c1bea7f
nop
mov edx, dword [0x205b3f58]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x205587fc]
add r10d, r9d
xor edx, edx
div r10d
test edx, edx
jne 0x201d1300
xor eax, eax
mov edx, 0
test ecx, ecx
jne 0x201d1362
mov eax, dword [0x205b3f58]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
nop dword [rax]
mov eax, dword [0x205b3f58]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x201d1340
xor r9d, r9d
mov eax, 0
mov edx, 0
test edi, edi
jg 0x201d1378
mov r9d, dword [0x205b3f5c]
cmp r9d, 0x35
jle 0x201d1427
jmp 0x201d143c
mov r10d, 0x2c1bea7d
mov r11d, 0x2c1beadd
xor eax, eax
xor edx, edx
jmp 0x201d1399
add r9d, 0x10
cmp r9d, edi
jge 0x201d1362
movsxd rsi, r9d
add rsi, rbx
mov r14d, dword [0x205b3f58]
lea r15d, [r14 - 1]
imul r15d, r14d
and r15d, 1
mov r14d, dword [0x205587fc]
add r14d, r10d
cmp r15d, r14d
mov r14d, dword [0x205b3f58]
lea r15d, [r14 - 1]
imul r15d, r14d
test r15b, 1
jne 0x201d13bf
mov r14, qword [rsi]
mov rsi, qword [rsi + 8]
mov r15, rax
xor r15, r14
mov r12, rdx
xor r12, rsi
xor r12, rsi
and rdx, r12
xor rdx, rsi
xor r15, r14
and rax, r15
xor rax, r14
nop dword [rax]
mov esi, dword [0x205b3f5c]
cmp esi, 0x25
jle 0x201d1390
mov esi, dword [0x205b3f5c]
mov r14d, dword [0x205587fc]
add r14d, r11d
cmp esi, r14d
jge 0x201d1400
jmp 0x201d1400
call fcn.20429524
mov r9d, dword [0x205b3f58]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x201d1468
mov r9d, 0x2c1beaca
nop word cs:[rax + rax]
mov r10d, dword [0x205b3f5c]
mov r11d, dword [0x205587fc]
add r11d, r9d
cmp r10d, r11d
jge 0x201d1450
jmp 0x201d1427
test r8, r8
je 0x201d177a
mov r9d, 0x2c1bea7e
lea r10, [fcn.201d1040]
add r10d, r10d
add r10d, 0x22e0
cmp dword [0x205587fc], 0xd3e41583
je 0x201d14b9
nop word cs:[rax + rax]
mov r11d, dword [0x205587fc]
add r11d, r9d
test r10d, r11d
cmp dword [0x205587fc], 0xd3e41583
jne 0x201d14a0
mov rsi, qword [0x20473ab8]
mov rdi, qword [0x20473ab0]
mov r9d, dword [0x205b3f5c]
mov ebx, 0x2c1bea7e
lea r9, [fcn.201d1040]
lea r15d, [r9 + r9]
add r15d, 0x4220
nop word cs:[rax + rax]
xor r10d, r10d
test ecx, ecx
setne r10b
add r10, 0xffffffffffffffff
mov r11d, 0
adc r11, 0xffffffffffffffff
mov r9, rdi
neg r9
mov r14d, 0
sbb r14, rsi
mov r12d, dword [0x205587fc]
add r12d, ebx
xor r12d, r15d
not r12d
test r12d, r15d
jne 0x201d14f0
mov ecx, dword [0x205b3f5c]
xor ecx, ecx
nop word cs:[rax + rax]
test cl, cl
jne 0x201d1540
add r9, rax
adc r14, rdx
xor edx, edx
neg r9
sbb rdx, r14
xor rdx, r11
xor r9, r10
not rdx
not r9
and rdx, r11
and r9, r10
mov rax, r9
not rax
mov rcx, rdx
not rcx
and rcx, rax
mov r10, r9
xor r10, rdx
or r10, rcx
not r10
mov eax, dword [0x205b3f5c]
cmp eax, 0xc
jg 0x201d15cc
mov rax, rdx
xor rax, rdx
not rax
and rax, r9
xor rax, rdx
or rax, r10
mov rcx, qword [0x205b3d68]
mov r11, rcx
xor r11, rax
and rax, rcx
lea rax, [r11 + rax*2]
mov qword [0x205b3d68], rax
mov eax, dword [0x205b3f58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x201d1673
mov r11, r9
sub r11, rdx
imul r11, rdx
mov bl, 1
nop dword [rax + rax]
mov ecx, r11d
sub ecx, edx
imul ecx, edx
mov rax, r11
shl rax, cl
mov rcx, r11
sub rcx, rax
imul rcx, rax
mov rsi, r11
sub rsi, rcx
imul rsi, rcx
mov rax, rsi
shl rax, cl
sub rsi, rax
imul rsi, rax
sub rax, rsi
mov ecx, eax
shl rsi, cl
xor eax, esi
or eax, r10d
mov rsi, qword [0x205b3d68]
mov rdi, rsi
mov ecx, eax
shl rdi, cl
mov rcx, rsi
sub rcx, rdi
imul rcx, rdi
sub rsi, rcx
imul rsi, rcx
neg rsi
mov rax, rsi
xor rax, rcx
and rsi, rcx
lea rax, [rax + rsi*2]
shl rax, cl
sub rax, rcx
imul rax, rcx
mov rsi, rcx
sub rsi, rax
add rsi, rcx
mov qword [0x205b3d68], rsi
test bl, bl
je 0x201d15e0
jmp 0x201d158a
mov eax, dword [0x205b3f5c]
cmp eax, 0x63
jge 0x201d16c0
mov rdx, qword [0x205b3d68]
add rdx, qword [rbp - 0x10]
movabs rax, 0xfacb40b8404b7623
add rax, qword [0x20558800]
mov ecx, dword [0x205b3f5c]
mov r9d, 0x2c1beab3
add r9d, dword [0x205587fc]
cmp ecx, r9d
jl 0x201d16d3
nop word cs:[rax + rax]
mov eax, dword [0x205b3f58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201d16c0
jmp 0x201d167e
sub rdx, r8
cmp rdx, rax
jbe 0x201d1766
mov eax, dword [0x205b3f58]
mov ecx, dword [0x205587fc]
neg ecx
add ecx, eax
add ecx, 0xd3e41582
imul ecx, eax
test cl, 1
jne 0x201d1720
lea rcx, [r8 - 8]
mov rax, qword [r8 - 8]
sub rcx, rax
add rcx, qword [0x20558800]
mov r9d, dword [0x205b3f5c]
cmp r9d, 0xc
jl 0x201d174c
nop dword [rax]
mov eax, dword [0x205b3f58]
mov ecx, dword [0x205587fc]
lea r9d, [rcx + rax]
add r9d, 0x2c1bea7e
imul r9d, eax
and r9d, 1
add ecx, 0x2c1bea7d
cmp r9d, ecx
jne 0x201d1720
jmp 0x201d16fd
movabs r8, 0xfacb40b8404b6624
add rcx, r8
cmp rcx, 0x20
jae 0x201d178c
add rdx, 0x27
mov r8, rax
mov rcx, r8
mov r8d, 0x6d683f52
mov r9d, 0x36b30e65
call fcn.2008bfb0
nop
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.20407a4c
int3