PpmReapplyPerfPolicy

void __fastcall PpmReapplyPerfPolicy(_WORD *a1){
  char v2; 
  int v3; 
  char v4; 
  char v5; 
  if( (*(_DWORD *)a1 & 0x1800) != 0 )
  {
    PopInitializeHeteroProcessors();
    if( (*(_DWORD *)a1 & 0x800) != 0 || v2 )
      *(_DWORD *)a1 |= 0x200Eu;
  }
  PpmUpdateProcessorPolicy(a1, 0i64);
  v3 = *(_DWORD *)a1;
  if( (*(_DWORD *)a1 & 4) != 0 )
  {
    PpmParkApplyPolicy();
    v3 = *(_DWORD *)a1;
  }
  if( (v3 & 0x10) != 0 )
  {
    PpmPerfResizeHistoryAll();
    v3 = *(_DWORD *)a1;
  }
  if( (v3 & 8) != 0 )
  {
    PpmCheckReInit();
    v3 = *(_DWORD *)a1;
  }
  v4 = 0;
  v5 = 1;
  if( (v3 & 2) != 0 )
  {
    v5 = 0;
    v4 = 1;
    PpmPerfUpdateDomainPolicy(0);
    v3 = *(_DWORD *)a1;
  }
  if( (v3 & 4) != 0 )
  {
    if( v4 )
    {
      PpmAcquireLock(&PpmPerfPolicyLock);
      v3 = *(_DWORD *)a1;
    }
    v5 = 0;
    if( (v3 & 0x2000) != 0 )
    {
      PpmCheckInitProcessors(1i64);
      return;
    }
    PpmCheckApplyParkConstraints();
  }
  if( v5 )
    PpmReleaseLock(&PpmPerfPolicyLock);
}

Referenced by:

PpmCompareAndApplyPolicySettings
PpmPerfProcCapFloorSettingCallback
PpmReinitializeHeteroEngine
PpmSetProfilePolicySetting