10 #define N2L( C, LL ) \ 11 LL = ( (unsigned int)( *( ( C )++ ) ) ) << 24, LL |= ( (unsigned int)( *( ( C )++ ) ) ) << 16, \ 12 LL |= ( (unsigned int)( *( ( C )++ ) ) ) << 8, LL |= ( (unsigned int)( *( ( C )++ ) ) ) 27 lkey[0] = ( ( ( ~seed ) ^ 0x00001357 ) << 16 ) | ( ( seed ^ 0xffffaaaa ) & 0x0000ffff );
28 lkey[1] = ( ( seed ^ 0x43210000 ) >> 16 ) | ( ( ( ~seed ) ^ 0xabcdffff ) & 0xffff0000 );
36 for (
int i = 0; i < len; i++ )
38 out[i] = in[i] ^ (
unsigned char)
lkey[0];
40 unsigned int table[2];
45 ( ( ( ( ( table[1] >> 1 ) | ( table[0] << 31 ) ) ^
m_k1 ) >> 1 ) | ( table[0] << 31 ) ) ^
47 lkey[0] = ( ( table[0] >> 1 ) | ( table[1] << 31 ) ) ^
m_k2;
53 for (
int i = 0; i < len; i++ )
55 out[i] = in[i] ^ (
unsigned char)
lkey[0];
57 unsigned int table[2];
61 lkey[0] = ( ( table[0] >> 1 ) | ( table[1] << 31 ) ) ^
m_k2;
62 lkey[1] = ( ( table[1] >> 1 ) | ( table[0] << 31 ) ) ^
m_k1;
68 for (
int i = 0; i < len; i++ )
70 out[i] = in[i] ^ (
unsigned char)
lkey[0];
72 unsigned int table[2];
76 lkey[1] = (
m_k1 >> ( ( 5 * table[1] * table[1] ) & 0xff ) ) + ( table[1] *
m_k1 ) +
77 ( table[0] * table[0] * 0x35ce9581 ) + 0x07afcc37;
78 lkey[0] = (
m_k2 >> ( ( 3 * table[0] * table[0] ) & 0xff ) ) + ( table[0] *
m_k2 ) -
79 (
lkey[1] *
lkey[1] * 0x4c3a1353 ) + 0x16ef783f;
void Decrypt_Old(unsigned char *in, unsigned char *out, int len)
void Init(unsigned char *lseed, unsigned int k1, unsigned int k2)
void Decrypt(unsigned char *in, unsigned char *out, int len)
void Decrypt_1_25_36(unsigned char *in, unsigned char *out, int len)