Function at 0x14004b9d8
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4c0
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x140252530]
xor rax, rsp
mov qword [rsp + 0x4b0], rax
mov rbp, rcx
mov rax, qword [rcx]
call qword [rax + 0x338]
mov rsi, rax
mov rcx, qword [rbp + 0x1508]
xor ebx, ebx
cmp rcx, rbx
je 0x14004bae5
call qword [sym.imp.USER32.dll_IsMenu]
mov ecx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x14004ba4a
call fcn.14001505c
int3
cmp qword [rbp + 0x1e0], rbx
jne 0x14004ba6d
mov r8, rsi
mov rdx, qword [rbp + 0x1508]
lea rcx, vtable.CMenuHash.0
call fcn.1400c18bc
cmp eax, ebx
jne 0x14004bae5
cmp dword [0x140258da0], ebx
jne 0x14004bac1
cmp dword [0x14024d588], ebx
je 0x14004bac1
lea rcx, [0x140258ce0]
call fcn.1400e9954
cmp eax, ebx
je 0x14004bac1
mov eax, ebx
cmp qword [rbp + 0x1e0], rbx
setne al
mov r9, qword [rsi]
mov r8d, ebx
cmp eax, ebx
sete r8b
mov rdx, qword [rbp + 0x1508]
mov rcx, rsi
call qword [r9 + 0x820]
cmp eax, ebx
jne 0x14004bae5
xor eax, eax
jmp 0x14004c04c
mov rax, qword [rsi]
mov r8d, 1
mov rdx, qword [rbp + 0x1508]
mov rcx, rsi
call qword [rax + 0x820]
cmp eax, ebx
jne 0x14004bae5
xor eax, eax
jmp 0x14004c04c
call fcn.14005b520
mov rcx, qword [rax + 8]
mov r14, qword [rcx + 0x110]
xor r8d, r8d
cmp r14, r8
je 0x14004bdd7
cmp dword [0x140257f98], r8d
jne 0x14004bdd7
mov edi, r8d
mov dword [rsp + 0x34], r8d
mov r13d, r8d
mov r12, qword [rsi + 0x1088]
cmp r12, r8
je 0x14004bdd7
mov r15, r12
mov rbx, r12
cmp r12, r8
je 0x14004bdd1
mov r12, qword [r12]
mov rbx, qword [rbx + 0x10]
mov eax, r8d
cmp rbx, r8
setne al
cmp eax, r8d
je 0x14004bdcb
cmp dword [rbx + 0x24], 0xe110
jne 0x14004bb79
lea rdx, str.Recent_File
mov rcx, qword [rbx + 0x30]
call fcn.1401871fc
xor r8d, r8d
cmp eax, r8d
sete al
cmp al, r8b
jne 0x14004bb92
mov r13d, dword [rbx + 0x28]
and r13d, 1
inc edi
mov dword [rsp + 0x34], edi
cmp r12, r8
je 0x14004bdd7
jmp 0x14004bb29
mov rdx, r15
lea rcx, [rsi + 0x1080]
call fcn.1400be688
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11 + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rsp + 0x2a0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
mov eax, 0x5c
mov word [rsp + rbx*2 + 0x2a0], ax
inc ebx
mov dword [rsp + 0x38], ebx
movsxd rcx, ebx
xor r8d, r8d
mov word [rsp + rcx*2 + 0x2a0], r8w
mov dword [rsp + 0x30], r8d
mov r15d, r8d
cmp dword [r14 + 8], r8d
jle 0x14004bd7f
call fcn.140013fa4
xor edx, edx
mov ecx, edx
cmp rax, rdx
setne cl
cmp ecx, edx
je 0x14004bd74
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov rax, qword [r14]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], ebx
lea r9, [rsp + 0x2a0]
mov r8d, r15d
lea rdx, [rsp + 0x40]
mov rcx, r14
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor r8d, r8d
cmp eax, r8d
je 0x14004bd2c
call fcn.140013fa4
xor ebx, ebx
mov ecx, ebx
cmp rax, rbx
setne cl
cmp ecx, ebx
je 0x14004bd5e
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov r9, qword [rsp + 0x40]
mov r8d, eax
lea rdx, str._d__s
lea rcx, [rsp + 0x48]
call fcn.140008750
movsxd rdi, edi
lea edx, [r15 + 0xe110]
mov dword [rsp + 0x28], ebx
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
xor r8d, r8d
lea rcx, [rsp + 0x58]
call fcn.1400e7c2c
nop
mov r9, qword [rsi]
mov r8, rdi
mov rdx, rax
mov rcx, rsi
call qword [r9 + 0x640]
mov edi, dword [rsp + 0x34]
inc edi
mov dword [rsp + 0x34], edi
lea rcx, [rsp + 0x58]
call fcn.1400e6300
nop
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
xor r8d, r8d
cmp eax, r8d
jg 0x14004bd28
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rsp + 0x38]
xor r8d, r8d
jmp 0x14004bd2c
mov ebx, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
cmp eax, r8d
jg 0x14004bd50
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
inc r15d
cmp r15d, dword [r14 + 8]
jge 0x14004bd69
jmp 0x14004bc08
mov ecx, 0x80004005
call fcn.140001f40
nop
mov eax, dword [rsp + 0x30]
cmp eax, r8d
jne 0x14004bdd7
jmp 0x14004bd7f
mov ecx, 0x80004005
call fcn.140001f40
int3
cmp r13d, r8d
je 0x14004bdd7
cmp r12, r8
je 0x14004bdd7
mov rbx, qword [r12 + 0x10]
mov eax, r8d
cmp rbx, r8
setne al
cmp eax, r8d
jne 0x14004bda2
call fcn.14001505c
int3
test byte [rbx + 0x28], 1
je 0x14004bdd7
mov rdx, r12
lea rcx, [rsi + 0x1080]
call fcn.1400be688
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11 + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
jmp 0x14004bdd7
call fcn.14001505c
int3
call fcn.14001505c
int3
cmp qword [0x140259a60], r8
je 0x14004bfc6
cmp dword [0x140257f98], r8d
jne 0x14004bfc6
mov r15d, r8d
mov r12d, r8d
mov r14d, r8d
mov r13, qword [rsi + 0x1088]
cmp r13, r8
je 0x14004bfc6
mov rdx, r13
mov rbx, r13
cmp r13, r8
je 0x14004bfc0
mov r13, qword [r13]
mov rbx, qword [rbx + 0x10]
mov eax, r8d
cmp rbx, r8
setne al
cmp eax, r8d
je 0x14004bfba
mov rdi, qword [0x140259a60]
mov eax, dword [rdi + 0x40]
cmp eax, dword [rbx + 0x24]
jne 0x14004bf73
cmp dword [0x140258f64], r8d
je 0x14004be55
cmp qword [rdi + 0x20], r8
je 0x14004be73
lea rcx, [rsi + 0x1080]
call fcn.1400be688
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11 + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
cmp r15d, r8d
jne 0x14004bfa7
cmp r14d, r8d
jne 0x14004bea5
cmp qword [rdi + 0x20], r8
je 0x14004bea5
cmp qword [rsi + 0x1098], r8
je 0x14004bea5
movsxd rdx, r12d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x648]
inc r12d
xor r8d, r8d
mov r15, qword [rdi + 0x10]
cmp r15, r8
je 0x14004bf43
mov rdi, r15
cmp r15, r8
je 0x14004bfb4
mov r15, qword [r15]
mov rdi, qword [rdi + 0x10]
mov ebx, dword [rdi + 0x20]
call fcn.1400a37d4
mov rcx, rax
mov r8d, 1
mov edx, ebx
call fcn.1400a3a90
movsxd rbx, r12d
mov r9, qword [rdi + 8]
xor edx, edx
mov ecx, edx
cmp eax, 0xffffffff
setne cl
cmp eax, 0xffffffff
cmove eax, edx
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], r9
mov r9d, eax
xor r8d, r8d
mov edx, dword [rdi + 0x20]
lea rcx, [rsp + 0x178]
call fcn.1400e7c2c
nop
mov r9, qword [rsi]
mov r8, rbx
mov rdx, rax
mov rcx, rsi
call qword [r9 + 0x640]
inc r12d
lea rcx, [rsp + 0x178]
call fcn.1400e6300
xor r8d, r8d
cmp r15, r8
jne 0x14004beb2
cmp r13, r8
je 0x14004bf6b
movsxd rdx, r12d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x648]
inc r12d
xor r8d, r8d
cmp eax, r8d
jl 0x14004bf68
lea r14d, [r8 + 1]
jmp 0x14004bf6b
mov r14d, r8d
mov r15d, 1
jmp 0x14004bfa7
test byte [rbx + 0x28], 1
je 0x14004bfa4
cmp r14d, r8d
je 0x14004bf9c
lea rcx, [rsi + 0x1080]
call fcn.1400be688
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11 + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
mov r14d, 1
jmp 0x14004bfa7
mov r14d, r8d
inc r12d
cmp r13, r8
je 0x14004bfc6
jmp 0x14004be0a
call fcn.14001505c
int3
call fcn.14001505c
int3
call fcn.14001505c
int3
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x740]
mov rbx, rax
xor edi, edi
cmp rax, rdi
je 0x14004bfec
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x250]
cmp eax, edi
jne 0x14004bff7
mov rcx, rbp
call fcn.1400978b4
mov rbx, rax
cmp rbx, rdi
je 0x14004c00e
mov rax, qword [rsi]
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call qword [rax + 0x438]
mov rax, qword [0x140259550]
cmp rax, rdi
jne 0x14004c022
mov rcx, rbp
call fcn.14001d3c4
mov rdx, rbp
mov rcx, rax
call fcn.140048558
cmp eax, edi
jne 0x14004c035
xor eax, eax
jmp 0x14004c04c
mov r8, qword [rbp]
mov ebx, 1
mov edx, ebx
mov rcx, rbp
call qword [r8 + 0x2a0]
mov eax, ebx
mov rcx, qword [rsp + 0x4b0]
xor rcx, rsp
call fcn.140184e60
lea r11, [rsp + 0x4c0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret