Function at 0x140001890
Capabilities:
Get common file path

Disassembly:
push rbp
push r12
push rdi
push rsi
push rbx
sub rsp, 0x270
lea rbp, [rsp + 0x80]
lea rax, [rbp - 0x10]
mov r8d, 0x104
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
call rax
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
mov r8d, 0
lea rax, str.SoftwareYourAppName
mov rdx, rax
mov rcx, 0xffffffff80000001
mov rax, qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
call rax
mov dword [rbp + 0x1ec], eax
mov rax, qword [rbp - 0x18]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_RegCloseKey]
call rax
lea rax, [rbp - 0x40]
mov rcx, rax
call fcn.1400de580
lea rax, [rbp - 0x48]
mov r9, rax
mov r8d, 0
mov edx, 0
mov rax, qword [0x140125540]
mov rcx, rax
call sym.SHGetKnownFolderPath
not eax
shr eax, 0x1f
test al, al
je 0x1400019dd
lea rdx, [rbp - 0x48]
lea rax, [rbp + 0x140]
mov r8d, 2
mov rcx, rax
call method.std::filesystem::__cxx11::path::path_wchar_t__std::filesystem::__cxx11.path__wchar_t_const__std::filesystem::__cxx11::path::format_
lea rax, [rbp + 0x120]
lea rdx, [rbp + 0x140]
mov rcx, rax
call method.std::filesystem::__cxx11::path.string___const
lea rax, [rbp + 0x100]
lea rdx, [rbp + 0x120]
lea r8, [0x14011e0eb]
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 + 0x100]
lea rax, [rbp - 0x40]
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 + 0x100]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x140]
mov rcx, rax
call method.std::filesystem::__cxx11::path.path__
mov rax, qword [rbp - 0x48]
mov rcx, rax
mov rax, qword [sym.imp.ole32.dll_CoTaskMemFree]
call rax
jmp 0x140001a13
lea rax, str.Error_getting_Roaming_AppData_folder_path.
mov rdx, rax
mov rax, qword [0x140125b50]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov r12d, 0
jmp 0x140001ae0
mov ebx, 0
mov esi, 0
mov edi, 0
cmp dword [rbp + 0x1ec], 0
jne 0x140001a9e
lea rdx, [rbp - 0x10]
lea rax, [rbp + 0x1c0]
mov r8d, 2
mov rcx, rax
call method.std::filesystem::__cxx11::path::path_char__260___std::filesystem::__cxx11.path__char_const_____260___std::filesystem::__cxx11::path::format_
mov ebx, 1
lea rax, [rbp + 0x190]
lea rdx, [rbp + 0x1c0]
mov rcx, rax
call method.std::filesystem::__cxx11::path.parent_path___const
mov esi, 1
lea rax, [rbp + 0x170]
lea rdx, [rbp + 0x190]
mov rcx, rax
call method.std::filesystem::__cxx11::path.string___const
mov edi, 1
lea rdx, [rbp + 0x170]
lea rax, [rbp - 0x40]
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__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
test al, al
je 0x140001a9e
mov r12d, 1
jmp 0x140001aa4
mov r12d, 0
nop
test dil, dil
je 0x140001ab9
lea rax, [rbp + 0x170]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
test sil, sil
je 0x140001acd
lea rax, [rbp + 0x190]
mov rcx, rax
call method.std::filesystem::__cxx11::path.path__
test bl, bl
je 0x140001ae0
lea rax, [rbp + 0x1c0]
mov rcx, rax
call method.std::filesystem::__cxx11::path.path__
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov eax, r12d
jmp 0x140001b7f
add rsp, 0x270
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret