SepDeReferenceLogonSessionDirect

VOID __stdcall SepDeReferenceLogonSessionDirect(_SEP_LOGON_SESSION_REFERENCES *LogonSession){
  __int64 ReferenceCount; 
  signed __int64 i; 
  __int64 v3; 
  _EJOB *ServerSilo; 
  _LUID LogonId; 

  _m_prefetchw(&LogonSession->ReferenceCount);
  ReferenceCount = LogonSession->ReferenceCount;
  for( i = ReferenceCount - 1; i > 0; i = ReferenceCount - 1 )
  {
    v3 = ReferenceCount;
    ReferenceCount = _InterlockedCompareExchange64(&LogonSession->ReferenceCount, i, ReferenceCount);
    if( v3 == ReferenceCount )
      return;
  }
  if( i )
    __fastfail(0xEu);
  ServerSilo = LogonSession->ServerSilo;
  LogonId = LogonSession->LogonId;
  SepDeReferenceLogonSession(&LogonId, ServerSilo);
}

Referenced by:

NtQueryInformationToken
SeGetLinkedToken
SeSetSessionIdTokenWithLinked
SeShutdownServerSilo
SepLinkLogonSessions
SepSetServerSiloToken
SepStopReferencingLogonSession