How to write working code for USB bulk OUT endpoint?

I’ve been struggling with making arduino micro (32u4) a usb bulk OUT endpoint. There seems to be no reference online regarding how this can be done in the arduino ecosystem. 32u4 should support it but even atmel’s doc is very sketchy. Very surprised that they didn’t name any usb register, just acronyms. I’m used to the full register name - acronym that atmel data sheets give, easy to remember the acronyms.

In arduino core code, the USB_COM_vect interrupt is hogged by endpoint 0 alone. Any packet that was not a setup packet for EP0 is ignored. I wonder how they did their CDC bulk OUT. It turned out that I guess if you don’t read it you lose it., beyond the double bank hardware buffer inside the USB controller. I thought with hardware serial, an interrupt routine moves the RX bytes into a memory buffer so virtual serial should do the same. I can’t seem to find where they would buffer them. Any direction is appreciated.