private static unsafe byte[] DecryptData(byte[] data, byte[] key)
{
if (data.Length > key.Length) {
throw new InvalidOperationException("data.Length > key.Length; not supposed to happen, please report this to reWZ");
}
fixed (byte* c = data, k = key) {
byte* d = c, l = k, e = d + data.Length;
while (d < e) {
*d++ ^= *l++;
}
}
return data;
}