Michael.hs.michael.b: def of bend-osdev-hashes@0.1.0.0 Import: import bend-osdev-hashes@0.1.0.0/michael.bend as Michael Lines 23-34 of bend-osdev-hashes@0.1.0.0/michael.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-hashes@0.1.0.0/michael.bend&start_line=23&end_line=34 import Base import bend-osdev-hashes@0.1.0.0/hashes.bend as Hs # the block function b def hs.michael.b(lr: Hs.HsW2) -> Hs.HsW2: match lr: case Hs.HsW2{+l0, r0}: +r1 = U32.xor(r0, Hs.hs.rotl(l0, 17n)) +l1 = U32.add(l0, r1) +r2 = U32.xor(r1, U32.or(U32.shrn(U32.and(4278255360, l1), 8n), U32.shln(U32.and(16711935, l1), 8n))) +l2 = U32.add(l1, r2) +r3 = U32.xor(r2, Hs.hs.rotl(l2, 3n)) +l3 = U32.add(l2, r3) +r4 = U32.xor(r3, Hs.hs.rotl(l3, 30n)) Hs.HsW2{U32.add(l3, r4), r4} Uses (8): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.or https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shln https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shrn https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.xor https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/hashes.bend&name=HsW2 https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/hashes.bend&name=hs.rotl