#include<iostream.h>
int gg_login_hash(unsigned char *password, unsigned int seed)
{
unsigned int x, y, z;

y = seed;

for (x = 0; *password; password++) {
x = (x & 0xffffff00) | *password;
y ^= x;
y += x;
x <<= 8;
y ^= x;
x <<= 8;
y -= x;
x <<= 8;
y ^= x;

z = y & 0x1f;
y = (y << z) | (y >> (32 - z));
}
cout<<y;
return 0;
}
int main()
{
unsigned char psw[]="piio";
gg_login_hash(psw,45);
return 0;
}
