Java (OpenJDK 8), 351 bytes
Just a near 1:1 port of the reference to start golfing from.
s->{int r=24,c;Integer x,y,z;for(;r>0;--r){for(c=0;c<4;x=(s[c]<<24)|(s[c]>>>(8)),y=(s[4+c]<<9)|(s[4+c]>>>(23)),z=s[8+c],s[8+c]=x^(z<<1)^((y&z)<<2),s[4+c]=y^x^((x|z)<<1),s[c++]=z^y^((x&y)<<3));if((r&3)==0){x=s[0];s[0]=s[1];s[1]=x;x=s[2];s[2]=s[3];s[3]=x;}if((r&3)==2){x=s[0];s[0]=s[2];s[2]=x;x=s[1];s[1]=s[3];s[3]=x;}if((r&3)==0)s[0]^=(0x9e377900|r);}}