Normalization__AppendDecomposedChar
INT64 __fastcall Normalization__AppendDecomposedChar(__int64 a1, int a2, __int64 a3){
__int16 v3;
unsigned __int16 v6;
__int64 v7;
unsigned __int16 i;
__int16 v9;
int v10;
unsigned __int16 v11;
__int64 v12;
int v13;
INT64 v14;
INT64 result;
v3 = a2;
v6 = *(_WORD *)(*(_QWORD *)(a1 + 64) + 2i64 * (a2 % *(_DWORD *)(a1 + 56)));
if( (v6 & 0xE000) == 0 )
{
v7 = *(_QWORD *)(a1 + 72);
for( i = 2 * v6; ; i += 2 )
{
v9 = *(_WORD *)(v7 + 2i64 * i);
if( !v9 || v9 == v3 )
break;
}
v6 = *(_WORD *)(v7 + 2i64 * i + 2);
}
v10 = v6 >> 13;
if( v10 == 7 )
v10 = 100;
v11 = v6 & 0x1FFF;
if( v10 )
{
do
{
v12 = *(_QWORD *)(a1 + 80);
v13 = *(unsigned __int16 *)(v12 + 2i64 * v11);
if( !(_WORD)v13 )
break;
v14 = *(unsigned __int16 *)(v12 + 2i64 * v11);
if( (unsigned int)(v13 - 55296) <= 0x7FF )
{
++v11;
--v10;
v14 = ((v13 - 55287) << 10) + (unsigned int)*(unsigned __int16 *)(v12 + 2i64 * v11);
}
result = Normalization__NormalizeCharacter(
a1,
v14,
*(_BYTE *)(((__int64)(int)v14 >> 7) + *(_QWORD *)(a1 + 32)),
a3);
if( (_DWORD)result )
return result;
--v10;
++v11;
}
while( v10 > 0 );
}
return 0i64;
}Referenced by:
Normalization__NormalizeCharacter