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