| 287 | } |
| 288 | |
| 289 | static void DecipherBlock(cc_uint32* v, const cc_uint32* key) { |
| 290 | cc_uint32 v0 = v[0], v1 = v[1], delta = 0x9E3779B9, sum = delta * 12; |
| 291 | int i; |
| 292 | |
| 293 | for (i = 0; i < 12; i++) |
| 294 | { |
| 295 | v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + key[(sum>>11) & 3]); |
| 296 | sum -= delta; |
| 297 | v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + key[sum & 3]); |
| 298 | } |
| 299 | v[0] = v0; v[1] = v1; |
| 300 | } |
| 301 | |
| 302 | #define ENC1 0xCC005EC0 |
| 303 | #define ENC2 0x0DA4A0DE |