Function at 0x201e3750
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 rsi, rcx
lea rax, [0x20474c88]
mov qword [rcx], rax
movsxd rax, dword [0x20474d04]
mov ecx, dword [0x20474cfc]
mov rdx, qword [rsi + 0x58]
test rdx, rdx
je 0x201e3b32
mov qword [rbp - 0x20], rdx
lea rdx, [0x20474d04]
add rax, rdx
lea rdi, [rsi + 0x58]
mov rbx, qword [rsi + 0x68]
nop word [rax + rax]
mov edx, dword [0x205b403c]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x201e37d6
mov r15d, dword [0x2055a550]
mov edx, dword [0x205b4040]
cmp edx, 0x1e
jle 0x201e37e3
mov edx, dword [0x205b4040]
cmp edx, 0x20
jge 0x201e37b0
jmp 0x201e37c4
mov edx, r15d
neg edx
mov r12d, 1
sub r12d, edx
lea rdx, [fcn.201e3750]
add edx, edx
add edx, 0x32a0
mov r8d, edx
not r8d
nop word cs:[rax + rax]
mov dword [0x2055a550], r12d
mov r9d, dword [0x205b4040]
cmp r9d, 0x63
jl 0x201e3875
nop word cs:[rax + rax]
mov dword [0x205b403c], 1
mov dword [0x2055a550], 0
mov r9d, dword [0x2055a5d0]
lea r10d, [r9 + 0xcf8ed56]
mov r11d, 0xf30712a9
sub r11d, r9d
and r11d, r8d
xor r10d, edx
or r10d, r11d
not r10d
add r9d, 0xcf8ed55
cmp r10d, r9d
jne 0x201e3830
jmp 0x201e3810
mov qword [rbp - 8], rbx
mov qword [rbp - 0x10], rdi
mov qword [rbp - 0x18], rsi
xor r13d, r13d
mov r14d, 0
test r15d, r12d
jne 0x201e38a6
xor r9d, r9d
mov r13d, 0
mov r14d, 0
test ecx, ecx
jg 0x201e3a3b
mov eax, dword [0x205b403c]
mov rdi, qword [rbp - 0x20]
mov eax, dword [0x205b403c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201e38b0
mov rbx, qword [rbp - 8]
sub rbx, rdi
mov rcx, rdi
xor edx, edx
mov r8, rbx
call fcn.2044feb0
movabs rax, 0x7fa935e095ff60c5
add rax, qword [0x2055a5c8]
cmp rbx, rax
jbe 0x201e39e9
mov rdx, qword [rdi - 8]
cmp byte [0x205b3f90], 0
jne 0x201e3931
add rdi, 0xfffffffffffffff8
movabs rax, 0x6b847419473e2e8b
mov rcx, rdi
xor rcx, rax
and rdi, rax
lea rax, [rcx + rdi*2]
sub rax, rdx
movabs rcx, 0x947b8be6b8c1d175
add rcx, rax
cmp rcx, 0x20
jae 0x201e3b0b
mov rdi, rdx
add rbx, 0x27
mov qword [rbp - 8], rbx
xor r9d, r9d
test r15d, r12d
setne r9b
mov rax, qword [0x20474cf0]
mov rdx, qword [0x20474ce8]
xor r10d, r10d
add r9, 0xffffffffffffffff
adc r10, 0xffffffffffffffff
sub rdx, r13
sbb rax, r14
movabs rcx, 0xc11a50de46970a46
add rcx, rdx
adc rax, 0xffffffffffffffff
movabs rdx, 0x3ee5af21b968f5ba
mov r8, rcx
xor r8, rdx
and rcx, rdx
add rcx, rcx
mov rbx, r9
not rbx
mov rdx, r10
not rdx
lea r11, [fcn.201e3750]
lea r14d, [r11 + r11]
add r14d, 0x640
mov r15d, r14d
not r15d
mov r13d, 0xcf8ed6a
nop word cs:[rax + rax]
mov r11, r8
add r11, rcx
mov r12, rax
adc r12, 0
test r15d, r14d
je 0x201e39f9
mov r11d, dword [0x205b4040]
mov esi, dword [0x2055a5d0]
add esi, r13d
cmp r11d, esi
jl 0x201e39c0
jmp 0x201e39c0
mov rsi, qword [rbp - 0x18]
mov rcx, rdi
mov rdi, qword [rbp - 0x10]
jmp 0x201e3b10
mov rax, r11
not rax
and rax, rbx
mov rcx, r12
not rcx
and rcx, rdx
xor r9, r11
or r9, rax
xor r10, r12
or r10, rcx
not r9
not r10
mov eax, dword [0x205b4040]
mov ecx, 0xcf8ed99
add ecx, dword [0x2055a5d0]
cmp eax, ecx
jge 0x201e3c40
jmp 0x201e3c05
mov edx, 0xcf8eda8
lea r8, [fcn.201e3750]
xor r13d, r13d
xor r14d, r14d
jmp 0x201e3a80
not r11
or r14, r11
not r10
or r13, r10
mov r10d, dword [0x2055a5d0]
add r9d, r10d
add r9d, 0xe5743bfa
cmp r9d, ecx
jge 0x201e38a6
nop word cs:[rax + rax]
mov r10d, dword [0x205b4040]
mov r11d, dword [0x2055a5d0]
add r11d, edx
cmp r10d, r11d
jge 0x201e3a80
movsxd r9, r9d
lea r10, [rax + r9]
mov rdi, qword [r10]
mov rsi, qword [r10 + 8]
mov r10, r13
not r10
mov r11, r14
not r11
mov r14, r11
and r14, rsi
mov r13, r10
and r13, rdi
or r10, rdi
or r11, rsi
add r9d, 0x2784b16b
mov esi, dword [0x205b403c]
lea edi, [rsi - 1]
imul edi, esi
test dil, 1
je 0x201e3a4f
nop
mov esi, dword [0x2055a5d0]
lea edi, [rsi + 0xcf8ed56]
lea ebx, [r8 + r8]
add ebx, 0x4000
xor edi, ebx
not edi
and edi, ebx
add esi, 0xcf8ed55
cmp edi, esi
jne 0x201e3ae0
jmp 0x201e3a4f
call fcn.20407a4c
mov rdx, rbx
mov r8d, 0x4d2d7ed4
mov r9d, 0x96f6cd2b
call fcn.2008bfb0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
mov rcx, qword [rsi + 0x10]
test rcx, rcx
sete al
movzx edx, byte [0x205b3f90]
test dl, al
jne 0x201e3be4
xor dl, al
jne 0x201e3be4
mov rdx, qword [rsi + 0x20]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x201e3b9c
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x201e3c00
mov rcx, qword [0x2055a5c8]
movabs r8, 0x7fa935e095ff50ed
mov r9, rcx
xor r9, r8
and rcx, r8
lea rcx, [r9 + rcx*2]
add rdx, rcx
mov rcx, rax
lea rdi, [rsi + 0x10]
mov eax, dword [0x2055a5d0]
mov r8d, eax
xor r8d, 0x5a266c29
mov r9d, eax
and r9d, 0x5a266c29
lea r8d, [r8 + r9*2]
mov r9d, eax
xor r9d, 0xa3efba80
and eax, 0x23efba80
lea r9d, [r9 + rax*2]
call fcn.2008bfb0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
add rsi, 8
mov rcx, rsi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.201e46b0
call fcn.20407a4c
mov rax, r9
or rax, r10
setne al
or al, byte [0x205b3f90]
and al, 1
mov byte [0x205b3f90], al
mov eax, dword [0x205b4040]
mov ecx, 0xcf8edaa
add ecx, dword [0x2055a5d0]
cmp eax, ecx
jl 0x201e3c7a
nop word cs:[rax + rax]
mov rax, r9
or rax, r10
setne dl
movzx ecx, byte [0x205b3f90]
mov eax, ecx
mul dl
sub dl, cl
mov ecx, edx
sub cl, al
lea r8d, [rdx + rcx]
mov eax, edx
mul cl
or al, r8b
and al, 1
mov byte [0x205b3f90], al
mov eax, dword [0x205b4040]
cmp eax, 0x3b
jge 0x201e3c40
jmp 0x201e3c05
mov rcx, rdi
mov rsi, qword [rbp - 0x18]
mov rdi, qword [rbp - 0x10]
mov rbx, qword [rbp - 8]
jmp 0x201e3b10