Normalization__GetLastChar
__int64 __fastcall Normalization__GetLastChar(
__int64 a1,
__int64 a2,
_QWORD *a3,
unsigned int *a4,
_BYTE *a5,
_BYTE *a6){
_WORD *v6;
unsigned int v10;
__int64 v11;
char v12;
char v13;
char v14;
__int64 result;
v6 = (_WORD *)(a2 - 2);
if( (_WORD *)*a3 == v6 )
return *a4;
if( (unsigned __int16)(*v6 + 10240) <= 0x7FFu && (_WORD *)*a3 == --v6 )
return *a4;
v10 = (unsigned __int16)*v6;
if( v10 - 55296 <= 0x7FF )
v10 += ((unsigned __int16)*(v6 - 1) - 55287) << 10;
v11 = *(unsigned __int8 *)(((__int64)(int)v10 >> 7) + *(_QWORD *)(a1 + 32));
v12 = 0;
if( (_BYTE)v11 )
{
v14 = *(_BYTE *)((v10 & 0x7F) + (v11 << 7) + *(_QWORD *)(a1 + 40) - 128);
v12 = v14 & 0x3F;
v13 = v14 & 0xC0;
}
else
{
v13 = 0;
}
*a6 = v13;
*a5 = v12;
result = v10;
*a3 = v6;
*a4 = v10;
return result;
}Referenced by:
Normalization__IsNormalized