Function at 0x14003f000
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.1401f7750
lea rdx, [rsp + 0x30]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14003f30c
call fcn.140069614
mov rdx, rax
mov ecx, ebp
test rax, rax
setne cl
test ecx, ecx
jne 0x14003f090
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 0x14003f0eb
movzx edi, cx
mov ecx, edi
call fcn.140069024
test rax, rax
je 0x14003f1d9
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140011830
mov rbx, qword [rsp + 0x20]
jmp 0x14003f1d9
lea rax, [rsp + 0x30]
mov rdi, r15
inc rdi
cmp word [rax + rdi*2], 0
jne 0x14003f0f3
test edi, edi
jne 0x14003f15b
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14003f1d9
cmp dword [rdx + 0x10], 0
jge 0x14003f134
cmp dword [rbx - 0xc], 0
jge 0x14003f129
mov ecx, 0x80070057
call fcn.140011b60
int3
mov dword [rbx - 0x10], ebp
mov word [rbx], bp
jmp 0x14003f1d9
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003f144
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 0x14003f1d9
mov ebp, dword [rbx - 0x10]
lea rsi, [rsp + 0x30]
sub rsi, rbx
sar rsi, 1
test edi, edi
jns 0x14003f178
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 0x14003f198
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 0x14003f1bc
lea r8, [rbx + rsi*2]
call fcn.1401f377c
jmp 0x14003f1c6
lea r8, [rsp + 0x30]
call fcn.1401f3698
cmp edi, dword [rbx - 0xc]
jg 0x14003f301
mov dword [rbx - 0x10], edi
xor ebp, ebp
mov word [r14 + rbx], bp
mov rsi, rbx
mov rdi, rbp
cmp word [rbx], 0
je 0x14003f271
nop dword [rax]
movzx edx, word [rsi]
lea rcx, [0x140298b44]
call fcn.1401f4c20
test rax, rax
je 0x14003f20e
test rdi, rdi
jne 0x14003f211
mov rdi, rsi
jmp 0x14003f211
mov rdi, rbp
add rsi, 2
cmp word [rsi], 0
jne 0x14003f1f0
test rdi, rdi
je 0x14003f271
sub rdi, rbx
sar rdi, 1
test edi, edi
jns 0x14003f235
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 0x14003f255
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140011b00
mov rbx, qword [rsp + 0x20]
cmp edi, dword [rbx - 0xc]
jg 0x14003f266
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], bp
jmp 0x14003f271
mov ecx, 0x80070057
call fcn.140011b60
int3
mov esi, dword [rbx - 0x10]
lea edi, [rsi + 1]
test edi, edi
jns 0x14003f286
mov ecx, 0x80070057
call fcn.140011b60
int3
sub r12d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r12d
jge 0x14003f2a5
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 0x14003f2f6
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 0x14003f2c4
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 0x14003f30c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14003f30c
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.1401f3080
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