WheaInitializeServices

VOID __stdcall WheaInitializeServices(){
  UINT32(__stdcall **v0)(UINT32, PKINTERRUPT_ROUTINE **, PKINTERRUPT_ROUTINE *); 
  __int64 v1; 
  signed __int32 v2[10]; 

  v0 = (UINT32(__stdcall **)(UINT32, PKINTERRUPT_ROUTINE **, PKINTERRUPT_ROUTINE *))((char *)&stru_140CF2E80 + 5328);
  v1 = 17i64;
  do
  {
    *(v0 - 2) = 0i64;
    *v0 = HalSystemVectorDispatchEntry;
    v0[1] = (UINT32(__stdcall *)(UINT32, PKINTERRUPT_ROUTINE **, PKINTERRUPT_ROUTINE *))xHalPciEarlyRestore;
    v0[2] = (UINT32(__stdcall *)(UINT32, PKINTERRUPT_ROUTINE **, PKINTERRUPT_ROUTINE *))WheapDefaultErrSrcCreateRecord;
    v0[3] = HalSystemVectorDispatchEntry;
    v0[4] = (UINT32(__stdcall *)(UINT32, PKINTERRUPT_ROUTINE **, PKINTERRUPT_ROUTINE *))xHalTimerWatchdogStop;
    v0[5] = 0i64;
    v0 += 8;
    --v1;
  }
  while( v1 );
  *(&WheapDeferredInternalLogsEventLock + 24) = 0i64;
  *(&stru_140CF2E80 + 802) = (char *)&stru_140CF2E80 + 6408;
  *(&stru_140CF2E80 + 801) = (char *)&stru_140CF2E80 + 6408;
  *(&stru_140CF2E80 + 800) = 0i64;
  _InterlockedOr(v2, 0);
  *(&WheapErrorSourceTable + 60) = 1;
  *(&SbiVmbusArrivalEvent + 377) = (char *)&SbiVmbusArrivalEvent + 3008;
  *(&SbiVmbusArrivalEvent + 376) = (char *)&SbiVmbusArrivalEvent + 3008;
  *(&SbiVmbusArrivalEvent + 369) = (char *)&SbiVmbusArrivalEvent + 2944;
  *(&SbiVmbusArrivalEvent + 368) = (char *)&SbiVmbusArrivalEvent + 2944;
  *(&WheapDeferredInternalLogsEventLock + 19) = WheapDeferredRecoveryServiceDpcRoutine;
  *(&WheapDeferredInternalLogsEventLock + 14) = WheapDeferredRecoveryServiceWorker;
  *(&SbiVmbusArrivalEvent + 744) = 1;
  *(&SbiVmbusArrivalEvent + 373) = 0i64;
  *(&SbiVmbusArrivalEvent + 748) = 0;
  *(&SbiVmbusArrivalEvent + 1500) = 1;
  *(&SbiVmbusArrivalEvent + 3002) = 6;
  *(&SbiVmbusArrivalEvent + 751) = 0;
  *(&WheapDeferredInternalLogsEventLock + 11) = 0i64;
  *(&WheapDeferredInternalLogsEventLock + 32) = 275;
  *(&WheapDeferredInternalLogsEventLock + 20) = 0i64;
  *(&WheapDeferredInternalLogsEventLock + 23) = 0i64;
  *(&WheapDeferredInternalLogsEventLock + 18) = 0i64;
  *(&WheapDeferredInternalLogsEventLock + 15) = 0i64;
  *(&WheapDeferredInternalLogsEventLock + 12) = 0i64;
  _InterlockedOr(v2, 0);
  *(&WheapErrorSourceTable + 57) = 1;
  WheapInitializeInUsePageOfflineNotifications();
}

Referenced by:

InitBootProcessor