private void DecryptBlock(
byte[] src,
int srcIndex,
byte[] dst,
int dstIndex)
{
uint xl = Pack.LE_To_UInt32(src, srcIndex);
uint xr = Pack.LE_To_UInt32(src, srcIndex + 4);
xl ^= P[ROUNDS + 1];
for (int i = ROUNDS; i > 0; i -= 2)
{
xr ^= F(xl) ^ P[i];
xl ^= F(xr) ^ P[i - 1];
}
xr ^= P[0];
Pack.UInt32_To_LE(xr, dst, dstIndex);
Pack.UInt32_To_LE(xl, dst, dstIndex + 4);
}