Windows 8, Acer Aspire M laptop.
The file C:\Windows\SysWOW64\msi.dll has become corrupted (viewing with a hex editor, the first 0x4000 bytes are zero). This is probably due to a hard drive error. This corrupt file prevents various other programs from running, e.g. MS Outlook.
How do I restore a working version of this file?
Running sfc /scannow does notice the problem but says it couldn't fix it; the CBS.log file shows:
2014-09-01 20:51:48, Info CSI 000005fb Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810\msi.dll do not match actual file [l:14{7}]"msi.dll" :
Found: {l:32 b:KJdGPdPAioESHNMhDPmtJmU3JUt41bgkewkNvS9O41w=} Expected: {l:32 b:eC+L/SyQlvUf0W5fDBePZ46JrV54jXjWmUYbms9v8rA=}
2014-09-01 20:51:48, Info CSI 000005fc [SR] Cannot repair member file [l:14{7}]"msi.dll" of Microsoft-Windows-Installer-Engine, Version = 6.3.9600.17198, pA = PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (10), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
However if I run sfc /scanfile=c:\windows\syswow64\msi.dll (or in fact specify any filename, even a file that doesn't exist) from an elevated cmd, the error message appears immediately in the console window:
Windows Resource Protection could not perform the requested operation.
and then there is a 5-second pause before the command prompt appears.
As suggested on various websites, I checked that "Windows Modules Installer" is "Manual" and "Running" in the Services, and it is. I tried to stop and restart this service , but it never Stopped (it just stayed in the state "Stopping" until my next reboot).
If I boot into recovery console command prompt and try sfc it gives an error that it cannot do this because a scan is pending (sorry, I didn't write down the exact error message).
I am wary of doing a System Restore as it may also roll back other changes, I'd prefer to find a way just to fix the one file (and the handful of other files mentioned in the CBS.log) rather than take that drastic step.
Update: As suggested in a comment I have unpacked msi.dll from KB2918614 wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810.
However, copying that file over C:\Windows\SysWOW64\msi.dll gives an error "You require permission from TrustedInstaller".
Copying the file into C:\Windows\WinSxS\wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810\msi.dll after taking ownership as described here succeeds, however that does not cause the version in SysWOW64 to update (and so MS Outlook, which reads the version in SysWOW64, still fails to run saying that msi.dll is corrupted).
How do I successfully get the SysWOW64 version updated with the new file?