fn cmov(comptime len: usize, dst: *[len]u8, src: [len]u8, b: u1) void
fn cmov(comptime len: usize, dst: *[len]u8, src: [len]u8, b: u1) void { const mask = @as(u8, 0) -% b; for (0..len) |i| { dst[i] ^= mask & (dst[i] ^ src[i]); } }