// state = два байта из файла
for (r = 0; r < 34567890; r = r + 1) {
state = state ^ 27569;
state = state * -1635 - 16196;
state = state * 31663;
state = state + 14122;
state = state * 25561;
state = state ^ 17548;
state = state * 18199 - 11258;
state = state * 21727;
} // (для удобства разбил действия на строки)
for (r = 0; r < 34567890; r = r + 1) {
state ^= 27569;
state *= -1635;
state -= 16196;
state *= 31663;
state += 14122;
state *= 25561;
state ^= 17548;
state *= 18199;
state -= 11258;
state *= 21727;
}state = state / 21727;
state = state / 18199 - 11258;
state = state ^ 17548;
state = state / 25561;
state = state - 14122;
state = state / 31663;
state = state / -1635 - 16196;
state = state ^ 27569;
state = state / 21727;
state = state / 18199 - 11258;
state *= 18199;
state -= 11258;
state *= 21727;
for (round = 0; round < 0x20f76d2; round = round + 1) {
state ^= 27569;
state *= -1635;
state -= 16196;
state *= 31663;
state += 14122;
state *= 25561;
state ^= 17548;
state *= 18199;
state -= 11258;
state *= 21727;
}for (round = 0; round < 0x20f76d2; round = round + 1) {
state /= 21727;
state += 11258;
state /= 18199;
state ^= 17548;
state /= 25561;
state -= 14122;
state /= 31663;
state += 16196;
state /= -1635;
state ^= 27569;
}
for (i = 0; i < length >> 1; i = i + 1) {
state = *(unsigned short *)((int64_t)arg1 + i * 2);
for (round = 0; round < 0x20f76d2; round = round + 1) {
state ^= 27569;
state *= -1635;
state -= 16196;
state *= 31663;
state += 14122;
state *= 25561;
state ^= 17548;
state *= 18199;
state -= 11258;
state *= 21727;
}
*(unsigned short *)((int64_t)arg1 + i * 2) = state;
fwrite((void *)((int64_t)arg1 + i * 2), 2, 1, arg3); // Записываются данные в (filename).encrypted
fflush(arg3);
}
char* arg1 = "123123123123";int length = strlen(arg1);FILE* arg1 = fopen("file.encrypted", "wb");
unsigned int b1 = *text++;
unsigned int b2 = *text++;
state = (b1 << 8) | b2;
void decrypt(char *str, size_t len) {
for(size_t i = 0; i < len; i += 2) {
uint16_t state = *(uint16_t*)&str[i];
for (size_t r = 0; r < 34567890; r++) {
state *= 26399;
state += 11258;
state *= 24743;
state ^= 17548;
state *= 60521;
state -= 14122;
state *= 47951;
state += 16196;
state *= 21685;
state ^= 27569;
}
*(uint16_t*)&str[i] = state;
}
} uint16_t a = 26399;
uint16_t x = 0;
while(true) {
uint16_t t = a;
t *= x;
if (t == 1) {
cout << x << "\n";
break;
}
++x;
};
for (round = 0; round < 0x20f76d2; round = round + 1) {
state ^= 27569;
state *= -1635;
state -= 16196;
state *= 31663;
state += 14122;
state *= 25561;
state ^= 17548;
state *= 18199;
state -= 11258;
state *= 21727;
}for (round = 0; round < 0x20f76d2; round = round + 1) {
state /= 21727;
state += 11258;
state /= 18199;
state ^= 17548;
state /= 25561;
state -= 14122;
state /= 31663;
state += 16196;
state /= -1635;
state ^= 27569;
}