ViTargetRemovingCheckEtwWmi
VOID __stdcall ViTargetRemovingCheckEtwWmi(_VF_TARGET_VERIFIED_DRIVER_DATA *VerifiedData, PVOID DriverStart){
UINT64 v2;
_QWORD **v5;
_QWORD *v6;
__int64 v7;
_QWORD *v8;
UINT64 v9;
v2 = *((_QWORD *)VerifiedData + 1);
if( v2 && (MmVerifierData & 0x800) != 0 )
VerifierBugCheckIfAppropriate(0xC4ui64, 0xDAui64, (UINT64)DriverStart, v2, 0i64, v9);
v5 = (_QWORD **)((char *)VerifiedData + 16);
v6 = *v5;
if( *v5 != v5 )
{
if( (MmVerifierData & 0x800) != 0 )
{
VerifierBugCheckIfAppropriate(0xC4ui64, 0xDDui64, v6[3], (UINT64)DriverStart, v6[2], v9);
v6 = *v5;
}
do
{
v7 = *v6;
if( *(_QWORD **)(*v6 + 8i64) != v6 || (v8 = (_QWORD *)v6[1], (_QWORD *)*v8 != v6) )
__fastfail(3u);
*v8 = v7;
*(_QWORD *)(v7 + 8) = v8;
ExFreePoolWithTag(v6, 0);
v6 = *v5;
}
while( *v5 != v5 );
}
}Referenced by:
VfTargetDriversRemove