fn vyre_md5_f(round: u32, b: u32, c: u32, d: u32) -> u32 {
if (round < 16u) { return (b & c) | ((~b) & d); }
if (round < 32u) { return (d & b) | ((~d) & c); }
if (round < 48u) { return b ^ c ^ d; }
return c ^ (b | (~d));
}
fn vyre_md5_g(round: u32) -> u32 {
if (round < 16u) { return round; }
if (round < 32u) { return (5u * round + 1u) & 15u; }
if (round < 48u) { return (3u * round + 5u) & 15u; }
return (7u * round) & 15u;
}