Function at 0x140036ee4
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x30
mov qword [rbp - 0x10], 0xfffffffffffffffe
lea rcx, [rbp + 0x48]
call qword [sym.imp.MFC42u.dll_CDaoIndexFieldInfo::CDaoIndexFieldInfo]
nop dword [rax + rax]
nop
lea rcx, [rbp + 0x50]
call qword [sym.imp.MFC42u.dll_CDaoIndexFieldInfo::CDaoIndexFieldInfo]
nop dword [rax + rax]
nop
xor esi, esi
mov r13b, sil
mov r15d, 0x104
mov edx, r15d
lea rcx, [rbp + 0x48]
call qword [sym.imp.MFC42u.dll_CDatabase::GetConnectInfo]
nop dword [rax + rax]
mov rdx, rax
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
nop dword [rax + rax]
mov ebx, eax
or r14, 0xffffffffffffffff
mov edx, r14d
lea rcx, [rbp + 0x48]
call qword [sym.imp.MFC42u.dll_CCmdUI::SetCheck]
nop dword [rax + rax]
test ebx, ebx
je 0x14003719d
mov rax, qword [rbp + 0x48]
cmp dword [rax - 8], esi
je 0x14003719d
mov rax, qword [sym.imp.msvcrt.dll___argc]
mov r9d, 0xfffd
cmp dword [rax], 2
jle 0x140037007
mov rax, qword [sym.imp.msvcrt.dll___wargv]
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x10]
movzx eax, word [rdx]
sub ax, 0x2d
test r9w, ax
je 0x140037007
mov rax, r14
inc rax
cmp word [rdx + rax*2], si
jne 0x140036fb3
inc rax
cmp rax, r15
jbe 0x140036fee
mov ecx, 1
call fcn.14006f158
mov rdx, rax
lea rcx, str.TracePDB:_PDBname_too_large_n
call qword [sym.imp.msvcrt.dll_fputws]
nop dword [rax + rax]
mov ebx, 0x57
jmp 0x1400371c2
lea rcx, [rbp + 0x50]
call qword [sym.imp.MFC42u.dll_AfxDeleteObject]
nop dword [rax + rax]
mov r13b, 1
mov r9d, 0xfffd
mov edx, 3
mov rax, qword [sym.imp.msvcrt.dll___argc]
mov ecx, dword [rax]
cmp ecx, edx
jle 0x14003714d
mov r12d, edx
lea r15d, [rdx + 0x15]
cmp ecx, 3
jle 0x140037107
mov rax, qword [sym.imp.msvcrt.dll___wargv]
mov r14, qword [rax]
mov r8, qword [r14 + r12*8]
movzx eax, word [r8]
sub ax, 0x2d
test r9w, ax
jne 0x140037107
cmp word [r8 + 2], 0x70
jne 0x140036fe4
lea eax, [rdx + 1]
mov dword [rbp + 0x40], eax
cmp eax, ecx
jge 0x140037107
mov r14, qword [r15 + r14 + 8]
cmp word [r14], 0x2d
je 0x140037107
cmp word [r14], 0x2f
je 0x140037107
or rdx, 0xffffffffffffffff
mov rax, rdx
inc rax
cmp word [r14 + rax*2], si
jne 0x140037085
inc rax
cmp rax, 0x104
ja 0x140037128
add r15, 8
mov rsi, rdx
xor ecx, ecx
inc rsi
cmp word [r14 + rsi*2], cx
jne 0x1400370a7
mov rax, rdx
inc rax
cmp word [r14 + rax*2], cx
jne 0x1400370b4
lea edx, [rax + 1]
lea rcx, [rbp + 0x48]
call qword [sym.imp.MFC42u.dll_CDatabase::GetConnectInfo]
nop dword [rax + rax]
lea r9, [rsi + 1]
mov r8, r14
mov edx, 0x104
mov rcx, rax
call qword [sym.imp.msvcrt.dll_wcsncpy_s]
nop dword [rax + rax]
or edx, 0xffffffff
lea rcx, [rbp + 0x48]
call qword [sym.imp.MFC42u.dll_CCmdUI::SetCheck]
nop dword [rax + rax]
mov edx, dword [rbp + 0x40]
inc r12
xor esi, esi
inc edx
inc r12
add r15, 8
mov rax, qword [sym.imp.msvcrt.dll___argc]
mov ecx, dword [rax]
cmp edx, ecx
jge 0x14003714d
mov r9d, 0xfffd
jmp 0x140037024
mov ecx, 1
call fcn.14006f158
mov rdx, rax
lea rcx, str.TracePDB:_Path_larger_than_MAX_PATH_n
call qword [sym.imp.msvcrt.dll_fputs]
nop dword [rax + rax]
jmp 0x140036fe4
test r13b, r13b
jne 0x14003716a
lea rcx, str.TracePDB:_No_PDB_specified__n_n
call qword [sym.imp.msvcrt.dll_wprintf]
nop dword [rax + rax]
jmp 0x140036fe4
mov r8d, 1
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x50]
call fcn.1400389b4
test al, al
jne 0x1400371c2
mov ebx, 0x57
mov edx, ebx
lea rcx, str.TracePDB:_failed_with_error__d_n
call qword [sym.imp.msvcrt.dll_wprintf]
nop dword [rax + rax]
jmp 0x1400371c2
mov ecx, 1
call fcn.14006f158
mov rdx, rax
lea rcx, str.TracePDB:_no_current_directory_n
call qword [sym.imp.msvcrt.dll_fputws]
nop dword [rax + rax]
mov ebx, 3
lea rcx, [rbp + 0x50]
call qword [sym.imp.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef]
nop dword [rax + rax]
nop
lea rcx, [rbp + 0x48]
call qword [sym.imp.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef]
nop dword [rax + rax]
mov eax, ebx
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbx
pop rbp
ret