The act of program creation, using common compilers and assemblers, takes software from an information-rich source code format and transforms it into a difficult-to-read machine code format. The reverse process, trying to convert machine code into a human-readable format, is significantly more difficult and requires high-level intuition and pattern matching skills.This book is going to discuss the disassembly and decompilation of x86 machine code and x86 assembly code.