7 #include "../3rdParty/PKWare/pkware.h"
13 void Decrypt(
void *block, DWORD size, DWORD key)
18 castBlock = (DWORD *)block;
20 for (i = 0; i < (size >> 2); i++) {
25 seed += t + (seed << 5) + 3;
26 key = ((~key << 0x15) + 0x11111111) | (key >> 0x0B);
31 void Encrypt(
void *block, DWORD size, DWORD key)
36 castBlock = (DWORD *)block;
38 for (i = 0; i < (size >> 2); i++) {
39 DWORD t = ch = *castBlock;
43 seed += ch + (seed << 5) + 3;
44 key = ((~key << 0x15) + 0x11111111) | (key >> 0x0B);
49 DWORD
Hash(
const char *s,
int type)
56 while (s != NULL && *s) {
59 seed1 =
hashtable[(type << 8) + ch] ^ (seed1 + seed2);
60 seed2 += ch + seed1 + (seed2 << 5) + 3;
72 for (i = 0; i < 256; i++) {
73 for (j = 0; j < 5; j++) {
74 seed = (125 * seed + 3) % 0x2AAAAB;
76 seed = (125 * seed + 3) % 0x2AAAAB;
77 hashtable[i + j * 256] = ch << 16 | (seed & 0xFFFF);
84 BYTE *srcData, *destData;
86 unsigned int destSize, type, dsize;
89 srcData = (BYTE *)buf;
151 BYTE *pbInBuff, *pbOutBuff;
155 pbInBuff = (BYTE *)param;
162 info.
size = recv_size;