AuthzBasepMemberOf

INT64 __fastcall AuthzBasepMemberOf(INT64 a1, PVOID Token, INT64 DenyAce, UINT8 Restricted, CHAR a5, INT64 a6){
  char v7; 
  UINT8 v8; 
  int NextValue; 
  int v12; 
  UINT64 v13; 
  UINT8 v14; 
  INT64 v16[2]; 
  __int128 v17; 
  void *Src; 
  UINT8 dst[80]; 
  Src = 0i64;
  v7 = a5 != 0;
  v8 = DenyAce;
  *(_BYTE *)a6 = 0;
  *(_OWORD *)v16 = 0i64;
  v17 = 0i64;
  while( 1 )
  {
    NextValue = AuthzBasepGetNextValue(a1, (INT64)v16, DenyAce);
    v12 = NextValue;
    if( NextValue == -2147483622 )
      break;
    if( NextValue < 0 )
      return(unsigned int)v12;
    v13 = DWORD2(v17);
    if( DWORD2(v17) >= 0x44 )
      v13 = 68i64;
    memmove(dst, (UINT8 *)Src, v13);
    v14 = SepSidInToken(Token, 0i64, dst, v8, Restricted, 0);
    if( a5 )
    {
      v7 &= v14;
      if( !v7 )
        goto LABEL_12;
    }
    else
    {
      v7 |= v14;
      if( v7 )
        goto LABEL_12;
    }
  }
  v12 = 0;
LABEL_12:
  if( v12 >= 0 )
    *(_BYTE *)a6 = v7;
  return(unsigned int)v12;
}

Referenced by:

AuthzBasepEvaluateAceCondition