SepCompareSidValuesBlocks
UINT8 __stdcall SepCompareSidValuesBlocks(_SEP_SID_VALUES_BLOCK *SidValuesOne, _SEP_SID_VALUES_BLOCK *SidValuesTwo){
unsigned int SidCount;
unsigned int v4;
unsigned __int8 *p_SidValuesStart;
unsigned __int8 *v6;
if( SidValuesOne == SidValuesTwo )
return 1;
if( SidValuesOne )
{
if( SidValuesTwo )
{
SidCount = SidValuesOne->SidCount;
if( SidCount == SidValuesTwo->SidCount )
{
v4 = 0;
p_SidValuesStart = (unsigned __int8 *)&SidValuesOne->SidValuesStart;
v6 = (unsigned __int8 *)&SidValuesTwo->SidValuesStart;
if( !SidCount )
return 1;
while( RtlEqualSid(p_SidValuesStart, v6) )
{
++v4;
p_SidValuesStart += (4i64 * p_SidValuesStart[1] + 11) & 0xFFFFFFFCi64;
v6 += (4i64 * v6[1] + 11) & 0xFFFFFFFCi64;
if( v4 >= SidCount )
return 1;
}
}
}
}
return 0;
}Referenced by:
SepSetTokenUserAndGroups