PpmUpdateProcessorPolicy

__int16 __fastcall PpmUpdateProcessorPolicy(_WORD *a1, __int64 a2){
  int started; 
  char *v5; 
  unsigned __int64 v6; 
  unsigned __int64 v7; 
  INT64 *v8; 
  unsigned int i; 
  __int64 v10; 
  unsigned __int64 v11; 
  unsigned __int64 v12; 
  _DWORD v14[4]; 
  _KAFFINITY_EX Affinity2; 
  v14[0] = 0;
  memset((INT64)Affinity2.Bitmap, 0i64);
  LOWORD(started) = PpmAllowedActions & *a1;
  v5 = (char *)PpmCurrentProfile + 2736 * dword_140C23D0C;
  LOWORD(v14[0]) = started;
  if( !a2 && (v14[0] & 0x400) != 0 )
  {
    LOWORD(started) = 0;
    if( (*((_QWORD *)KeGetCurrentPrcb() + 4276) & 0x8000000000i64) != 0 )
    {
      v11 = __readmsr(0xDB0u);
      v12 = v11 & 0xFFFFFFFFFFFFFFFEui64;
      if( v5[160] )
        v12 = v11 | 1;
      LOWORD(started) = v12;
      __writemsr(0xDB0u, v12);
    }
  }
  v14[0] &= ~0x400u;
  if( LOWORD(v14[0]) )
  {
    v6 = (unsigned int)(10000 * *((_DWORD *)v5 + 15));
    if( v6 <= KeMaximumIncrement )
      LODWORD(v7) = 0;
    else
      v7 = (v6 - KeMaximumIncrement) / 0x2710;
    PpmPerfTimeWindow = v7;
    if( !PpmPerfControlStartPolicyUpdate || (started = PpmPerfControlStartPolicyUpdate(), started >= 0) )
    {
      if( a2 )
      {
        v8 = *(INT64 **)a2;
      }
      else
      {
        a2 = PpmPerfDomainHead;
        v8 = &PpmPerfDomainHead;
      }
      *(_DWORD *)&Affinity2.Count = 1310721;
      memset((INT64)&Affinity2.Reserved, 0i64);
      while( (INT64 *)a2 != v8 )
      {
        KeOrAffinityEx((_KAFFINITY_EX *)(a2 + 24), &Affinity2, &Affinity2);
        for( i = 0; i < *(_DWORD *)(a2 + 200); ++i )
        {
          v10 = *(_QWORD *)(a2 + 216) + 136i64 * i;
          if( !*(_DWORD *)(v10 + 16) )
            PpmUpdateTargetProcessorPolicy(a2, (__int64 *)v10, v14, (__int64)(v5 + 40));
        }
        a2 = *(_QWORD *)a2;
      }
      PopExecuteOnTargetProcessors(
        (INT64)&PpmPerfStatesRegistered,
        (INT64)PpmUpdateProcessorPolicyCallback,
        (INT64)v14,
        (INT64)(v5 + 40));
      LOWORD(started) = (_WORD)PpmPerfControlCompletePolicyUpdate;
      if( PpmPerfControlCompletePolicyUpdate )
        LOWORD(started) = PpmPerfControlCompletePolicyUpdate();
    }
  }
  return started;
}

Referenced by:

PpmCheckInitProcessors
PpmPerfReApplyStates
PpmReapplyPerfPolicy
PpmRegisterPerfStates