Registers are visible; variables, procedures and parameters are not declared.
Control flow is limited to if (...) gotolabel;
Actual parameters are recovered well.

Note: I tried to reproduce these results with the original 80286 binaries, and get much worse results. Presumably, David compiled the test program with a different compiler. It's impressive that Desquirr can handle 80286 code at all, though perhaps IDA is handling most of the 286 uglinesses.

Fibonacci (ELF/386)

Original source code (slightly different to the above Fibonacci program):

Desquirr seems to have ignored the gotos, so that all the push instructions appear to add parameters to the one call to printf.
The argument to the switch statement is wrong (should be arg0-2, or the switch values should be increased by 2).

Switch_cc

This is the Boomerang test from test/pentium/switch_cc. It comes from the same source code as the above, but was compiled with a Sun compiler. The compiler has one call to printf in each case of the switch statement. Decompiled output:

The switch table is in the .rodata section, not in the .text section as with switch_gcc. This seems to be unexpected.
It also seems confused by the sub eax, eax instructions used to return 0.

Sumarray-O4

This is the Boomerang test test/pentium/sumarray-O4. As the name suggests, this test is compiled with the gcc compiler
using -O4 optimisation. (Output for the same program compiled with no optimisation is ironically less readable, because local variables are emitted as
* (& var_4), and has more errors.) The original source code: