the delphi code looks ok otherwise but...
if I read it right, it gets the first 15 bytes of the dword value.
now, those 15 bytes don't hold the value.
instead, it seems (according to my cracks) that around the middle of the value is the needed data.
why this difference, I do not know.

download KiXnet