61 |
/* the entry point of this mess */ |
/* the entry point of this mess */ |
62 |
/* this all works on unsigned ints so endianess is not an issue */ |
/* this all works on unsigned ints so endianess is not an issue */ |
63 |
|
|
64 |
void mix (u32 *pad, u32 seed); |
static void mix (u32 *pad, u32 seed); |
65 |
|
|
66 |
void enc_type_20 (u32 *pad, u32 seed) |
void enc_type_20 (u32 *pad, u32 seed) |
67 |
{ |
{ |
129 |
#define minor_34 pad[7] ^= my_sqrt(pad[11]) |
#define minor_34 pad[7] ^= my_sqrt(pad[11]) |
130 |
#define minor_35 pad[5] += my_sqrt(pad[7]) |
#define minor_35 pad[5] += my_sqrt(pad[7]) |
131 |
|
|
132 |
void minor_36 (u32 *pad) |
static void minor_36 (u32 *pad) |
133 |
{ |
{ |
134 |
pad[3] ^= pad[11] * 0xeef27425; |
pad[3] ^= pad[11] * 0xeef27425; |
135 |
pad[3] += my_sqrt (pad[0]); |
pad[3] += my_sqrt (pad[0]); |
145 |
ROLEQ (pad[12], ROL (pad[9] - 0xe848f43c, 11)); |
ROLEQ (pad[12], ROL (pad[9] - 0xe848f43c, 11)); |
146 |
} |
} |
147 |
|
|
148 |
void minor_37 (u32 *pad) |
static void minor_37 (u32 *pad) |
149 |
{ |
{ |
150 |
ROLEQ (pad[2], pad[7] + 0x1b); |
ROLEQ (pad[2], pad[7] + 0x1b); |
151 |
pad[2] ^= pad[9] * 0x7941955; |
pad[2] ^= pad[9] * 0x7941955; |
160 |
pad[18] += pad[0] ^ 0x3cf1856; |
pad[18] += pad[0] ^ 0x3cf1856; |
161 |
} |
} |
162 |
|
|
163 |
void major_1 (u32 *pad, u32 seed) |
static void major_1 (u32 *pad, u32 seed) |
164 |
{ |
{ |
165 |
int branch = (pad[17] ^ pad[4] ^ pad[13]) % 13; |
int branch = (pad[17] ^ pad[4] ^ pad[13]) % 13; |
166 |
|
|
278 |
} |
} |
279 |
} |
} |
280 |
|
|
281 |
void major_2 (u32 *pad, u32 seed) |
static void major_2 (u32 *pad, u32 seed) |
282 |
{ |
{ |
283 |
int branch = pad[10] & 15; |
int branch = pad[10] & 15; |
284 |
|
|
429 |
pad[12] ^= my_sin (pad[0]) ? 0x96d5a5a4 : pad[5]; |
pad[12] ^= my_sin (pad[0]) ? 0x96d5a5a4 : pad[5]; |
430 |
} |
} |
431 |
|
|
432 |
void major_3 (u32 *pad, u32 seed) |
static void major_3 (u32 *pad, u32 seed) |
433 |
{ |
{ |
434 |
int branch = (pad[5] ^ seed ^ pad[12]) % 10; |
int branch = (pad[5] ^ seed ^ pad[12]) % 10; |
435 |
|
|
520 |
} |
} |
521 |
} |
} |
522 |
|
|
523 |
void major_4 (u32 *pad, u32 seed) |
static void major_4 (u32 *pad, u32 seed) |
524 |
{ |
{ |
525 |
int branch = pad[6] % 7; |
int branch = pad[6] % 7; |
526 |
|
|
592 |
} |
} |
593 |
} |
} |
594 |
|
|
595 |
void major_5 (u32 *pad, u32 seed) |
static void major_5 (u32 *pad, u32 seed) |
596 |
{ |
{ |
597 |
int branch = (pad[13] ^ pad[6] ^ pad[16]) & 15; |
int branch = (pad[13] ^ pad[6] ^ pad[16]) & 15; |
598 |
|
|
746 |
pad[6] *= pad[5] * 0x1d; |
pad[6] *= pad[5] * 0x1d; |
747 |
} |
} |
748 |
|
|
749 |
void major_6 (u32 *pad, u32 seed) |
static void major_6 (u32 *pad, u32 seed) |
750 |
{ |
{ |
751 |
int branch = pad[17] % 15; |
int branch = pad[17] % 15; |
752 |
|
|
884 |
} |
} |
885 |
} |
} |
886 |
|
|
887 |
void major_7 (u32 *pad, u32 seed) |
static void major_7 (u32 *pad, u32 seed) |
888 |
{ |
{ |
889 |
int branch = (pad[10] ^ pad[11] ^ pad[18]) & 15; |
int branch = (pad[10] ^ pad[11] ^ pad[18]) & 15; |
890 |
|
|
1091 |
pad[1] ^= pad[2] & 0x3b627777; |
pad[1] ^= pad[2] & 0x3b627777; |
1092 |
} |
} |
1093 |
|
|
1094 |
void major_8 (u32 *pad, u32 seed) |
static void major_8 (u32 *pad, u32 seed) |
1095 |
{ |
{ |
1096 |
int branch = (pad[2] ^ seed ^ pad[17]) & 15; |
int branch = (pad[2] ^ seed ^ pad[17]) & 15; |
1097 |
|
|
1282 |
ROLEQ (pad[2], 0x6c0798b3 ^ seed); |
ROLEQ (pad[2], 0x6c0798b3 ^ seed); |
1283 |
} |
} |
1284 |
|
|
1285 |
void major_9 (u32 *pad, u32 seed) |
static void major_9 (u32 *pad, u32 seed) |
1286 |
{ |
{ |
1287 |
int branch = pad[8] & 15; |
int branch = pad[8] & 15; |
1288 |
|
|
1425 |
pad[13] |= pad[3] * 0x3e; |
pad[13] |= pad[3] * 0x3e; |
1426 |
} |
} |
1427 |
|
|
1428 |
void major_10 (u32 *pad, u32 seed) |
static void major_10 (u32 *pad, u32 seed) |
1429 |
{ |
{ |
1430 |
int branch = (pad[4] ^ pad[12] ^ pad[17]) & 15; |
int branch = (pad[4] ^ pad[12] ^ pad[17]) & 15; |
1431 |
|
|
1615 |
pad[3] += pad[13] + 0x3ba9c809; |
pad[3] += pad[13] + 0x3ba9c809; |
1616 |
} |
} |
1617 |
|
|
1618 |
void major_11 (u32 *pad, u32 seed) |
static void major_11 (u32 *pad, u32 seed) |
1619 |
{ |
{ |
1620 |
int branch = (pad[6] ^ seed ^ pad[14]) & 15; |
int branch = (pad[6] ^ seed ^ pad[14]) & 15; |
1621 |
|
|
1787 |
pad[2] &= ROL (pad[19], 14); |
pad[2] &= ROL (pad[19], 14); |
1788 |
} |
} |
1789 |
|
|
1790 |
void major_12 (u32 *pad, u32 seed) |
static void major_12 (u32 *pad, u32 seed) |
1791 |
{ |
{ |
1792 |
int branch = (pad[7] ^ seed ^ pad[18]) & 15; |
int branch = (pad[7] ^ seed ^ pad[18]) & 15; |
1793 |
|
|
1956 |
pad[4] ^= pad[4] - 0xe87fd622; |
pad[4] ^= pad[4] - 0xe87fd622; |
1957 |
} |
} |
1958 |
|
|
1959 |
void major_13 (u32 *pad, u32 seed) |
static void major_13 (u32 *pad, u32 seed) |
1960 |
{ |
{ |
1961 |
int branch = (pad[4] ^ seed ^ pad[18]) & 15; |
int branch = (pad[4] ^ seed ^ pad[18]) & 15; |
1962 |
|
|
2137 |
pad[16] -= pad[11] < 0x1e7d86ee ? pad[11] : seed; |
pad[16] -= pad[11] < 0x1e7d86ee ? pad[11] : seed; |
2138 |
} |
} |
2139 |
|
|
2140 |
void major_14 (u32 *pad, u32 seed) |
static void major_14 (u32 *pad, u32 seed) |
2141 |
{ |
{ |
2142 |
int branch = (pad[8] ^ seed ^ pad[11]) % 14; |
int branch = (pad[8] ^ seed ^ pad[11]) % 14; |
2143 |
|
|
2271 |
pad[12] -= my_sin (pad[10]) ? 0x2818ae3c : seed; |
pad[12] -= my_sin (pad[10]) ? 0x2818ae3c : seed; |
2272 |
} |
} |
2273 |
|
|
2274 |
void major_15 (u32 *pad, u32 seed) |
static void major_15 (u32 *pad, u32 seed) |
2275 |
{ |
{ |
2276 |
int branch = (pad[17] ^ seed ^ pad[19]) % 9; |
int branch = (pad[17] ^ seed ^ pad[19]) % 9; |
2277 |
|
|
2355 |
} |
} |
2356 |
} |
} |
2357 |
|
|
2358 |
void major_16 (u32 *pad, u32 seed) |
static void major_16 (u32 *pad, u32 seed) |
2359 |
{ |
{ |
2360 |
int branch = (pad[11] ^ seed ^ pad[5]) % 12; |
int branch = (pad[11] ^ seed ^ pad[5]) % 12; |
2361 |
|
|
2468 |
pad[12] |= ROL (pad[7], 14); |
pad[12] |= ROL (pad[7], 14); |
2469 |
} |
} |
2470 |
|
|
2471 |
void major_17 (u32 *pad, u32 seed) |
static void major_17 (u32 *pad, u32 seed) |
2472 |
{ |
{ |
2473 |
int branch = (pad[8] ^ pad[7] ^ pad[12]) % 6; |
int branch = (pad[8] ^ pad[7] ^ pad[12]) % 6; |
2474 |
|
|
2531 |
} |
} |
2532 |
} |
} |
2533 |
|
|
2534 |
void major_18 (u32 *pad, u32 seed) |
static void major_18 (u32 *pad, u32 seed) |
2535 |
{ |
{ |
2536 |
int branch = (pad[14] ^ pad[11] ^ pad[17]) & 7; |
int branch = (pad[14] ^ pad[11] ^ pad[17]) & 7; |
2537 |
|
|
2613 |
ROLEQ (pad[18], pad[7] & 0x11); |
ROLEQ (pad[18], pad[7] & 0x11); |
2614 |
} |
} |
2615 |
|
|
2616 |
void major_19 (u32 *pad, u32 seed) |
static void major_19 (u32 *pad, u32 seed) |
2617 |
{ |
{ |
2618 |
int branch = (pad[18] ^ pad[6] ^ pad[15]) & 3; |
int branch = (pad[18] ^ pad[6] ^ pad[15]) & 3; |
2619 |
|
|
2659 |
} |
} |
2660 |
} |
} |
2661 |
|
|
2662 |
void major_21 (u32 *pad, u32 seed) |
static void major_21 (u32 *pad, u32 seed) |
2663 |
{ |
{ |
2664 |
int branch = (pad[1] ^ pad[0] ^ pad[16]) % 11; |
int branch = (pad[1] ^ pad[0] ^ pad[16]) % 11; |
2665 |
|
|
2770 |
pad[11] ^= pad[17] * 0x44; |
pad[11] ^= pad[17] * 0x44; |
2771 |
} |
} |
2772 |
|
|
2773 |
void major_22 (u32 *pad, u32 seed) |
static void major_22 (u32 *pad, u32 seed) |
2774 |
{ |
{ |
2775 |
int branch = (pad[5] ^ pad[0] ^ seed) & 15; |
int branch = (pad[5] ^ pad[0] ^ seed) & 15; |
2776 |
|
|
2956 |
pad[0] += my_sin (pad[0]) ? 0x9bcd446 : pad[14]; |
pad[0] += my_sin (pad[0]) ? 0x9bcd446 : pad[14]; |
2957 |
} |
} |
2958 |
|
|
2959 |
void major_23 (u32 *pad, u32 seed) |
static void major_23 (u32 *pad, u32 seed) |
2960 |
{ |
{ |
2961 |
int branch = seed & 1; |
int branch = seed & 1; |
2962 |
|
|
2989 |
ROREQ (pad[7], pad[13]); |
ROREQ (pad[7], pad[13]); |
2990 |
} |
} |
2991 |
|
|
2992 |
void major_24 (u32 *pad, u32 seed) |
static void major_24 (u32 *pad, u32 seed) |
2993 |
{ |
{ |
2994 |
int branch = (pad[2] ^ seed ^ pad[7]) % 3; |
int branch = (pad[2] ^ seed ^ pad[7]) % 3; |
2995 |
|
|
3023 |
} |
} |
3024 |
} |
} |
3025 |
|
|
3026 |
void major_25 (u32 *pad, u32 seed) |
static void major_25 (u32 *pad, u32 seed) |
3027 |
{ |
{ |
3028 |
int branch = (pad[7] ^ pad[2] ^ seed) % 5; |
int branch = (pad[7] ^ pad[2] ^ seed) % 5; |
3029 |
|
|
3079 |
ROLEQ (pad[1], pad[15] + 0x19); |
ROLEQ (pad[1], pad[15] + 0x19); |
3080 |
} |
} |
3081 |
|
|
3082 |
void mix (u32 *pad, u32 seed) |
static void mix (u32 *pad, u32 seed) |
3083 |
{ |
{ |
3084 |
int branch = (pad[5] ^ pad[9] ^ pad[19]) & 15; |
int branch = (pad[5] ^ pad[9] ^ pad[19]) & 15; |
3085 |
|
|