PpmProcessSettingsFromQueryTable

UINT8 __stdcall PpmProcessSettingsFromQueryTable(
        _GUID *ProfileGuid,
        _SYSTEM_POWER_CONDITION PowerCondition,
        _RTL_QUERY_REGISTRY_TABLE *QueryTable){
  __int64 v3; 
  void **p_EntryContext; 
  __int64 v5; 
  UINT8 v6; 
  __int64 v7; 
  const wchar_t *v8; 
  wchar_t **v9; 
  unsigned int v10; 
  __int64 v11; 
  __int64 v12; 
  __int64 v13; 
  UINT64 ValueLength; 
  UINT8 NewValue[4]; 
  _SYSTEM_POWER_CONDITION PowerConditiona; 
  _GUID *ProfileGuida; 
  _GUID SettingGuid; 

  PowerConditiona = PowerCondition;
  SettingGuid = 0i64;
  v3 = 0i64;
  p_EntryContext = &QueryTable->EntryContext;
  v5 = 0i64;
  v6 = 0;
  ProfileGuida = ProfileGuid;
  v7 = 20i64;
  do
  {
    v8 = (const wchar_t *)*(p_EntryContext - 1);
    v9 = &PpmPolicyAliasList;
    v10 = 0;
    while( wcsicmp(v8, *v9) )
    {
      ++v10;
      v9 += 2;
      if( v10 >= 0x14 )
        goto LABEL_7;
    }
    SettingGuid = *(_GUID *)v9[1];
    v3 = *(_QWORD *)SettingGuid.Data4;
    v5 = *(_QWORD *)&SettingGuid.Data1;
LABEL_7:
    *(_DWORD *)NewValue = *(_DWORD *)*p_EntryContext;
    if( *(_DWORD *)NewValue != -1 )
    {
      v11 = v5 - *(_QWORD *)&GUID_PROCESSOR_PERF_INCREASE_HISTORY.Data1;
      if( v5 == *(_QWORD *)&GUID_PROCESSOR_PERF_INCREASE_HISTORY.Data1 )
        v11 = v3 - *(_QWORD *)GUID_PROCESSOR_PERF_INCREASE_HISTORY.Data4;
      if( v11 )
      {
        v12 = v5 - *(_QWORD *)&GUID_PROCESSOR_PERF_DECREASE_HISTORY.Data1;
        if( v5 == *(_QWORD *)&GUID_PROCESSOR_PERF_DECREASE_HISTORY.Data1 )
          v12 = v3 - *(_QWORD *)GUID_PROCESSOR_PERF_DECREASE_HISTORY.Data4;
        if( v12 )
        {
          v13 = v5 - *(_QWORD *)&GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY.Data1;
          if( v5 == *(_QWORD *)&GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY.Data1 )
            v13 = v3 - *(_QWORD *)GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY.Data4;
          if( v13 )
          {
            v6 = 1;
            LODWORD(ValueLength) = 4;
            PpmSetProfilePolicySetting(ProfileGuida, &SettingGuid, PowerConditiona, NewValue, ValueLength);
            v3 = *(_QWORD *)SettingGuid.Data4;
            v5 = *(_QWORD *)&SettingGuid.Data1;
          }
          else
          {
            PpmProfileStatus |= 0x10u;
          }
        }
        else
        {
          PpmProfileStatus |= 8u;
        }
      }
      else
      {
        PpmProfileStatus |= 4u;
      }
    }
    p_EntryContext += 7;
    --v7;
  }
  while( v7 );
  return v6;
}

Referenced by:

PpmRegisterSpmSettings