PpmEnableProfile

VOID __stdcall PpmEnableProfile(VOID *Context){
  __int64 v1; 
  UINT8 v2; 
  __int64 v3; 
  __int64 v4; 
  __int64 v5; 

  *((_DWORD *)Context + 7) |= 1u;
  v1 = *(_QWORD *)((char *)Context + 12) - *(_QWORD *)&GUID_POWER_POLICY_PROFILE_LOW_POWER.Data1;
  v2 = *((_BYTE *)Context + 8);
  if( !v1 )
    v1 = *(_QWORD *)((char *)Context + 20) - *(_QWORD *)GUID_POWER_POLICY_PROFILE_LOW_POWER.Data4;
  if( !v1 )
  {
    PpmLowPowerProfile = (__int64)Context;
    goto LABEL_13;
  }
  v3 = *(_QWORD *)((char *)Context + 12) - *(_QWORD *)&GUID_POWER_POLICY_PROFILE_BACKGROUND.Data1;
  if( !v3 )
    v3 = *(_QWORD *)((char *)Context + 20) - *(_QWORD *)GUID_POWER_POLICY_PROFILE_BACKGROUND.Data4;
  if( !v3 )
  {
    PpmBackgroundProfile = (__int64)Context;
LABEL_18:
    PpmReinitializeHeteroEngine(1);
    PpmAcquireLock((_PPM_LOCK *)((char *)&stru_140C23628 + 1048));
    goto LABEL_13;
  }
  v4 = *(_QWORD *)((char *)Context + 12) - *(_QWORD *)&GUID_POWER_POLICY_PROFILE_ENTRY_LEVEL_PERF.Data1;
  if( !v4 )
    v4 = *(_QWORD *)((char *)Context + 20) - *(_QWORD *)GUID_POWER_POLICY_PROFILE_ENTRY_LEVEL_PERF.Data4;
  if( !v4 )
  {
    PpmEntryLevelPerfProfile = (__int64)Context;
    goto LABEL_18;
  }
  v5 = *(_QWORD *)((char *)Context + 12) - *(_QWORD *)&GUID_POWER_POLICY_PROFILE_QOS_MULTIMEDIA.Data1;
  if( !v5 )
    v5 = *(_QWORD *)((char *)Context + 20) - *(_QWORD *)GUID_POWER_POLICY_PROFILE_QOS_MULTIMEDIA.Data4;
  if( !v5 )
  {
    PpmMultimediaQosProfile = (__int64)Context;
    goto LABEL_18;
  }
LABEL_13:
  PpmEventTraceProfileEnable(v2, 1u);
}

Referenced by:

PdcPoPpmResetProfile
PpmRegisterSpmSettings