VfPoolDelayFreeIfPossible

void __fastcall VfPoolDelayFreeIfPossible(PSLIST_ENTRY ListEntry, unsigned int a2){
  __int64 *v2; 
  unsigned __int16 v3; 
  if( a2 > 1 || (v2 = &VfPoolDelayFreeData[8 * (__int64)(int)a2], ++*((_DWORD *)v2 + 13), !*((_DWORD *)v2 + 12)) )
  {
    ExFreePoolWithTag(ListEntry, 0);
    return;
  }
  v3 = *(_WORD *)v2;
  if( *(_WORD *)v2 >= 0x200u )
  {
    ++*((_DWORD *)v2 + 14);
    ExFreePoolWithTag(ListEntry, 0);
LABEL_7:
    KeSetEvent((PRKEVENT)(v2 + 2), 1);
    return;
  }
  RtlpInterlockedPushEntrySList((PSLIST_HEADER)v2, ListEntry);
  if( v3 >= 0x40u )
    goto LABEL_7;
}

Referenced by:

VfUtilFreePoolCheckIRQL
VfUtilFreePoolDispatchLevel