function login_hash(password: string; seed: Integer): Integer;
var
x, y, z, i: Cardinal;
begin

y:=seed;
x:=0;

for i:=1 to Length(password) do begin
x:=(x and $FFFFFF00) or Ord(password[i]);
y:=y xor x;
y:=y + x;
x:=x shl 8;
y:=y - x;
x:=x shl 8;
y:=y xor x;

z:=y and $1F;
y:=(y shl z) or (y shr (32 - z))

end;

Result:=y

end;