I was able to reproduce this. Pressing the ESC key will end up destroying the hero in the brain logic. Later, in UpdateAndRenderWorld, if no heroes exist then PlayTitleScreen is called. PlayTitleSceen ends up freeing the memory_arena's data (via SetGameMode). At this point there is still a render_entry_lighting_transfer entry on the command queue, albeit with corrupted data. When OpenGLRenderCommands attempts to read that data the program crashes.