Function at 0x42da3a
Capabilities:
Check os version
Get common file path

Disassembly:
push 0xdf0
mov eax, 0x4a5053
call fcn.00473d21
mov ebx, ecx
mov esi, dword [ebp + 8]
xor eax, eax
push 0x3a
push eax
mov word [ebp - 0x4c], ax
lea eax, [ebp - 0x4a]
push eax
call fcn.00474cd0
xor eax, eax
push 0x3fe
push eax
mov word [ebp - 0x44c], ax
lea eax, [ebp - 0x44a]
push eax
call fcn.00474cd0
lea eax, [ebp - 0x44c]
push eax
lea eax, [ebp - 0x4c]
push eax
push str.Msi.DLL
call fcn.0044ff7a
lea eax, [ebp - 0x4c]
push eax
push esi
call fcn.00450e7f
add esp, 0x2c
test eax, eax
jns 0x42dd61
mov ecx, ebx
call fcn.0040f7e9
mov edi, eax
mov ecx, edi
call fcn.00444193
mov ecx, edi
mov esi, eax
call fcn.004458b4
test eax, eax
je 0x42db12
cmp dword [esi + 8], 5
jne 0x42dace
cmp dword [esi + 0xc], 2
jae 0x42dad7
call fcn.0045c151
test al, al
je 0x42db0b
call fcn.0045c151
test al, al
je 0x42dae8
or eax, 0xffffffff
jmp 0x42dd64
lea eax, [ebp - 0xdf8]
push eax
mov dword [ebp - 0xdf8], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
xor eax, eax
inc eax
cmp word [ebp - 0xce4], ax
jae 0x42dae0
mov ecx, str.SupportOSMsi30
jmp 0x42db28
mov ecx, edi
call fcn.00445866
mov ecx, str.SupportOSMsi12
mov edx, str.SupportOS
test eax, eax
cmove ecx, edx
push edi
push ecx
call fcn.0044f245
pop ecx
pop ecx
test eax, eax
je 0x42dbde
cmp dword [esi], 2
jne 0x42dbd7
call fcn.004501b5
test eax, eax
jne 0x42db65
mov ecx, 0x4b2
push ecx
mov dword [0x4f273c], ecx
call fcn.0044f8b8
xor eax, eax
pop ecx
inc eax
jmp 0x42dd64
xor eax, eax
push 0x7fe
push eax
mov word [ebp - 0xc4c], ax
lea eax, [ebp - 0xc4a]
push eax
call fcn.00474cd0
add esp, 0xc
lea eax, [ebp - 0xc4c]
push eax
mov esi, 0x400
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x42dbb3
lea ecx, [ebp - 0xc4c]
push ecx
mov ecx, ebx
call fcn.0042df94
test eax, eax
jne 0x42dbb3
push 2
jmp 0x42dd63
push esi
lea eax, [ebp - 0xc4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x42dbd7
lea eax, [ebp - 0xc4c]
push eax
mov ecx, ebx
call fcn.0042df94
test eax, eax
je 0x42dbac
xor eax, eax
jmp 0x42dd64
cmp dword [esi + 0x14], 2
jne 0x42dbea
cmp dword [esi + 8], 4
je 0x42dbf5
mov ecx, edi
call fcn.004458b4
ret
jl 0x42dbf1
invalid
test eax, eax
je 0x42dc03
mov ecx, edi
call fcn.0044307d
push 3
jmp 0x42dd63
xor ebx, ebx
inc ebx
push ebx
lea eax, [ebp - 0xdf9]
push eax
push str.SuppressWrongOS
lea ecx, [ebp - 0xcac]
call fcn.00402ca0
and dword [ebp - 4], 0
push ebx
lea eax, [ebp - 0xdf9]
push eax
push str.Startup
lea ecx, [ebp - 0xc7c]
call fcn.00402ca0
mov byte [ebp - 4], bl
push 0
lea eax, [ebp - 0xcac]
push eax
lea eax, [ebp - 0xc7c]
push eax
mov ecx, edi
call fcn.00444cc4
mov bl, al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc7c]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xcac]
call fcn.00401ac0
test bl, bl
je 0x42dae0
push 0
lea eax, [ebp - 0xdf9]
mov ebx, 0x4b7
push eax
lea ecx, [ebp - 0xc7c]
mov dword [0x4f273c], ebx
mov dword [ebp - 0xc7c], 0x4cb730
mov dword [ebp - 0xc54], 0x4cbc34
call fcn.00403b80
mov dword [ebp - 4], 5
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0xdf9]
push eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0xcdc]
call fcn.00402ca0
mov esi, eax
mov byte [ebp - 4], 6
mov ecx, dword [edi + 0x260]
push ebx
lea eax, [ebp - 0xcac]
push eax
call fcn.004208a4
mov byte [ebp - 4], 7
add esi, 4
cmp dword [esi + 0x14], 8
jb 0x42dcf8
mov esi, dword [esi]
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x42dd03
mov eax, dword [eax]
push esi
push eax
lea eax, [ebp - 0xc7c]
push eax
call fcn.004037e0
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xcac]
call fcn.00401b80
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xcdc]
call fcn.00401ac0
cmp dword [ebp - 0xc64], 8
lea ecx, [ebp - 0xc78]
cmovae ecx, dword [ebp - 0xc78]
push ecx
call fcn.0044f14b
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc7c]
call fcn.00401ac0
jmp 0x42dae0
push 0xfffffffffffffffe
pop eax
call fcn.00473cd0
ret 4