VfPoolDelayFreeIfPossible

VOID __stdcall VfPoolDelayFreeIfPossible(VOID *p, VF_POOL_DELAY_FREE_TYPE FreeType){
  char *v2; 
  unsigned __int16 v3; 

  if( (unsigned int)FreeType > VfPoolDelayFreeBelowDispatchLevel
    || (v2 = (char *)&unk_140CEC840 + 64 * (__int64)(int)FreeType, ++*((_DWORD *)v2 + 13), !*((_DWORD *)v2 + 12)) )
  {
    ExFreePoolWithTag(p, 0);
    return;
  }
  v3 = *(_WORD *)v2;
  if( *(_WORD *)v2 >= 0x200u )
  {
    ++*((_DWORD *)v2 + 14);
    ExFreePoolWithTag(p, 0);
LABEL_7:
    KeSetEvent((PRKEVENT)(v2 + 16), 1, 0);
    return;
  }
  RtlpInterlockedPushEntrySList((PSLIST_HEADER)v2, (PSLIST_ENTRY)p);
  if( v3 >= 0x40u )
    goto LABEL_7;
}

Referenced by:

VfUtilFreePoolCheckIRQL
VfUtilFreePoolDispatchLevel