Advertisement
Guest User

Untitled

a guest
Jan 31st, 2012
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.61 KB | None | 0 0
  1. void swsearch(uint32_t prev[8], uint32_t merkl[8], uint32_t time, uint32_t diff, uint32_t nonce, uint32_t finish)
  2. {
  3. uint32_t W00g, W01g, W02g, W03g, W04g, W05g, W06g, W07g, W08g, W09g, W10g, W11g, W12g, W13g, W14g, W15g, W16g, W17g, W18g, W19g, W20g, W21g, W22g, W23g, W24g, W25g, W26g, W27g, W28g, W29g, W30g, W31g, W32g, W33g, W34g, W35g, W36g, W37g, W38g, W39g, W40g, W41g, W42g, W43g, W44g, W45g, W46g, W47g, W48g, W49g, W50g, W51g, W52g, W53g, W54g, W55g, W56g, W57g, W58g, W59g, W60g, W61g, W62g, W63g;
  4. uint32_t temp;
  5. uint32_t S0g = 0x6a09e667;
  6. uint32_t S1g = 0xbb67ae85;
  7. uint32_t S2g = 0x3c6ef372;
  8. uint32_t S3g = 0xa54ff53a;
  9. uint32_t S4g = 0x510e527f;
  10. uint32_t S5g = 0x9b05688c;
  11. uint32_t S6g = 0x1f83d9ab;
  12. uint32_t S7g = 0x5be0cd19;
  13. uint32_t Ag = 0x6a09e667;
  14. uint32_t Bg = 0xbb67ae85;
  15. uint32_t Cg = 0x3c6ef372;
  16. uint32_t Dg = 0xa54ff53a;
  17. uint32_t Eg = 0x510e527f;
  18. uint32_t Fg = 0x9b05688c;
  19. uint32_t Gg = 0x1f83d9ab;
  20. uint32_t Hg = 0x5be0cd19;
  21. W00g = 0x01000000;
  22. Dg += 0xf477ed68;
  23. Hg = 0xf477ed68 + 0x08909ae5;
  24. W01g = prev[0];
  25. temp = 0xe186dea4+prev[0];
  26. Cg += temp;
  27. Gg = temp + 0x1a16abe8;
  28. W02g = prev[1];
  29. temp = 0x9b05688c+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(0x510e527f^(Cg&0xc8c9b0dd))+0xB5C0FBCF+prev[1];
  30. Bg += temp;
  31. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&0xfd08884d)|(0x6a09e667&(Gg|0xfd08884d)));
  32. W03g = prev[2];
  33. temp = 0x510e527f+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(0x99c7e2a2^(Bg&(Cg^0x99c7e2a2)))+0xE9B5DBA5+prev[2];
  34. Ag += temp;
  35. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(0xfd08884d&(Fg|Gg)));
  36. W04g = prev[3];
  37. temp = 0x99c7e2a2+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0x3956C25B+prev[3];
  38. Hg += temp;
  39. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  40. W05g = prev[4];
  41. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0x59F111F1+prev[4];
  42. Gg += temp;
  43. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  44. W06g = prev[5];
  45. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0x923F82A4+prev[5];
  46. Fg += temp;
  47. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  48. W07g = prev[6];
  49. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0xAB1C5ED5+prev[6];
  50. Eg += temp;
  51. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  52. W08g = prev[7];
  53. temp = Hg+(ROTR(Eg,6)^ROTR(Eg,11)^ROTR(Eg,25))+(Gg^(Eg&(Fg^Gg)))+0xD807AA98+prev[7];
  54. Dg += temp;
  55. Hg = temp + (ROTR(Ag,2)^ROTR(Ag,13)^ROTR(Ag,22))+((Ag&Bg)|(Cg&(Ag|Bg)));
  56. W09g = merkl[0];
  57. temp = Gg+(ROTR(Dg,6)^ROTR(Dg,11)^ROTR(Dg,25))+(Fg^(Dg&(Eg^Fg)))+0x12835B01+merkl[0];
  58. Cg += temp;
  59. Gg = temp + (ROTR(Hg,2)^ROTR(Hg,13)^ROTR(Hg,22))+((Hg&Ag)|(Bg&(Hg|Ag)));
  60. W10g = merkl[1];
  61. temp = Fg+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(Eg^(Cg&(Dg^Eg)))+0x243185BE +merkl[1];
  62. Bg += temp;
  63. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&Hg)|(Ag&(Gg|Hg)));
  64. W11g = merkl[2];
  65. temp = Eg+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(Dg^(Bg&(Cg^Dg)))+0x550C7DC3+merkl[2];
  66. Ag += temp;
  67. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(Hg&(Fg|Gg)));
  68. W12g = merkl[3];
  69. temp = Dg+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0x72BE5D74+merkl[3];
  70. Hg += temp;
  71. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  72. W13g = merkl[4];
  73. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0x80DEB1FE +merkl[4];
  74. Gg += temp;
  75. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  76. W14g = merkl[5];
  77. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0x9BDC06A7+merkl[5];
  78. Fg += temp;
  79. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  80. W15g = merkl[6];
  81. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0xC19BF174+merkl[6];
  82. Eg += temp;
  83. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  84. W16g = (ROTR(W14g,17)^ROTR(W14g,19)^SHR(W14g,10))+W09g+(ROTR(W01g,7)^ROTR(W01g,18)^SHR(W01g,3))+0x01000000;
  85. temp = Hg+(ROTR(Eg,6)^ROTR(Eg,11)^ROTR(Eg,25))+(Gg^(Eg&(Fg^Gg)))+0xE49B69C1+W16g;
  86. Dg += temp;
  87. Hg = temp + (ROTR(Ag,2)^ROTR(Ag,13)^ROTR(Ag,22))+((Ag&Bg)|(Cg&(Ag|Bg)));
  88. W17g = (ROTR(W15g,17)^ROTR(W15g,19)^SHR(W15g,10))+W10g+(ROTR(W02g,7)^ROTR(W02g,18)^SHR(W02g,3))+W01g;
  89. temp = Gg+(ROTR(Dg,6)^ROTR(Dg,11)^ROTR(Dg,25))+(Fg^(Dg&(Eg^Fg)))+0xEFBE4786+W17g;
  90. Cg += temp;
  91. Gg = temp + (ROTR(Hg,2)^ROTR(Hg,13)^ROTR(Hg,22))+((Hg&Ag)|(Bg&(Hg|Ag)));
  92. W18g = (ROTR(W16g,17)^ROTR(W16g,19)^SHR(W16g,10))+W11g+(ROTR(W03g,7)^ROTR(W03g,18)^SHR(W03g,3))+W02g;
  93. temp = Fg+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(Eg^(Cg&(Dg^Eg)))+0x0FC19DC6+W18g;
  94. Bg += temp;
  95. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&Hg)|(Ag&(Gg|Hg)));
  96. W19g = (ROTR(W17g,17)^ROTR(W17g,19)^SHR(W17g,10))+W12g+(ROTR(W04g,7)^ROTR(W04g,18)^SHR(W04g,3))+W03g;
  97. temp = Eg+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(Dg^(Bg&(Cg^Dg)))+0x240CA1CC+W19g;
  98. Ag += temp;
  99. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(Hg&(Fg|Gg)));
  100. W20g = (ROTR(W18g,17)^ROTR(W18g,19)^SHR(W18g,10))+W13g+(ROTR(W05g,7)^ROTR(W05g,18)^SHR(W05g,3))+W04g;
  101. temp = Dg+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0x2DE92C6F+W20g;
  102. Hg += temp;
  103. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  104. W21g = (ROTR(W19g,17)^ROTR(W19g,19)^SHR(W19g,10))+W14g+(ROTR(W06g,7)^ROTR(W06g,18)^SHR(W06g,3))+W05g;
  105. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0x4A7484AA+W21g;
  106. Gg += temp;
  107. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  108. W22g = (ROTR(W20g,17)^ROTR(W20g,19)^SHR(W20g,10))+W15g+(ROTR(W07g,7)^ROTR(W07g,18)^SHR(W07g,3))+W06g;
  109. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0x5CB0A9DC+W22g;
  110. Fg += temp;
  111. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  112. W23g = (ROTR(W21g,17)^ROTR(W21g,19)^SHR(W21g,10))+W16g+(ROTR(W08g,7)^ROTR(W08g,18)^SHR(W08g,3))+W07g;
  113. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0x76F988DA+W23g;
  114. Eg += temp;
  115. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  116. W24g = (ROTR(W22g,17)^ROTR(W22g,19)^SHR(W22g,10))+W17g+(ROTR(W09g,7)^ROTR(W09g,18)^SHR(W09g,3))+W08g;
  117. temp = Hg+(ROTR(Eg,6)^ROTR(Eg,11)^ROTR(Eg,25))+(Gg^(Eg&(Fg^Gg)))+0x983E5152+W24g;
  118. Dg += temp;
  119. Hg = temp + (ROTR(Ag,2)^ROTR(Ag,13)^ROTR(Ag,22))+((Ag&Bg)|(Cg&(Ag|Bg)));
  120. W25g = (ROTR(W23g,17)^ROTR(W23g,19)^SHR(W23g,10))+W18g+(ROTR(W10g,7)^ROTR(W10g,18)^SHR(W10g,3))+W09g;
  121. temp = Gg+(ROTR(Dg,6)^ROTR(Dg,11)^ROTR(Dg,25))+(Fg^(Dg&(Eg^Fg)))+0xA831C66D+W25g;
  122. Cg += temp;
  123. Gg = temp + (ROTR(Hg,2)^ROTR(Hg,13)^ROTR(Hg,22))+((Hg&Ag)|(Bg&(Hg|Ag)));
  124. W26g = (ROTR(W24g,17)^ROTR(W24g,19)^SHR(W24g,10))+W19g+(ROTR(W11g,7)^ROTR(W11g,18)^SHR(W11g,3))+W10g;
  125. temp = Fg+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(Eg^(Cg&(Dg^Eg)))+0xB00327C8+W26g;
  126. Bg += temp;
  127. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&Hg)|(Ag&(Gg|Hg)));
  128. W27g = (ROTR(W25g,17)^ROTR(W25g,19)^SHR(W25g,10))+W20g+(ROTR(W12g,7)^ROTR(W12g,18)^SHR(W12g,3))+W11g;
  129. temp = Eg+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(Dg^(Bg&(Cg^Dg)))+0xBF597FC7+W27g;
  130. Ag += temp;
  131. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(Hg&(Fg|Gg)));
  132. W28g = (ROTR(W26g,17)^ROTR(W26g,19)^SHR(W26g,10))+W21g+(ROTR(W13g,7)^ROTR(W13g,18)^SHR(W13g,3))+W12g;
  133. temp = Dg+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0xC6E00BF3+W28g;
  134. Hg += temp;
  135. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  136. W29g = (ROTR(W27g,17)^ROTR(W27g,19)^SHR(W27g,10))+W22g+(ROTR(W14g,7)^ROTR(W14g,18)^SHR(W14g,3))+W13g;
  137. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0xD5A79147+W29g;
  138. Gg += temp;
  139. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  140. W30g = (ROTR(W28g,17)^ROTR(W28g,19)^SHR(W28g,10))+W23g+(ROTR(W15g,7)^ROTR(W15g,18)^SHR(W15g,3))+W14g;
  141. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0x06CA6351+W30g;
  142. Fg += temp;
  143. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  144. W31g = (ROTR(W29g,17)^ROTR(W29g,19)^SHR(W29g,10))+W24g+(ROTR(W16g,7)^ROTR(W16g,18)^SHR(W16g,3))+W15g;
  145. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0x14292967+W31g;
  146. Eg += temp;
  147. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  148. W32g = (ROTR(W30g,17)^ROTR(W30g,19)^SHR(W30g,10))+W25g+(ROTR(W17g,7)^ROTR(W17g,18)^SHR(W17g,3))+W16g;
  149. temp = Hg+(ROTR(Eg,6)^ROTR(Eg,11)^ROTR(Eg,25))+(Gg^(Eg&(Fg^Gg)))+0x27B70A85+W32g;
  150. Dg += temp;
  151. Hg = temp + (ROTR(Ag,2)^ROTR(Ag,13)^ROTR(Ag,22))+((Ag&Bg)|(Cg&(Ag|Bg)));
  152. W33g = (ROTR(W31g,17)^ROTR(W31g,19)^SHR(W31g,10))+W26g+(ROTR(W18g,7)^ROTR(W18g,18)^SHR(W18g,3))+W17g;
  153. temp = Gg+(ROTR(Dg,6)^ROTR(Dg,11)^ROTR(Dg,25))+(Fg^(Dg&(Eg^Fg)))+0x2E1B2138+W33g;
  154. Cg += temp;
  155. Gg = temp + (ROTR(Hg,2)^ROTR(Hg,13)^ROTR(Hg,22))+((Hg&Ag)|(Bg&(Hg|Ag)));
  156. W34g = (ROTR(W32g,17)^ROTR(W32g,19)^SHR(W32g,10))+W27g+(ROTR(W19g,7)^ROTR(W19g,18)^SHR(W19g,3))+W18g;
  157. temp = Fg+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(Eg^(Cg&(Dg^Eg)))+0x4D2C6DFC+W34g;
  158. Bg += temp;
  159. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&Hg)|(Ag&(Gg|Hg)));
  160. W35g = (ROTR(W33g,17)^ROTR(W33g,19)^SHR(W33g,10))+W28g+(ROTR(W20g,7)^ROTR(W20g,18)^SHR(W20g,3))+W19g;
  161. temp = Eg+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(Dg^(Bg&(Cg^Dg)))+0x53380D13+W35g;
  162. Ag += temp;
  163. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(Hg&(Fg|Gg)));
  164. W36g = (ROTR(W34g,17)^ROTR(W34g,19)^SHR(W34g,10))+W29g+(ROTR(W21g,7)^ROTR(W21g,18)^SHR(W21g,3))+W20g;
  165. temp = Dg+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0x650A7354+W36g;
  166. Hg += temp;
  167. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  168. W37g = (ROTR(W35g,17)^ROTR(W35g,19)^SHR(W35g,10))+W30g+(ROTR(W22g,7)^ROTR(W22g,18)^SHR(W22g,3))+W21g;
  169. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0x766A0ABB+W37g;
  170. Gg += temp;
  171. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  172. W38g = (ROTR(W36g,17)^ROTR(W36g,19)^SHR(W36g,10))+W31g+(ROTR(W23g,7)^ROTR(W23g,18)^SHR(W23g,3))+W22g;
  173. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0x81C2C92E +W38g;
  174. Fg += temp;
  175. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  176. W39g = (ROTR(W37g,17)^ROTR(W37g,19)^SHR(W37g,10))+W32g+(ROTR(W24g,7)^ROTR(W24g,18)^SHR(W24g,3))+W23g;
  177. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0x92722C85+W39g;
  178. Eg += temp;
  179. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  180. W40g = (ROTR(W38g,17)^ROTR(W38g,19)^SHR(W38g,10))+W33g+(ROTR(W25g,7)^ROTR(W25g,18)^SHR(W25g,3))+W24g;
  181. temp = Hg+(ROTR(Eg,6)^ROTR(Eg,11)^ROTR(Eg,25))+(Gg^(Eg&(Fg^Gg)))+0xA2BFE8A1+W40g;
  182. Dg += temp;
  183. Hg = temp + (ROTR(Ag,2)^ROTR(Ag,13)^ROTR(Ag,22))+((Ag&Bg)|(Cg&(Ag|Bg)));
  184. W41g = (ROTR(W39g,17)^ROTR(W39g,19)^SHR(W39g,10))+W34g+(ROTR(W26g,7)^ROTR(W26g,18)^SHR(W26g,3))+W25g;
  185. temp = Gg+(ROTR(Dg,6)^ROTR(Dg,11)^ROTR(Dg,25))+(Fg^(Dg&(Eg^Fg)))+0xA81A664B+W41g;
  186. Cg += temp;
  187. Gg = temp + (ROTR(Hg,2)^ROTR(Hg,13)^ROTR(Hg,22))+((Hg&Ag)|(Bg&(Hg|Ag)));
  188. W42g = (ROTR(W40g,17)^ROTR(W40g,19)^SHR(W40g,10))+W35g+(ROTR(W27g,7)^ROTR(W27g,18)^SHR(W27g,3))+W26g;
  189. temp = Fg+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(Eg^(Cg&(Dg^Eg)))+0xC24B8B70+W42g;
  190. Bg += temp;
  191. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&Hg)|(Ag&(Gg|Hg)));
  192. W43g = (ROTR(W41g,17)^ROTR(W41g,19)^SHR(W41g,10))+W36g+(ROTR(W28g,7)^ROTR(W28g,18)^SHR(W28g,3))+W27g;
  193. temp = Eg+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(Dg^(Bg&(Cg^Dg)))+0xC76C51A3+W43g;
  194. Ag += temp;
  195. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(Hg&(Fg|Gg)));
  196. W44g = (ROTR(W42g,17)^ROTR(W42g,19)^SHR(W42g,10))+W37g+(ROTR(W29g,7)^ROTR(W29g,18)^SHR(W29g,3))+W28g;
  197. temp = Dg+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0xD192E819+W44g;
  198. Hg += temp;
  199. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  200. W45g = (ROTR(W43g,17)^ROTR(W43g,19)^SHR(W43g,10))+W38g+(ROTR(W30g,7)^ROTR(W30g,18)^SHR(W30g,3))+W29g;
  201. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0xD6990624+W45g;
  202. Gg += temp;
  203. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  204. W46g = (ROTR(W44g,17)^ROTR(W44g,19)^SHR(W44g,10))+W39g+(ROTR(W31g,7)^ROTR(W31g,18)^SHR(W31g,3))+W30g;
  205. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0xF40E3585+W46g;
  206. Fg += temp;
  207. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  208. W47g = (ROTR(W45g,17)^ROTR(W45g,19)^SHR(W45g,10))+W40g+(ROTR(W32g,7)^ROTR(W32g,18)^SHR(W32g,3))+W31g;
  209. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0x106AA070+W47g;
  210. Eg += temp;
  211. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  212. W48g = (ROTR(W46g,17)^ROTR(W46g,19)^SHR(W46g,10))+W41g+(ROTR(W33g,7)^ROTR(W33g,18)^SHR(W33g,3))+W32g;
  213. temp = Hg+(ROTR(Eg,6)^ROTR(Eg,11)^ROTR(Eg,25))+(Gg^(Eg&(Fg^Gg)))+0x19A4C116+W48g;
  214. Dg += temp;
  215. Hg = temp + (ROTR(Ag,2)^ROTR(Ag,13)^ROTR(Ag,22))+((Ag&Bg)|(Cg&(Ag|Bg)));
  216. W49g = (ROTR(W47g,17)^ROTR(W47g,19)^SHR(W47g,10))+W42g+(ROTR(W34g,7)^ROTR(W34g,18)^SHR(W34g,3))+W33g;
  217. temp = Gg+(ROTR(Dg,6)^ROTR(Dg,11)^ROTR(Dg,25))+(Fg^(Dg&(Eg^Fg)))+0x1E376C08+W49g;
  218. Cg += temp;
  219. Gg = temp + (ROTR(Hg,2)^ROTR(Hg,13)^ROTR(Hg,22))+((Hg&Ag)|(Bg&(Hg|Ag)));
  220. W50g = (ROTR(W48g,17)^ROTR(W48g,19)^SHR(W48g,10))+W43g+(ROTR(W35g,7)^ROTR(W35g,18)^SHR(W35g,3))+W34g;
  221. temp = Fg+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(Eg^(Cg&(Dg^Eg)))+0x2748774C+W50g;
  222. Bg += temp;
  223. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&Hg)|(Ag&(Gg|Hg)));
  224. W51g = (ROTR(W49g,17)^ROTR(W49g,19)^SHR(W49g,10))+W44g+(ROTR(W36g,7)^ROTR(W36g,18)^SHR(W36g,3))+W35g;
  225. temp = Eg+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(Dg^(Bg&(Cg^Dg)))+0x34B0BCB5+W51g;
  226. Ag += temp;
  227. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(Hg&(Fg|Gg)));
  228. W52g = (ROTR(W50g,17)^ROTR(W50g,19)^SHR(W50g,10))+W45g+(ROTR(W37g,7)^ROTR(W37g,18)^SHR(W37g,3))+W36g;
  229. temp = Dg+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0x391C0CB3+W52g;
  230. Hg += temp;
  231. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  232. W53g = (ROTR(W51g,17)^ROTR(W51g,19)^SHR(W51g,10))+W46g+(ROTR(W38g,7)^ROTR(W38g,18)^SHR(W38g,3))+W37g;
  233. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0x4ED8AA4A+W53g;
  234. Gg += temp;
  235. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  236. W54g = (ROTR(W52g,17)^ROTR(W52g,19)^SHR(W52g,10))+W47g+(ROTR(W39g,7)^ROTR(W39g,18)^SHR(W39g,3))+W38g;
  237. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0x5B9CCA4F+W54g;
  238. Fg += temp;
  239. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  240. W55g = (ROTR(W53g,17)^ROTR(W53g,19)^SHR(W53g,10))+W48g+(ROTR(W40g,7)^ROTR(W40g,18)^SHR(W40g,3))+W39g;
  241. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0x682E6FF3+W55g;
  242. Eg += temp;
  243. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  244. W56g = (ROTR(W54g,17)^ROTR(W54g,19)^SHR(W54g,10))+W49g+(ROTR(W41g,7)^ROTR(W41g,18)^SHR(W41g,3))+W40g;
  245. temp = Hg+(ROTR(Eg,6)^ROTR(Eg,11)^ROTR(Eg,25))+(Gg^(Eg&(Fg^Gg)))+0x748F82EE +W56g;
  246. Dg += temp;
  247. Hg = temp + (ROTR(Ag,2)^ROTR(Ag,13)^ROTR(Ag,22))+((Ag&Bg)|(Cg&(Ag|Bg)));
  248. W57g = (ROTR(W55g,17)^ROTR(W55g,19)^SHR(W55g,10))+W50g+(ROTR(W42g,7)^ROTR(W42g,18)^SHR(W42g,3))+W41g;
  249. temp = Gg+(ROTR(Dg,6)^ROTR(Dg,11)^ROTR(Dg,25))+(Fg^(Dg&(Eg^Fg)))+0x78A5636F+W57g;
  250. Cg += temp;
  251. Gg = temp + (ROTR(Hg,2)^ROTR(Hg,13)^ROTR(Hg,22))+((Hg&Ag)|(Bg&(Hg|Ag)));
  252. W58g = (ROTR(W56g,17)^ROTR(W56g,19)^SHR(W56g,10))+W51g+(ROTR(W43g,7)^ROTR(W43g,18)^SHR(W43g,3))+W42g;
  253. temp = Fg+(ROTR(Cg,6)^ROTR(Cg,11)^ROTR(Cg,25))+(Eg^(Cg&(Dg^Eg)))+0x84C87814+W58g;
  254. Bg += temp;
  255. Fg = temp + (ROTR(Gg,2)^ROTR(Gg,13)^ROTR(Gg,22))+((Gg&Hg)|(Ag&(Gg|Hg)));
  256. W59g = (ROTR(W57g,17)^ROTR(W57g,19)^SHR(W57g,10))+W52g+(ROTR(W44g,7)^ROTR(W44g,18)^SHR(W44g,3))+W43g;
  257. temp = Eg+(ROTR(Bg,6)^ROTR(Bg,11)^ROTR(Bg,25))+(Dg^(Bg&(Cg^Dg)))+0x8CC70208+W59g;
  258. Ag += temp;
  259. Eg = temp + (ROTR(Fg,2)^ROTR(Fg,13)^ROTR(Fg,22))+((Fg&Gg)|(Hg&(Fg|Gg)));
  260. W60g = (ROTR(W58g,17)^ROTR(W58g,19)^SHR(W58g,10))+W53g+(ROTR(W45g,7)^ROTR(W45g,18)^SHR(W45g,3))+W44g;
  261. temp = Dg+(ROTR(Ag,6)^ROTR(Ag,11)^ROTR(Ag,25))+(Cg^(Ag&(Bg^Cg)))+0x90BEFFFA+W60g;
  262. Hg += temp;
  263. Dg = temp + (ROTR(Eg,2)^ROTR(Eg,13)^ROTR(Eg,22))+((Eg&Fg)|(Gg&(Eg|Fg)));
  264. W61g = (ROTR(W59g,17)^ROTR(W59g,19)^SHR(W59g,10))+W54g+(ROTR(W46g,7)^ROTR(W46g,18)^SHR(W46g,3))+W45g;
  265. temp = Cg+(ROTR(Hg,6)^ROTR(Hg,11)^ROTR(Hg,25))+(Bg^(Hg&(Ag^Bg)))+0xA4506CEB+W61g;
  266. Gg += temp;
  267. Cg = temp + (ROTR(Dg,2)^ROTR(Dg,13)^ROTR(Dg,22))+((Dg&Eg)|(Fg&(Dg|Eg)));
  268. W62g = (ROTR(W60g,17)^ROTR(W60g,19)^SHR(W60g,10))+W55g+(ROTR(W47g,7)^ROTR(W47g,18)^SHR(W47g,3))+W46g;
  269. temp = Bg+(ROTR(Gg,6)^ROTR(Gg,11)^ROTR(Gg,25))+(Ag^(Gg&(Hg^Ag)))+0xBEF9A3F7+W62g;
  270. Fg += temp;
  271. Bg = temp + (ROTR(Cg,2)^ROTR(Cg,13)^ROTR(Cg,22))+((Cg&Dg)|(Eg&(Cg|Dg)));
  272. W63g = (ROTR(W61g,17)^ROTR(W61g,19)^SHR(W61g,10))+W56g+(ROTR(W48g,7)^ROTR(W48g,18)^SHR(W48g,3))+W47g;
  273. temp = Ag+(ROTR(Fg,6)^ROTR(Fg,11)^ROTR(Fg,25))+(Hg^(Fg&(Gg^Hg)))+0xC67178F2+W63g;
  274. Eg += temp;
  275. Ag = temp + (ROTR(Bg,2)^ROTR(Bg,13)^ROTR(Bg,22))+((Bg&Cg)|(Dg&(Bg|Cg)));
  276. S0g += Ag;
  277. S1g += Bg;
  278. S2g += Cg;
  279. S3g += Dg;
  280. S4g += Eg;
  281. S5g += Fg;
  282. S6g += Gg;
  283. S7g += Hg;
  284. uint32_t Aq = S0g;
  285. uint32_t Bq = S1g;
  286. uint32_t Cq = S2g;
  287. uint32_t Dq = S3g;
  288. uint32_t Eq = S4g;
  289. uint32_t Fq = S5g;
  290. uint32_t Gq = S6g;
  291. uint32_t Hq = S7g;
  292. W00g = merkl[7];
  293. W01g = time;
  294. W02g = diff;
  295. W04g = 0x80000000;
  296. W05g = 0;
  297. W06g = 0;
  298. W07g = 0;
  299. W08g = 0;
  300. W09g = 0;
  301. W10g = 0;
  302. W11g = 0;
  303. W12g = 0;
  304. W13g = 0;
  305. W14g = 0;
  306. W15g = 0x00000280;
  307. temp = Hq+(ROTR(Eq,6)^ROTR(Eq,11)^ROTR(Eq,25))+(Gq^(Eq&(Fq^Gq)))+0x428A2F98+merkl[7];
  308. Dq += temp;
  309. Hq = temp + (ROTR(Aq,2)^ROTR(Aq,13)^ROTR(Aq,22))+((Aq&Bq)|(Cq&(Aq|Bq)));
  310. temp = Gq+(ROTR(Dq,6)^ROTR(Dq,11)^ROTR(Dq,25))+(Fq^(Dq&(Eq^Fq)))+0x71374491+time;
  311. Cq += temp;
  312. Gq = temp + (ROTR(Hq,2)^ROTR(Hq,13)^ROTR(Hq,22))+((Hq&Aq)|(Bq&(Hq|Aq)));
  313. temp = Fq+(ROTR(Cq,6)^ROTR(Cq,11)^ROTR(Cq,25))+(Eq^(Cq&(Dq^Eq)))+0xB5C0FBCF+diff;
  314. Bq += temp;
  315. Fq = temp + (ROTR(Gq,2)^ROTR(Gq,13)^ROTR(Gq,22))+((Gq&Hq)|(Aq&(Gq|Hq)));
  316. W16g = (ROTR(W01g,7)^ROTR(W01g,18)^SHR(W01g,3))+W00g;
  317. W17g = 0x01100000+(ROTR(W02g,7)^ROTR(W02g,18)^SHR(W02g,3))+W01g;
  318.  
  319. shown(nonce);
  320.  
  321. do
  322. {
  323. if ((nonce & 0x00ffffff) == 0) shown(nonce);
  324.  
  325. uint32_t Ay = Aq;
  326. uint32_t By = Bq;
  327. uint32_t Cy = Cq;
  328. uint32_t Dy = Dq;
  329. uint32_t Ey = Eq;
  330. uint32_t Fy = Fq;
  331. uint32_t Gy = Gq;
  332. uint32_t Hy = Hq;
  333. W03g = nonce;
  334. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0xE9B5DBA5+nonce;
  335. Ay += temp;
  336. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  337. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0xb956c25b;
  338. Hy += temp;
  339. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  340. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0x59F111F1;
  341. Gy += temp;
  342. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  343. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0x923F82A4;
  344. Fy += temp;
  345. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  346. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0xAB1C5ED5;
  347. Ey += temp;
  348. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  349. temp = Hy+(ROTR(Ey,6)^ROTR(Ey,11)^ROTR(Ey,25))+(Gy^(Ey&(Fy^Gy)))+0xD807AA98;
  350. Dy += temp;
  351. Hy = temp + (ROTR(Ay,2)^ROTR(Ay,13)^ROTR(Ay,22))+((Ay&By)|(Cy&(Ay|By)));
  352. temp = Gy+(ROTR(Dy,6)^ROTR(Dy,11)^ROTR(Dy,25))+(Fy^(Dy&(Ey^Fy)))+0x12835B01;
  353. Cy += temp;
  354. Gy = temp + (ROTR(Hy,2)^ROTR(Hy,13)^ROTR(Hy,22))+((Hy&Ay)|(By&(Hy|Ay)));
  355. temp = Fy+(ROTR(Cy,6)^ROTR(Cy,11)^ROTR(Cy,25))+(Ey^(Cy&(Dy^Ey)))+0x243185BE;
  356. By += temp;
  357. Fy = temp + (ROTR(Gy,2)^ROTR(Gy,13)^ROTR(Gy,22))+((Gy&Hy)|(Ay&(Gy|Hy)));
  358. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0x550C7DC3;
  359. Ay += temp;
  360. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  361. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0x72BE5D74;
  362. Hy += temp;
  363. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  364. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0x80DEB1FE;
  365. Gy += temp;
  366. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  367. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0x9BDC06A7;
  368. Fy += temp;
  369. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  370. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0xc19bf3f4;
  371. Ey += temp;
  372. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  373. temp = Hy+(ROTR(Ey,6)^ROTR(Ey,11)^ROTR(Ey,25))+(Gy^(Ey&(Fy^Gy)))+0xE49B69C1+W16g;
  374. Dy += temp;
  375. Hy = temp + (ROTR(Ay,2)^ROTR(Ay,13)^ROTR(Ay,22))+((Ay&By)|(Cy&(Ay|By)));
  376. temp = Gy+(ROTR(Dy,6)^ROTR(Dy,11)^ROTR(Dy,25))+(Fy^(Dy&(Ey^Fy)))+0xEFBE4786+W17g;
  377. Cy += temp;
  378. Gy = temp + (ROTR(Hy,2)^ROTR(Hy,13)^ROTR(Hy,22))+((Hy&Ay)|(By&(Hy|Ay)));
  379. W18g = (ROTR(W16g,17)^ROTR(W16g,19)^SHR(W16g,10))+(ROTR(W03g,7)^ROTR(W03g,18)^SHR(W03g,3))+W02g;
  380. temp = Fy+(ROTR(Cy,6)^ROTR(Cy,11)^ROTR(Cy,25))+(Ey^(Cy&(Dy^Ey)))+0x0FC19DC6+W18g;
  381. By += temp;
  382. Fy = temp + (ROTR(Gy,2)^ROTR(Gy,13)^ROTR(Gy,22))+((Gy&Hy)|(Ay&(Gy|Hy)));
  383. W19g = (ROTR(W17g,17)^ROTR(W17g,19)^SHR(W17g,10))+0x11002000+W03g;
  384. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0x240CA1CC+W19g;
  385. Ay += temp;
  386. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  387. W20g = (ROTR(W18g,17)^ROTR(W18g,19)^SHR(W18g,10))+0x80000000;
  388. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0x2DE92C6F+W20g;
  389. Hy += temp;
  390. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  391. W21g = (ROTR(W19g,17)^ROTR(W19g,19)^SHR(W19g,10));
  392. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0x4A7484AA+W21g;
  393. Gy += temp;
  394. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  395. W22g = (ROTR(W20g,17)^ROTR(W20g,19)^SHR(W20g,10))+0x00000280;
  396. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0x5CB0A9DC+W22g;
  397. Fy += temp;
  398. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  399. W23g = (ROTR(W21g,17)^ROTR(W21g,19)^SHR(W21g,10))+W16g;
  400. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0x76F988DA+W23g;
  401. Ey += temp;
  402. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  403. W24g = (ROTR(W22g,17)^ROTR(W22g,19)^SHR(W22g,10))+W17g;
  404. temp = Hy+(ROTR(Ey,6)^ROTR(Ey,11)^ROTR(Ey,25))+(Gy^(Ey&(Fy^Gy)))+0x983E5152+W24g;
  405. Dy += temp;
  406. Hy = temp + (ROTR(Ay,2)^ROTR(Ay,13)^ROTR(Ay,22))+((Ay&By)|(Cy&(Ay|By)));
  407. W25g = (ROTR(W23g,17)^ROTR(W23g,19)^SHR(W23g,10))+W18g;
  408. temp = Gy+(ROTR(Dy,6)^ROTR(Dy,11)^ROTR(Dy,25))+(Fy^(Dy&(Ey^Fy)))+0xA831C66D+W25g;
  409. Cy += temp;
  410. Gy = temp + (ROTR(Hy,2)^ROTR(Hy,13)^ROTR(Hy,22))+((Hy&Ay)|(By&(Hy|Ay)));
  411. W26g = (ROTR(W24g,17)^ROTR(W24g,19)^SHR(W24g,10))+W19g;
  412. temp = Fy+(ROTR(Cy,6)^ROTR(Cy,11)^ROTR(Cy,25))+(Ey^(Cy&(Dy^Ey)))+0xB00327C8+W26g;
  413. By += temp;
  414. Fy = temp + (ROTR(Gy,2)^ROTR(Gy,13)^ROTR(Gy,22))+((Gy&Hy)|(Ay&(Gy|Hy)));
  415. W27g = (ROTR(W25g,17)^ROTR(W25g,19)^SHR(W25g,10))+W20g;
  416. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0xBF597FC7+W27g;
  417. Ay += temp;
  418. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  419. W28g = (ROTR(W26g,17)^ROTR(W26g,19)^SHR(W26g,10))+W21g;
  420. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0xC6E00BF3+W28g;
  421. Hy += temp;
  422. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  423. W29g = (ROTR(W27g,17)^ROTR(W27g,19)^SHR(W27g,10))+W22g;
  424. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0xD5A79147+W29g;
  425. Gy += temp;
  426. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  427. W30g = (ROTR(W28g,17)^ROTR(W28g,19)^SHR(W28g,10))+W23g+0x00a00055;
  428. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0x06CA6351+W30g;
  429. Fy += temp;
  430. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  431. W31g = (ROTR(W29g,17)^ROTR(W29g,19)^SHR(W29g,10))+W24g+(ROTR(W16g,7)^ROTR(W16g,18)^SHR(W16g,3))+0x00000280;
  432. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0x14292967+W31g;
  433. Ey += temp;
  434. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  435. W32g = (ROTR(W30g,17)^ROTR(W30g,19)^SHR(W30g,10))+W25g+(ROTR(W17g,7)^ROTR(W17g,18)^SHR(W17g,3))+W16g;
  436. temp = Hy+(ROTR(Ey,6)^ROTR(Ey,11)^ROTR(Ey,25))+(Gy^(Ey&(Fy^Gy)))+0x27B70A85+W32g;
  437. Dy += temp;
  438. Hy = temp + (ROTR(Ay,2)^ROTR(Ay,13)^ROTR(Ay,22))+((Ay&By)|(Cy&(Ay|By)));
  439. W33g = (ROTR(W31g,17)^ROTR(W31g,19)^SHR(W31g,10))+W26g+(ROTR(W18g,7)^ROTR(W18g,18)^SHR(W18g,3))+W17g;
  440. temp = Gy+(ROTR(Dy,6)^ROTR(Dy,11)^ROTR(Dy,25))+(Fy^(Dy&(Ey^Fy)))+0x2E1B2138+W33g;
  441. Cy += temp;
  442. Gy = temp + (ROTR(Hy,2)^ROTR(Hy,13)^ROTR(Hy,22))+((Hy&Ay)|(By&(Hy|Ay)));
  443. W34g = (ROTR(W32g,17)^ROTR(W32g,19)^SHR(W32g,10))+W27g+(ROTR(W19g,7)^ROTR(W19g,18)^SHR(W19g,3))+W18g;
  444. temp = Fy+(ROTR(Cy,6)^ROTR(Cy,11)^ROTR(Cy,25))+(Ey^(Cy&(Dy^Ey)))+0x4D2C6DFC+W34g;
  445. By += temp;
  446. Fy = temp + (ROTR(Gy,2)^ROTR(Gy,13)^ROTR(Gy,22))+((Gy&Hy)|(Ay&(Gy|Hy)));
  447. W35g = (ROTR(W33g,17)^ROTR(W33g,19)^SHR(W33g,10))+W28g+(ROTR(W20g,7)^ROTR(W20g,18)^SHR(W20g,3))+W19g;
  448. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0x53380D13+W35g;
  449. Ay += temp;
  450. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  451. W36g = (ROTR(W34g,17)^ROTR(W34g,19)^SHR(W34g,10))+W29g+(ROTR(W21g,7)^ROTR(W21g,18)^SHR(W21g,3))+W20g;
  452. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0x650A7354+W36g;
  453. Hy += temp;
  454. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  455. W37g = (ROTR(W35g,17)^ROTR(W35g,19)^SHR(W35g,10))+W30g+(ROTR(W22g,7)^ROTR(W22g,18)^SHR(W22g,3))+W21g;
  456. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0x766A0ABB+W37g;
  457. Gy += temp;
  458. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  459. W38g = (ROTR(W36g,17)^ROTR(W36g,19)^SHR(W36g,10))+W31g+(ROTR(W23g,7)^ROTR(W23g,18)^SHR(W23g,3))+W22g;
  460. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0x81C2C92E +W38g;
  461. Fy += temp;
  462. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  463. W39g = (ROTR(W37g,17)^ROTR(W37g,19)^SHR(W37g,10))+W32g+(ROTR(W24g,7)^ROTR(W24g,18)^SHR(W24g,3))+W23g;
  464. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0x92722C85+W39g;
  465. Ey += temp;
  466. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  467. W40g = (ROTR(W38g,17)^ROTR(W38g,19)^SHR(W38g,10))+W33g+(ROTR(W25g,7)^ROTR(W25g,18)^SHR(W25g,3))+W24g;
  468. temp = Hy+(ROTR(Ey,6)^ROTR(Ey,11)^ROTR(Ey,25))+(Gy^(Ey&(Fy^Gy)))+0xA2BFE8A1+W40g;
  469. Dy += temp;
  470. Hy = temp + (ROTR(Ay,2)^ROTR(Ay,13)^ROTR(Ay,22))+((Ay&By)|(Cy&(Ay|By)));
  471. W41g = (ROTR(W39g,17)^ROTR(W39g,19)^SHR(W39g,10))+W34g+(ROTR(W26g,7)^ROTR(W26g,18)^SHR(W26g,3))+W25g;
  472. temp = Gy+(ROTR(Dy,6)^ROTR(Dy,11)^ROTR(Dy,25))+(Fy^(Dy&(Ey^Fy)))+0xA81A664B+W41g;
  473. Cy += temp;
  474. Gy = temp + (ROTR(Hy,2)^ROTR(Hy,13)^ROTR(Hy,22))+((Hy&Ay)|(By&(Hy|Ay)));
  475. W42g = (ROTR(W40g,17)^ROTR(W40g,19)^SHR(W40g,10))+W35g+(ROTR(W27g,7)^ROTR(W27g,18)^SHR(W27g,3))+W26g;
  476. temp = Fy+(ROTR(Cy,6)^ROTR(Cy,11)^ROTR(Cy,25))+(Ey^(Cy&(Dy^Ey)))+0xC24B8B70+W42g;
  477. By += temp;
  478. Fy = temp + (ROTR(Gy,2)^ROTR(Gy,13)^ROTR(Gy,22))+((Gy&Hy)|(Ay&(Gy|Hy)));
  479. W43g = (ROTR(W41g,17)^ROTR(W41g,19)^SHR(W41g,10))+W36g+(ROTR(W28g,7)^ROTR(W28g,18)^SHR(W28g,3))+W27g;
  480. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0xC76C51A3+W43g;
  481. Ay += temp;
  482. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  483. W44g = (ROTR(W42g,17)^ROTR(W42g,19)^SHR(W42g,10))+W37g+(ROTR(W29g,7)^ROTR(W29g,18)^SHR(W29g,3))+W28g;
  484. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0xD192E819+W44g;
  485. Hy += temp;
  486. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  487. W45g = (ROTR(W43g,17)^ROTR(W43g,19)^SHR(W43g,10))+W38g+(ROTR(W30g,7)^ROTR(W30g,18)^SHR(W30g,3))+W29g;
  488. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0xD6990624+W45g;
  489. Gy += temp;
  490. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  491. W46g = (ROTR(W44g,17)^ROTR(W44g,19)^SHR(W44g,10))+W39g+(ROTR(W31g,7)^ROTR(W31g,18)^SHR(W31g,3))+W30g;
  492. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0xF40E3585+W46g;
  493. Fy += temp;
  494. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  495. W47g = (ROTR(W45g,17)^ROTR(W45g,19)^SHR(W45g,10))+W40g+(ROTR(W32g,7)^ROTR(W32g,18)^SHR(W32g,3))+W31g;
  496. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0x106AA070+W47g;
  497. Ey += temp;
  498. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  499. W48g = (ROTR(W46g,17)^ROTR(W46g,19)^SHR(W46g,10))+W41g+(ROTR(W33g,7)^ROTR(W33g,18)^SHR(W33g,3))+W32g;
  500. temp = Hy+(ROTR(Ey,6)^ROTR(Ey,11)^ROTR(Ey,25))+(Gy^(Ey&(Fy^Gy)))+0x19A4C116+W48g;
  501. Dy += temp;
  502. Hy = temp + (ROTR(Ay,2)^ROTR(Ay,13)^ROTR(Ay,22))+((Ay&By)|(Cy&(Ay|By)));
  503. W49g = (ROTR(W47g,17)^ROTR(W47g,19)^SHR(W47g,10))+W42g+(ROTR(W34g,7)^ROTR(W34g,18)^SHR(W34g,3))+W33g;
  504. temp = Gy+(ROTR(Dy,6)^ROTR(Dy,11)^ROTR(Dy,25))+(Fy^(Dy&(Ey^Fy)))+0x1E376C08+W49g;
  505. Cy += temp;
  506. Gy = temp + (ROTR(Hy,2)^ROTR(Hy,13)^ROTR(Hy,22))+((Hy&Ay)|(By&(Hy|Ay)));
  507. W50g = (ROTR(W48g,17)^ROTR(W48g,19)^SHR(W48g,10))+W43g+(ROTR(W35g,7)^ROTR(W35g,18)^SHR(W35g,3))+W34g;
  508. temp = Fy+(ROTR(Cy,6)^ROTR(Cy,11)^ROTR(Cy,25))+(Ey^(Cy&(Dy^Ey)))+0x2748774C+W50g;
  509. By += temp;
  510. Fy = temp + (ROTR(Gy,2)^ROTR(Gy,13)^ROTR(Gy,22))+((Gy&Hy)|(Ay&(Gy|Hy)));
  511. W51g = (ROTR(W49g,17)^ROTR(W49g,19)^SHR(W49g,10))+W44g+(ROTR(W36g,7)^ROTR(W36g,18)^SHR(W36g,3))+W35g;
  512. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0x34B0BCB5+W51g;
  513. Ay += temp;
  514. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  515. W52g = (ROTR(W50g,17)^ROTR(W50g,19)^SHR(W50g,10))+W45g+(ROTR(W37g,7)^ROTR(W37g,18)^SHR(W37g,3))+W36g;
  516. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0x391C0CB3+W52g;
  517. Hy += temp;
  518. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  519. W53g = (ROTR(W51g,17)^ROTR(W51g,19)^SHR(W51g,10))+W46g+(ROTR(W38g,7)^ROTR(W38g,18)^SHR(W38g,3))+W37g;
  520. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0x4ED8AA4A+W53g;
  521. Gy += temp;
  522. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  523. W54g = (ROTR(W52g,17)^ROTR(W52g,19)^SHR(W52g,10))+W47g+(ROTR(W39g,7)^ROTR(W39g,18)^SHR(W39g,3))+W38g;
  524. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0x5B9CCA4F+W54g;
  525. Fy += temp;
  526. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  527. W55g = (ROTR(W53g,17)^ROTR(W53g,19)^SHR(W53g,10))+W48g+(ROTR(W40g,7)^ROTR(W40g,18)^SHR(W40g,3))+W39g;
  528. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0x682E6FF3+W55g;
  529. Ey += temp;
  530. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  531. W56g = (ROTR(W54g,17)^ROTR(W54g,19)^SHR(W54g,10))+W49g+(ROTR(W41g,7)^ROTR(W41g,18)^SHR(W41g,3))+W40g;
  532. temp = Hy+(ROTR(Ey,6)^ROTR(Ey,11)^ROTR(Ey,25))+(Gy^(Ey&(Fy^Gy)))+0x748F82EE +W56g;
  533. Dy += temp;
  534. Hy = temp + (ROTR(Ay,2)^ROTR(Ay,13)^ROTR(Ay,22))+((Ay&By)|(Cy&(Ay|By)));
  535. W57g = (ROTR(W55g,17)^ROTR(W55g,19)^SHR(W55g,10))+W50g+(ROTR(W42g,7)^ROTR(W42g,18)^SHR(W42g,3))+W41g;
  536. temp = Gy+(ROTR(Dy,6)^ROTR(Dy,11)^ROTR(Dy,25))+(Fy^(Dy&(Ey^Fy)))+0x78A5636F+W57g;
  537. Cy += temp;
  538. Gy = temp + (ROTR(Hy,2)^ROTR(Hy,13)^ROTR(Hy,22))+((Hy&Ay)|(By&(Hy|Ay)));
  539. W58g = (ROTR(W56g,17)^ROTR(W56g,19)^SHR(W56g,10))+W51g+(ROTR(W43g,7)^ROTR(W43g,18)^SHR(W43g,3))+W42g;
  540. temp = Fy+(ROTR(Cy,6)^ROTR(Cy,11)^ROTR(Cy,25))+(Ey^(Cy&(Dy^Ey)))+0x84C87814+W58g;
  541. By += temp;
  542. Fy = temp + (ROTR(Gy,2)^ROTR(Gy,13)^ROTR(Gy,22))+((Gy&Hy)|(Ay&(Gy|Hy)));
  543. W59g = (ROTR(W57g,17)^ROTR(W57g,19)^SHR(W57g,10))+W52g+(ROTR(W44g,7)^ROTR(W44g,18)^SHR(W44g,3))+W43g;
  544. temp = Ey+(ROTR(By,6)^ROTR(By,11)^ROTR(By,25))+(Dy^(By&(Cy^Dy)))+0x8CC70208+W59g;
  545. Ay += temp;
  546. Ey = temp + (ROTR(Fy,2)^ROTR(Fy,13)^ROTR(Fy,22))+((Fy&Gy)|(Hy&(Fy|Gy)));
  547. W60g = (ROTR(W58g,17)^ROTR(W58g,19)^SHR(W58g,10))+W53g+(ROTR(W45g,7)^ROTR(W45g,18)^SHR(W45g,3))+W44g;
  548. temp = Dy+(ROTR(Ay,6)^ROTR(Ay,11)^ROTR(Ay,25))+(Cy^(Ay&(By^Cy)))+0x90BEFFFA+W60g;
  549. Hy += temp;
  550. Dy = temp + (ROTR(Ey,2)^ROTR(Ey,13)^ROTR(Ey,22))+((Ey&Fy)|(Gy&(Ey|Fy)));
  551. W61g = (ROTR(W59g,17)^ROTR(W59g,19)^SHR(W59g,10))+W54g+(ROTR(W46g,7)^ROTR(W46g,18)^SHR(W46g,3))+W45g;
  552. temp = Cy+(ROTR(Hy,6)^ROTR(Hy,11)^ROTR(Hy,25))+(By^(Hy&(Ay^By)))+0xA4506CEB+W61g;
  553. Gy += temp;
  554. Cy = temp + (ROTR(Dy,2)^ROTR(Dy,13)^ROTR(Dy,22))+((Dy&Ey)|(Fy&(Dy|Ey)));
  555. W62g = (ROTR(W60g,17)^ROTR(W60g,19)^SHR(W60g,10))+W55g+(ROTR(W47g,7)^ROTR(W47g,18)^SHR(W47g,3))+W46g;
  556. temp = By+(ROTR(Gy,6)^ROTR(Gy,11)^ROTR(Gy,25))+(Ay^(Gy&(Hy^Ay)))+0xBEF9A3F7+W62g;
  557. Fy += temp;
  558. By = temp + (ROTR(Cy,2)^ROTR(Cy,13)^ROTR(Cy,22))+((Cy&Dy)|(Ey&(Cy|Dy)));
  559. W63g = (ROTR(W61g,17)^ROTR(W61g,19)^SHR(W61g,10))+W56g+(ROTR(W48g,7)^ROTR(W48g,18)^SHR(W48g,3))+W47g;
  560. temp = Ay+(ROTR(Fy,6)^ROTR(Fy,11)^ROTR(Fy,25))+(Hy^(Fy&(Gy^Hy)))+0xC67178F2+W63g;
  561. Ey += temp;
  562. Ay = temp + (ROTR(By,2)^ROTR(By,13)^ROTR(By,22))+((By&Cy)|(Dy&(By|Cy)));
  563. uint32_t W00z, W01z, W02z, W03z, W04z, W05z, W06z, W07z, W08z, W09z, W10z, W11z, W12z, W13z, W14z, W15z, W16z, W17z, W18z, W19z, W20z, W21z, W22z, W23z, W24z, W25z, W26z, W27z, W28z, W29z, W30z, W31z, W32z, W33z, W34z, W35z, W36z, W37z, W38z, W39z, W40z, W41z, W42z, W43z, W44z, W45z, W46z, W47z, W48z, W49z, W50z, W51z, W52z, W53z, W54z, W55z, W56z, W57z, W58z, W59z, W60z;
  564. W00z = S0g+Ay;
  565. W01z = S1g+By;
  566. W02z = S2g+Cy;
  567. W03z = S3g+Dy;
  568. W04z = S4g+Ey;
  569. W05z = S5g+Fy;
  570. W06z = S6g+Gy;
  571. W07z = S7g+Hy;
  572. uint32_t Az = 0x6a09e667;
  573. uint32_t Bz = 0xbb67ae85;
  574. uint32_t Cz = 0x3c6ef372;
  575. uint32_t Dz = 0xa54ff53a;
  576. uint32_t Ez = 0x510e527f;
  577. uint32_t Fz = 0x9b05688c;
  578. uint32_t Gz = 0x1f83d9ab;
  579. uint32_t Hz = 0x5be0cd19;
  580. temp = 0xf377ed68+W00z;
  581. Dz += temp;
  582. Hz = temp + 0x08909ae5;
  583. temp = 0x1f83d9ab+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(0x9b05688c^(Dz&0xca0b3af3))+0x71374491+W01z;
  584. Cz += temp;
  585. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&0x6a09e667)|(0xbb67ae85&(Hz|0x6a09e667)));
  586. temp = 0x9b05688c+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(0x510e527f^(Cz&(Dz^0x510e527f)))+0xB5C0FBCF+W02z;
  587. Bz += temp;
  588. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(0x6a09e667&(Gz|Hz)));
  589. temp = 0x510e527f+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0xE9B5DBA5+W03z;
  590. Az += temp;
  591. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  592. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0x3956C25B+W04z;
  593. Hz += temp;
  594. Dz = temp + (ROTR(Ez,2)^ROTR(Ez,13)^ROTR(Ez,22))+((Ez&Fz)|(Gz&(Ez|Fz)));
  595. temp = Cz+(ROTR(Hz,6)^ROTR(Hz,11)^ROTR(Hz,25))+(Bz^(Hz&(Az^Bz)))+0x59F111F1+W05z;
  596. Gz += temp;
  597. Cz = temp + (ROTR(Dz,2)^ROTR(Dz,13)^ROTR(Dz,22))+((Dz&Ez)|(Fz&(Dz|Ez)));
  598. temp = Bz+(ROTR(Gz,6)^ROTR(Gz,11)^ROTR(Gz,25))+(Az^(Gz&(Hz^Az)))+0x923F82A4+W06z;
  599. Fz += temp;
  600. Bz = temp + (ROTR(Cz,2)^ROTR(Cz,13)^ROTR(Cz,22))+((Cz&Dz)|(Ez&(Cz|Dz)));
  601. temp = Az+(ROTR(Fz,6)^ROTR(Fz,11)^ROTR(Fz,25))+(Hz^(Fz&(Gz^Hz)))+0xAB1C5ED5+W07z;
  602. Ez += temp;
  603. Az = temp + (ROTR(Bz,2)^ROTR(Bz,13)^ROTR(Bz,22))+((Bz&Cz)|(Dz&(Bz|Cz)));
  604. W08z = 0x80000000;
  605. temp = Hz+(ROTR(Ez,6)^ROTR(Ez,11)^ROTR(Ez,25))+(Gz^(Ez&(Fz^Gz)))+0x5807aa98;
  606. Dz += temp;
  607. Hz = temp + (ROTR(Az,2)^ROTR(Az,13)^ROTR(Az,22))+((Az&Bz)|(Cz&(Az|Bz)));
  608. W09z = 0;
  609. temp = Gz+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(Fz^(Dz&(Ez^Fz)))+0x12835B01;
  610. Cz += temp;
  611. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&Az)|(Bz&(Hz|Az)));
  612. W10z = 0;
  613. temp = Fz+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(Ez^(Cz&(Dz^Ez)))+0x243185BE;
  614. Bz += temp;
  615. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(Az&(Gz|Hz)));
  616. W11z = 0;
  617. temp = Ez+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0x550C7DC3;
  618. Az += temp;
  619. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  620. W12z = 0;
  621. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0x72BE5D74;
  622. Hz += temp;
  623. Dz = temp + (ROTR(Ez,2)^ROTR(Ez,13)^ROTR(Ez,22))+((Ez&Fz)|(Gz&(Ez|Fz)));
  624. W13z = 0;
  625. temp = Cz+(ROTR(Hz,6)^ROTR(Hz,11)^ROTR(Hz,25))+(Bz^(Hz&(Az^Bz)))+0x80DEB1FE;
  626. Gz += temp;
  627. Cz = temp + (ROTR(Dz,2)^ROTR(Dz,13)^ROTR(Dz,22))+((Dz&Ez)|(Fz&(Dz|Ez)));
  628. W14z = 0;
  629. temp = Bz+(ROTR(Gz,6)^ROTR(Gz,11)^ROTR(Gz,25))+(Az^(Gz&(Hz^Az)))+0x9BDC06A7;
  630. Fz += temp;
  631. Bz = temp + (ROTR(Cz,2)^ROTR(Cz,13)^ROTR(Cz,22))+((Cz&Dz)|(Ez&(Cz|Dz)));
  632. W15z = 0x00000100;
  633. temp = Az+(ROTR(Fz,6)^ROTR(Fz,11)^ROTR(Fz,25))+(Hz^(Fz&(Gz^Hz)))+0xc19bf274;
  634. Ez += temp;
  635. Az = temp + (ROTR(Bz,2)^ROTR(Bz,13)^ROTR(Bz,22))+((Bz&Cz)|(Dz&(Bz|Cz)));
  636. W16z = (ROTR(W01z,7)^ROTR(W01z,18)^SHR(W01z,3))+W00z;
  637. temp = Hz+(ROTR(Ez,6)^ROTR(Ez,11)^ROTR(Ez,25))+(Gz^(Ez&(Fz^Gz)))+0xE49B69C1+W16z;
  638. Dz += temp;
  639. Hz = temp + (ROTR(Az,2)^ROTR(Az,13)^ROTR(Az,22))+((Az&Bz)|(Cz&(Az|Bz)));
  640. W17z = 0x00a00000+(ROTR(W02z,7)^ROTR(W02z,18)^SHR(W02z,3))+W01z;
  641. temp = Gz+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(Fz^(Dz&(Ez^Fz)))+0xEFBE4786+W17z;
  642. Cz += temp;
  643. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&Az)|(Bz&(Hz|Az)));
  644. W18z = (ROTR(W16z,17)^ROTR(W16z,19)^SHR(W16z,10))+(ROTR(W03z,7)^ROTR(W03z,18)^SHR(W03z,3))+W02z;
  645. temp = Fz+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(Ez^(Cz&(Dz^Ez)))+0x0FC19DC6+W18z;
  646. Bz += temp;
  647. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(Az&(Gz|Hz)));
  648. W19z = (ROTR(W17z,17)^ROTR(W17z,19)^SHR(W17z,10))+(ROTR(W04z,7)^ROTR(W04z,18)^SHR(W04z,3))+W03z;
  649. temp = Ez+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0x240CA1CC+W19z;
  650. Az += temp;
  651. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  652. W20z = (ROTR(W18z,17)^ROTR(W18z,19)^SHR(W18z,10))+(ROTR(W05z,7)^ROTR(W05z,18)^SHR(W05z,3))+W04z;
  653. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0x2DE92C6F+W20z;
  654. Hz += temp;
  655. Dz = temp + (ROTR(Ez,2)^ROTR(Ez,13)^ROTR(Ez,22))+((Ez&Fz)|(Gz&(Ez|Fz)));
  656. W21z = (ROTR(W19z,17)^ROTR(W19z,19)^SHR(W19z,10))+(ROTR(W06z,7)^ROTR(W06z,18)^SHR(W06z,3))+W05z;
  657. temp = Cz+(ROTR(Hz,6)^ROTR(Hz,11)^ROTR(Hz,25))+(Bz^(Hz&(Az^Bz)))+0x4A7484AA+W21z;
  658. Gz += temp;
  659. Cz = temp + (ROTR(Dz,2)^ROTR(Dz,13)^ROTR(Dz,22))+((Dz&Ez)|(Fz&(Dz|Ez)));
  660. W22z = (ROTR(W20z,17)^ROTR(W20z,19)^SHR(W20z,10))+0x00000100+(ROTR(W07z,7)^ROTR(W07z,18)^SHR(W07z,3))+W06z;
  661. temp = Bz+(ROTR(Gz,6)^ROTR(Gz,11)^ROTR(Gz,25))+(Az^(Gz&(Hz^Az)))+0x5CB0A9DC+W22z;
  662. Fz += temp;
  663. Bz = temp + (ROTR(Cz,2)^ROTR(Cz,13)^ROTR(Cz,22))+((Cz&Dz)|(Ez&(Cz|Dz)));
  664. W23z = (ROTR(W21z,17)^ROTR(W21z,19)^SHR(W21z,10))+W16z+0x11002000+W07z;
  665. temp = Az+(ROTR(Fz,6)^ROTR(Fz,11)^ROTR(Fz,25))+(Hz^(Fz&(Gz^Hz)))+0x76F988DA+W23z;
  666. Ez += temp;
  667. Az = temp + (ROTR(Bz,2)^ROTR(Bz,13)^ROTR(Bz,22))+((Bz&Cz)|(Dz&(Bz|Cz)));
  668. W24z = (ROTR(W22z,17)^ROTR(W22z,19)^SHR(W22z,10))+W17z+0x80000000;
  669. temp = Hz+(ROTR(Ez,6)^ROTR(Ez,11)^ROTR(Ez,25))+(Gz^(Ez&(Fz^Gz)))+0x983E5152+W24z;
  670. Dz += temp;
  671. Hz = temp + (ROTR(Az,2)^ROTR(Az,13)^ROTR(Az,22))+((Az&Bz)|(Cz&(Az|Bz)));
  672. W25z = (ROTR(W23z,17)^ROTR(W23z,19)^SHR(W23z,10))+W18z;
  673. temp = Gz+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(Fz^(Dz&(Ez^Fz)))+0xA831C66D+W25z;
  674. Cz += temp;
  675. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&Az)|(Bz&(Hz|Az)));
  676. W26z = (ROTR(W24z,17)^ROTR(W24z,19)^SHR(W24z,10))+W19z;
  677. temp = Fz+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(Ez^(Cz&(Dz^Ez)))+0xB00327C8+W26z;
  678. Bz += temp;
  679. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(Az&(Gz|Hz)));
  680. W27z = (ROTR(W25z,17)^ROTR(W25z,19)^SHR(W25z,10))+W20z;
  681. temp = Ez+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0xBF597FC7+W27z;
  682. Az += temp;
  683. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  684. W28z = (ROTR(W26z,17)^ROTR(W26z,19)^SHR(W26z,10))+W21z;
  685. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0xC6E00BF3+W28z;
  686. Hz += temp;
  687. Dz = temp + (ROTR(Ez,2)^ROTR(Ez,13)^ROTR(Ez,22))+((Ez&Fz)|(Gz&(Ez|Fz)));
  688. W29z = (ROTR(W27z,17)^ROTR(W27z,19)^SHR(W27z,10))+W22z;
  689. temp = Cz+(ROTR(Hz,6)^ROTR(Hz,11)^ROTR(Hz,25))+(Bz^(Hz&(Az^Bz)))+0xD5A79147+W29z;
  690. Gz += temp;
  691. Cz = temp + (ROTR(Dz,2)^ROTR(Dz,13)^ROTR(Dz,22))+((Dz&Ez)|(Fz&(Dz|Ez)));
  692. W30z = (ROTR(W28z,17)^ROTR(W28z,19)^SHR(W28z,10))+W23z+0x00400022;
  693. temp = Bz+(ROTR(Gz,6)^ROTR(Gz,11)^ROTR(Gz,25))+(Az^(Gz&(Hz^Az)))+0x06CA6351+W30z;
  694. Fz += temp;
  695. Bz = temp + (ROTR(Cz,2)^ROTR(Cz,13)^ROTR(Cz,22))+((Cz&Dz)|(Ez&(Cz|Dz)));
  696. W31z = (ROTR(W29z,17)^ROTR(W29z,19)^SHR(W29z,10))+W24z+(ROTR(W16z,7)^ROTR(W16z,18)^SHR(W16z,3))+0x00000100;
  697. temp = Az+(ROTR(Fz,6)^ROTR(Fz,11)^ROTR(Fz,25))+(Hz^(Fz&(Gz^Hz)))+0x14292967+W31z;
  698. Ez += temp;
  699. Az = temp + (ROTR(Bz,2)^ROTR(Bz,13)^ROTR(Bz,22))+((Bz&Cz)|(Dz&(Bz|Cz)));
  700. W32z = (ROTR(W30z,17)^ROTR(W30z,19)^SHR(W30z,10))+W25z+(ROTR(W17z,7)^ROTR(W17z,18)^SHR(W17z,3))+W16z;
  701. temp = Hz+(ROTR(Ez,6)^ROTR(Ez,11)^ROTR(Ez,25))+(Gz^(Ez&(Fz^Gz)))+0x27B70A85+W32z;
  702. Dz += temp;
  703. Hz = temp + (ROTR(Az,2)^ROTR(Az,13)^ROTR(Az,22))+((Az&Bz)|(Cz&(Az|Bz)));
  704. W33z = (ROTR(W31z,17)^ROTR(W31z,19)^SHR(W31z,10))+W26z+(ROTR(W18z,7)^ROTR(W18z,18)^SHR(W18z,3))+W17z;
  705. temp = Gz+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(Fz^(Dz&(Ez^Fz)))+0x2E1B2138+W33z;
  706. Cz += temp;
  707. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&Az)|(Bz&(Hz|Az)));
  708. W34z = (ROTR(W32z,17)^ROTR(W32z,19)^SHR(W32z,10))+W27z+(ROTR(W19z,7)^ROTR(W19z,18)^SHR(W19z,3))+W18z;
  709. temp = Fz+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(Ez^(Cz&(Dz^Ez)))+0x4D2C6DFC+W34z;
  710. Bz += temp;
  711. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(Az&(Gz|Hz)));
  712. W35z = (ROTR(W33z,17)^ROTR(W33z,19)^SHR(W33z,10))+W28z+(ROTR(W20z,7)^ROTR(W20z,18)^SHR(W20z,3))+W19z;
  713. temp = Ez+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0x53380D13+W35z;
  714. Az += temp;
  715. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  716. W36z = (ROTR(W34z,17)^ROTR(W34z,19)^SHR(W34z,10))+W29z+(ROTR(W21z,7)^ROTR(W21z,18)^SHR(W21z,3))+W20z;
  717. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0x650A7354+W36z;
  718. Hz += temp;
  719. Dz = temp + (ROTR(Ez,2)^ROTR(Ez,13)^ROTR(Ez,22))+((Ez&Fz)|(Gz&(Ez|Fz)));
  720. W37z = (ROTR(W35z,17)^ROTR(W35z,19)^SHR(W35z,10))+W30z+(ROTR(W22z,7)^ROTR(W22z,18)^SHR(W22z,3))+W21z;
  721. temp = Cz+(ROTR(Hz,6)^ROTR(Hz,11)^ROTR(Hz,25))+(Bz^(Hz&(Az^Bz)))+0x766A0ABB+W37z;
  722. Gz += temp;
  723. Cz = temp + (ROTR(Dz,2)^ROTR(Dz,13)^ROTR(Dz,22))+((Dz&Ez)|(Fz&(Dz|Ez)));
  724. W38z = (ROTR(W36z,17)^ROTR(W36z,19)^SHR(W36z,10))+W31z+(ROTR(W23z,7)^ROTR(W23z,18)^SHR(W23z,3))+W22z;
  725. temp = Bz+(ROTR(Gz,6)^ROTR(Gz,11)^ROTR(Gz,25))+(Az^(Gz&(Hz^Az)))+0x81C2C92E +W38z;
  726. Fz += temp;
  727. Bz = temp + (ROTR(Cz,2)^ROTR(Cz,13)^ROTR(Cz,22))+((Cz&Dz)|(Ez&(Cz|Dz)));
  728. W39z = (ROTR(W37z,17)^ROTR(W37z,19)^SHR(W37z,10))+W32z+(ROTR(W24z,7)^ROTR(W24z,18)^SHR(W24z,3))+W23z;
  729. temp = Az+(ROTR(Fz,6)^ROTR(Fz,11)^ROTR(Fz,25))+(Hz^(Fz&(Gz^Hz)))+0x92722C85+W39z;
  730. Ez += temp;
  731. Az = temp + (ROTR(Bz,2)^ROTR(Bz,13)^ROTR(Bz,22))+((Bz&Cz)|(Dz&(Bz|Cz)));
  732. W40z = (ROTR(W38z,17)^ROTR(W38z,19)^SHR(W38z,10))+W33z+(ROTR(W25z,7)^ROTR(W25z,18)^SHR(W25z,3))+W24z;
  733. temp = Hz+(ROTR(Ez,6)^ROTR(Ez,11)^ROTR(Ez,25))+(Gz^(Ez&(Fz^Gz)))+0xA2BFE8A1+W40z;
  734. Dz += temp;
  735. Hz = temp + (ROTR(Az,2)^ROTR(Az,13)^ROTR(Az,22))+((Az&Bz)|(Cz&(Az|Bz)));
  736. W41z = (ROTR(W39z,17)^ROTR(W39z,19)^SHR(W39z,10))+W34z+(ROTR(W26z,7)^ROTR(W26z,18)^SHR(W26z,3))+W25z;
  737. temp = Gz+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(Fz^(Dz&(Ez^Fz)))+0xA81A664B+W41z;
  738. Cz += temp;
  739. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&Az)|(Bz&(Hz|Az)));
  740. W42z = (ROTR(W40z,17)^ROTR(W40z,19)^SHR(W40z,10))+W35z+(ROTR(W27z,7)^ROTR(W27z,18)^SHR(W27z,3))+W26z;
  741. temp = Fz+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(Ez^(Cz&(Dz^Ez)))+0xC24B8B70+W42z;
  742. Bz += temp;
  743. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(Az&(Gz|Hz)));
  744. W43z = (ROTR(W41z,17)^ROTR(W41z,19)^SHR(W41z,10))+W36z+(ROTR(W28z,7)^ROTR(W28z,18)^SHR(W28z,3))+W27z;
  745. temp = Ez+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0xC76C51A3+W43z;
  746. Az += temp;
  747. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  748. W44z = (ROTR(W42z,17)^ROTR(W42z,19)^SHR(W42z,10))+W37z+(ROTR(W29z,7)^ROTR(W29z,18)^SHR(W29z,3))+W28z;
  749. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0xD192E819+W44z;
  750. Hz += temp;
  751. Dz = temp + (ROTR(Ez,2)^ROTR(Ez,13)^ROTR(Ez,22))+((Ez&Fz)|(Gz&(Ez|Fz)));
  752. W45z = (ROTR(W43z,17)^ROTR(W43z,19)^SHR(W43z,10))+W38z+(ROTR(W30z,7)^ROTR(W30z,18)^SHR(W30z,3))+W29z;
  753. temp = Cz+(ROTR(Hz,6)^ROTR(Hz,11)^ROTR(Hz,25))+(Bz^(Hz&(Az^Bz)))+0xD6990624+W45z;
  754. Gz += temp;
  755. Cz = temp + (ROTR(Dz,2)^ROTR(Dz,13)^ROTR(Dz,22))+((Dz&Ez)|(Fz&(Dz|Ez)));
  756. W46z = (ROTR(W44z,17)^ROTR(W44z,19)^SHR(W44z,10))+W39z+(ROTR(W31z,7)^ROTR(W31z,18)^SHR(W31z,3))+W30z;
  757. temp = Bz+(ROTR(Gz,6)^ROTR(Gz,11)^ROTR(Gz,25))+(Az^(Gz&(Hz^Az)))+0xF40E3585+W46z;
  758. Fz += temp;
  759. Bz = temp + (ROTR(Cz,2)^ROTR(Cz,13)^ROTR(Cz,22))+((Cz&Dz)|(Ez&(Cz|Dz)));
  760. W47z = (ROTR(W45z,17)^ROTR(W45z,19)^SHR(W45z,10))+W40z+(ROTR(W32z,7)^ROTR(W32z,18)^SHR(W32z,3))+W31z;
  761. temp = Az+(ROTR(Fz,6)^ROTR(Fz,11)^ROTR(Fz,25))+(Hz^(Fz&(Gz^Hz)))+0x106AA070+W47z;
  762. Ez += temp;
  763. Az = temp + (ROTR(Bz,2)^ROTR(Bz,13)^ROTR(Bz,22))+((Bz&Cz)|(Dz&(Bz|Cz)));
  764. W48z = (ROTR(W46z,17)^ROTR(W46z,19)^SHR(W46z,10))+W41z+(ROTR(W33z,7)^ROTR(W33z,18)^SHR(W33z,3))+W32z;
  765. temp = Hz+(ROTR(Ez,6)^ROTR(Ez,11)^ROTR(Ez,25))+(Gz^(Ez&(Fz^Gz)))+0x19A4C116+W48z;
  766. Dz += temp;
  767. Hz = temp + (ROTR(Az,2)^ROTR(Az,13)^ROTR(Az,22))+((Az&Bz)|(Cz&(Az|Bz)));
  768. W49z = (ROTR(W47z,17)^ROTR(W47z,19)^SHR(W47z,10))+W42z+(ROTR(W34z,7)^ROTR(W34z,18)^SHR(W34z,3))+W33z;
  769. temp = Gz+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(Fz^(Dz&(Ez^Fz)))+0x1E376C08+W49z;
  770. Cz += temp;
  771. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&Az)|(Bz&(Hz|Az)));
  772. W50z = (ROTR(W48z,17)^ROTR(W48z,19)^SHR(W48z,10))+W43z+(ROTR(W35z,7)^ROTR(W35z,18)^SHR(W35z,3))+W34z;
  773. temp = Fz+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(Ez^(Cz&(Dz^Ez)))+0x2748774C+W50z;
  774. Bz += temp;
  775. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(Az&(Gz|Hz)));
  776. W51z = (ROTR(W49z,17)^ROTR(W49z,19)^SHR(W49z,10))+W44z+(ROTR(W36z,7)^ROTR(W36z,18)^SHR(W36z,3))+W35z;
  777. temp = Ez+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0x34B0BCB5+W51z;
  778. Az += temp;
  779. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  780. W52z = (ROTR(W50z,17)^ROTR(W50z,19)^SHR(W50z,10))+W45z+(ROTR(W37z,7)^ROTR(W37z,18)^SHR(W37z,3))+W36z;
  781. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0x391C0CB3+W52z;
  782. Hz += temp;
  783. Dz = temp + (ROTR(Ez,2)^ROTR(Ez,13)^ROTR(Ez,22))+((Ez&Fz)|(Gz&(Ez|Fz)));
  784. W53z = (ROTR(W51z,17)^ROTR(W51z,19)^SHR(W51z,10))+W46z+(ROTR(W38z,7)^ROTR(W38z,18)^SHR(W38z,3))+W37z;
  785. temp = Cz+(ROTR(Hz,6)^ROTR(Hz,11)^ROTR(Hz,25))+(Bz^(Hz&(Az^Bz)))+0x4ED8AA4A+W53z;
  786. Gz += temp;
  787. Cz = temp + (ROTR(Dz,2)^ROTR(Dz,13)^ROTR(Dz,22))+((Dz&Ez)|(Fz&(Dz|Ez)));
  788. W54z = (ROTR(W52z,17)^ROTR(W52z,19)^SHR(W52z,10))+W47z+(ROTR(W39z,7)^ROTR(W39z,18)^SHR(W39z,3))+W38z;
  789. temp = Bz+(ROTR(Gz,6)^ROTR(Gz,11)^ROTR(Gz,25))+(Az^(Gz&(Hz^Az)))+0x5B9CCA4F+W54z;
  790. Fz += temp;
  791. Bz = temp + (ROTR(Cz,2)^ROTR(Cz,13)^ROTR(Cz,22))+((Cz&Dz)|(Ez&(Cz|Dz)));
  792. W55z = (ROTR(W53z,17)^ROTR(W53z,19)^SHR(W53z,10))+W48z+(ROTR(W40z,7)^ROTR(W40z,18)^SHR(W40z,3))+W39z;
  793. temp = Az+(ROTR(Fz,6)^ROTR(Fz,11)^ROTR(Fz,25))+(Hz^(Fz&(Gz^Hz)))+0x682E6FF3+W55z;
  794. Ez += temp;
  795. Az = temp + (ROTR(Bz,2)^ROTR(Bz,13)^ROTR(Bz,22))+((Bz&Cz)|(Dz&(Bz|Cz)));
  796. W56z = (ROTR(W54z,17)^ROTR(W54z,19)^SHR(W54z,10))+W49z+(ROTR(W41z,7)^ROTR(W41z,18)^SHR(W41z,3))+W40z;
  797. temp = Hz+(ROTR(Ez,6)^ROTR(Ez,11)^ROTR(Ez,25))+(Gz^(Ez&(Fz^Gz)))+0x748F82EE +W56z;
  798. Dz += temp;
  799. Hz = temp + (ROTR(Az,2)^ROTR(Az,13)^ROTR(Az,22))+((Az&Bz)|(Cz&(Az|Bz)));
  800. W57z = (ROTR(W55z,17)^ROTR(W55z,19)^SHR(W55z,10))+W50z+(ROTR(W42z,7)^ROTR(W42z,18)^SHR(W42z,3))+W41z;
  801. temp = Gz+(ROTR(Dz,6)^ROTR(Dz,11)^ROTR(Dz,25))+(Fz^(Dz&(Ez^Fz)))+0x78A5636F+W57z;
  802. Cz += temp;
  803. Gz = temp + (ROTR(Hz,2)^ROTR(Hz,13)^ROTR(Hz,22))+((Hz&Az)|(Bz&(Hz|Az)));
  804. W58z = (ROTR(W56z,17)^ROTR(W56z,19)^SHR(W56z,10))+W51z+(ROTR(W43z,7)^ROTR(W43z,18)^SHR(W43z,3))+W42z;
  805. temp = Fz+(ROTR(Cz,6)^ROTR(Cz,11)^ROTR(Cz,25))+(Ez^(Cz&(Dz^Ez)))+0x84C87814+W58z;
  806. Bz += temp;
  807. Fz = temp + (ROTR(Gz,2)^ROTR(Gz,13)^ROTR(Gz,22))+((Gz&Hz)|(Az&(Gz|Hz)));
  808. W59z = (ROTR(W57z,17)^ROTR(W57z,19)^SHR(W57z,10))+W52z+(ROTR(W44z,7)^ROTR(W44z,18)^SHR(W44z,3))+W43z;
  809. temp = Ez+(ROTR(Bz,6)^ROTR(Bz,11)^ROTR(Bz,25))+(Dz^(Bz&(Cz^Dz)))+0x8CC70208+W59z;
  810. Az += temp;
  811. Ez = temp + (ROTR(Fz,2)^ROTR(Fz,13)^ROTR(Fz,22))+((Fz&Gz)|(Hz&(Fz|Gz)));
  812. W60z = (ROTR(W58z,17)^ROTR(W58z,19)^SHR(W58z,10))+W53z+(ROTR(W45z,7)^ROTR(W45z,18)^SHR(W45z,3))+W44z;
  813. temp = Dz+(ROTR(Az,6)^ROTR(Az,11)^ROTR(Az,25))+(Cz^(Az&(Bz^Cz)))+0x90BEFFFA+W60z;
  814. Hz += temp;
  815.  
  816. if (Hz == 0xa41f32e7) printf("nonce=0x%08x\n", __swab32(nonce));
  817. } while(nonce++ != finish);
  818.  
  819. shown(--nonce);
  820.  
  821. }
  822. void search(uint32_t prev[8], uint32_t merkl[8], uint32_t time, uint32_t diff, uint32_t nonce, uint32_t finish)
  823. {
  824. uint32_t p[8];
  825. uint32_t m[8];
  826. uint32_t t;
  827. uint32_t d;
  828. p[7] = __swab32(prev[0]);
  829. p[6] = __swab32(prev[1]);
  830. p[5] = __swab32(prev[2]);
  831. p[4] = __swab32(prev[3]);
  832. p[3] = __swab32(prev[4]);
  833. p[2] = __swab32(prev[5]);
  834. p[1] = __swab32(prev[6]);
  835. p[0] = __swab32(prev[7]);
  836. m[7] = __swab32(merkl[0]);
  837. m[6] = __swab32(merkl[1]);
  838. m[5] = __swab32(merkl[2]);
  839. m[4] = __swab32(merkl[3]);
  840. m[3] = __swab32(merkl[4]);
  841. m[2] = __swab32(merkl[5]);
  842. m[1] = __swab32(merkl[6]);
  843. m[0] = __swab32(merkl[7]);
  844. t = __swab32(time);
  845. d = __swab32(diff);
  846. swsearch(p, m, t, d, nonce, finish);
  847. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement