void RotateWordBuffers(Context ctx, Func<uint, uint, uint, uint> f, uint wt, uint kt) { uint temp = CircularShift(5, ctx.A) + (f(ctx.B, ctx.C, ctx.D)) + ctx.E + wt + kt; ctx.E = ctx.D; ctx.D = ctx.C; ctx.C = CircularShift(30, ctx.B); ctx.B = ctx.A; ctx.A = temp; }