AuthzBasepFreeSecurityAttributesList

void __fastcall AuthzBasepFreeSecurityAttributesList(_DWORD *a1){
  _DWORD **v2; 
  _DWORD *v3; 
  __int64 v4; 
  _QWORD *v5; 
  void **v6; 
  _DWORD *v7; 
  int v8; 
  _QWORD *v9; 
  void **v10; 
  _DWORD *v11; 
  _DWORD **v12; 
  void **v13; 
  int v14; 
  INT64 *v15; 
  v2 = (_DWORD **)(a1 + 2);
  while( 1 )
  {
    v3 = *v2;
    if( *v2 == (_DWORD *)v2 )
      break;
    if( (v3[14] & 1) != 0 )
    {
      v4 = *(_QWORD *)v3;
      if( *(_DWORD **)(*(_QWORD *)v3 + 8i64) != v3 || (v5 = (_QWORD *)*((_QWORD *)v3 + 1), (_DWORD *)*v5 != v3) )
LABEL_19:
        __fastfail(3u);
      *v5 = v4;
      *(_QWORD *)(v4 + 8) = v5;
      v3[14] &= ~1u;
      if( a1 )
        --*a1;
    }
    v6 = (void **)(v3 + 18);
    while( 1 )
    {
      v7 = *v6;
      if( *v6 == v6 )
        break;
      v8 = v7[8];
      if( (v8 & 2) != 0 )
      {
        v12 = (_DWORD **)*((_QWORD *)v7 + 2);
        if( v12[1] != v7 + 4 )
          goto LABEL_19;
        v13 = (void **)*((_QWORD *)v7 + 3);
        if( *v13 != v7 + 4 )
          goto LABEL_19;
        *v13 = v12;
        v12[1] = v13;
        v7[8] &= ~2u;
        --v3[22];
        v8 = v7[8];
      }
      if( (v8 & 1) != 0 )
      {
        v9 = *(_QWORD **)v7;
        if( *(_DWORD **)(*(_QWORD *)v7 + 8i64) != v7 )
          goto LABEL_19;
        v10 = (void **)*((_QWORD *)v7 + 1);
        if( *v10 != v7 )
          goto LABEL_19;
        *v10 = v9;
        v9[1] = v10;
        v7[8] &= ~1u;
        --v3[15];
        if( (v7[8] & 4) != 0 )
          --v3[16];
      }
      ExFreePoolWithTag(v7, 0);
    }
    v11 = (_DWORD *)*((_QWORD *)v3 + 12);
    while( v11 != v3 + 24 )
    {
      v14 = v11[4];
      v15 = (INT64 *)(v11 - 4);
      v11 = *(_DWORD **)v11;
      if( (v14 & 1) == 0 )
      {
        AuthzBasepRemoveSecurityAttributeValueFromLists(v3, v15, 0);
        ExFreePoolWithTag(v15, 0);
      }
    }
    ExFreePoolWithTag(v3, 0);
  }
}

Referenced by:

AuthzBasepEvaluateAceCondition
AuthzBasepInitializeResourceClaimsFromSacl
AuthzBasepInitializeSystemSecurityAttributes
AuthzBasepSetSecurityAttributesToken
SeAccessCheckWithHintWithAdminlessChecks
SeExamineSacl
SepCleanupMarkedForDeletionEntries
SepCreateClaimAttributes
SepDeleteClaimAttributes
SepDuplicateClaimAttributes
SepExamineSaclEx
SepFreeResourceInfo
SepInternalQuerySecurityAttributesTokenEx
SepTokenDeleteMethod
SepVerifyDesktopAppxPackageName