pub(crate) fn decrypt_table_data(data: &mut [u8], key: u32) {
use crate::crypto::decrypt_block;
if data.is_empty() || key == 0 {
return;
}
let full_len = (data.len() / 4) * 4;
let chunks = &mut data[..full_len];
let mut u32_buffer: Vec<u32> = chunks
.chunks_exact(4)
.map(|chunk| u32::from_le_bytes([chunk[0], chunk[1], chunk[2], chunk[3]]))
.collect();
decrypt_block(&mut u32_buffer, key);
for (i, &val) in u32_buffer.iter().enumerate() {
let bytes = val.to_le_bytes();
chunks[i * 4..(i + 1) * 4].copy_from_slice(&bytes);
}
}