VfAvlReserveNode

_VF_AVL_TREE_NODE *__stdcall VfAvlReserveNode(_VF_AVL_TREE *Tree, VOID *p, UINT64 RangeSize){
  union {unsigned int NodeSize;unsigned int UseLookaside;} v3; 
  char *PoolWithTag; 
  _VF_AVL_TREE_NODE *v8; 

  v3.NodeSize = (unsigned int)Tree->u1;
  if( v3.NodeSize == 1 )
    PoolWithTag = (char *)ExAllocateFromNPagedLookasideList(&ViAvlNodeLookaside);
  else
    PoolWithTag = (char *)ExAllocatePoolWithTag(0x200ui64, v3.NodeSize, 1413572182i64);
  if( !PoolWithTag )
    return 0i64;
  v8 = (_VF_AVL_TREE_NODE *)(PoolWithTag + 32);
  *((_QWORD *)PoolWithTag + 4) = p;
  if( !RangeSize )
    RangeSize = Tree->NodeRangeSize;
  *((_QWORD *)PoolWithTag + 5) = RangeSize;
  if( Tree->UseSessionId )
    ViAvlNodeInitializeSessionId(Tree, (_VF_AVL_TREE_NODE_EX *)(PoolWithTag + 32));
  return v8;
}

Referenced by:

VerifierExInitializeResourceLite
VerifierIoInitializeRemoveLockEx
VfTargetDriversAdd
ViDevObjAdd
ViLookasideAdd