Function at 0x1401d9c70
Capabilities:
Get common file path

Disassembly:
endbr64
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2d0
mov rsi, qword [0x140485900]
mov rax, qword [rsi]
mov qword [rsp + 0x2c8], rax
xor eax, eax
mov rbx, rcx
lea rdi, [rsp + 0xc0]
movzx r9d, r8b
mov ecx, 0x41
mov r8d, edx
rep stosq qword [rdi], rax
lea rdi, [rsp + 0xc0]
mov rdx, rdi
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1401d9d70
lea r13, [rsp + 0xb0]
mov rcx, rdi
lea r14, [rsp + 0xa0]
mov qword [rsp + 0xa0], r13
call sym.wcslen
lea rbp, [rax + rax]
mov r12, rbp
sar r12, 1
mov qword [rsp + 0x20], r12
cmp rbp, 0xe
ja 0x1401d9e70
mov rcx, qword [rsp + 0xa0]
cmp r12, 1
jne 0x1401d9e98
movzx eax, word [rsp + 0xc0]
mov word [rcx], ax
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0xa0]
xor r10d, r10d
mov rcx, rbx
mov qword [rsp + 0xa8], rax
mov word [rdx + rax*2], r10w
mov rdx, r14
call method.epee::string_tools.utf16_to_utf8_std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t____const_
mov rcx, qword [rsp + 0xa0]
cmp rcx, r13
je 0x1401d9d9a
mov rax, qword [rsp + 0xb0]
lea rdx, [rax + rax + 2]
call sym.operator_delete_void__unsigned_long_long_
jmp 0x1401d9d9a
lea rbp, str.util
mov ecx, 0x10
lea rdi, [0x1403c0094]
mov rdx, rbp
call method.el::Loggers.allowed_el::Level__char_const_
test al, al
jne 0x1401d9dc0
mov rdx, rdi
mov rcx, rbx
call fcn.1401d8080
mov rax, qword [rsp + 0x2c8]
sub rax, qword [rsi]
jne 0x1401d9eea
mov rax, rbx
add rsp, 0x2d0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
lea r12, [rsp + 0x20]
xor r9d, r9d
pxor xmm0, xmm0
mov rdx, rbp
lea rax, method.el::base::Writer.Writer__
lea rdi, [0x1403c0094]
mov rcx, r12
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
lea rax, str.C:_msys64_home_H_tabo_gui_tabo_src_common_util.cpp
mov qword [rsp + 0x38], rax
lea rax, str.std::string_tools::get_special_folder_path_int__bool_
mov qword [rsp + 0x30], 0x10
mov dword [rsp + 0x40], 0x253
mov qword [rsp + 0x48], rax
mov word [rsp + 0x50], r9w
mov qword [rsp + 0x58], 0
mov byte [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], rdi
mov dword [rsp + 0x78], 2
mov qword [rsp + 0x90], 0
movups xmmword [rsp + 0x80], xmm0
call method.el::base::Writer.construct_char_const_
cmp byte [rax + 0x40], 0
jne 0x1401d9eb8
mov rcx, r12
call method.el::base::Writer.Writer__
jmp 0x1401d9d8f
lea rdx, [rsp + 0x20]
xor r8d, r8d
mov rcx, r14
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::_M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0xa0], rax
mov rcx, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0xb0], rax
test r12, r12
je 0x1401d9d22
mov r8, rbp
mov rdx, rdi
call sym.memcpy
jmp 0x1401d9d22
lea rcx, [rax + 0x48]
lea rdx, str.SHGetSpecialFolderPathW___failed__could_not_obtain_requested_path.
call fcn.1401d7cf0
jmp 0x1401d9e60
call dbg.__stack_chk_fail
endbr64
mov rcx, rax
mov rax, rdx
sub rax, 1
jne 0x1401d9f7a
call sym.__cxa_begin_catch
lea rbp, str.util
mov ecx, 0x10
mov rdx, rbp
mov r13, rax
call method.el::Loggers.allowed_el::Level__char_const_
lea rdi, [0x1403c0094]
test al, al
jne 0x1401d9f8c
mov rdx, rdi
mov rcx, rbx
call fcn.1401d8080
call sym.__cxa_end_catch
jmp 0x1401d9d9a
call sym._Unwind_Resume
mov rax, qword [rsp + 0x2c8]
sub rax, qword [rsi]
je 0x1401d9f75
jmp 0x1401d9eea
lea rax, method.el::base::Writer.Writer__
xor edx, edx
xor ecx, ecx
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor eax, eax
lea r12, [rsp + 0x20]
pxor xmm0, xmm0
mov qword [rsp + 0x28], rax
lea rax, str.C:_msys64_home_H_tabo_gui_tabo_src_common_util.cpp
lea rdi, [0x1403c0094]
mov qword [rsp + 0x38], rax
lea rax, str.std::string_tools::get_special_folder_path_int__bool_
mov qword [rsp + 0x58], rdx
mov rdx, rbp
mov qword [rsp + 0x68], rcx
mov rcx, r12
mov qword [rsp + 0x30], 0x10
mov dword [rsp + 0x40], 0x24e
mov qword [rsp + 0x48], rax
mov word [rsp + 0x50], 0
mov byte [rsp + 0x60], 0
mov qword [rsp + 0x70], rdi
mov dword [rsp + 0x78], 2
mov qword [rsp + 0x90], r8
movups xmmword [rsp + 0x80], xmm0
call method.el::base::Writer.construct_char_const_
cmp byte [rax + 0x40], 0
mov rbp, rax
je 0x1401da036
lea rcx, [rax + 0x48]
lea rdx, str.utf16_to_utf8_failed:
call fcn.1401d7cf0
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x10]
cmp byte [rbp + 0x40], 0
mov rdx, rax
je 0x1401da052
lea rcx, [rbp + 0x48]
call fcn.1401d7cf0
mov rcx, r12
call method.el::base::Writer.Writer__
jmp 0x1401d9f26