PopPepGetComponentVetoMasks

NTSTATUS __fastcall PopPepGetComponentVetoMasks(
        PEPHANDLE__ *DpmContext,
        UINT64 ComponentIndex,
        UINT64 *VetoMasks,
        UINT64 IdleStateCount){
  PEPHANDLE__ *v4; 
  PEPHANDLE__ *v5; 
  PEPHANDLE__ *v7; 
  __int64 v8; 
  unsigned __int8 v9; 
  unsigned __int64 v10; 
  __int64 v11; 

  v4 = DpmContext + 16;
  v5 = DpmContext;
  v7 = DpmContext + 50 * (unsigned int)ComponentIndex;
  v8 = 0i64;
  v9 = ExAcquireSpinLockShared((INT64 *)DpmContext + 8);
  LODWORD(v5) = v5[43];
  v10 = v9;
  ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)v4);
  LODWORD(v11) = KiIrqlFlags;
  __writecr8(v10);
  if( (_DWORD)v5 == 2 )
  {
    if( *((_DWORD *)v7 + 93) )
    {
      do
      {
        v11 = *((_QWORD *)v7 + 47);
        *((_DWORD *)VetoMasks + v8) = *(_DWORD *)(v11 + 24 * v8 + 16);
        v8 = (unsigned int)(v8 + 1);
      }
      while( (unsigned int)v8 < *((_DWORD *)v7 + 93) );
    }
    LOBYTE(v8) = 1;
  }
  LOBYTE(v11) = v8;
  return v11;
}

Referenced by:

PopFxTraceDeviceRegistration