Well, maybe it's a mix of both. As sir Exophase said, the .exe file is generated once before runtime. That .exe file generated is linked to Cxbx's emu kernel (CxbxKrnl.dll or Cxbx.dll) and all of the hijacked DirectX APIs and Kernel APIs are used instead of the actual Xbox's. So most of the HLE emulation takes place in the .dll file, not the .exe as you might expect. When Cxbx converts the .xbe, basically what it does is removes/alters the .xbe headers to conform to standerd .exe (PE) and inserts some customized code so that it can be run on windows, nothing else is really changed.