Disassembled code from a C or C++ compiler is generally better structured than hand written assembly.
I reverse engineered major parts of Westwood’s Blade Runner for ScummVM. It was compiled with the Borland C++ compiler in 1997 and a lot of it was relatively easy to decompile. The most difficult parts were video decoding and character rendering. The video decoder was older Westwood code, clearly hand optimized, and the character renderer was also very optimized.
Currently I’m working on Cryo’s Dune which is all hand-written assembly code. The code jumps all over the place, parameters are passed in arbitrary registers and have to be traced over several calls. I’ve seen a function that, instead of using ret to return, jumped to the ret-instruction of a different function.
Code generated by an older compiler that doesn’t do too
much optimization is vastly preferable.