ViTargetRemovingCheckEtwWmi

VOID __stdcall ViTargetRemovingCheckEtwWmi(_VF_TARGET_VERIFIED_DRIVER_DATA *VerifiedData, VOID *DriverStart){
  void *WMICallback; 
  ULONG_PTR v3; 
  _LIST_ENTRY *p_EtwHandlesListHead; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v7; 
  _LIST_ENTRY *Blink; 
  UINT64 v9; 

  WMICallback = VerifiedData->WMICallback;
  v3 = (unsigned int)DriverStart;
  if( WMICallback && (MmVerifierData & 0x800) != 0 )
    VerifierBugCheckIfAppropriate(0xC4ui64, 0xDAu, (ULONG_PTR)DriverStart, (ULONG_PTR)WMICallback, 0, v9);
  p_EtwHandlesListHead = &VerifiedData->EtwHandlesListHead;
  Flink = p_EtwHandlesListHead->Flink;
  if( p_EtwHandlesListHead->Flink != p_EtwHandlesListHead )
  {
    if( (MmVerifierData & 0x800) != 0 )
    {
      VerifierBugCheckIfAppropriate(0xC4ui64, 0xDDu, (ULONG_PTR)Flink[1].Blink, v3, (ULONG_PTR)Flink[1].Flink, v9);
      Flink = p_EtwHandlesListHead->Flink;
    }
    do
    {
      v7 = Flink->Flink;
      if( Flink->Flink->Blink != Flink || (Blink = Flink->Blink, Blink->Flink != Flink) )
        __fastfail(3u);
      Blink->Flink = v7;
      v7->Blink = Blink;
      ExFreePoolWithTag(Flink, 0);
      Flink = p_EtwHandlesListHead->Flink;
    }
    while( p_EtwHandlesListHead->Flink != p_EtwHandlesListHead );
  }
}

Referenced by:

VfTargetDriversRemove