Function at 0x201d96a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, rcx
lea rax, [0x20473f28]
mov qword [rcx], rax
mov rsi, qword [rcx + 0x28]
mov r14, qword [0x20559368]
movsxd r12, dword [r14]
sub r14, qword [0x20559608]
lea rbx, [rcx + 0x28]
mov r15d, dword [0x204742bc]
cmp rsi, qword [rcx + 0x30]
je 0x201d972d
add rsi, 8
mov r13d, 0x8bb8aa99
nop word [rax + rax]
mov rcx, qword [rsi - 8]
test rcx, rcx
je 0x201d971e
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, dword [0x20559600]
add edx, r13d
call qword [case.0x2010e313.0]
cmp rsi, qword [rdi + 0x30]
je 0x201d972a
add rsi, 8
jmp 0x201d9700
mov rsi, qword [rbx]
test rsi, rsi
je 0x201d98ad
mov qword [rbp - 0x10], rbx
mov rdx, qword [rdi + 0x38]
mov eax, dword [0x20559364]
mov ecx, eax
xor ecx, 1
mov r8d, eax
and r8d, 1
lea ecx, [rcx + r8*2]
mov dword [0x20559364], ecx
xor eax, ecx
not eax
mov dword [rbp - 4], ecx
test eax, ecx
je 0x201d9769
xor ecx, ecx
jmp 0x201d977a
xor r9d, r9d
mov ecx, 0
test r15d, r15d
jg 0x201d98be
sub rdx, rsi
cmp rdx, 0xfff
jbe 0x201d987f
mov r9, qword [rsi - 8]
mov r10, qword [0x20559608]
add rsi, r10
sub rsi, r9
movabs r11, 0x6f21d79a2bf471d6
add r11, rsi
movabs rsi, 0x6f21d79a2bf471fe
mov rdi, r10
xor rdi, rsi
and r10, rsi
lea r10, [rdi + r10*2]
cmp r11, r10
setb r10b
or r10b, byte [0x205b3988]
movzx r11d, byte [0x205b3c80]
mov ebx, r11d
and bl, r10b
test bl, 1
jne 0x201d97ed
xor r11b, r10b
test r11b, 1
je 0x201d9a13
and eax, dword [rbp - 4]
xor r8d, r8d
cmp eax, 1
sbb r8d, r8d
movzx eax, byte [0x204742c0]
mov r10d, 0x8bb8aa99
lea r11, [fcn.201d96a0]
add r11d, r11d
add r11d, 0x16e0
mov rdi, qword [rbp - 0x10]
nop dword [rax + rax]
mov esi, dword [0x20559600]
add esi, r10d
xor esi, r11d
not esi
test esi, r11d
jne 0x201d9820
movzx r10d, byte [0x20559610]
mov r11d, r10d
xor r11b, 0xf3
and r10b, 0x73
add r10b, r10b
add r10b, r11b
sub r10b, cl
add al, r10b
test al, r8b
setne al
or al, byte [0x205b3c80]
and al, 1
add rdx, qword [0x20559608]
mov byte [0x205b3c80], al
movabs rax, 0x6f21d79a2bf47205
add rdx, rax
mov rsi, r9
jmp 0x201d9883
mov rdi, qword [rbp - 0x10]
mov dword [rsp + 0x20], 0xf0f7f683
mov rcx, rsi
mov r8d, 0x255b8c00
mov r9d, 0x3609e0df
call fcn.2008bfb0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movabs rcx, 0x90de2865d40b8e22
add r14, rcx
add r14, r12
mov r10d, 0x8bb8aa99
lea r11, [fcn.201d96a0]
lea edi, [r11 + r11]
add edi, 0x32a0
mov r12d, 0x8bb8aa98
xor ecx, ecx
jmp 0x201d990b
mov r8d, r13d
xor r8b, r13b
not r8b
and cl, r8b
xor cl, r13b
inc r9d
cmp r9d, r15d
jge 0x201d977a
mov ebx, dword [0x205b3fe8]
lea r13d, [rbx - 1]
imul r13d, ebx
and r13d, 1
mov ebx, dword [0x20559600]
mov r8d, ebx
xor r8d, 0x8bb8aa98
and ebx, 0xbb8aa98
lea r8d, [r8 + rbx*2]
movsxd rbx, r9d
cmp r13d, r8d
jne 0x201d99a0
nop
movzx r13d, byte [r14 + rbx]
mov r8d, dword [0x205b3fec]
cmp r8d, 0x3c
jg 0x201d99a0
nop word cs:[rax + rax]
mov r8d, dword [0x205b3fec]
cmp r8d, 0x2d
jg 0x201d9983
mov r8d, dword [0x20559600]
add r8d, r10d
mov ebx, edi
xor ebx, r8d
not ebx
test ebx, r8d
je 0x201d99b0
mov r8d, dword [0x205b3fec]
cmp r8d, 0x3a
jge 0x201d9960
jmp 0x201d996d
movzx r8d, byte [r14 + rbx]
jmp 0x201d9940
mov r8d, dword [0x205b3fec]
cmp r8d, 0x31
jg 0x201d99f0
nop dword [rax]
mov r8d, dword [0x20559600]
add r8d, r10d
lea ebx, [r11 + r11]
add ebx, 0x4280
xor ebx, r8d
not ebx
test ebx, r8d
je 0x201d98f0
nop word cs:[rax + rax]
mov r8d, dword [0x205b3fe8]
lea ebx, [r8 + 1]
imul ebx, r8d
and ebx, 1
mov r8d, dword [0x20559600]
add r8d, r12d
cmp ebx, r8d
jne 0x201d99f0
jmp 0x201d99c0
call fcn.20407a4c
int3