Function at 0x4489c0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x840
mov eax, dword [0x46972c]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x840], ecx
mov byte [ebp - 0x839], 0
xor eax, eax
mov word [ebp - 0x418], ax
push 0x206
push 0
lea ecx, [ebp - 0x416]
push ecx
call fcn.00422660
add esp, 0xc
xor edx, edx
mov word [ebp - 0x838], dx
push 0x206
push 0
lea eax, [ebp - 0x836]
push eax
call fcn.00422660
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x210], cx
push 0x206
push 0
lea edx, [ebp - 0x20e]
push edx
call fcn.00422660
add esp, 0xc
xor eax, eax
mov word [ebp - 0x630], ax
push 0x206
push 0
lea ecx, [ebp - 0x62e]
push ecx
call fcn.00422660
add esp, 0xc
push str.Setup.exe
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x838]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea edx, [ebp - 0x838]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x838]
push eax
call dword [sym.imp.USER32.dll_CharLowerBuffW]
mov dword [ebp - 0x424], eax
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0x838]
push edx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0
je 0x448aca
xor al, al
jmp 0x448c9d
push str..msi
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 0x838]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x838]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea ecx, [ebp - 0x838]
push ecx
call dword [sym.imp.USER32.dll_CharLowerBuffW]
mov dword [ebp - 0x424], eax
lea edx, [ebp - 0x210]
push edx
lea eax, [ebp - 0x838]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0
jne 0x448b38
xor al, al
jmp 0x448c9d
mov byte [ebp - 0x839], 1
push str.msiexec
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea edx, [ebp - 0x210]
push edx
mov eax, dword [ebp + 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov dword [ebp - 0x420], eax
cmp dword [ebp - 0x420], 0
je 0x448b84
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x448c97
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x838]
sub eax, ecx
sar eax, 1
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
add edx, 6
push edx
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x418]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
mov edx, dword [ebp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp - 4]
add eax, 5
mov ecx, dword [ebp - 0x41c]
sub ecx, eax
add ecx, 1
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x10]
lea ecx, [eax + edx*2 + 0xa]
push ecx
lea edx, [ebp - 0x838]
push edx
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
lea eax, [ebp - 0x630]
push eax
push 0
push 0
push 0x25
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push str.msiexec.exe__i
lea ecx, [ebp - 0x630]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea edx, [ebp - 0x838]
push edx
lea eax, [ebp - 0x418]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x630]
push eax
push str._s_s_s_s_s
mov ecx, dword [ebp + 0x14]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
push 0x104
push 0
lea edx, [ebp - 0x418]
push edx
call fcn.00422660
add esp, 0xc
push 0x104
push 0
lea eax, [ebp - 0x838]
push eax
call fcn.00422660
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x210]
push ecx
call fcn.00422660
add esp, 0xc
push 0x104
push 0
lea edx, [ebp - 0x630]
push edx
call fcn.00422660
add esp, 0xc
mov al, byte [ebp - 0x839]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00422647
mov esp, ebp
pop ebp
ret 0x10