ViThunkFindAllSpecialTables
_QWORD *__fastcall ViThunkFindAllSpecialTables(__int64 a1, UINT64 a2){
unsigned int v2;
VOID ***NextSpecialTable;
_QWORD *PoolWithTag;
_QWORD *v6;
__int64 v7;
v2 = a2;
NextSpecialTable = (VOID ***)ViThunkFindNextSpecialTable(a1, a2, 0i64);
if( !NextSpecialTable )
return 0i64;
PoolWithTag = ExAllocatePoolWithTag(
PagedPool,
8i64 * (unsigned int)(ViVerifierSpecialThunkTables + 1),
0x74566D4Dui64);
v6 = PoolWithTag;
if( !PoolWithTag )
return 0i64;
memset((INT64)PoolWithTag, 0i64);
v7 = 0i64;
do
{
v6[v7] = NextSpecialTable;
v7 = (unsigned int)(v7 + 1);
NextSpecialTable = (VOID ***)ViThunkFindNextSpecialTable(a1, v2, *NextSpecialTable);
}
while( NextSpecialTable );
return v6;
}Referenced by:
VfThunkApplyDriverAddedThunks
ViThunkReplaceAllThunkedImports