RtlpFcAreSortedFeatureUpdatesValid

char __fastcall RtlpFcAreSortedFeatureUpdatesValid(_DWORD *a1, unsigned __int64 a2){
  unsigned __int64 v2; 
  _DWORD *v3; 
  unsigned int *v4; 
  unsigned int v5; 
  UINT64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  __int64 v12; 
  unsigned __int64 v13; 

  v2 = 1i64;
  if( a2 <= 1 )
  {
LABEL_6:
    if( !a2 )
      return 1;
    v4 = a1 + 1;
    while( 1 )
    {
      v5 = v4[6];
      if( (v5 & 4) != 0 && v5 != 4 )
        break;
      if( !RtlpIsValidFeatureConfigurationPriority(*v4)
        || RtlpIsImmutableFeatureConfigurationPriority(v6)
        || !RtlpIsValidFeatureEnabledState(*(unsigned int *)(v7 + 4))
        || !RtlpIsValidFeatureEnabledStateOptions(*(unsigned int *)(v8 + 8))
        || !RtlpIsValidFeatureVariant(*(unsigned __int8 *)(v9 + 12))
        || !RtlpIsValidFeatureVariantPayloadKind(*(unsigned int *)(v10 + 16)) )
      {
        break;
      }
      v4 = (unsigned int *)(v11 + 32);
      if( v12 + 1 >= v13 )
        return 1;
    }
  }
  else
  {
    v3 = a1;
    while( v3[8] != *v3 || v3[9] != v3[1] )
    {
      ++v2;
      v3 += 8;
      if( v2 >= a2 )
        goto LABEL_6;
    }
  }
  return 0;
}

Referenced by:

RtlpFcUpdateFeatureConfiguration