RtlAddMandatoryAce

NTSTATUS __stdcall RtlAddMandatoryAce(
        PACL Acl,
        UINT64 AceFlags,
        VOID *Sid,
        UINT64 AccessMask,
        PSID LabelSid,
        PSID AccessMaska){
  int v7; 
  VOID *v9; 
  VOID *v10; 
  int v11; 
  unsigned __int8 AclRevision; 
  char v13; 
  char *v14; 
  unsigned __int16 v15; 
  NTSTATUS result; 
  VOID *FirstFree; 
  int v18; 
  unsigned __int16 v19; 

  FirstFree = 0i64;
  v18 = 0;
  v7 = (int)Sid;
  v19 = 4096;
  if( !Acl )
    return -1073741705;
  if( !RtlValidSid((_BYTE *)AccessMask) )
    return -1073741704;
  v11 = *(_DWORD *)(AccessMask + 2) - v18;
  if( !v11 )
    v11 = *(unsigned __int16 *)(AccessMask + 6) - v19;
  if( v11 )
    return -1073741811;
  AclRevision = Acl->AclRevision;
  if( Acl->AclRevision > 4u )
    return -1073741735;
  if( AclRevision <= 2u )
    AclRevision = 2;
  if( (v7 & 0xFFFFFFE0) != 0 || ((unsigned int)AccessMaska & 0xFFFFFFF8) != 0 )
    return -1073741811;
  RtlValidAcl(Acl, v9, v10);
  if( !v13 || !RtlFirstFreeAce(Acl, &FirstFree) )
    return -1073741705;
  v14 = (char *)FirstFree;
  v15 = 4 * (*(unsigned __int8 *)(AccessMask + 1) + 4);
  if( !FirstFree || (char *)FirstFree + v15 > (char *)Acl + Acl->AclSize )
    return -1073741671;
  *((_WORD *)FirstFree + 1) = v15;
  v14[1] = v7;
  *v14 = 17;
  *((_DWORD *)v14 + 1) = (_DWORD)AccessMaska;
  memmove(v14 + 8, (const VOID *)AccessMask, 4 * *(unsigned __int8 *)(AccessMask + 1) + 8);
  ++Acl->AceCount;
  result = 0;
  Acl->AclRevision = AclRevision;
  return result;
}

Referenced by:

CmpGenerateAppHiveSecurityDescriptor
ExpKeyedEventInitialization
IopCreateSecurityDescriptorPerType
ObpVerifyAccessToBoundaryEntry
RtlpNewSecurityObject
SepInitSystemDacls