VfSuspectDriversAllocateEntry

_VF_SUSPECT_DRIVER_ENTRY *__stdcall VfSuspectDriversAllocateEntry(_UNICODE_STRING *ImageFileName){
  unsigned __int16 MaximumLength; 
  UINT16 v3; 
  VOID **PoolWithTag; 
  _VF_SUSPECT_DRIVER_ENTRY *v5; 
  UINT16 v7; 

  MaximumLength = ImageFileName->MaximumLength;
  v7 = MaximumLength + 2;
  if( RtlUShortAdd(MaximumLength, 2u, &v7) == -1073741675 )
    v3 = -1;
  else
    v3 = v7;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v3 + 40i64, 1146316374i64);
  v5 = (_VF_SUSPECT_DRIVER_ENTRY *)PoolWithTag;
  if( PoolWithTag )
  {
    *((_DWORD *)PoolWithTag + 4) = 0;
    *((_DWORD *)PoolWithTag + 5) = 0;
    PoolWithTag[4] = PoolWithTag + 5;
    *((_WORD *)PoolWithTag + 12) = ImageFileName->Length;
    *((_WORD *)PoolWithTag + 13) = v3;
    memset(PoolWithTag + 5, 0i64, v3);
    memmove(v5->BaseName.Buffer, ImageFileName->Buffer, ImageFileName->Length);
  }
  return v5;
}

Referenced by:

VfAddVerifierEntry
VfDriverEnableVerifierForAll
VfSuspectDriversLoadCallback
VfSuspectDriversParseRegistryString
VfTriageAddDrivers