Remove MD4/MD5 *H1/*H2 functions and use original H functions. Modern compilers will...
[hashcat.git] / OpenCL / m11400_a1.cl
index 562451c..e23223d 100644 (file)
@@ -1079,8 +1079,6 @@ __kernel void m11400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
 
     // md5
 
-    u32 tmp2;
-
     u32 a = MD5M_A;
     u32 b = MD5M_B;
     u32 c = MD5M_C;
@@ -1120,22 +1118,22 @@ __kernel void m11400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
     MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-    MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
     MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
     MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -1220,22 +1218,22 @@ __kernel void m11400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
       MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
       MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-      MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
       MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
       MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -1334,22 +1332,22 @@ __kernel void m11400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
     MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-    MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
     MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
     MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -1443,22 +1441,22 @@ __kernel void m11400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
     MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-    MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
     MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
     MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -1547,22 +1545,22 @@ __kernel void m11400_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
       MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
       MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-      MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
       MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
       MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -1952,8 +1950,6 @@ __kernel void m11400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
 
     // md5
 
-    u32 tmp2;
-
     u32 a = MD5M_A;
     u32 b = MD5M_B;
     u32 c = MD5M_C;
@@ -1993,22 +1989,22 @@ __kernel void m11400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
     MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-    MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
     MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
     MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -2093,22 +2089,22 @@ __kernel void m11400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
       MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
       MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-      MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
       MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
       MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -2207,22 +2203,22 @@ __kernel void m11400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
     MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-    MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
     MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
     MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -2316,22 +2312,22 @@ __kernel void m11400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
     MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
     MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-    MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-    MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-    MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-    MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-    MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+    MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+    MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+    MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+    MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
     MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
     MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);
@@ -2420,22 +2416,22 @@ __kernel void m11400_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf,
       MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12);
       MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13);
 
-      MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23);
-      MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20);
-      MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21);
-      MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22);
-      MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23);
+      MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20);
+      MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21);
+      MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22);
+      MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23);
 
       MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30);
       MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);