I would look at the output of avr-objdump (gulp):
avr-objdump -j .sec1 -d -m avr5 foo.hex
You will need to change the words following the "-m" to your architecture. Even when / if it works, you will get C code that may not look like you have ever written. Variable names will be different, and convenient Arduino functions will look like dirty C-garbage. Hope there is a better way, sorry.
See also AVR GCC Forum - Using avr-objdump to demonstrate hex code .
source share