PpmParkParkingAvailable

UINT8 __stdcall PpmParkParkingAvailable(){
  UINT8 v0; 
  unsigned int v1; 
  __int64 v2; 
  unsigned int v3; 
  _QWORD *v4; 
  __int64 v5; 
  unsigned __int8 v6; 
  unsigned __int8 v7; 
  UINT8 result; 

  if( (_DWORD)PpmParkNumNodes != 1
    || KeGetCurrentPrcb()->LogicalProcessorsPerCore != *(unsigned __int8 *)(PpmParkNodes + 6) )
  {
    v0 = 0;
    v1 = 0;
    if( !(_DWORD)PpmParkNumNodes )
      goto LABEL_17;
    v2 = PpmParkNodes + 132;
    while( 1 )
    {
      if( *(_BYTE *)(v2 + 2)
        || *(_BYTE *)(v2 + 4)
        || *(_QWORD *)(v2 - 100)
        || !KeIsEmptyAffinityEx(&PpmPerfCoreParkingMask.Count) )
      {
        v0 = 1;
        goto LABEL_17;
      }
      v3 = 0;
      v4 = (_QWORD *)(v2 - 76);
      v5 = 0i64;
      while( 1 )
      {
        v6 = *(_BYTE *)(v2 + v5 - 4);
        if( v6 )
          break;
LABEL_15:
        ++v3;
        ++v5;
        ++v4;
        if( v3 >= 2 )
          goto LABEL_16;
      }
      v7 = *(_BYTE *)(v2 + v5);
      if( *(_BYTE *)(v2 + v5 - 2) >= v7 && v7 >= v6 )
        break;
      v0 = 1;
LABEL_16:
      ++v1;
      v2 += 272i64;
      if( v1 >= (unsigned int)PpmParkNumNodes )
      {
LABEL_17:
        result = v0;
        PpmIsParkingEnabled = v0;
        return result;
      }
    }
    if( *v4 )
      v0 = 1;
    goto LABEL_15;
  }
  return 0;
}

Referenced by:

PpmCheckReInit
PpmParkApplyForcedMask
PpmParkClearForcedMask
PpmParkRegisterParking