u32 seeds_v1[] =  { 0x09F4FBBD, 0x9681884A, 0x352027E9, 0xF3DEE5A7 }; u32 seeds_v3[] = { 0x7AA9648F, 0x7FAE6994, 0xC0EFAAD5, 0x42712C57 };
void cheatsDecryptGSACode(u32& address, u32& value, bool v3) {  u32 rollingseed = 0xC6EF3720;  u32 seeds_v1[] =  { 0x09F4FBBD, 0x9681884A, 0x352027E9, 0xF3DEE5A7 };   u32 seeds_v3[] = { 0x7AA9648F, 0x7FAE6994, 0xC0EFAAD5, 0x42712C57 };  u32 *seeds = v3 ? seeds_v3 : seeds_v1;    int bitsleft = 32;  while (bitsleft > 0) {    value -= ((((address << 4) + seeds[2]) ^ (address + rollingseed)) ^              ((address >> 5) + seeds[3]));    address -= ((((value << 4) + seeds[0]) ^ (value + rollingseed)) ^                ((value >> 5) + seeds[1]));    rollingseed -= 0x9E3779B9;    bitsleft--;  }}