Function at 0x201d3b20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov r13, r9
mov rsi, rcx
mov qword [rbp - 0x58], rdx
mov dword [rbp - 0x50], r8d
mov dword [rsp + 0x20], 0x169aecd3
lea rdx, [rbp - 0x58]
mov r8d, 0xaab6db4c
mov r9d, 0xaab6db4c
call fcn.201d42a0
lea rax, [rsi + 0x38]
mov qword [rbp], rax
lea rax, [0x20473f28]
mov qword [rsi + 0x38], rax
xorps xmm0, xmm0
movups xmmword [rsi + 0x60], xmm0
mov qword [rsi + 0x70], 0
mov qword [rbp + 8], rsi
lea rcx, [rsi + 0x78]
mov qword [rbp - 0x20], rcx
mov edx, 0x2710
call fcn.201cf9f0
mov rax, qword [rbp + 8]
lea rcx, [rax + 0x128]
mov qword [rbp - 0x18], rcx
call fcn.201d7980
mov rsi, qword [0x20558a60]
movsxd rdi, dword [rsi]
mov ebx, dword [0x20473fa0]
mov rcx, qword [rbp + 8]
call fcn.201d4380
mov rcx, qword [rbp + 8]
mov r12, qword [rcx + 0x20]
mov r15, qword [0x205b3fa0]
xor r14d, r14d
sub r14, qword [rcx + 0x18]
call fcn.201d4940
mov eax, dword [rax]
mov dword [rbp - 0x10], eax
mov rcx, qword [rbp + 8]
call fcn.201d4940
mov qword [rbp - 0x28], r13
mov rcx, r15
xor rcx, r12
not r15
not r12
mov rdx, r12
xor rdx, r15
and rdx, r12
or rdx, r15
not rdx
lea rcx, [rcx + rdx*2]
mov rdx, rcx
xor rdx, r14
and rcx, r14
add rcx, rcx
mov r8, rdx
xor r8, rcx
and rcx, rdx
lea rcx, [r8 + rcx*2]
shr rcx, 3
imul ecx, ecx, 0xba2e8ba3
mov dword [rbp - 0xc], ecx
movzx eax, word [rax + 4]
mov dword [rbp - 8], eax
mov eax, dword [0x20558a58]
lea r15d, [rax + 1]
mov dword [0x20558a58], r15d
mov ecx, eax
not ecx
mov edx, ecx
and edx, r15d
not r15d
and eax, r15d
or eax, edx
and r15d, ecx
or r15d, eax
not r15d
mov eax, 0x53aa08ad
add eax, dword [0x20558a68]
cmp r15d, eax
mov dword [rbp - 4], eax
je 0x201d3c8f
xor r12d, r12d
jmp 0x201d3ca0
xor r10d, r10d
mov r12d, 0
test ebx, ebx
jg 0x201d3db4
mov rax, qword [rbp + 0x80]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov eax, dword [rbp - 0x10]
mov dword [rbp - 0x38], eax
mov eax, dword [rbp - 8]
mov dword [rbp - 0x34], eax
mov eax, dword [rbp - 0xc]
mov dword [rbp - 0x30], eax
mov dword [rbp - 0x2c], 0
lea rdx, [rbp - 0x48]
mov rcx, qword [rbp]
call fcn.201d9670
mov rax, qword [rbp - 0x28]
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
mov r8, qword [rbp]
mov r9, qword [rbp + 8]
call fcn.201d6be0
mov eax, dword [0x205b3f98]
cmp eax, 0x1b
jl 0x201d3d0b
mov al, 1
movzx ecx, word [0x20473fa4]
test al, al
je 0x201d3d00
xor eax, eax
cmp r15d, dword [rbp - 4]
setne al
movzx ecx, word [0x20473fa4]
dec eax
add ecx, 0xffffc167
sub ecx, r12d
add ecx, 0x3e99
not ecx
movsx edx, ax
not edx
mov r8d, edx
xor r8d, ecx
and r8d, edx
or r8d, ecx
not r8d
xor ecx, ecx
mov rax, qword [rbp + 8]
nop dword [rax + rax]
test cl, cl
jne 0x201d3d50
movzx r8d, r8w
mov ecx, dword [0x205b3f98]
cmp ecx, 0xa
nop word cs:[rax + rax]
mov rcx, r8
sub rcx, qword [0x20558a70]
add rcx, qword [0x205b3fa0]
mov edx, dword [0x205b3f98]
cmp edx, 0x18
jg 0x201d3d70
movabs rdx, 0xff371282a8fe054d
add rcx, rdx
mov qword [0x205b3fa0], rcx
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
add rdi, rsi
mov r13d, 0x53aa08ae
lea rax, [fcn.201d3b20]
lea r14d, [rax + rax]
add r14d, 0x1de0
mov ecx, r14d
not ecx
mov r8b, 1
xor r9d, r9d
nop word [rax + rax]
cmp dword [0x20558a68], 0xac55f753
jne 0x201d3de0
mov edx, dword [0x205b3f94]
lea eax, [rdx - 1]
imul eax, edx
mov r12d, dword [0x20558a68]
mov edx, 0x53aa08af
add r12d, edx
xor edx, edx
div r12d
test edx, edx
jne 0x201d3e30
mov eax, dword [0x20558a68]
add eax, r13d
mov edx, r14d
xor edx, eax
not eax
and eax, ecx
or eax, edx
cmp eax, 0xffffffff
je 0x201d3e3d
nop dword [rax]
mov eax, dword [0x205b3f98]
cmp eax, 0x12
jge 0x201d3e30
jmp 0x201d3e10
movsxd rax, r10d
mov esi, dword [0x20558a68]
add esi, r13d
mov r12d, esi
not r12d
lea rdx, [fcn.201d3b20]
lea r11d, [rdx + rdx]
add r11d, 0x2560
mov edx, esi
xor edx, r12d
and edx, r11d
xor edx, r12d
mov r11d, edx
not r11d
xor edx, esi
and r11d, r12d
or r11d, edx
cmp r11d, 0xffffffff
jne 0x201d3f50
movzx edx, word [rdi + rax]
test r8b, r8b
je 0x201d3f50
nop word cs:[rax + rax]
mov eax, dword [0x20558a68]
mov r11d, dword [0x205b3f94]
mov esi, eax
not esi
mov r12d, eax
xor r12d, 0x51
and esi, 0xae
or esi, r12d
not esi
add esi, r11d
imul esi, r11d
test sil, 1
jne 0x201d3ea0
mov r12d, edx
xor r12d, edx
not r12d
and r12d, r9d
xor r12d, edx
mov edx, eax
xor edx, 0x158a35b1
and eax, 0x158a35b1
add eax, eax
mov r9d, edx
xor r9d, eax
and eax, edx
lea eax, [r9 + rax*2]
mov edx, eax
not edx
mov r9d, edx
and r9d, 0x8183ded3
mov r11d, eax
and r11d, 0x7e7c212c
or r11d, r9d
xor eax, 0x183ded3
and edx, 0x7e7c212c
or edx, eax
not edx
lea eax, [r11 + rdx*2]
add r10d, eax
add r10d, 0xbc9bf42b
mov r9d, r12d
cmp r10d, ebx
jl 0x201d3de0
jmp 0x201d3ca0
movzx edx, word [rdi + rax]
mov edx, dword [0x205b3f94]
lea r11d, [rdx - 1]
imul r11d, edx
test r11b, 1
jne 0x201d3f50
jmp 0x201d3e84