Und warum willst den Mist unbedingt in 4000 Zeichen Blöcke zerteilen?
Geht 1A:
[autoit]
#include <array.au3>
Local $hFile = Fileopen(@ScriptDir & "\test.exe", 16)
Local $hread = FileRead($hFile)
FileClose($hFile)
;MsgBox(0,"", $hread)
;Local $aRet = StringRegExp ( $hread, '(.{1,4000})', 3 ); nach 4000 Zeichen "auftrennen"
;_arraydisplay($aRet)
Local $hExtrFile = FileOpen(@ScriptDir & "\test2.exe", 16+2)
;For $i = 0 To UBound($aret) -1
FileWrite($hExtrFile, $hread);$aret[$i]); im ersten Durchgang schreib er 2000 Zeichen binär, danach in Text
;Next
FileClose($hExtrFile)
Exit