ViTargetFreeContiguousMemory

VOID __stdcall ViTargetFreeContiguousMemory(PVOID CallerAddress, PVOID p){
  int v3; 
  UINT64 v4; 
  _VF_TARGET_DRIVER *v5; 
  __int64 v6; 
  __int128 v7; 
  v7 = 0i64;
  if( (unsigned int)ViTargetUpdateTreeAllowed() )
  {
    VfAvlInitializeLockContext((INT64)&v7, 0i64);
    v5 = (_VF_TARGET_DRIVER *)VfAvlLookupTreeNode(&ViTargetDriversAvl, (INT64)&v7, v4, (unsigned int)(v3 + 1));
    if( !v5 || !(unsigned int)ViTargetFreeContiguousMemoryFromNode(p, v5) )
      VfAvlEnumerateNodes(
        v6,
        (__int64)&v7,
        (unsigned int(__fastcall *)(PVOID, __int64))ViTargetFreeContiguousMemoryCallback,
        (__int64)p);
    VfAvlCleanupLockContext((INT64)&v7);
  }
}

Referenced by:

VerifierMmFreeContiguousMemory
VerifierMmFreeContiguousMemorySpecifyCache
VerifierMmFreeNonCachedMemory