const R: u16 = 55665;
const C1: u16 = 52845;
const C2: u16 = 22719;
pub fn decrypt(cipher: &[u8]) -> Vec<u8> {
let mut decoded = Vec::new();
let mut r: u16 = 55665;
for &c in cipher {
decoded.push(c ^ (r >> 8) as u8);
r = (c as u16).wrapping_add(r).wrapping_mul(C1).wrapping_add(C2);
}
decoded
}
pub fn decrypt_charstring(cipher: &[u8]) -> Vec<u8> {
let mut decoded = Vec::new();
let mut r: u16 = 4330;
for &c in cipher {
decoded.push(c ^ (r >> 8) as u8);
r = (c as u16).wrapping_add(r).wrapping_mul(C1).wrapping_add(C2);
}
decoded
}