http://www.hex-rays.com
http://hexblog.com/2007/04/decompilation_gets_real.html
http://www.hexblog.com/hexrays/manual
Hex-Rays is a decompiler plug-in for the IDA Pro disassembler. As of Sep 2007, version 1 has been released.
It currently supports 32-bit x86 only (32-bit versions of Windows, Linux, and presumably Intel OS/X), and relies on the intermediate representation of a program as interactively created in IDA Pro. Version 5.1 of IDA Pro is required. Floating point is not supported at present. The output is not designed to be recompiled. Output is quite C-like, and affords an overview of a binary program.
Procedures can be viewed one at a time, or there is an option to translate all procedures to C, or just a selected range of code. Some procedures fail to be decompiled for various reasons. Compound conditionals, arrays, and structures are supported, and functions are inlined into expressions. Parameters and returns are handled as per the disassembly view. While in the decompiler view, you can perform a (currently) very limited set of commands, including following calls, returning to the caller, and renaming functions and variables.
The first version of the decompiler SDK was released in November 2007; this allows the decompiler to be extended in various ways by users. The author states that user interface improvements and provision for decompiling other platforms are the next areas of focus.