procedure TForm1.Button1Click(Sender: TObject);
var
lpBuffer: PChar;
hFile, uBytes, Index: Integer;
begin
hFile := _lopen('C:\WINDOWS\Web\Wallpaper\Felicidad.bmp', OF_READ);
uBytes := GetFileSize(hFile, nil);
lpBuffer := Ptr(LocalAlloc(0, uBytes));
_lread(hFile, lpBuffer, uBytes);
CloseHandle(hFile);
for Index := Cardinal(PBitmap(lpBuffer + 2).bmBits) to uBytes - 1 do
lpBuffer[Index] := Chr(Ord(lpBuffer[Index]) xor $FF);
hFile := _lcreat('XORed.bmp', 0);
_lwrite(hFile, lpBuffer, uBytes);
CloseHandle(hFile);
LocalFree(Cardinal(lpBuffer));
end;