`outofmem` has a ton of logic in it, does `xmalloc` somehow take care of that?