Normalization__GetLastChar
NTSTATUS __stdcall Normalization__GetLastChar(
_RTL_NORMALIZATION *pNormalization,
WCHAR *pszString,
WCHAR **ppszLast,
INT64 *pcLastTest,
UINT8 *pbLastClass,
UINT8 *pbLastFlags,
WCHAR *a7,
UINT64 a8){
WCHAR *v8;
NTSTATUS v12;
__int64 v13;
UINT8 v14;
UINT8 v15;
char v16;
NTSTATUS result;
v8 = pszString - 1;
if( *ppszLast == v8 )
return *(_DWORD *)pcLastTest;
if( (unsigned __int16)(*v8 + 10240) <= 0x7FFu && *ppszLast == --v8 )
return *(_DWORD *)pcLastTest;
v12 = *v8;
if( (unsigned int)(v12 - 55296) <= 0x7FF )
v12 += (*(v8 - 1) - 55287) << 10;
v13 = *(unsigned __int8 *)(((__int64)v12 >> 7) + *((_QWORD *)pNormalization + 4));
v14 = 0;
if( (_BYTE)v13 )
{
v16 = *(_BYTE *)((v12 & 0x7F) + (v13 << 7) + *((_QWORD *)pNormalization + 5) - 128);
v14 = v16 & 0x3F;
v15 = v16 & 0xC0;
}
else
{
v15 = 0;
}
*pbLastFlags = v15;
*pbLastClass = v14;
result = v12;
*ppszLast = v8;
*(_DWORD *)pcLastTest = v12;
return result;
}Referenced by:
Normalization__IsNormalized