RtlSidHashInitialize

NTSTATUS __stdcall RtlSidHashInitialize(
        _SID_AND_ATTRIBUTES *SidAttr,
        UINT64 SidCount,
        _SID_AND_ATTRIBUTES_HASH *SidAttrHash){
  unsigned int v4; 
  __int64 v6; 
  __int64 v7; 
  _BYTE *Sid; 
  unsigned int v9; 
  __int64 v10; 

  v4 = SidCount;
  if( !SidAttrHash )
    return -1073741811;
  memset(SidAttrHash, 0i64, sizeof(_SID_AND_ATTRIBUTES_HASH));
  if( SidAttr && v4 )
  {
    SidAttrHash->SidAttr = SidAttr;
    SidAttrHash->SidCount = v4;
    if( v4 > 0x40 )
      v4 = 64;
    v6 = 1i64;
    v7 = v4;
    do
    {
      Sid = SidAttr->Sid;
      ++SidAttr;
      v9 = (unsigned __int8)Sid[4 * (unsigned __int8)Sid[1] + 4];
      v10 = Sid[4 * (unsigned __int8)Sid[1] + 4] & 0xF;
      SidAttrHash->Hash[v10] |= v6;
      SidAttrHash->Hash[((unsigned __int64)v9 >> 4) + 16] |= v6;
      v6 = __ROL8__(v6, 1);
      --v7;
    }
    while( v7 );
  }
  return 0;
}

Referenced by:

CmpBuildAdminInformation
SepCopyTokenAccessInformation
SepCreateClaimAttributes
SepCreateTokenEx
SepDuplicateClaimAttributes
SepDuplicateToken
SepFilterToken
SepSetTokenCapabilities
SepTokenFromAccessInformation