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