RtlSetSaclSecurityDescriptor
INT64 __fastcall RtlSetSaclSecurityDescriptor(
VOID *SecurityDescriptor,
UINT8 SaclPresent,
_ACL *Sacl,
UINT8 SaclDefaulted){
__int16 v5;
__int16 v6;
__int16 v8;
_ACL *v9;
__int16 v10;
if( *(_BYTE *)SecurityDescriptor != 1 )
return 3221225560i64;
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 0i64;
v6 = v10 | 0x20;
}
else
{
v6 = v5 & 0xFFEF;
}
*((_WORD *)SecurityDescriptor + 1) = v6;
return 0i64;
}
return 3221225593i64;
}Referenced by:
CmpCopySaclToVirtualKey
CmpGenerateAppHiveSecurityDescriptor
ExpKeyedEventInitialization
IopCreateSecurityDescriptorPerType
LocalConvertStringSDToSD_Rev1
ObInitSystem
ObpVerifyAccessToBoundaryEntry
SeMakeSystemToken
SepBuildCapeSecurityDescriptor
SepInitProcessAuditSd
SepInitSystemDacls