RaspGetCacheEntry
VOID __stdcall RaspGetCacheEntry(
_BITMAP_CACHE *Cache,
WCHAR Character,
UINT64 PointSize,
UINT64 FontIndex,
VOID *FontHandle,
_CACHED_BITMAP **Match){
__int64 *v6;
_CACHED_BITMAP *v7;
__int64 *v8;
__int64 **v9;
__int64 *v10;
v6 = *(__int64 **)Cache;
v7 = 0i64;
if( *(_BITMAP_CACHE **)Cache != Cache )
{
while( *((_WORD *)v6 + 30) != Character
|| *(__int64 *)((char *)v6 + 36) != __PAIR64__(PointSize, FontIndex)
|| (VOID *)v6[3] != FontHandle )
{
v6 = (__int64 *)*v6;
if( v6 == (__int64 *)Cache )
goto LABEL_11;
}
v8 = (__int64 *)*v6;
v7 = (_CACHED_BITMAP *)v6;
if( *(__int64 **)(*v6 + 8) != v6
|| (v9 = (__int64 **)v6[1], *v9 != v6)
|| (*v9 = v8, v8[1] = (__int64)v9, v10 = *(__int64 **)Cache, *(_BITMAP_CACHE **)(*(_QWORD *)Cache + 8i64) != Cache) )
{
__fastfail(3u);
}
*v6 = (__int64)v10;
v6[1] = (__int64)Cache;
v10[1] = (__int64)v6;
*(_QWORD *)Cache = v6;
}
LABEL_11:
*Match = v7;
}Referenced by:
BgpRasPrintGlyph
RaspGetXExtent