HalpPostSleepMP

VOID __stdcall HalpPostSleepMP(INT64 NumberProcessors){
  __int64 v1; 
  BOOL IsReferenceTscConfigured; 
  INT64 v3; 
  INT64 v4; 
  INT64 v5; 
  int v6; 
  __int64 v7; 

  v7 = v1;
  v6 = NumberProcessors;
  LODWORD(v7) = KeGetCurrentPrcb()->Number;
  if( (_DWORD)v7 )
  {
    HalpInterruptReinitializeThisProcessor();
    while( (_DWORD)v7 != *(&CmpDummyThreadEvent + 962) )
      _mm_pause();
    __writecr8(0xFui64);
  }
  if( (dword_140C4A10C & 0xC) != 0 )
    HalpMcaResumeProcessorConfig(0i64);
  if( (dword_140C4A10C & 1) != 0 )
    HalpInterruptEnablePerformanceEvents(0i64);
  IsReferenceTscConfigured = HalpHvIsReferenceTscConfigured();
  if( !(_DWORD)v7 )
  {
    HIDWORD(qword_140C50410) = 0;
    dword_140C503F0[0] = 0;
    dword_140C503FC = v6 - 1;
    qword_140C50408 = (__int64)dword_140C503F0;
    if( !IsReferenceTscConfigured )
      HalpTscInitializeSynchronizationContext((__int64)&unk_140CED090, 0, 0i64, &v6);
  }
  _InterlockedIncrement((_DWORD *)&CmpDummyThreadEvent + 962);
  while( *(&CmpDummyThreadEvent + 962) != v6 )
    ;
  if( !(_DWORD)v7 && byte_140C4A110 && HalpMceEnabled )
    HalpHvSetMachineCheckHandlerState();
  if( !(_DWORD)v7 )
    HalpSetResumeTime(0i64, 1);
  HalpTimerMarkWake();
  HalpTimerRestoreProcessorCounter(v3);
  if( !(_DWORD)v7 )
  {
    dword_140C49D0C = 1;
    HalpSetResumeTime(0i64, 2);
    HalpInterruptRestoreClock();
    byte_140C4A108 = 0;
    LODWORD(qword_140C50410) = 0;
  }
  _InterlockedIncrement((_DWORD *)&qword_140C50410 + 1);
  while( HIDWORD(qword_140C50410) != v6 )
    ;
  while( (int)qword_140C50410 < (int)v7 )
    ;
  HalpMcUpdateMicrocode((unsigned int)qword_140C50410, v4, v5);
  HalpErrataApplyPerProcessor();
  _InterlockedIncrement((volatile signed __int32 *)&qword_140C50410);
  while( (_DWORD)qword_140C50410 != v6 )
    ;
  HalpRestartProfiling();
  HalpInterruptEnableNmi();
  KeLoadMTRR((INT64)&unk_140C503F8);
  if( !IsReferenceTscConfigured )
    HalpTscSynchronizationWorker(&unk_140CED090);
  HalpMcaResumeProcessorConfig(1i64);
}

Referenced by:

HaliAcpiSleep