SepCompareSidValuesBlocks
char __fastcall SepCompareSidValuesBlocks(__int64 a1, __int64 a2){
unsigned int v3;
unsigned int v4;
unsigned __int8 *v5;
unsigned __int8 *v6;
if( a1 == a2 )
return 1;
if( a1 )
{
if( a2 )
{
v3 = *(_DWORD *)(a1 + 16);
if( v3 == *(_DWORD *)(a2 + 16) )
{
v4 = 0;
v5 = (unsigned __int8 *)(a1 + 24);
v6 = (unsigned __int8 *)(a2 + 24);
if( !v3 )
return 1;
while( RtlEqualSid(v5, v6) )
{
++v4;
v5 += (4i64 * v5[1] + 11) & 0xFFFFFFFCi64;
v6 += (4i64 * v6[1] + 11) & 0xFFFFFFFCi64;
if( v4 >= v3 )
return 1;
}
}
}
}
return 0;
}Referenced by:
SepSetTokenUserAndGroups