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