Файл 2Мб, но если он пишет только в адреса 0x00040000-0x001FE000, то получается, что он пишет 1,7Мб. Вот я и спросил, он запишет правильно, то есть проигнорирует адреса и запишет те что может, или файл нужно подрезать (за минусом той части, которая не попадает под эти адреса).