PopGetPowerSettingValue

__int64 __fastcall PopGetPowerSettingValue(
        _QWORD *a1,
        __int64 a2,
        signed int a3,
        void *a4,
        __int64 a5,
        unsigned int *a6){
  LIST_ENTRY *PowerSettingConfiguration; 
  unsigned int v10; 
  __int64 v11; 
  unsigned int v12; 
  ExAcquireFastMutex(&PopSettingLock);
  if( (unsigned int)a3 > 1 )
    a3 = dword_140C23D0C;
  PowerSettingConfiguration = PopFindPowerSettingConfiguration((GUID *)a1, 0xFFFFFFFFi64);
  v10 = 0;
  if( PowerSettingConfiguration && (v11 = *((_QWORD *)&PowerSettingConfiguration[4].Flink + a3)) != 0 )
  {
    v12 = *(_DWORD *)(v11 + 4);
    *a6 = v12;
    if( v12 > 4 )
      v10 = -1073741306;
    else
      memmove((UINT8 *)a4, (UINT8 *)(*((_QWORD *)&PowerSettingConfiguration[4].Flink + a3) + 12i64), v12);
  }
  else
  {
    v10 = -1073741811;
  }
  KeReleaseGuardedMutex(&PopSettingLock);
  return v10;
}

Referenced by:

PopBatteryUpdateAlarms
PopCaptureSleepStudyStatistics
PopEsInStandbyEvaluate
PopScanIdleList