Программа, которая должна копировать все байты, начиная с 33-его, должна быть малюсенькая, поэтому и ассемблер. И она правильно всё копирует! Проблема не в том, что она неправильно копирует, а в том, что даже после того как она всё правильно скопирует файлы Folder1\test.exe и Folder2\test.exe будут разные, хотя имеют одинаковое содержимое и одинаково называются.