Overlapped variables
In some cases the decompiler cannot produce nice output because the variable allocation fails. It happens because the input contains overlapped variables (or the decompiler mistakenly lumps together memory reads and writes). Overlapped variables are displayed in red so they conspicuously visible. Let us consider some typical situations.
There are read/write accesses that involve two or more variables
For example, consider the following output:
The last assignment to v1 reads beyond v1 boundaries. In fact, it also reads v2. See the assembly code: