RtlpValidCompoundAce
UINT8 __stdcall RtlpValidCompoundAce(_ACE_HEADER *Ace){
unsigned __int64 AceSize;
int AceFlags;
__int64 v3;
__int64 v4;
__int64 v5;
__int64 v6;
UINT8 result;
result = 0;
if( Ace )
{
AceSize = Ace->AceSize;
if( ((AceSize + 3) & 0xFFFFFFFFFFFFFFFCui64) == AceSize
&& (unsigned int)AceSize >= 0x18
&& *(_WORD *)&Ace[2].AceType == 1
&& Ace[3].AceType == 1 )
{
AceFlags = Ace[3].AceFlags;
if( (unsigned __int8)AceFlags <= 0xFu )
{
v3 = (unsigned int)(4 * AceFlags + 8);
v4 = (unsigned int)v3;
if( AceSize >= v3 + 24 )
{
v5 = 4 * (unsigned int)Ace[3].AceFlags + 8;
if( *(&Ace[3].AceType + v5) == 1 )
{
v6 = *(&Ace[3].AceFlags + v5);
if( (unsigned __int8)v6 <= 0xFu && AceSize >= v4 + 20 + 4 * v6 )
return 1;
}
}
}
}
}
return result;
}Referenced by:
RtlValidAcl