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