Function at 0x14003eef0
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x250
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x1402fcb80]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov r13, rcx
xor dil, dil
xor ebp, ebp
mov word [rsp + 0x30], bp
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x32]
call fcn.1401f7640
lea rdx, [rsp + 0x30]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14003f1fc
call fcn.1400694ec
mov rdx, rax
mov ecx, ebp
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ef80
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x30]
lea rax, [rsp + 0x30]
mov r12d, 1
or r15, 0xffffffffffffffff
test rax, 0xffffffffffff0000
jne 0x14003efdb
movzx edi, cx
mov ecx, edi
call fcn.140068f14
test rax, rax
je 0x14003f0c9
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140011830
mov rbx, qword [rsp + 0x20]
jmp 0x14003f0c9
lea rax, [rsp + 0x30]
mov rdi, r15
inc rdi
cmp word [rax + rdi*2], 0
jne 0x14003efe3
test edi, edi
jne 0x14003f04b
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14003f0c9
cmp dword [rdx + 0x10], 0
jge 0x14003f024
cmp dword [rbx - 0xc], 0
jge 0x14003f019
mov ecx, 0x80070057
call fcn.140011b60
int3
mov dword [rbx - 0x10], ebp
mov word [rbx], bp
jmp 0x14003f0c9
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003f034
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
jmp 0x14003f0c9
mov ebp, dword [rbx - 0x10]
lea rsi, [rsp + 0x30]
sub rsi, rbx
sar rsi, 1
test edi, edi
jns 0x14003f068
mov ecx, 0x80070057
call fcn.140011b60
int3
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14003f088
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140011b00
mov rbx, qword [rsp + 0x20]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
lea r14, [rax + rax]
add rdx, rdx
mov r9, r14
cmp rsi, rbp
ja 0x14003f0ac
lea r8, [rbx + rsi*2]
call fcn.1401f366c
jmp 0x14003f0b6
lea r8, [rsp + 0x30]
call fcn.1401f3588
cmp edi, dword [rbx - 0xc]
jg 0x14003f1f1
mov dword [rbx - 0x10], edi
xor ebp, ebp
mov word [r14 + rbx], bp
mov rsi, rbx
mov rdi, rbp
cmp word [rbx], 0
je 0x14003f161
nop dword [rax]
movzx edx, word [rsi]
lea rcx, [0x140298b44]
call fcn.1401f4b10
test rax, rax
je 0x14003f0fe
test rdi, rdi
jne 0x14003f101
mov rdi, rsi
jmp 0x14003f101
mov rdi, rbp
add rsi, 2
cmp word [rsi], 0
jne 0x14003f0e0
test rdi, rdi
je 0x14003f161
sub rdi, rbx
sar rdi, 1
test edi, edi
jns 0x14003f125
mov ecx, 0x80070057
call fcn.140011b60
int3
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14003f145
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140011b00
mov rbx, qword [rsp + 0x20]
cmp edi, dword [rbx - 0xc]
jg 0x14003f156
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], bp
jmp 0x14003f161
mov ecx, 0x80070057
call fcn.140011b60
int3
mov esi, dword [rbx - 0x10]
lea edi, [rsi + 1]
test edi, edi
jns 0x14003f176
mov ecx, 0x80070057
call fcn.140011b60
int3
sub r12d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r12d
jge 0x14003f195
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140011b00
mov rbx, qword [rsp + 0x20]
mov ecx, MsiPreviewDialogW
mov word [rbx + rsi*2], cx
cmp edi, dword [rbx - 0xc]
jg 0x14003f1e6
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], bp
mov dword [r13 + 0x10], ebp
mov rax, r15
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003f1b4
lea rcx, [r13 + 8]
mov r8d, eax
mov rdx, rbx
call fcn.140011b80
mov dil, 1
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003f1fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14003f1fc
mov ecx, 0x80070057
call fcn.140011b60
nop
mov ecx, 0x80070057
call fcn.140011b60
nop
movzx eax, dil
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1401f2f70
lea r11, [rsp + 0x250]
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