NormBuffer__SortBeforeSameClass
VOID __stdcall NormBuffer__SortBeforeSameClass(_RTL_NORM_BUFFER *pNormBuffer, UINT8 bTestClass){
__int64 v2;
__int64 v4;
__int64 v5;
INT64 CurrentOutputChar;
__int64 v7;
__int64 v8;
__int64 v9;
_RTL_NORMALIZATION *v10;
INT64 v11;
INT64 v12;
_RTL_NORMALIZATION *v13;
WCHAR **v14;
__int64 v15;
__int64 v16;
__int64 v17;
__int64 v18;
v2 = *((_QWORD *)pNormBuffer + 5);
v4 = *((_QWORD *)pNormBuffer + 10);
*((_QWORD *)pNormBuffer + 13) = v2;
if( v2 != v4 )
{
v17 = v2 - 2;
v5 = -4i64;
CurrentOutputChar = (unsigned int)NormBuffer__GetCurrentOutputChar((WCHAR **)pNormBuffer);
if( *(int *)(v7 + 88) <= 0xFFFF )
v5 = -2i64;
v9 = v8 + v5;
if( v17 != v9 )
{
v10 = *(_RTL_NORMALIZATION **)(v7 + 112);
do
{
LOBYTE(v11) = Normalization__PageLookup(v10, CurrentOutputChar);
if( (unsigned __int8)(Normalization__TableLookup(v13, v12, v11) & 0x3F) < bTestClass )
break;
*(_QWORD *)(v15 + 104) = v16;
v18 = v16 - 2;
CurrentOutputChar = (unsigned int)NormBuffer__GetCurrentOutputChar(v14);
}
while( v18 != v9 );
}
}
}Referenced by:
NormBuffer__AppendAndSortDecomposed