SepDereferenceSidValuesBlock

VOID __fastcall SepDereferenceSidValuesBlock(
        _SEP_SID_VALUES_BLOCK *SidValues,
        _TOKEN *TokenForLogging,
        _SEP_LOGON_SESSION_REFERENCES *LogonSessionForLogging){
  signed __int64 v4; 
  bool v5; 
  bool v6; 
  bool v7; 
  signed __int64 v8; 
  if( SidValues )
  {
    v4 = _InterlockedExchangeAdd64(&SidValues->ReferenceCount, 0xFFFFFFFFFFFFFFFFui64);
    v7 = __OFSUB__(v4, 1i64);
    v5 = v4 == 1;
    v6 = v4 - 1 < 0;
    v8 = v4 - 1;
    if( v6 ^ v7 | v5 )
    {
      if( v8 )
        __fastfail(0xEu);
      SepLogTokenSidManagement(5, (__int64)SidValues, 0i64, (__int64)TokenForLogging, (__int64)LogonSessionForLogging);
      ExFreePoolWithTag(SidValues, 0);
    }
  }
}

Referenced by:

SepDeleteLogonSessionSidValues
SepDeleteTokenUserAndGroups
SepSetTokenUserAndGroups