RaspMapCharacterCodeToGlyphIndex
NTSTATUS __stdcall RaspMapCharacterCodeToGlyphIndex(_MAPPING_TABLE *MappingTable, WCHAR Character, UINT16 *GlyphIndex){
NTSTATUS v3;
unsigned int v5;
unsigned int i;
__int64 v8;
unsigned int v9;
__int16 v10;
__int64 v12;
v3 = 0;
v5 = *MappingTable;
for( i = 0; i < v5; ++i )
{
if( *(_WORD *)(*((_QWORD *)MappingTable + 2) + 2i64 * i) <= Character
&& Character <= *(_WORD *)(*((_QWORD *)MappingTable + 3) + 2i64 * i) )
{
break;
}
}
if( i == v5 )
return -1073741823;
v8 = *((_QWORD *)MappingTable + 5);
v9 = *(unsigned __int16 *)(v8 + 2i64 * i);
if( (_WORD)v9 )
{
v12 = Character + i + (v9 >> 1) - *(unsigned __int16 *)(*((_QWORD *)MappingTable + 2) + 2i64 * i);
Character = *(_WORD *)(*((_QWORD *)MappingTable + 4) + 2i64 * i);
v10 = *(_WORD *)(v8 + 2 * v12);
}
else
{
v10 = *(_WORD *)(*((_QWORD *)MappingTable + 4) + 2i64 * i);
}
*GlyphIndex = Character + v10;
return v3;
}Referenced by:
RaspGetUnscaledGlyphData