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 sym.unk_4978
lea rax, [rbp - 0x48]
mov r9, rax
mov r8d, 0
mov edx, 0
mov rax, qword [0x140152b50]
mov rcx, rax
call sym.unk_6528
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, [0x14014c0e3]
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 sym.unk_5007
lea rax, [rbp + 0x100]
mov rcx, rax
call sym.unk_5004
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.unk_5004
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 [0x140153160]
mov rcx, rax
call sym.unk_4559
mov rcx, rax
mov rax, qword [sym.unk_4547]
mov rdx, rax
call sym.unk_4513
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 sym.unk_5851
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.unk_5004
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.unk_5004
mov eax, r12d
jmp 0x140001b7f
add rsp, 0x270
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret