The critical point is this $prbuf array. It should be an array of unsigned int (32bit).
so if you have twenty unsigned int, it's hashed as 20*4=80 bytes (8 bit)
I don't think your strord($prbuf) is doing well here.
Only suggestions as I'm quite ignorant regarding type conversions in php.