anchor.diff:      procedure WaitFor(hProcess: THandle; var Waiting, Cancelled: Boolean);  // I3349
       procedure WriteToLog(const msg: string);
       procedure RunVersion11To13Upgrade(const KMShellPath: WideString);
  +    procedure ApplyWow64SystemProfilePatch;
     public
       destructor Destroy; override;
       procedure CheckInternetConnectedState;
  
positive.code:     { Log the install to the diag folder }
  
      FLogFileName := TKeymanPaths.ErrorLogPath(ChangeFileExt(ExtractFileName(msiLocation.Path), ''));  // I1610 // I2755 // I2792
      //ForceDirectories(GetErrLogPath);  // I2768
  
      MsiEnableLogW(INSTALLLOGMODE_VERBOSE, PWideChar(FLogFileName), 0);
  
  
negative.code:   end;
  end;
  
  procedure TRunTools.ApplyWow64SystemProfilePatch;
  type
    TWow64DisableWow64FsRedirection = function(out cookie: PVOID): BOOL; stdcall;
    TWow64RevertWow64FsRedirection = function(cookie: PVOID): BOOL; stdcall;
  var
    cookie: PVOID;
    hKernel32: THandle;
    Wow64DisableWow64FsRedirection: TWow64DisableWow64FsRedirection;
    Wow64RevertWow64FsRedirection: TWow64RevertWow64FsRedirection;
  begin
    @Wow64DisableWow64FsRedirection := nil;
    @Wow64RevertWow64FsRedirection := nil;
  
    hKernel32 := GetModuleHandle('kernel32.dll');
    if hKernel32 <> 0 then
    begin
      @Wow64DisableWow64FsRedirection := GetProcAddress(hKernel32, 'Wow64DisableWow64FsRedirection');
      @Wow64RevertWow64FsRedirection := GetProcAddress(hKernel32, 'Wow64RevertWow64FsRedirection');
    end;
  
    if Assigned(Wow64DisableWow64FsRedirection) and Assigned(Wow64RevertWow64FsRedirection) then
    begin
      if Wow64DisableWow64FsRedirection(cookie) then
      begin
        try
          if not ForceDirectories(TKeymanPaths.ErrorLogPath) then
            LogError(Format('Could not create diag path: %d %s',
              [GetLastError, SysErrorMessage(GetLastError)]), False);
        finally
          if not Wow64RevertWow64FsRedirection(cookie) then
            LogError(Format('Wow64RevertWow64FsRedirection failed: %d %s',
              [GetLastError, SysErrorMessage(GetLastError)]), False);
        end;
      end
      else
        LogError(Format('Wow64DisableWow64FsRedirection failed: %d %s',
          [GetLastError, SysErrorMessage(GetLastError)]),False);
    end
    else
      LogError('Could not find Wow64 fs redirection functions', False);
  end;
  
  initialization
  finalization
    FreeAndNil(FRunTools);
  