ViFaultsAddAllTags

NTSTATUS __stdcall ViFaultsAddAllTags(WCHAR *Tags, UINT64 BufferLength){
  int v2; 
  WCHAR *v3; 
  __int64 v4; 
  unsigned __int64 v5; 
  WCHAR *i; 
  unsigned __int64 v7; 

  v2 = 0;
  v3 = &Tags[(unsigned int)BufferLength];
  if( Tags < v3 )
  {
    v4 = 0x100002601i64;
    do
    {
      v5 = *Tags;
      if( (unsigned int)v5 <= 0x20 && _bittest64(&v4, v5) || (_WORD)v5 == 12288 )
      {
        i = Tags;
      }
      else
      {
        for( i = Tags; i < v3; ++i )
        {
          v7 = *i;
          if( (unsigned int)v7 <= 0x20 && _bittest64(&v4, v7) )
            break;
          if( (_WORD)v7 == 12288 )
            break;
        }
        v2 = ViFaultsAddTagNoDuplicates(Tags, i - Tags);
        if( v2 < 0 )
          return v2;
      }
      Tags = i + 1;
    }
    while( i + 1 < v3 );
  }
  return v2;
}

Referenced by:

VfFaultsSetParameters
ViFaultsInitializeTagsList