PopFxQueryCurrentComponentPerfState

VOID __stdcall PopFxQueryCurrentComponentPerfState(
        _POP_FX_DEVICE *FxDevice,
        _POP_FX_COMPONENT *FxComponent,
        UINT64 Set,
        UINT8 Nominal,
        UINT64 *CurrentPerf,
        UINT8 *PerfChanged){
  __int64 v6; 
  __int64 v8; 
  bool v9; 
  UINT64 v10; 
  __int128 v11; 

  v6 = *((_QWORD *)FxComponent + 53);
  v11 = 0i64;
  v8 = *(_QWORD *)(v6 + 152) + 32i64 * (unsigned int)Set;
  v9 = *(_BYTE *)(v6 + 73) == 0;
  LODWORD(v11) = Set;
  if( v9 || !*((_QWORD *)FxDevice + 8) )
  {
    *CurrentPerf = *(_QWORD *)(v8 + 8);
  }
  else
  {
    PopPluginQueryCurrentComponentPerfState((__int64)FxDevice, *((_DWORD *)FxComponent + 4), (__int64)&v11);
    v10 = DWORD2(v11);
    if( *(_DWORD *)(*(_QWORD *)v8 + 28i64) )
      v10 = *((_QWORD *)&v11 + 1);
    *CurrentPerf = v10;
    if( v10 != *(_QWORD *)(v8 + 8) )
    {
      *(_QWORD *)(v8 + 16) = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
      *(_BYTE *)(v8 + 24) = Nominal;
      *(_QWORD *)(v8 + 8) = *CurrentPerf;
      if( PerfChanged )
        *PerfChanged = 1;
      return;
    }
  }
  if( PerfChanged )
    *PerfChanged = 0;
}

Referenced by:

PoFxQueryCurrentComponentPerfState
PopFxUpdateComponentPerfStateNominalChange