I HIGHLY encourage one of us to go through the truth table in my original post and the C code that was used to generate it to make sure there's no errors. That's why I posted it to begin with. It would really suck if it didn't work.
You posted the truth-table (and modified the code) for the MA-function, but your C-code is for the CH-function.
But Your thruth-table for MA-function is correct.
Sorry about the confusion. CH = BFI_INT, since BFI does the same thing as the CH function in the hash spec. MA is built using CH/BFI, so there's a define for CH (copied from and docs) and the MA built on top of CH. Thank you for verifying this stuff.
Ah, i see. Didnt look close enough to the printf();
Sorry for that.