RtlSetSaclSecurityDescriptor

NTSTATUS __stdcall RtlSetSaclSecurityDescriptor(
        VOID *SecurityDescriptor,
        UINT8 SaclPresent,
        _ACL *Sacl,
        UINT8 SaclDefaulted){
  __int16 v5; 
  __int16 v6; 
  __int16 v8; 
  _ACL *v9; 
  __int16 v10; 

  if( *(_BYTE *)SecurityDescriptor != 1 )
    return -1073741736;
  v5 = *((_WORD *)SecurityDescriptor + 1);
  if( v5 >= 0 )
  {
    if( SaclPresent )
    {
      v8 = v5 | 0x10;
      v9 = 0i64;
      if( Sacl )
        v9 = Sacl;
      *((_QWORD *)SecurityDescriptor + 3) = v9;
      v10 = v8 & 0xFFDF;
      *((_WORD *)SecurityDescriptor + 1) = v10;
      if( !SaclDefaulted )
        return 0;
      v6 = v10 | 0x20;
    }
    else
    {
      v6 = v5 & 0xFFEF;
    }
    *((_WORD *)SecurityDescriptor + 1) = v6;
    return 0;
  }
  return -1073741703;
}

Referenced by:

CmpCopySaclToVirtualKey
CmpGenerateAppHiveSecurityDescriptor
ExpKeyedEventInitialization
IopCreateSecurityDescriptorPerType
LocalConvertStringSDToSD_Rev1
ObInitSystem
ObpVerifyAccessToBoundaryEntry
SeMakeSystemToken
SepBuildCapeSecurityDescriptor
SepInitProcessAuditSd
SepInitSystemDacls