That is what I was figuring I get a .5 or under exe so that helps a bunch with modern processors with multi-megabyte on die l3's.
i'm not sure how much of it was visual C++'s debugger or what but on Windows with winsock it gets very confused with struct socket stuff with a clash from winsock2.h and the slirp stuff. I also put some minor protection around some stuff I kept seeing come back with NULL addresses.
From slirp_input to inputting packets into basilisk's ethernet I shoved them into a queue as I noticed I was receiving more packets than I was processing them when I was hammering the interface. I'm getting 80kb/sec as a max, the same level I managed to get with this code with Shoebill.