NormBuffer__IsBlocked

VOID __fastcall NormBuffer__IsBlocked(INT64 a1){
  unsigned __int8 v1; 
  WCHAR **v2; 
  unsigned __int8 v4; 
  WCHAR **v5; 
  INT64 v6; 
  unsigned int CurrentOutputChar; 
  CHAR v8; 
  CHAR v9; 
  INT64 v10; 
  __int64 v11; 
  char *v12; 
  char *v13; 
  v2 = *(WCHAR ***)(a1 + 40);
  *(_QWORD *)(a1 + 104) = v2;
  v4 = v1;
  v5 = *(WCHAR ***)(a1 + 80);
  if( v2 != v5 )
  {
    v13 = (char *)v2 - 2;
    if( (char *)v2 - 2 != (char *)v5 - 2 )
    {
      v6 = *(_QWORD *)(a1 + 112);
      do
      {
        CurrentOutputChar = NormBuffer__GetCurrentOutputChar(v5);
        v8 = Normalization__PageLookup(v6, CurrentOutputChar);
        if( (unsigned __int8)(Normalization__TableLookup(v10, v9, v8) & 0x3F) <= v4 )
          break;
        *(_QWORD *)(v11 + 104) = v13;
        v13 -= 2;
      }
      while( v13 != v12 );
    }
  }
}

Referenced by:

Normalization__NormalizeCharacter