SepSidInTokenSidHash

UINT8 __stdcall SepSidInTokenSidHash(
        _SID_AND_ATTRIBUTES_HASH *SidHash,
        VOID *PrincipalSelfSid,
        VOID *Sid,
        UINT8 DenyAce,
        UINT8 Restricted,
        UINT8 TokenIsOwner){
  void *v7; 
  _SID_AND_ATTRIBUTES *v10; 
  unsigned int Attributes; 
  char v13; 

  v7 = Sid;
  if( !DenyAce && v13 && Sid && RtlEqualSid(SeAliasAdminsSid, Sid) )
    return 0;
  if( PrincipalSelfSid && RtlEqualSid(SePrincipalSelfSid, v7) )
    v7 = PrincipalSelfSid;
  if( TokenIsOwner && RtlEqualSid(SeOwnerRightsSid, v7) )
    return 1;
  v10 = (_SID_AND_ATTRIBUTES *)RtlSidHashLookup((INT64)SidHash, (UINT64 *)v7);
  if( v10
    && (!Restricted && v10 == SidHash->SidAttr && ((v10->Attributes & 0x10) == 0 || DenyAce)
     || (Attributes = v10->Attributes, (Attributes & 4) != 0)
     || DenyAce && (Attributes & 0x10) != 0) )
  {
    return 1;
  }
  else
  {
    return 0;
  }
}

Referenced by:

AuthzBasepDeviceMemberOf
ObpCreateHandle
SeAccessCheckWithHintWithAdminlessChecks
SepIsImpersonationAllowedDueToCapability
SepMatchCapability
SepSidInToken