 		step(i, f, g, a, b, c, d, w);
 	}
 	
+	/*
+	f = (d & b) | ((~d) & c);
+	g = 1;
+	step(16, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 6;
+	step(17, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 11;
+	step(18, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 0;
+	step(19, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 5;
+	step(20, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 10;
+	step(21, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 15;
+	step(22, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 4;
+	step(23, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 9;
+	step(24, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 14;
+	step(25, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 3;
+	step(26, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 8;
+	step(27, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 13;
+	step(28, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 2;
+	step(29, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 7;
+	step(30, f, g, a, b, c, d, w);
+	
+	f = (d & b) | ((~d) & c);
+	g = 12;
+	step(31, f, g, a, b, c, d, w);
+	*/
+	
 	for(; i != 48; i++)
 	{
 		f = b ^ c ^ d;

	c = c0;
	d = d0;
	
	uint f, g, i = 0;
	for(; i != 16; i++)
	{
		f = (b & c) | ((~b) & d);

	return (x << c) | (x >> (32-c));
}

__device__ inline void step (const uint i, const uint f, const uint g, uint &a, uint &b, uint &c, uint &d, const uint * w)
{
	uint temp = d;
	d = c;
