Function at 0x1400045c0
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x1d0
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1400c2038]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
mov rdi, rcx
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x30], 0
mov eax, dword [0x1400ca20c]
test al, 1
jne 0x140004632
or eax, 1
mov dword [0x1400ca20c], eax
lea rdx, [0x14008ac98]
lea rcx, [0x1400ca210]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea rcx, [0x140088a00]
call fcn.140077554
nop
mov rcx, qword [0x1400ca210]
cmp dword [rcx - 0x10], 0
jle 0x140004657
lea rdx, [0x1400ca210]
mov rcx, rdi
call qword [0x14008a730]
mov rax, rdi
jmp 0x1400047fc
lea rdx, [0x14008ac97]
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64____ptr64]
nop
mov byte [rsp + 0xb0], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rsp + 0xb1]
call sub.MSVCR90.dll_memset
mov edx, 0x104
lea rcx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
movzx ecx, byte [rsp + 0xb0]
call fcn.140004150
mov esi, eax
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.140004290
nop
mov rdx, rax
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
lea rdx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 0x10
cmovae rdx, qword [rsp + 0x90]
lea rcx, [rsp + 0x60]
call fcn.140034720
nop
cmp qword [rax + 0x20], 8
jb 0x140004708
mov rdx, qword [rax + 8]
jmp 0x14000470c
lea rdx, [rax + 8]
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
mov rdx, rax
lea rcx, [0x1400ca210]
call qword [sym.imp.mfc90u.dll_CToolBarCtrl::CToolBarCtrl]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
lea rbx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 0x10
cmovae rbx, qword [rsp + 0x90]
call fcn.140004490
mov rcx, rax
mov qword [rsp + 0x20], rbx
mov r9d, esi
lea r8, [rsp + 0xb0]
lea rdx, str.System_path___s__dwIndex___d__sn___s
call fcn.140004510
lea rbx, vtable.Cmd5Capi.0
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0x40]
call qword [0x14008a728]
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CDocObjectServer::DoBeginPrinting]
nop
lea rdx, [0x1400ca210]
lea rcx, [rsp + 0x38]
call fcn.1400370e0
mov rdx, rax
lea rcx, [0x1400ca210]
call qword [sym.imp.mfc90u.dll_CToolBarCtrl::CToolBarCtrl]
lea rdx, [0x1400ca210]
mov rcx, rdi
call qword [0x14008a730]
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov rax, rdi
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.140077470
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret