Move( PChar(src)^, PChar(dst)^, length);
は
System.Array.Copy(System.Array(src), 0,
 System.Array(dst), 0,
 length);

FillChar(buf, length);
は
System.Array.Clear(System.Array(buf), 0, length );

でどうだ?