NormBuffer__ReplaceLastStartBase
UINT8 __stdcall NormBuffer__ReplaceLastStartBase(
_RTL_NORM_BUFFER *pNormBuffer,
INT64 cNewStart,
UINT8 bClass,
UINT8 bFlags){
unsigned int v4;
__int64 v6;
_RTL_NORMALIZATION *v7;
UINT8 result;
INT64 pcThird;
INT64 pcSecond;
v4 = pNormBuffer[22];
v6 = *((_QWORD *)pNormBuffer + 10);
pNormBuffer[25] = 0;
pNormBuffer[24] = 0;
LODWORD(pcSecond) = 0;
LODWORD(pcThird) = 0;
pNormBuffer[22] = cNewStart;
*((_BYTE *)pNormBuffer + 92) = bClass;
*((_BYTE *)pNormBuffer + 93) = bFlags;
v7 = (_RTL_NORMALIZATION *)*((_QWORD *)pNormBuffer + 14);
*(_WORD *)(v6 - 2) = cNewStart;
Normalization__GetSecondAndThirdDecomposedCharPlane0(v7, v4, &pcSecond, &pcThird);
if( !(_DWORD)pcThird || (result = NormBuffer__AppendAndSortDecomposed(pNormBuffer, (unsigned int)pcThird)) != 0 )
{
if( (_DWORD)pcSecond )
return NormBuffer__AppendAndSortDecomposed(pNormBuffer, (unsigned int)pcSecond);
else
return 1;
}
return result;
}Referenced by:
Normalization__NormalizeCharacter