Function at 0x140002607
Capabilities:
Persist via run registry key
Set registry value

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x180
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x120], rcx
mov qword [rbp + 0x128], rdx
mov qword [rbp + 0x130], r8
mov rbx, qword [str.STARTUP]
lea rax, [rbp + 0x40]
mov rdx, qword [rbp + 0x128]
mov dword [rsp + 0x20], 0
mov r9d, 8
mov r8, rdx
mov rdx, qword [rbp + 0x120]
mov rcx, rax
call sym.ReadFromBackString_abi:cxx11__std::basic_ifstream_char__std::char_traits_char_____int__int__bool_
lea rax, [rbp + 0x40]
mov rdx, rbx
mov rcx, rax
call method.bool_std::operator__char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
mov ebx, eax
lea rax, [rbp + 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
test bl, bl
je 0x14000268b
mov ebx, 0
jmp 0x140002996
mov rax, qword [rbp + 0x128]
mov eax, dword [rax]
lea edx, [rax + 8]
mov rax, qword [rbp + 0x128]
mov dword [rax], edx
lea rax, [rbp + 0x20]
mov rcx, rax
call fcn.1400e6b20
lea rax, [rbp - 0x50]
mov rdx, qword [rbp + 0x128]
mov dword [rsp + 0x20], 1
mov r9d, 1
mov r8, rdx
mov rdx, qword [rbp + 0x120]
mov rcx, rax
call sym.ReadFromBackString_abi:cxx11__std::basic_ifstream_char__std::char_traits_char_____int__int__bool_
lea rax, [rbp - 0x50]
mov edx, 0
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator___unsigned_long_long_
movzx eax, byte [rax]
movsx eax, al
sub eax, 0x30
cmp eax, 9
seta al
test al, al
je 0x140002702
mov ebx, 0
jmp 0x140002717
lea rdx, [rbp - 0x50]
lea rax, [rbp + 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ebx, 1
lea rax, [rbp - 0x50]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
cmp ebx, 1
jne 0x14000272a
jmp 0x1400026ac
mov rax, qword [rbp + 0x128]
mov eax, dword [rax]
lea edx, [rax - 1]
mov rax, qword [rbp + 0x128]
mov dword [rax], edx
lea rax, [rbp + 0x8f]
mov rcx, rax
call fcn.1400772f0
lea rax, [rbp + 0x90]
lea rdx, [rbp + 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.rend__
lea rax, [rbp + 0x98]
lea rdx, [rbp + 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.rbegin__
lea r8, [rbp + 0x8f]
lea rcx, [rbp + 0x90]
lea rdx, [rbp + 0x98]
lea rax, [rbp + 0x60]
mov r9, r8
mov r8, rcx
mov rcx, rax
call sym._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ISt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPcS4_EEEvEET_SC_RK
lea rax, [rbp + 0x60]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
call sym.atoi
mov dword [rbp + 0xfc], eax
lea rax, [rbp + 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x8f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
mov rax, qword [rbp + 0x128]
mov eax, dword [rax]
lea edx, [rax + 6]
mov rax, qword [rbp + 0x128]
mov dword [rax], edx
mov rax, rbp
mov ecx, dword [rbp + 0xfc]
mov rdx, qword [rbp + 0x128]
mov dword [rsp + 0x20], 1
mov r9d, ecx
mov r8, rdx
mov rdx, qword [rbp + 0x120]
mov rcx, rax
call sym.ReadFromBackString_abi:cxx11__std::basic_ifstream_char__std::char_traits_char_____int__int__bool_
lea rax, [rbp - 0x20]
mov rcx, rbp
mov rdx, qword [rbp + 0x130]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11:
lea rax, [rbp - 0x20]
mov qword [rbp + 0xf0], rax
mov rax, qword [rbp + 0xf0]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.begin__
mov qword [rbp - 0x28], rax
mov rax, qword [rbp + 0xf0]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.end__
mov qword [rbp - 0x30], rax
jmp 0x140002895
lea rax, [rbp - 0x28]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____.operator___const
mov qword [rbp + 0xe8], rax
mov rax, qword [rbp + 0xe8]
movzx eax, byte [rax]
cmp al, 0x2f
jne 0x140002889
mov rax, qword [rbp + 0xe8]
mov byte [rax], 0x5c
lea rax, [rbp - 0x28]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____.operator__
lea rdx, [rbp - 0x30]
lea rax, [rbp - 0x28]
mov rcx, rax
call method.bool___gnu_cxx::operator__char__std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char________gnu_cxx::__normal_iterator_char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char______const____gnu_c
test al, al
jne 0x14000285e
lea rax, [rbp + 0xc0]
lea rdx, [rbp - 0x20]
mov r8, rdx
lea rdx, [0x14010a067]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0xa0]
lea rdx, [rbp + 0xc0]
lea r8, [0x14010a067]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rdx, [rbp + 0xa0]
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0xa0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0xc0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.size___const
add rax, 1
lea esi, [rax + rax]
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rbx, rax
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
mov r9d, 1
mov r8, rax
lea rax, str.SoftwareMicrosoftWindowsCurrentVersionRun
mov rdx, rax
mov rcx, 0xffffffff80000001
mov rax, qword [sym.imp.ADVAPI32.dll_RegSetKeyValueA]
call rax
mov ebx, 1
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov eax, ebx
jmp 0x140002a2b
add rsp, 0x180
pop rbx
pop rsi
pop rbp
ret