BgpFoDestroy
void **__fastcall BgpFoDestroy(__int64 a1){
void **result;
__int64 *v3;
_QWORD **v4;
_QWORD *v5;
_QWORD *v6;
__int64 v7;
__int64 **v8;
__int64 *v9;
void *retaddr;
result = &retaddr;
if( FontLibraryInitialized )
{
v3 = (__int64 *)FopFontFileListHead;
while( v3 != &FopFontFileListHead )
{
if( a1 && v3[2] != a1 )
{
v3 = (__int64 *)*v3;
}
else
{
v4 = (_QWORD **)(v3 + 5);
while( 1 )
{
v5 = *v4;
if( *v4 == v4 )
break;
if( (_QWORD **)v5[1] != v4 )
goto LABEL_16;
v6 = (_QWORD *)*v5;
if( *(_QWORD **)(*v5 + 8i64) != v5 )
goto LABEL_16;
*v4 = v6;
v6[1] = v4;
FopFreeFontData(v5);
}
v7 = *v3;
if( *(__int64 **)(*v3 + 8) != v3 || (v8 = (__int64 **)v3[1], *v8 != v3) )
LABEL_16:
__fastfail(3u);
*v8 = (__int64 *)v7;
v9 = v3;
*(_QWORD *)(v7 + 8) = v8;
v3 = (__int64 *)*v3;
result = (void **)BgpFwFreeMemory(v9);
}
}
}
return result;
}Referenced by:
BgpFwLibraryDestroy
BgpFwLibraryDisable