ViTargetWMIDeregister

VOID __fastcall ViTargetWMIDeregister(_DEVICE_OBJECT *DeviceObject, VOID *CallerAddress){
  int v3; 
  UINT64 v4; 
  CHAR *v5; 
  __int64 v6; 
  __int64 v7; 
  __int128 v8; 
  v8 = 0i64;
  VfAvlInitializeLockContext((INT64)&v8, 0i64);
  v5 = VfAvlLookupTreeNode(&ViTargetDriversAvl, (INT64)&v8, v4, (unsigned int)(v3 + 1));
  if( v5 && (v7 = *((_QWORD *)v5 + 7)) != 0 && *(_DEVICE_OBJECT **)(v7 + 8) == DeviceObject )
  {
    *(_QWORD *)(v7 + 8) = 0i64;
  }
  else
  {
    ++ViTargetWMIRegistrationMismatches;
    VfAvlEnumerateNodes(
      v6,
      (__int64)&v8,
      (unsigned int(__fastcall *)(PVOID, __int64))ViTargetWMIDeregisterCallback,
      (__int64)DeviceObject);
  }
  VfAvlCleanupLockContext((INT64)&v8);
}

Referenced by:

VerifierIoWMIRegistrationControl