Function at 0x201affe0
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 rdi, rcx
mov rax, qword [0x205b38a8]
add rax, qword [rcx + 0x20]
mov qword [rbp - 0x18], rax
mov rax, qword [rcx]
mov rsi, qword [rax]
mov r14d, dword [rsi]
mov qword [rbp - 8], rdx
mov rcx, qword [rdx + 0x10]
lea rdx, [rsi + 4]
movsxd rax, dword [0x20472c90]
mov r8d, dword [0x205b3dfc]
movabs rbx, 0x6421938ccb302b70
add rbx, rax
nop
mov eax, dword [0x205b3e00]
cmp eax, 0x1d
jg 0x201b0040
mov r12d, dword [0x20472c94]
mov r8, r14
call fcn.2044f800
mov rax, qword [0x20553718]
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], rax
lea r10, [r14 + rax]
mov qword [rbp - 0x30], rsi
lea r9, [r10 + rsi]
movabs rax, 0x771e4d3b5eb198f8
lea r15, [r9 + rax]
mov ecx, dword [rax + r9]
mov r8d, ecx
cmp rcx, 4
mov qword [rbp - 0x10], r15
jb 0x201b01a5
movabs rdx, 0x771e4d3b5eb198fc
add r9, rdx
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 0x10]
shr rcx, 2
movabs r11, 0x771e4d3b5eb198f5
add r11, qword [0x20553718]
mov rsi, rcx
not rsi
mov r14, rcx
xor r14, r11
not r11
and r11, rsi
or r11, r14
not r11
cmp ecx, 1
jne 0x201b00ef
xor ecx, ecx
test r11, r11
jne 0x201b0195
jmp 0x201b01a5
movabs rsi, 0x771e4d3b5eb198f3
add rsi, qword [0x20553718]
xor rsi, rcx
mov r14d, ecx
not r14d
and r14d, 0x3ffffffe
and ecx, 1
or rcx, r14
mov r14d, esi
not r14d
xor rsi, 0xffffffffc0000001
and r14d, 0x3ffffffe
or r14, rsi
not r14
or r14, rcx
movabs rcx, 0x771e4d3b5eb19900
add rcx, qword [rbp - 0x30]
add r10, rcx
mov rsi, 0xfffffffffffffffd
sub rsi, r14
xor ecx, ecx
mov r14d, dword [r9 + rcx*4]
mov r15d, dword [rax + 0x20]
add dword [rdx + r14], r15d
mov r14d, dword [r10 + rcx*4]
mov r15d, dword [rdx + r14]
sub r15d, dword [0x20553710]
mov r13d, dword [rax + 0x20]
add r15d, r13d
add r15d, 0xaa1a5950
mov dword [rdx + r14], r15d
cmp rsi, rcx
je 0x201b0188
add rcx, 2
jmp 0x201b0150
add rcx, 2
mov r15, qword [rbp - 0x10]
test r11, r11
je 0x201b01a5
mov ecx, dword [r9 + rcx*4]
mov rax, qword [rbp - 8]
mov r9d, dword [rax + 0x20]
add dword [rdx + rcx], r9d
mov r8d, r8d
mov r9d, dword [r8 + r15 + 4]
mov r14d, dword [0x20553614]
lea r15d, [r14 + 1]
mov ecx, dword [0x205b3dfc]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x201b01eb
lea rax, [fcn.201affe0]
lea ecx, [rax + rax]
add ecx, 0x15e0
mov edx, ecx
not edx
nop dword [rax]
mov dword [0x20553614], r15d
test edx, ecx
jne 0x201b01e0
mov dword [0x20553614], r15d
test r15d, r14d
mov qword [rbp - 0x48], r8
je 0x201b0200
xor r13d, r13d
jmp 0x201b025d
lea rax, [0x20472c90]
movabs rcx, 0x9bde6c7334cfd490
add rcx, rax
add rbx, rcx
nop word [rax + rax]
mov eax, dword [0x205b3dfc]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201b0220
mov eax, dword [0x205b3e00]
nop word [rax + rax]
mov eax, dword [0x205b3e00]
cmp eax, 0x3c
jg 0x201b0240
xor r10d, r10d
mov r13d, 0
test r12d, r12d
jg 0x201b04c0
cmp r9d, 4
jb 0x201b03f1
mov rax, qword [rbp - 0x10]
mov r8, qword [rbp - 0x48]
lea rdx, [r8 + rax]
add rdx, 8
mov rax, qword [rbp - 8]
mov r10, qword [rax + 0x10]
mov r11d, r10d
sub r11d, dword [rbp - 0x18]
shr r9, 2
mov rbx, r9
not rbx
lea rcx, [r9 - 1]
mov esi, r9d
xor esi, 3
and rbx, 0xfffffffffffffffc
or rbx, rsi
mov rax, rbx
not rax
cmp rcx, 3
jae 0x201b02bd
xor ecx, ecx
test rax, rax
jne 0x201b039d
jmp 0x201b03f1
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rdi
and r9d, 0xfffffffc
mov rsi, r9
mov rax, qword [rbp - 0x38]
add rax, r8
add rax, qword [rbp - 0x40]
add rax, qword [rbp - 0x30]
movabs r9, 0x771e4d3b5eb19908
add r9, rax
xor ecx, ecx
xor r12d, r12d
nop dword [rax]
lea rax, [rcx*4]
mov r8d, dword [rdx + rcx*4]
add dword [r10 + r8], r11d
or rax, 4
mov eax, dword [rdx + rax]
add dword [r10 + rax], r11d
mov eax, dword [r9 + rcx*4]
add dword [r10 + rax], r11d
mov eax, ecx
and eax, 3
mov r8, qword [0x20553718]
movabs rdi, 0x771e4d3b5eb198f7
add r8, rdi
xor r8, rcx
or r8, rax
mov eax, dword [rdx + r8*4]
mov r8d, dword [r10 + rax]
mov edi, r8d
xor edi, r11d
and r8d, r11d
lea r8d, [rdi + r8*2]
mov dword [r10 + rax], r8d
mov rax, qword [0x20553718]
mov r8, rax
movabs rdi, 0x771e4d3b5eb198f8
xor r8, rdi
and rax, rdi
lea rax, [r8 + rax*2]
mov r8, rax
xor r8, rax
not r8
and r8, r12
xor r8, rax
and r12d, 4
lea r12, [r8 + r12*2]
mov rax, rsi
add rcx, 4
cmp r12, rsi
jne 0x201b02f0
mov rdi, qword [rbp - 0x10]
mov rax, qword [rbp - 0x18]
test rax, rax
je 0x201b03f1
add rbx, 2
movabs rax, 0x771e4d3b5eb198f5
nop dword [rax + rax]
mov r8d, dword [rdx + rcx*4]
mov r9d, dword [0x205b3e04]
mov esi, r9d
xor esi, r8d
and r9d, r8d
lea r8d, [rsi + r9*2]
mov r9d, dword [r10 + r8]
mov esi, r9d
xor esi, r11d
and r9d, r11d
lea r9d, [rsi + r9*2]
mov dword [r10 + r8], r9d
test rbx, rbx
je 0x201b03f1
add rcx, qword [0x20553718]
add rcx, rax
inc rbx
jmp 0x201b03b0
mov rdx, qword [rbp - 8]
mov eax, dword [rdx + 0x10]
mov ecx, dword [rdx]
mov edx, dword [rdx + 8]
mov r8d, dword [rdi + 0x20]
sub ecx, r8d
mov dword [rbp - 0x28], ecx
add ecx, edx
inc ecx
mov dword [rbp - 0x24], ecx
sub eax, r8d
mov dword [rbp - 0x20], eax
mov rdx, qword [rdi + 0x10]
cmp rdx, qword [rdi + 0x18]
je 0x201b043c
mov eax, dword [rbp - 0x20]
mov dword [rdx + 8], eax
mov rax, qword [rbp - 0x28]
mov qword [rdx], rax
add qword [rdi + 0x10], 0xc
cmp qword [0x205b6560], 0
jne 0x201b047f
jmp 0x201b0453
lea rcx, [rdi + 8]
lea r8, [rbp - 0x28]
call fcn.201b08b0
cmp qword [0x205b6560], 0
jne 0x201b047f
mov ecx, 0x900
mov edx, 0xd460ef54
mov r8d, 0xe49e7fe4
call fcn.2008daf0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.20067cf0
mov rax, qword [rbp - 8]
mov qword [0x205b6560], rax
mov rax, qword [0x205b6560]
mov rax, qword [rax + 0x8d8]
mov r8, qword [rdi + 0x20]
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
shr rdx, 2
imul edx, edx, 0xaaaaaaab
call qword [case.0x2010e313.0]
mov ecx, dword [0x205b3e00]
cmp ecx, 0x26
jge 0x201b05e0
jmp 0x201b05c6
lea rax, [fcn.201affe0]
lea edx, [rax + rax]
add edx, 0x3ec0
mov r11d, edx
not r11d
xor ecx, ecx
jmp 0x201b052b
not r13d
mov eax, ecx
and eax, r13d
or r13d, ecx
not r13d
or r13d, eax
mov eax, r10d
xor eax, 2
and r10d, 2
mov ecx, dword [0x20553710]
mov r8d, ecx
xor r8d, 0x55e5a6b2
and ecx, 0x55e5a6b2
lea r8d, [r8 + rcx*2]
imul r8d, r10d
add r8d, eax
mov r10d, r8d
mov ecx, r13d
cmp r8d, r12d
jge 0x201b025d
mov eax, dword [0x205b3dfc]
mov r8d, dword [0x20553710]
neg r8d
add r8d, eax
inc r8d
jmp 0x201b055a
mov eax, dword [0x205b3dfc]
lea r8d, [rax + 1]
imul r8d, eax
test r8b, 1
jne 0x201b0550
cmp dword [0x20553710], 0xaa1a5950
jne 0x201b0550
movsxd rsi, r10d
add rsi, rbx
mov eax, dword [0x205b3e00]
cmp eax, 0x3a
jle 0x201b0584
movzx eax, word [rsi]
movzx r13d, word [rsi]
test r11d, edx
jne 0x201b05b0
nop dword [rax]
mov eax, dword [0x205b3dfc]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
je 0x201b04e0
nop dword [rax + rax]
mov eax, dword [0x205b3dfc]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
jne 0x201b05b0
jmp 0x201b0590
xor edx, edx
test r15d, r14d
setne r8b
movzx ecx, word [0x20472cb0]
mov r9b, 1
test r9b, r9b
jne 0x201b0603
nop
movzx ecx, word [0x20472cb0]
mov ecx, dword [0x20553710]
mov edx, ecx
xor edx, 0x55e5a6b0
and ecx, 0x55e5a6b0
add ecx, ecx
add ecx, edx
jne 0x201b05e0
jmp 0x201b05c6
mov dl, r8b
movzx edx, dx
dec edx
sub ecx, r13d
mov r8d, 0x55e5a6b1
lea r9, [fcn.201affe0]
add r9d, r9d
add r9d, 0x3300
nop word cs:[rax + rax]
mov r10d, dword [0x205b3e00]
mov dword [0x205b3dfc], 0
cmp r10d, 0x42
jl 0x201b0661
nop word [rax + rax]
mov r10d, dword [0x20553710]
add r10d, r8d
test r9d, r10d
jne 0x201b0650
jmp 0x201b0630
mov r8d, dword [0x205b3dfc]
movsx edx, dx
and edx, ecx
nop dword [rax]
mov ecx, dword [0x205b3dfc]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x201b0670
movzx ecx, dx
add dword [0x205b3e04], ecx
cmp eax, 1
sete al
sete byte [rdi + 0x28]
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret