PopPepReleaseActivityLink

INT64 __fastcall PopPepReleaseActivityLink(INT64 a1, volatile INT64 *a2, CHAR a3, UINT8 a4){
  unsigned __int64 v4; 
  unsigned int v6; 
  _QWORD *v7; 
  INT64 result; 
  v4 = a4;
  if( a3 == 1 )
  {
    v6 = 0;
    v7 = (_QWORD *)(a1 + 72);
    while( !*v7 || !*(_DWORD *)*v7 )
    {
      ++v6;
      ++v7;
      if( v6 >= 6 )
      {
        if( *(_BYTE *)(a1 + 136) )
          *(_BYTE *)(a1 + 125) = 0;
        break;
      }
    }
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(a1 + 64));
  }
  else
  {
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)a2);
    ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)(a1 + 64));
  }
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v4);
  return result;
}

Referenced by:

PopPepCompleteComponentIdleState
PopPepComponentSetLatency
PopPepComponentSetResidency
PopPepComponentSetWakeHint
PopPepProcessEvent
PopPepSurprisePowerOn
PopPepTryPowerDownDevice
PopPepUpdateConstraints