I wonder what is it about overlapping instructions that seems to confound even well-established (and expensive!) disassemblers like IDA Pro, since it&#x27;s basically a solved problem; a <i>long</i> time ago, I wrote a disassembler that would just attempt to disassemble all the paths, and if instructions overlapped then it presented the alternate &quot;streams&quot; side-by-side until they merged together again. The first example would come out looking like this:<p><pre><code>    40100E  jz 401011
    401010  call 8B4C55A0      | 401011  mov eax, [ebp+0C]
                               | 401014  mov ecx, [eax+4]
    401015  dec eax
    401016  add al, 0F         | 401017  movsx edx, byte ptr [ecx]
    401018  mov esi, 70FA8311  | 40101A
    40101C
</code></pre>
This was in the early PC&#x2F;XT days, so it handled 8088 and .COM files only, and only needed ~128KB of RAM to run (I remember it also swapped to disk(ette) when needed.) I probably still have the source (in Asm, naturally) and binary somewhere amongst all my 5.25&quot; floppies...