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