Es passt schon so. Im Original ist die Funktion innerhalb einer anderen deklariert und dann wird in RCX RBP abgelegt (hab's gerade geprüft). Damit verschieben sich die anderen Parameter nach RDX und R8. Fragt sich nur warum er das macht. Immerhin passiert das bei
Win32 nicht.
Das dient dazu, damit du in der Funktion auf die Parameter und Variablen der äußeren Funktion zugreifen kannst. In X86 wird das auch gemacht, nur eben mit anderen Registern (ich hatte bei Free Pascal vor einiger Zeit was darüber gelesen, aber ich finde den Teil gerade nicht mehr).
Gruß,
Sven