VfDeadlockDeleteMemoryRange

VOID __stdcall VfDeadlockDeleteMemoryRange(VOID *Address, UINT64 Size){
  UINT8 *v4; 
  UINT8 *v5; 
  UINT64 v6; 
  __int64 v7; 
  UINT8 *v8; 

  if( (unsigned int)ViDeadlockCanProceed(0i64, (_VI_DEADLOCK_RESOURCE_TYPE)Size) )
  {
    v4 = (UINT8 *)Address + Size;
    v5 = (UINT8 *)Address;
    v6 = (((unsigned __int16)Address & 0xFFF) + Size + 4095) >> 12;
    if( (_DWORD)v6 )
    {
      v7 = (unsigned int)v6;
      do
      {
        v8 = v4;
        if( v5 + 4096 <= v4 )
          v8 = v5 + 4096;
        ViDeadlockRemoveMemoryRangeResources(v5, v8, (UINT8 *)Address, v4);
        ViDeadlockRemoveMemoryRangeThreads(v5, v8, (UINT8 *)Address, v4);
        v5 = v8;
        --v7;
      }
      while( v7 );
    }
  }
}

Referenced by:

VfDriverUnloadImage
VfFreeMemoryNotification
VfFreePoolNotification