RaspScaleCoordinates
NTSTATUS __stdcall RaspScaleCoordinates(_TEXT_ATTRIBUTES *TextAttributes, _GLYPH_DATA *GlyphData){
__int64 v2;
unsigned __int16 v4;
__int64 v5;
unsigned __int64 v6;
__int64 v7;
__int64 v8;
__int64 v9;
__int64 v10;
v2 = *((_QWORD *)TextAttributes + 1);
v4 = 0;
v5 = *(unsigned __int16 *)(v2 + 120);
if( !(_WORD)v5 )
return -1073741823;
v6 = ((unsigned int)TextAttributes[4] * (unsigned __int64)*(unsigned int *)(v2 + 96)) << 6;
v7 = 72 * v5;
*(_GLYPH_DATA *)((char *)GlyphData + 2) = (__int64)(v6 * *((__int16 *)GlyphData + 1)) / (72 * v5);
*(_GLYPH_DATA *)((char *)GlyphData + 6) = (__int64)(v6 * *((__int16 *)GlyphData + 3)) / (72 * v5);
*(_GLYPH_DATA *)((char *)GlyphData + 10) = (__int64)(v6 * *((__int16 *)GlyphData + 5)) / (72 * v5);
*(_GLYPH_DATA *)((char *)GlyphData + 14) = (__int64)(v6 * *((__int16 *)GlyphData + 7)) / (72 * v5);
*(_GLYPH_DATA *)((char *)GlyphData + 18) = (__int64)(v6 * *((__int16 *)GlyphData + 9)) / (72 * v5);
while( v4 < *((_WORD *)GlyphData + 12) )
{
v8 = v4;
*(_DWORD *)(*(_QWORD *)((char *)GlyphData + 50) + 4i64 * v4) = (__int64)(v6
* *(__int16 *)(*(_QWORD *)((char *)GlyphData + 50)
+ 4i64 * v4))
/ v7;
v9 = *(_QWORD *)((char *)GlyphData + 58);
v10 = (__int64)(v6 * *(__int16 *)(v9 + 4i64 * v4++)) / v7;
*(_DWORD *)(v9 + 4 * v8) = v10;
}
return 0;
}Referenced by:
RaspRasterize