PpmParkUnblockIdle

INT64 __fastcall PpmParkUnblockIdle(){
  INT64 result; 
  char v1; 
  __int64 v2; 
  INT64 v3; 
  _KAFFINITY_EX *v4; 
  unsigned __int64 v5; 
  __int16 v6; 
  int v7; 
  __int16 v8; 
  UINT64 ProcessorNumber; 
  v7 = 0;
  v8 = 0;
  v1 = 1;
  LODWORD(ProcessorNumber) = 0;
  if( PpmIsParkingEnabled )
  {
    v5 = PpmPerfNewUnparkedMask.Bitmap[0];
    v4 = &PpmPerfNewUnparkedMask;
    v6 = 0;
    while( !(unsigned int)KeEnumerateNextProcessor(&ProcessorNumber, (unsigned __int16 **)&v4) )
    {
      KeGetPrcb((unsigned int)ProcessorNumber);
      if( *(_BYTE *)(v2 + 32829) )
        *(_BYTE *)(v2 + 32829) = 0;
      else
        KeRemoveProcessorAffinityEx(&PpmPerfNewUnparkedMask.Count, ProcessorNumber);
    }
    result = KeCountSetBitsAffinityEx(&PpmPerfNewUnparkedMask);
    if( (_DWORD)result )
    {
      PpmCheckCount = result;
      v5 = PpmPerfNewUnparkedMask.Bitmap[0];
      v6 = 0;
      v4 = &PpmPerfNewUnparkedMask;
      while( !(unsigned int)KeEnumerateNextProcessor(&ProcessorNumber, (unsigned __int16 **)&v4) )
      {
        KeGetPrcb((unsigned int)ProcessorNumber);
        PpmPerfQueueAction(v3, 5);
      }
      *(_DWORD *)&PpmPerfNewUnparkedMask.Count = 1310721;
      result = memset((INT64)&PpmPerfNewUnparkedMask.Reserved, 0i64);
      v1 = 0;
    }
  }
  LOBYTE(result) = v1;
  return result;
}

Referenced by:

No references.