| 6 | DWORD hashtable[1280]; |
| 7 | |
| 8 | void Decrypt(void *block, DWORD size, DWORD key) |
| 9 | { |
| 10 | DWORD *castBlock; |
| 11 | DWORD seed, i; |
| 12 | |
| 13 | castBlock = (DWORD *)block; |
| 14 | seed = 0xEEEEEEEE; |
| 15 | for (i = 0; i < (size >> 2); i++) { |
| 16 | DWORD t = SwapLE32(*castBlock); |
| 17 | seed += hashtable[0x400 + (key & 0xFF)]; |
| 18 | t ^= seed + key; |
| 19 | *castBlock = t; |
| 20 | seed += t + (seed << 5) + 3; |
| 21 | key = ((~key << 0x15) + 0x11111111) | (key >> 0x0B); |
| 22 | castBlock++; |
| 23 | } |
| 24 | } |
| 25 | |
| 26 | void Encrypt(void *block, DWORD size, DWORD key) |
| 27 | { |
no outgoing calls
no test coverage detected