Function at 0x201e7730
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, r9
mov rdi, r8
cmp qword [r9 + 0x18], 0x10
mov rax, r9
jb 0x201e775c
mov rax, qword [rsi]
mov r8, qword [0x2055b318]
movabs r9, 0x78af3ddf171d61a2
xor r9, r8
movabs r10, 0x750c220e8e29e5d
xor r10, r8
and r10, r8
lea r8, [r9 + r10*2]
mov qword [rsi + 0x10], r8
mov byte [rax], 0
mov eax, 0xffffaa53
add eax, dword [0x2055b4e0]
cdqe
add rax, qword [0x2055b4f0]
lea r8, [rbp - 0x18]
mov qword [rsp + 0x20], r8
xor ebx, ebx
xor r8d, r8d
mov r9d, 1
call qword [case.0x2010e313.0]
test eax, eax
jne 0x201e7a83
mov rcx, qword [rbp - 0x18]
lea r14, [rbp - 8]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], 0
lea r9, [rbp - 4]
mov qword [rbp - 0x10], rcx
mov rdx, rdi
xor r8d, r8d
call fcn.201e7bb0
mov ecx, dword [rbp - 4]
mov edx, dword [0x2055b320]
add ecx, edx
add ecx, 0xb8153161
cmp ecx, 0xfffffffe
setb cl
test eax, eax
setne al
xor cl, al
mov edx, ecx
not dl
xor ebx, ebx
test dl, al
jne 0x201e79d8
test cl, cl
jne 0x201e79d8
mov ebx, dword [rbp - 8]
mov rcx, qword [rsi + 0x10]
cmp rcx, rbx
jae 0x201e7872
lea rax, [fcn.201e7730]
lea edx, [rax + rax]
add edx, 0x2b20
mov r9d, edx
not r9d
mov r8, rbx
sub r8, rcx
mov r10b, 1
nop dword [rax]
test r9d, edx
jne 0x201e786b
lea r11d, [rax + rax]
add r11d, 0xfa0
mov r15d, r11d
not r15d
test r15d, r11d
je 0x201e7885
test r10b, r10b
je 0x201e7850
jmp 0x201e7855
cmp qword [rsi + 0x18], 0x10
mov r15, rsi
jb 0x201e787f
mov r15, qword [rsi]
mov qword [rsi + 0x10], rbx
jmp 0x201e78d7
mov rax, qword [rsi + 0x18]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x201e78bd
nop word cs:[rax + rax]
mov eax, dword [0x205b41ac]
cmp eax, 0x4f
jl 0x201e78de
nop dword [rax + rax]
mov eax, dword [0x205b41ac]
cmp eax, 0x63
jge 0x201e78b0
jmp 0x201e78a0
mov qword [rsi + 0x10], rbx
mov r15, rsi
cmp rax, 0x10
jb 0x201e78cd
mov r15, qword [rsi]
add rcx, r15
xor edx, edx
call fcn.2044feb0
mov byte [r15 + rbx], 0
jmp 0x201e78f1
mov byte [rsp + 0x20], 0
mov rcx, rsi
mov rdx, r8
mov r9, r8
call fcn.20075800
mov eax, dword [0x2055b320]
mov ecx, eax
xor ecx, 0xb8153165
and eax, 0x38153165
lea eax, [rcx + rax*2]
lea rcx, [fcn.201e7730]
add ecx, ecx
add ecx, 0x10c0
mov edx, eax
xor edx, ecx
mov r8d, edx
xor r8d, ecx
and r8d, eax
xor r8d, ecx
and edx, ecx
or edx, eax
not edx
or edx, r8d
cmp edx, 0xffffffff
jmp 0x201e7958
mov rcx, qword [rbp - 0x18]
mov edx, dword [0x205b41a8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x201e7967
cmp qword [rsi + 0x18], 0x10
mov rax, rsi
jb 0x201e7940
mov rax, qword [rsi]
jmp 0x201e7940
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
lea r9, [rbp - 4]
mov rdx, rdi
xor r8d, r8d
call fcn.201e7bb0
test eax, eax
je 0x201e7988
xor ebx, ebx
jmp 0x201e79d8
mov rax, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 0x10
mov rdx, rsi
jb 0x201e7999
mov rdx, qword [rsi]
lea r8, [rdx + rax]
lea rcx, [rdx + rax]
dec rcx
mov r9, rcx
sub r9, rdx
xor r10d, r10d
cmp rax, r9
setne r10b
lea rdx, [r10 + r8]
dec rdx
sub r10, rax
add r9, r10
neg r10
mov qword [rsi + 0x10], r10
mov r8d, 1
sub r8, r9
call fcn.2044f800
mov bl, 1
mov eax, dword [0x205b41a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201e7a30
jmp 0x201e79eb
mov eax, 0xb8153164
add eax, dword [0x2055b320]
lea rcx, [fcn.201e7730]
lea edx, [rcx + rcx]
add edx, 0x1bc0
mov r8d, edx
not r8d
and edx, r8d
add ecx, ecx
add ecx, 0x1bc1
and r8d, 0xfffffffe
xor r8d, ecx
or r8d, edx
not r8d
cmp r8d, eax
je 0x201e7a7a
nop dword [rax]
mov ecx, dword [0x205b41a8]
mov r8d, dword [0x2055b320]
mov eax, r8d
xor eax, 0xb8153165
mov edx, r8d
not edx
and edx, 0x47eace9a
or edx, eax
not edx
lea edx, [rax + rdx*2]
mov eax, ecx
sub eax, edx
imul eax, ecx
lea ecx, [r8 - 0x47eace9a]
xor edx, edx
div ecx
add r8d, 0xb8153164
cmp edx, r8d
jne 0x201e7a30
jmp 0x201e79eb
mov rcx, qword [rbp - 0x10]
call fcn.201e7d10
mov eax, ebx
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret