Function at 0x4014e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x40e4b0
push 0x402c20
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x12f0
call fcn.00402bf0
mov eax, dword [0x410ee8]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x28], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor eax, eax
mov word [ebp - 0xe98], ax
push 0x208
push 0
lea ecx, [ebp - 0xe96]
push ecx
call fcn.00402db0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x10f8], dx
push 0x208
push 0
lea eax, [ebp - 0x10f6]
push eax
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0xc88], cx
push 0x208
push 0
lea edx, [ebp - 0xc86]
push edx
call fcn.00402db0
add esp, 0xc
xor eax, eax
mov word [ebp - 0xa60], ax
push 0x208
push 0
lea ecx, [ebp - 0xa5e]
push ecx
call fcn.00402db0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x830], dx
push 0x800
push 0
lea eax, [ebp - 0x82e]
push eax
call fcn.00402db0
add esp, 0xc
mov dword [ebp - 0x840], 0
mov dword [ebp - 0x83c], 0
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0xee8], 0x44
push 0x40
push 0
lea ecx, [ebp - 0xee4]
push ecx
call fcn.00402db0
add esp, 0xc
mov dword [ebp - 0xa78], 0
xor edx, edx
mov dword [ebp - 0xa74], edx
mov dword [ebp - 0xa70], edx
mov dword [ebp - 0xa6c], edx
mov dword [ebp - 0x834], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10fc], 0
mov dword [ebp - 0x850], 0
mov dword [ebp - 0xa68], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa64], 0
mov dword [ebp - 0xea0], 0
mov dword [ebp - 0xe9c], 0
mov dword [0x4126d4], 0
mov dword [0x4126cc], 0
lea eax, [ebp - 0xe98]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x104
lea ecx, [ebp - 0xc88]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x844]
push edx
lea eax, [ebp - 0x848]
push eax
lea ecx, [ebp - 0x84c]
push ecx
lea edx, [ebp - 0xc88]
push edx
call fcn.00402120
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
mov eax, dword [ebp - 0x848]
push eax
lea ecx, [ebp - 0xe98]
push ecx
push str._s_s_X.log
push 0x104
lea edx, [ebp - 0x10f8]
push edx
call fcn.00402b05
add esp, 0x18
lea eax, [ebp - 0x10f8]
push eax
call fcn.004021d0
add esp, 4
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00402577
add esp, 4
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0
jne 0x401736
mov dword [ebp - 0x83c], 0x57
mov eax, dword [ebp - 0x83c]
jmp 0x401ae3
mov edx, dword [ebp + 0x10]
push edx
push str.Command_Line:__s_n
call fcn.004024a7
add esp, 8
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004022d0
add esp, 8
mov dword [ebp - 0x838], eax
mov edx, dword [ebp - 0x838]
push edx
mov eax, dword [ebp - 0x20]
push eax
call fcn.00401030
add esp, 8
call fcn.004020b0
test eax, eax
jne 0x40180c
push str.SetDefaultDllDirectories_is_not_available._n
call fcn.004024a7
add esp, 4
push str.CRYPTBASE.DLL
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0x10fc], eax
push str.CRYPTSP.DLL
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0x850], eax
push str.MsiMsg.dll
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0xa68], eax
push str.netutils.dll
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0x1c], eax
push str.srvcli.dll
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0xa64], eax
push str.wkscli.dll
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0xea0], eax
push str.RpcRtRemote.dll
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0xe9c], eax
push str.Msi.dll
call fcn.00401ec0
add esp, 4
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x40185e
push str.MsiSetInternalUI
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4126d0], eax
push str.MsiInstallProductW
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4126c8], eax
push str.MsiSetExternalUIW
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4126d8], eax
cmp dword [0x4126c8], 0
je 0x401879
cmp dword [0x4126d8], 0
je 0x401879
cmp dword [0x4126d0], 0
jne 0x4018a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_load_Msi.dll_functions:__d_n
call fcn.004024a7
add esp, 8
mov dword [ebp - 0x83c], 1
mov eax, dword [ebp - 0x83c]
jmp 0x401ae3
cmp dword [0x4126d4], 0
je 0x4019c2
cmp dword [0x4126cc], 0
je 0x4019c2
cmp dword [ebp - 0x834], 0x103
je 0x4019c2
lea ecx, [ebp - 0x830]
push ecx
lea edx, [ebp - 0xa60]
push edx
call fcn.00401390
add esp, 8
test eax, eax
je 0x4019c2
xor eax, eax
mov word [ebp - 0x1308], ax
push 0x206
push 0
lea ecx, [ebp - 0x1306]
push ecx
call fcn.00402db0
add esp, 0xc
mov dword [ebp - 0x1100], 0
lea edx, [ebp - 0x830]
push edx
lea eax, [ebp - 0xa60]
push eax
push str.Calling_MsiInstallProduct___s_____s___n
call fcn.004024a7
add esp, 0xc
push 0
push 2
call dword [0x4126d0]
push 0
push 0x7fdf
push 0x401da0
call dword [0x4126d8]
lea ecx, [ebp - 0x830]
push ecx
lea edx, [ebp - 0xa60]
push edx
call dword [0x4126c8]
mov dword [ebp - 0x83c], eax
mov eax, dword [ebp - 0x83c]
push eax
push 1
push str._u__ld_
lea ecx, [ebp - 0x1308]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea edx, [ebp - 0x1308]
push edx
call fcn.00402aeb
add esp, 4
push eax
lea eax, [ebp - 0x1308]
push eax
call fcn.00401c70
add esp, 8
mov dword [ebp - 0x834], eax
cmp dword [ebp - 0x83c], 0xbc2
jne 0x4019bd
mov dword [ebp - 0x83c], 0
jmp 0x4018bc
mov ecx, dword [ebp - 0x83c]
push ecx
push str._nExiting_with_code:__d_n
call fcn.004024a7
add esp, 8
mov dword [ebp - 4], 0
mov edx, dword [0x4126d4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x4126cc]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xfffffffe
jmp 0x401a0f
cmp dword [ebp - 0x24], 0
je 0x401a1f
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x10fc], 0
je 0x401a35
mov edx, dword [ebp - 0x10fc]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x850], 0
je 0x401a4b
mov eax, dword [ebp - 0x850]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0xa68], 0
je 0x401a61
mov ecx, dword [ebp - 0xa68]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x1c], 0
je 0x401a71
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0xa64], 0
je 0x401a87
mov eax, dword [ebp - 0xa64]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0xea0], 0
je 0x401a9d
mov ecx, dword [ebp - 0xea0]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0xe9c], 0
je 0x401ab3
mov edx, dword [ebp - 0xe9c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x838]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00402a5d
add esp, 4
call fcn.004027b5
add eax, 0x20
push eax
call fcn.004029e1
add esp, 4
mov eax, dword [ebp - 0x83c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.00402bd8
mov esp, ebp
pop ebp
ret 0x10