Function at 0x180080eb0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
movsxd r13, r9d
mov r15, r8
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x30], rcx
xor ebx, ebx
test r8, r8
je 0x1800810bd
lea eax, [r13 - 1]
mov r9d, 0x7ff
cmp eax, r9d
ja 0x1800810bd
mov rdx, r8
xor bpl, bpl
movzx eax, byte [r8]
test al, al
je 0x180080f2d
lea r8, [0x1800cb908]
nop dword [rax + rax]
lea ecx, [rax - 1]
and ecx, 0x1f
movzx eax, bpl
xor rcx, rax
movzx ebp, byte [rcx + r8]
lea rdx, [rdx + 1]
movzx eax, byte [rdx]
test al, al
jne 0x180080f10
and bpl, 0x1f
movzx r14d, bpl
add r14, r14
mov r12d, dword [rdi + r14*8 + 8]
test r12d, r12d
je 0x180080f9b
mov rax, qword [rdi + r14*8]
mov qword [rsp + 0x20], rax
nop dword [rax + rax]
mov ecx, ebx
add rcx, rax
movzx r8d, word [rcx]
mov edi, r8d
and edi, r9d
cmp edi, r13d
jne 0x180080f8c
test byte [rcx + 2], 1
jne 0x180080f8c
and r8, r9
add rcx, 3
mov rdx, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x180081063
mov rax, qword [rsp + 0x20]
mov r9d, 0x7ff
add ebx, 3
add ebx, edi
cmp ebx, r12d
jne 0x180080f50
mov rdi, qword [rsp + 0x30]
mov ecx, dword [rdi + r14*8 + 0xc]
lea eax, [r13 + 3]
add eax, r12d
cmp eax, ecx
jbe 0x180081000
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
mulsd xmm0, qword [0x1800dcd18]
xor eax, eax
movsd xmm1, qword [0x1800dcd28]
comisd xmm0, xmm1
jb 0x180080fe2
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x180080fe2
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rbx, xmm0
add rbx, rax
mov rdx, rbx
mov rcx, qword [rdi + r14*8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov qword [rdi + r14*8], rax
mov dword [rdi + r14*8 + 0xc], ebx
mov ebx, dword [rdi + r14*8 + 8]
add rbx, qword [rdi + r14*8]
movzx ecx, bpl
shl cx, 0xb
movzx eax, r13w
mov r12d, 0x7ff
and ax, r12w
or cx, ax
mov word [rbx], cx
mov byte [rbx + 2], 6
mov r8, r13
lea rcx, [rbx + 3]
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [rdi + r14*8 + 8]
movzx eax, word [rbx]
and eax, r12d
add eax, 3
add eax, ecx
mov dword [rdi + r14*8 + 8], eax
shl ecx, 5
movzx eax, bpl
or ecx, eax
add ecx, ecx
mov dword [rsi], ecx
mov byte [rsi + 4], 1
jmp 0x1800811de
shl ebx, 5
movzx eax, bpl
or ebx, eax
add ebx, ebx
mov r8d, ebx
mov eax, ebx
shr rax, 1
and eax, 0x1f
add rax, rax
shr r8, 6
mov rcx, qword [rsp + 0x30]
add r8, qword [rcx + rax*8]
movzx eax, byte [rsp + 0xf0]
test al, al
je 0x1800810b6
movzx edx, byte [r8 + 2]
and dl, 0xfd
add al, al
or dl, al
and dl, 0xfb
movzx ecx, dl
and cl, 0xf8
add cl, 8
and dl, 7
or cl, dl
mov byte [r8 + 2], cl
mov dword [rsi], ebx
jmp 0x1800811da
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
test r15, r15
jne 0x1800810d2
lea rax, str._Str
jmp 0x1800810e7
lea rcx, str.Length___0
lea rax, str.Length___MaxStringLength
test r13d, r13d
cmovle rax, rcx
lea rcx, str.Error_on_line_:d:__n
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], 0x1b
mov dword [rsp + 0x70], 0xac
movabs rcx, 0x1000000000000000
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x74], rax
movabs rax, 0xb000000000000004
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x30], 2
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movaps xmm1, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm1
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.18006dc50
nop
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x50]
mov rcx, rbx
call fcn.18006de20
lea rdx, [0x180080770]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x1800811d4
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800811cf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800811cf
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800a17ac
mov dword [rsi], 1
mov byte [rsi + 4], 0
mov rax, rsi
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret