Return to the sources?

A decompiler is commonly viewed as a tool to recover the source code of a program, the same way as a disassembler is a tool to convert a binary executable program to an assembler text. This is true in some cases but only in some.

Reading assembly code

Even unobfuscated code is difficult to understand. Look at this function. Can you tell its purpose?