PpmParkReportParkedCore

CHAR __fastcall PpmParkReportParkedCore(__int64 a1){
  unsigned __int64 v2; 
  unsigned __int64 v3; 
  __int64 v4; 
  unsigned __int64 v5; 
  __int16 v7; 
  v2 = (unsigned int)KiProcessorIndexToNumberMappingTable[*(unsigned int *)(a1 + 36)];
  v3 = ((unsigned __int64)qword_140C127C8[v2 >> 6] >> (v2 & 0x3F)) & 1;
  KeTransitionProcessorParkState(a1, v3 + 1);
  v4 = *(unsigned int *)(a1 + 36);
  *(_BYTE *)(a1 + 33212) = 1;
  v5 = 1i64 << (KiProcessorIndexToNumberMappingTable[v4] & 0x3F);
  _InterlockedOr64(&qword_140C11318[(unsigned __int64)(unsigned int)KiProcessorIndexToNumberMappingTable[v4] >> 6], v5);
  _disable();
  LODWORD(v4) = *(_DWORD *)(a1 + 32384);
  *(_DWORD *)(a1 + 11684) = 0;
  *(_DWORD *)(a1 + 11680) = v4;
  if( (v7 & 0x200) != 0 )
    _enable();
  if( (_BYTE)v3 )
  {
    v5 = (unsigned int)KiProcessorIndexToNumberMappingTable[*(unsigned int *)(a1 + 36)];
    _InterlockedOr64(
      &qword_140C129D8[v5 >> 6],
      1i64 << (KiProcessorIndexToNumberMappingTable[*(unsigned int *)(a1 + 36)] & 0x3F));
    *(_BYTE *)(a1 + 32819) = 1;
  }
  return PpmEventCoreParkingStateChangeEx(a1, v3, (EVENT_DESCRIPTOR *)v5);
}

Referenced by:

PpmPerfAction