NormBuffer__IsBlocked

BOOL __fastcall NormBuffer__IsBlocked(_RTL_NORM_BUFFER *pNormBuffer, UINT64 bTestClass){
  WCHAR **v2; 
  unsigned __int8 v4; 
  WCHAR **v5; 
  _RTL_NORMALIZATION *v6; 
  unsigned int CurrentOutputChar; 
  INT64 v8; 
  INT64 v9; 
  _RTL_NORMALIZATION *v10; 
  unsigned __int8 v11; 
  __int64 v12; 
  char *v13; 
  char *v15; 

  v2 = (WCHAR **)*((_QWORD *)pNormBuffer + 5);
  *((_QWORD *)pNormBuffer + 13) = v2;
  v4 = bTestClass;
  v5 = (WCHAR **)*((_QWORD *)pNormBuffer + 10);
  if( v2 == v5 )
    return 0;
  v15 = (char *)v2 - 2;
  if( (char *)v2 - 2 == (char *)v5 - 2 )
    return 0;
  v6 = (_RTL_NORMALIZATION *)*((_QWORD *)pNormBuffer + 14);
  while( 1 )
  {
    CurrentOutputChar = NormBuffer__GetCurrentOutputChar(v5);
    LOBYTE(v8) = Normalization__PageLookup(v6, CurrentOutputChar);
    v11 = Normalization__TableLookup(v10, v9, v8) & 0x3F;
    if( v11 <= v4 )
      break;
    *(_QWORD *)(v12 + 104) = v15;
    v15 -= 2;
    if( v15 == v13 )
      return 0;
  }
  return v11 == v4;
}

Referenced by:

Normalization__NormalizeCharacter