RaspLoadCompositeGlyphData
INT64 __fastcall RaspLoadCompositeGlyphData(
INT64 rcx0,
INT64 a2,
INT64 a3,
INT64 *a4,
INT64 Workspace,
INT64 a6,
INT64 a7,
INT64 a8,
INT64 a9,
INT64 NumberOfInstructions,
INT64 a11,
INT64 a12,
INT64 a13,
INT64 a14){
unsigned int v16;
int v18;
unsigned int v19;
INT64 v20;
unsigned int v21;
INT64 result;
_QWORD *v23;
int v24;
INT64 v25;
__int64 v26;
INT64 v27;
INT64 *InstructionOffset;
__int16 v29[2];
UINT16 v30;
INT64 GlyphTableSize;
INT64 GlyphData;
INT64 v33;
__int16 v34;
INT64 a1[2];
INT64 v36;
v33 = 0i64;
v34 = 0;
LODWORD(GlyphTableSize) = 0;
LOWORD(v36) = 0;
v16 = a2;
v29[0] = 0;
v30 = 0;
GlyphData = 0i64;
*(_OWORD *)a1 = 0i64;
if( !rcx0 )
return 3221225473i64;
v18 = *(_DWORD *)(rcx0 + 60);
if( !v18 )
return 3221225473i64;
v19 = v18 + a2;
v20 = *(_QWORD *)(*(_QWORD *)(rcx0 + 16) + 16i64);
FioFwReadUshortAtOffset(v20, (unsigned int)(v18 + a2), &v33);
FioFwReadUshortAtOffset(v20, v19 + 2, (_WORD *)&v33 + 1);
v19 += 4;
FioFwReadUshortAtOffset(v20, v19, (_WORD *)&v33 + 2);
FioFwReadUshortAtOffset(v20, v19 + 2, (_WORD *)&v33 + 3);
v21 = v19 + 4;
FioFwReadUshortAtOffset(v20, v21, &v34);
if( (v33 & 0x8000u) == 0i64 )
return 3221225485i64;
v23 = (_QWORD *)Workspace;
InstructionOffset = a1;
result = RaspGetCompositeGlyphList(rcx0, v16, &v30, v29, (INT64)&v36, (INT64)&GlyphTableSize);
if( (int)result >= 0 )
{
LODWORD(InstructionOffset) = v21 + GlyphTableSize + 2;
v24 = RaspInitializeCompositeGlyphData(
v20,
(INT64)a1,
(INT64)&v33,
v30,
v29[0],
v36,
(INT64)InstructionOffset,
a3,
(INT64)&GlyphData,
(INT64)v23);
if( v24 >= 0 )
{
v27 = GlyphData;
}
else
{
while( 1 )
{
v25 = a1[0];
if( (INT64 *)a1[0] == a1 )
break;
if( *(INT64 **)(a1[0] + 8) != a1 || (v26 = *(_QWORD *)a1[0], *(_QWORD *)(*(_QWORD *)a1[0] + 8i64) != a1[0]) )
__fastfail(3u);
a1[0] = *(_QWORD *)a1[0];
*(_QWORD *)(v26 + 8) = a1;
RaspFreeMemory(*(_QWORD *)(v25 + 16), v23);
RaspFreeMemory(v25, v23);
}
v27 = GlyphData;
if( GlyphData )
{
RaspFreeMemory(GlyphData, v23);
v27 = 0i64;
}
}
*a4 = v27;
return(unsigned int)v24;
}
return result;
}Referenced by:
No references.