PopFindPowerSettingConfiguration

LIST_ENTRY *__fastcall PopFindPowerSettingConfiguration(GUID *SettingGuid, INT64 a2){
  UINT64 v2; 
  INT64 v3; 
  int v4; 
  LIST_ENTRY *v6; 
  LIST_ENTRY *v7; 
  LIST_ENTRY *Flink; 
  __int64 v9; 
  v4 = a2;
  LOBYTE(v6) = PopGetListHead((INT64)SettingGuid, (const WCHAR *)a2, v2, v3);
  v7 = v6;
  Flink = v6->Flink;
  if( PopStateIsSessionSpecific(SettingGuid) )
  {
    while( Flink != v7 )
    {
      if( LODWORD(Flink[3].Flink) == v4 && (HIDWORD(Flink[3].Flink) & 4) == 0 )
        return Flink;
      Flink = Flink->Flink;
    }
  }
  else
  {
    while( Flink != v7 )
    {
      v9 = (__int64)Flink[2].Flink - *(_QWORD *)&SettingGuid->Data1;
      if( !v9 )
        v9 = (__int64)Flink[2].Blink - *(_QWORD *)SettingGuid->Data4;
      if( !v9 )
        return Flink;
      Flink = Flink->Flink;
    }
  }
  return 0i64;
}

Referenced by:

PoRegisterPowerSettingCallback
PopGetPowerSettingValue
PopGetSettingNotificationName
PopGetSettingValue
PopInitilizeAcDcSettings
PopQueryPowerSettingUlong
PopSetPowerSettingValue