rapa, дизассемблирование - это процесс преобразования машинного кода в ассемблерный.
После компиляции программа превращается в набор машинных команд (ехе-файл), что-то типа B0 15 и т. д. в шестнадцатеричном коде, на ассемблере это будет означать mov AL, 0x15. Вот перевод этих шестнадцатиричных чисел в ассемблер и есть дизассемблирование. Сложность заключается в том, что когда ассемблерный код транслируется в машинные команды пропадают метки (заменяются непосредственными адресами), имена функций и т. д. А уж если программист решил нарочно запутать того кто будет дизассемблировать его программу в его руках есть достаточный арсенал в виде ловушек для отладчиков, запутывание дизассемблеров загрузка функций по ординалу вместо имени и много чего еще