NormBuffer__Insert

char __fastcall NormBuffer__Insert(_QWORD *a1, int a2, __int16 *a3){
  __int16 *v3; 
  __int16 *v6; 
  int v7; 
  char v8; 
  __int16 v10; 
  v3 = (__int16 *)a1[5];
  v6 = (__int16 *)a1[8];
  if( a2 < 0x10000 )
  {
    if( (unsigned __int64)v3 < a1[4] )
    {
      while( a3 != v3 )
      {
        v10 = *a3;
        *a3 = a2;
        LOWORD(a2) = v10;
        ++a3;
      }
      *v3 = a2;
      a1[5] = v3 + 1;
      if( v6 == v3 - 1 )
        a1[8] = v3;
      return 1;
    }
    else
    {
      return 0;
    }
  }
  else
  {
    v7 = (a2 - 0x10000) / 1024;
    v8 = 0;
    if( NormBuffer__Insert(a1, (unsigned __int16)((a2 - 0x10000) % 1024 - 9216), a3) )
    {
      if( NormBuffer__Insert(a1, (unsigned __int16)(v7 - 10240), a3) )
        return 1;
    }
    return v8;
  }
}

Referenced by:

NormBuffer__AppendAndSortDecomposed
NormBuffer__Insert
Normalization__NormalizeCharacter