VfFilterAttach

void __fastcall VfFilterAttach(PDEVICE_OBJECT TargetDevice, int a2, WCHAR a3){
  HANDLE v5; 
  LPGUID v6; 
  PDRIVER_OBJECT v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  UNICODE_STRING *v11; 
  PDEVICE_OBJECT v12; 
  __int64 v13; 
  PDEVICE_OBJECT v14; 
  struct _OBJECT_ATTRIBUTES *DeviceCharacteristics; 
  struct _UNICODE_STRING DestinationString; 
  PDEVICE_OBJECT SourceDevice; 
  DestinationString = 0i64;
  SourceDevice = 0i64;
  if( !VfFilterCreated )
  {
    RtlInitUnicodeString(&DestinationString, L"\\DRIVER\\VERIFIER_FILTER", a3);
    IoCreateDriver((PHANDLE)&DestinationString, (ACCESS_MASK)ViFilterDriverEntry, v5, v6, DeviceCharacteristics);
    VfFilterCreated = 1;
  }
  v7 = VfFilterDriverObject;
  if( VfFilterDriverObject && a2 >= 2 && (a2 <= 3 || (unsigned int)(a2 - 5) <= 1) )
  {
    IoGetAttachedDevice(TargetDevice);
    v9 = v8;
    if( *(PDRIVER_OBJECT *)(v8 + 8) != v7 )
    {
      if( !(unsigned __int8)HviIsAnyHypervisorPresent()
        || (v10 = *(_QWORD *)(*(_QWORD *)(v9 + 8) + 40i64)) == 0
        || (v11 = (UNICODE_STRING *)(v10 + 88), !RtlEqualUnicodeString((UNICODE_STRING *)&VfVidName, v11, 1u))
        && !RtlEqualUnicodeString((UNICODE_STRING *)&VfSynth3DvscName, v11, 1u)
        && !RtlEqualUnicodeString((UNICODE_STRING *)&VfSynth3DvspName, v11, 1u) )
      {
        LODWORD(DeviceCharacteristics) = 256;
        if( IoCreateDevice(
               VfFilterDriverObject,
               0x68ui64,
               0i64,
               0x22ui64,
               (UINT64)DeviceCharacteristics,
               0,
               &SourceDevice) >= 0 )
        {
          v12 = SourceDevice;
          v13 = *((_QWORD *)SourceDevice + 8);
          IoInitializeRemoveLockEx(v13 + 32, 0x4C526656u, 0, 0);
          *(_QWORD *)(v13 + 88) = 0i64;
          v14 = IoAttachDeviceToDeviceStack(v12, TargetDevice);
          *(_QWORD *)(v13 + 8) = v14;
          if( v14 )
          {
            *((_DWORD *)v12 + 12) |= *((_DWORD *)v14 + 12) & 0x86014;
            *((_DWORD *)v12 + 18) = *(_DWORD *)(*(_QWORD *)(v13 + 8) + 72i64);
            *((_DWORD *)v12 + 13) = *(_DWORD *)(*(_QWORD *)(v13 + 8) + 52i64);
            *((_DWORD *)v12 + 12) &= ~0x80u;
            *(_QWORD *)(v13 + 16) = v12;
            *(_QWORD *)v13 = TargetDevice;
            _InterlockedOr((volatile signed __int32 *)(v13 + 100), 1u);
          }
          else
          {
            IoDeleteDevice(v12);
          }
        }
      }
    }
  }
}

Referenced by:

VfDevObjPostAddDevice
VfDevObjPreAddDevice