BgpFoGetStringAdvanceWidth

INT64 __fastcall BgpFoGetStringAdvanceWidth(INT64 a1, INT64 a2, _DWORD *a3, INT64 a4){
  __int16 v6; 
  __int64 v8; 
  unsigned __int16 v9; 
  int GlyphAdvanceWidth; 
  int v12; 
  int v13; 
  v13 = HIDWORD(a4);
  v12 = 0;
  v6 = *(_WORD *)a2 & 0xFFFE;
  *a3 = 0;
  v8 = 0i64;
  v9 = 0;
  if( v6 )
  {
    do
    {
      GlyphAdvanceWidth = BgpRasGetGlyphAdvanceWidth(
                            a1,
                            *(_WORD *)(*(_QWORD *)(a2 + 8) + 2i64 * v9),
                            &v12,
                            v8,
                            (__int128 *)&BcpWorkspace);
      v8 = (unsigned int)GlyphAdvanceWidth;
      if( GlyphAdvanceWidth < 0 )
        break;
      ++v9;
      *a3 += v12;
    }
    while( v9 < (unsigned __int16)(*(_WORD *)a2 >> 1) );
  }
  return(unsigned int)v8;
}

Referenced by:

BcpDisplayCriticalString