RtlSidDominates
NTSTATUS __stdcall RtlSidDominates(VOID *Sid1, VOID *Sid2, UINT8 *pbDominate){
int v4;
int v7;
__int16 v8;
__int16 v9;
bool v10;
UINT8 v11;
unsigned int v13;
*pbDominate = 0;
v4 = *(_DWORD *)((char *)Sid1 + 2);
if( !v4 )
v4 = *((unsigned __int16 *)Sid1 + 3) - 4096;
if( v4 )
return -1073741811;
v7 = *(_DWORD *)((char *)Sid2 + 2);
if( !v7 )
v7 = *((unsigned __int16 *)Sid2 + 3) - 4096;
if( v7 )
return -1073741811;
v8 = HIBYTE(*(_WORD *)Sid1);
v9 = HIBYTE(*(_WORD *)Sid2);
v10 = *(_WORD *)Sid1 == *(_WORD *)Sid2 && !memcmp(Sid1, Sid2, 4i64 * (unsigned __int8)v8 + 8);
v11 = 1;
if( !v10 )
{
v13 = (_BYTE)v8 ? *((_DWORD *)Sid1 + (unsigned int)(unsigned __int8)v8 + 1) : 0;
if( (_BYTE)v9 && v13 < *((_DWORD *)Sid2 + (unsigned int)(unsigned __int8)v9 + 1) )
v11 = 0;
}
*pbDominate = v11;
return 0;
}Referenced by:
RtlpNewSecurityObject
SeIsTokenAssignableToProcess
SeTokenCanImpersonate
SepAdjustPrivileges
SepMandatorySubProcessToken
SepValidLabelSubjectContext