/* * DiabloMiner - OpenCL miner for BitCoin * Copyright (C) 2010, 2011, 2012 Patrick McFarland * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more detail). * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifdef VECTORS4 typedef uint4 z; #elif defined(VECTORS2) typedef uint2 z; #else typedef uint z; #endif #ifdef BITALIGN #pragma OPENCL EXTENSION cl_amd_media_ops : enable #define Zrotr(a, b) amd_bitalign((z)a, (z)a, (z)(32 - b)) #else #define Zrotr(a, b) rotate((z)a, (z)b) #endif #ifdef BFI_INT #define ZCh(a, b, c) amd_bytealign(a, b, c) #define ZMa(a, b, c) amd_bytealign((c ^ a), (b), (a)) #else #define ZCh(a, b, c) bitselect((z)c, (z)b, (z)a) #define ZMa(a, b, c) bitselect((z)a, (z)b, (z)c ^ (z)a) #endif #define ZR25(n) ((Zrotr((n), 25) ^ Zrotr((n), 14) ^ ((n) >> 3U))) #define ZR15(n) ((Zrotr((n), 15) ^ Zrotr((n), 13) ^ ((n) >> 10U))) #define ZR26(n) ((Zrotr((n), 26) ^ Zrotr((n), 21) ^ Zrotr((n), 7))) #define ZR30(n) ((Zrotr((n), 30) ^ Zrotr((n), 19) ^ Zrotr((n), 10))) __kernel __attribute__((reqd_work_group_size(WORKSIZE, 1, 1))) void search( const z base, const uint PreVal4_state0, const uint PreVal4_state0_k7, const uint PreVal4_T1, const uint W18, const uint W19, const uint W16, const uint W17, const uint W16_plus_K16, const uint W17_plus_K17, const uint W31, const uint W32, const uint d1, const uint b1, const uint c1, const uint h1, const uint f1, const uint g1, const uint c1_plus_k5, const uint b1_plus_k6, const uint state0, const uint state1, const uint state2, const uint state3, const uint state4, const uint state5, const uint state6, const uint state7, __global uint * output) { z ZA[930]; const z Znonce = base + (uint)(get_global_id(0)); ZA[15]=Znonce+PreVal4_state0; ZA[16]=(ZCh(ZA[15],b1,c1)+d1)+ZR26(ZA[15]); ZA[26]=Znonce+PreVal4_T1; ZA[17]=ZA[16]+h1; ZA[19]=(ZCh(ZA[17],ZA[15],b1)+c1_plus_k5)+ZR26(ZA[17]); ZA[28]=ZMa(f1,g1,ZA[26])+ZR30(ZA[26])+ZA[16]; ZA[20]=ZA[19]+g1; ZA[22]=(ZCh(ZA[20],ZA[17],ZA[15])+b1_plus_k6)+ZR26(ZA[20]); ZA[29]=ZMa(ZA[26],f1,ZA[28])+ZR30(ZA[28])+ZA[19]; ZA[23]=ZA[22]+f1; ZA[30]=ZMa(ZA[28],ZA[26],ZA[29])+ZR30(ZA[29])+ZA[22]; ZA[181]=Znonce+PreVal4_state0_k7+ZCh(ZA[23],ZA[20],ZA[17])+ZR26(ZA[23]); ZA[182]=ZA[181]+ZA[26]; ZA[183]=ZA[181]+ZMa(ZA[29],ZA[28],ZA[30])+ZR30(ZA[30]); ZA[186]=(ZCh(ZA[182],ZA[23],ZA[20])+ZA[17]+0xd807aa98U)+ZR26(ZA[182]); ZA[187]=ZA[186]+ZA[28]; ZA[188]=ZA[186]+ZMa(ZA[30],ZA[29],ZA[183])+ZR30(ZA[183]); ZA[191]=(ZCh(ZA[187],ZA[182],ZA[23])+ZA[20]+0x12835b01U)+ZR26(ZA[187]); ZA[192]=ZA[191]+ZA[29]; ZA[193]=ZA[191]+ZMa(ZA[183],ZA[30],ZA[188])+ZR30(ZA[188]); ZA[196]=(ZCh(ZA[192],ZA[187],ZA[182])+ZA[23]+0x243185beU)+ZR26(ZA[192]); ZA[197]=ZA[196]+ZA[30]; ZA[198]=ZA[196]+ZMa(ZA[188],ZA[183],ZA[193])+ZR30(ZA[193]); ZA[201]=(ZCh(ZA[197],ZA[192],ZA[187])+ZA[182]+0x550c7dc3U)+ZR26(ZA[197]); ZA[202]=ZA[201]+ZA[183]; ZA[203]=ZA[201]+ZMa(ZA[193],ZA[188],ZA[198])+ZR30(ZA[198]); ZA[206]=(ZCh(ZA[202],ZA[197],ZA[192])+ZA[187]+0x72be5d74U)+ZR26(ZA[202]); ZA[207]=ZA[206]+ZA[188]; ZA[208]=ZA[206]+ZMa(ZA[198],ZA[193],ZA[203])+ZR30(ZA[203]); ZA[211]=(ZCh(ZA[207],ZA[202],ZA[197])+ZA[192]+0x80deb1feU)+ZR26(ZA[207]); ZA[212]=ZA[193]+ZA[211]; ZA[213]=ZA[211]+ZMa(ZA[203],ZA[198],ZA[208])+ZR30(ZA[208]); ZA[216]=(ZCh(ZA[212],ZA[207],ZA[202])+ZA[197]+0x9bdc06a7U)+ZR26(ZA[212]); ZA[217]=ZA[198]+ZA[216]; ZA[218]=ZA[216]+ZMa(ZA[208],ZA[203],ZA[213])+ZR30(ZA[213]); ZA[220]=(ZCh(ZA[217],ZA[212],ZA[207])+ZA[202]+0xc19bf3f4U)+ZR26(ZA[217]); ZA[222]=ZA[203]+ZA[220]; ZA[223]=ZA[220]+ZMa(ZA[213],ZA[208],ZA[218])+ZR30(ZA[218]); ZA[226]=(ZCh(ZA[222],ZA[217],ZA[212])+ZA[207]+W16_plus_K16)+ZR26(ZA[222]); ZA[0]=ZR25(Znonce)+W18; ZA[228]=ZA[226]+ZMa(ZA[218],ZA[213],ZA[223])+ZR30(ZA[223]); ZA[227]=ZA[208]+ZA[226]; ZA[231]=(ZCh(ZA[227],ZA[222],ZA[217])+ZA[212]+W17_plus_K17)+ZR26(ZA[227]); ZA[232]=ZA[213]+ZA[231]; ZA[233]=ZA[231]+ZMa(ZA[223],ZA[218],ZA[228])+ZR30(ZA[228]); ZA[32]=Znonce+W19; ZA[236]=(ZCh(ZA[232],ZA[227],ZA[222])+ZA[217]+ZA[0]+0x0fc19dc6U)+ZR26(ZA[232]); ZA[3]=ZR15(ZA[0])+0x80000000U; ZA[238]=ZA[236]+ZMa(ZA[228],ZA[223],ZA[233])+ZR30(ZA[233]); ZA[237]=ZA[218]+ZA[236]; ZA[241]=(ZCh(ZA[237],ZA[232],ZA[227])+ZA[222]+ZA[32]+0x240ca1ccU)+ZR26(ZA[237]); ZA[35]=ZR15(ZA[32]); ZA[243]=ZA[241]+ZMa(ZA[233],ZA[228],ZA[238])+ZR30(ZA[238]); ZA[242]=ZA[223]+ZA[241]; ZA[246]=(ZCh(ZA[242],ZA[237],ZA[232])+ZA[227]+ZA[3]+0x2de92c6fU)+ZR26(ZA[242]); ZA[7]=ZR15(ZA[3])+0x00000280U; ZA[248]=ZA[246]+ZMa(ZA[238],ZA[233],ZA[243])+ZR30(ZA[243]); ZA[247]=ZA[228]+ZA[246]; ZA[251]=(ZCh(ZA[247],ZA[242],ZA[237])+ZA[232]+ZA[35]+0x4a7484aaU)+ZR26(ZA[247]); ZA[38]=ZR15(ZA[35])+W16; ZA[253]=ZA[251]+ZMa(ZA[243],ZA[238],ZA[248])+ZR30(ZA[248]); ZA[252]=ZA[233]+ZA[251]; ZA[256]=(ZCh(ZA[252],ZA[247],ZA[242])+ZA[237]+ZA[7]+0x5cb0a9dcU)+ZR26(ZA[252]); ZA[10]=ZR15(ZA[7])+W17; ZA[258]=ZA[256]+ZMa(ZA[248],ZA[243],ZA[253])+ZR30(ZA[253]); ZA[257]=ZA[238]+ZA[256]; ZA[261]=(ZCh(ZA[257],ZA[252],ZA[247])+ZA[242]+ZA[38]+0x76f988daU)+ZR26(ZA[257]); ZA[43]=ZR15(ZA[38])+ZA[0]; ZA[263]=ZA[261]+ZMa(ZA[253],ZA[248],ZA[258])+ZR30(ZA[258]); ZA[262]=ZA[243]+ZA[261]; ZA[266]=(ZCh(ZA[262],ZA[257],ZA[252])+ZA[247]+ZA[10]+0x983e5152U)+ZR26(ZA[262]); ZA[52]=ZR15(ZA[10])+ZA[32]; ZA[267]=ZA[248]+ZA[266]; ZA[268]=ZA[266]+ZMa(ZA[258],ZA[253],ZA[263])+ZR30(ZA[263]); ZA[271]=(ZCh(ZA[267],ZA[262],ZA[257])+ZA[252]+ZA[43]+0xa831c66dU)+ZR26(ZA[267]); ZA[48]=ZR15(ZA[43])+ZA[3]; ZA[273]=ZA[271]+ZMa(ZA[263],ZA[258],ZA[268])+ZR30(ZA[268]); ZA[272]=ZA[253]+ZA[271]; ZA[276]=(ZCh(ZA[272],ZA[267],ZA[262])+ZA[257]+ZA[52]+0xb00327c8U)+ZR26(ZA[272]); ZA[61]=ZR15(ZA[52])+ZA[35]; ZA[278]=ZA[276]+ZMa(ZA[268],ZA[263],ZA[273])+ZR30(ZA[273]); ZA[277]=ZA[258]+ZA[276]; ZA[281]=(ZCh(ZA[277],ZA[272],ZA[267])+ZA[262]+ZA[48]+0xbf597fc7U)+ZR26(ZA[277]); ZA[53]=ZR15(ZA[48])+ZA[7]; ZA[283]=ZA[281]+ZMa(ZA[273],ZA[268],ZA[278])+ZR30(ZA[278]); ZA[282]=ZA[263]+ZA[281]; ZA[286]=(ZCh(ZA[282],ZA[277],ZA[272])+ZA[267]+ZA[61]+0xc6e00bf3U)+ZR26(ZA[282]); ZA[66]=ZR15(ZA[61])+ZA[38]+0x00A00055U; ZA[288]=ZA[286]+ZMa(ZA[278],ZA[273],ZA[283])+ZR30(ZA[283]); ZA[287]=ZA[268]+ZA[286]; ZA[291]=(ZCh(ZA[287],ZA[282],ZA[277])+ZA[272]+ZA[53]+0xd5a79147U)+ZR26(ZA[287]); ZA[67]=ZR15(ZA[53])+ZA[10]+W31; ZA[293]=ZA[291]+ZMa(ZA[283],ZA[278],ZA[288])+ZR30(ZA[288]); ZA[292]=ZA[273]+ZA[291]; ZA[296]=(ZCh(ZA[292],ZA[287],ZA[282])+ZA[277]+ZA[66]+0x06ca6351U)+ZR26(ZA[292]); ZA[75]=ZR15(ZA[66])+ZA[43]+W32; ZA[298]=ZA[296]+ZMa(ZA[288],ZA[283],ZA[293])+ZR30(ZA[293]); ZA[297]=ZA[278]+ZA[296]; ZA[301]=(ZCh(ZA[297],ZA[292],ZA[287])+ZA[282]+ZA[67]+0x14292967U)+ZR26(ZA[297]); ZA[70]=ZR15(ZA[67])+ZA[52]+ZR25(ZA[0])+W17; ZA[302]=ZA[283]+ZA[301]; ZA[303]=ZA[301]+ZMa(ZA[293],ZA[288],ZA[298])+ZR30(ZA[298]); ZA[306]=(ZCh(ZA[302],ZA[297],ZA[292])+ZA[287]+ZA[75]+0x27b70a85U)+ZR26(ZA[302]); ZA[78]=ZR15(ZA[75])+ZR25(ZA[32])+ZA[0]+ZA[48]; ZA[308]=ZA[306]+ZMa(ZA[298],ZA[293],ZA[303])+ZR30(ZA[303]); ZA[307]=ZA[288]+ZA[306]; ZA[311]=(ZCh(ZA[307],ZA[302],ZA[297])+ZA[292]+ZA[70]+0x2e1b2138U)+ZR26(ZA[307]); ZA[79]=ZR15(ZA[70])+ZA[32]+ZR25(ZA[3])+ZA[61]; ZA[312]=ZA[293]+ZA[311]; ZA[313]=ZA[311]+ZMa(ZA[303],ZA[298],ZA[308])+ZR30(ZA[308]); ZA[316]=(ZCh(ZA[312],ZA[307],ZA[302])+ZA[297]+ZA[78]+0x4d2c6dfcU)+ZR26(ZA[312]); ZA[87]=ZR15(ZA[78])+ZR25(ZA[35])+ZA[3]+ZA[53]; ZA[318]=ZA[316]+ZMa(ZA[308],ZA[303],ZA[313])+ZR30(ZA[313]); ZA[317]=ZA[298]+ZA[316]; ZA[321]=(ZCh(ZA[317],ZA[312],ZA[307])+ZA[302]+ZA[79]+0x53380d13U)+ZR26(ZA[317]); ZA[88]=ZR15(ZA[79])+ZA[35]+ZR25(ZA[7])+ZA[66]; ZA[322]=ZA[303]+ZA[321]; ZA[323]=ZA[321]+ZMa(ZA[313],ZA[308],ZA[318])+ZR30(ZA[318]); ZA[326]=(ZCh(ZA[322],ZA[317],ZA[312])+ZA[307]+ZA[87]+0x650a7354U)+ZR26(ZA[322]); ZA[94]=ZR15(ZA[87])+ZR25(ZA[38])+ZA[7]+ZA[67]; ZA[328]=ZA[326]+ZMa(ZA[318],ZA[313],ZA[323])+ZR30(ZA[323]); ZA[327]=ZA[308]+ZA[326]; ZA[331]=(ZCh(ZA[327],ZA[322],ZA[317])+ZA[312]+ZA[88]+0x766a0abbU)+ZR26(ZA[327]); ZA[95]=ZR15(ZA[88])+ZA[38]+ZR25(ZA[10])+ZA[75]; ZA[332]=ZA[313]+ZA[331]; ZA[333]=ZA[331]+ZMa(ZA[323],ZA[318],ZA[328])+ZR30(ZA[328]); ZA[336]=(ZCh(ZA[332],ZA[327],ZA[322])+ZA[317]+ZA[94]+0x81c2c92eU)+ZR26(ZA[332]); ZA[102]=ZR15(ZA[94])+ZR25(ZA[43])+ZA[10]+ZA[70]; ZA[337]=ZA[318]+ZA[336]; ZA[338]=ZA[336]+ZMa(ZA[328],ZA[323],ZA[333])+ZR30(ZA[333]); ZA[341]=(ZCh(ZA[337],ZA[332],ZA[327])+ZA[322]+ZA[95]+0x92722c85U)+ZR26(ZA[337]); ZA[103]=ZR15(ZA[95])+ZR25(ZA[52])+ZA[43]+ZA[78]; ZA[342]=ZA[323]+ZA[341]; ZA[343]=ZA[341]+ZMa(ZA[333],ZA[328],ZA[338])+ZR30(ZA[338]); ZA[346]=(ZCh(ZA[342],ZA[337],ZA[332])+ZA[327]+ZA[102]+0xa2bfe8a1U)+ZR26(ZA[342]); ZA[110]=ZR15(ZA[102])+ZR25(ZA[48])+ZA[52]+ZA[79]; ZA[347]=ZA[328]+ZA[346]; ZA[348]=ZA[346]+ZMa(ZA[338],ZA[333],ZA[343])+ZR30(ZA[343]); ZA[351]=(ZCh(ZA[347],ZA[342],ZA[337])+ZA[332]+ZA[103]+0xa81a664bU)+ZR26(ZA[347]); ZA[111]=ZR15(ZA[103])+ZA[87]+ZR25(ZA[61])+ZA[48]; ZA[353]=ZA[351]+ZMa(ZA[343],ZA[338],ZA[348])+ZR30(ZA[348]); ZA[352]=ZA[333]+ZA[351]; ZA[356]=(ZCh(ZA[352],ZA[347],ZA[342])+ZA[337]+ZA[110]+0xc24b8b70U)+ZR26(ZA[352]); ZA[118]=ZR15(ZA[110])+ZA[88]+ZR25(ZA[53])+ZA[61]; ZA[357]=ZA[338]+ZA[356]; ZA[358]=ZA[356]+ZMa(ZA[348],ZA[343],ZA[353])+ZR30(ZA[353]); ZA[361]=(ZCh(ZA[357],ZA[352],ZA[347])+ZA[342]+ZA[111]+0xc76c51a3U)+ZR26(ZA[357]); ZA[119]=ZR15(ZA[111])+ZR25(ZA[66])+ZA[53]+ZA[94]; ZA[362]=ZA[343]+ZA[361]; ZA[363]=ZA[361]+ZMa(ZA[353],ZA[348],ZA[358])+ZR30(ZA[358]); ZA[366]=(ZCh(ZA[362],ZA[357],ZA[352])+ZA[347]+ZA[118]+0xd192e819U)+ZR26(ZA[362]); ZA[126]=ZR15(ZA[118])+ZR25(ZA[67])+ZA[66]+ZA[95]; ZA[367]=ZA[348]+ZA[366]; ZA[368]=ZA[366]+ZMa(ZA[358],ZA[353],ZA[363])+ZR30(ZA[363]); ZA[371]=(ZCh(ZA[367],ZA[362],ZA[357])+ZA[352]+ZA[119]+0xd6990624U)+ZR26(ZA[367]); ZA[127]=ZR15(ZA[119])+ZA[102]+ZR25(ZA[75])+ZA[67]; ZA[372]=ZA[353]+ZA[371]; ZA[373]=ZA[371]+ZMa(ZA[363],ZA[358],ZA[368])+ZR30(ZA[368]); ZA[376]=(ZCh(ZA[372],ZA[367],ZA[362])+ZA[357]+ZA[126]+0xf40e3585U)+ZR26(ZA[372]); ZA[134]=ZR15(ZA[126])+ZA[103]+ZR25(ZA[70])+ZA[75]; ZA[377]=ZA[358]+ZA[376]; ZA[378]=ZA[376]+ZMa(ZA[368],ZA[363],ZA[373])+ZR30(ZA[373]); ZA[381]=(ZCh(ZA[377],ZA[372],ZA[367])+ZA[362]+ZA[127]+0x106aa070U)+ZR26(ZA[377]); ZA[135]=ZR15(ZA[127])+ZA[110]+ZR25(ZA[78])+ZA[70]; ZA[382]=ZA[363]+ZA[381]; ZA[383]=ZA[381]+ZMa(ZA[373],ZA[368],ZA[378])+ZR30(ZA[378]); ZA[386]=(ZCh(ZA[382],ZA[377],ZA[372])+ZA[367]+ZA[134]+0x19a4c116U)+ZR26(ZA[382]); ZA[142]=ZR15(ZA[134])+ZA[111]+ZR25(ZA[79])+ZA[78]; ZA[387]=ZA[368]+ZA[386]; ZA[388]=ZA[386]+ZMa(ZA[378],ZA[373],ZA[383])+ZR30(ZA[383]); ZA[391]=(ZCh(ZA[387],ZA[382],ZA[377])+ZA[372]+ZA[135]+0x1e376c08U)+ZR26(ZA[387]); ZA[143]=ZR15(ZA[135])+ZA[118]+ZR25(ZA[87])+ZA[79]; ZA[392]=ZA[373]+ZA[391]; ZA[393]=ZA[391]+ZMa(ZA[383],ZA[378],ZA[388])+ZR30(ZA[388]); ZA[396]=(ZCh(ZA[392],ZA[387],ZA[382])+ZA[377]+ZA[142]+0x2748774cU)+ZR26(ZA[392]); ZA[149]=ZR15(ZA[142])+ZA[119]+ZR25(ZA[88])+ZA[87]; ZA[397]=ZA[378]+ZA[396]; ZA[398]=ZA[396]+ZMa(ZA[388],ZA[383],ZA[393])+ZR30(ZA[393]); ZA[401]=(ZCh(ZA[397],ZA[392],ZA[387])+ZA[382]+ZA[143]+0x34b0bcb5U)+ZR26(ZA[397]); ZA[150]=ZR15(ZA[143])+ZA[126]+ZR25(ZA[94])+ZA[88]; ZA[402]=ZA[383]+ZA[401]; ZA[403]=ZA[401]+ZMa(ZA[393],ZA[388],ZA[398])+ZR30(ZA[398]); ZA[406]=(ZCh(ZA[402],ZA[397],ZA[392])+ZA[387]+ZA[149]+0x391c0cb3U)+ZR26(ZA[402]); ZA[155]=ZR15(ZA[149])+ZA[127]+ZR25(ZA[95])+ZA[94]; ZA[407]=ZA[388]+ZA[406]; ZA[408]=ZA[406]+ZMa(ZA[398],ZA[393],ZA[403])+ZR30(ZA[403]); ZA[411]=(ZCh(ZA[407],ZA[402],ZA[397])+ZA[392]+ZA[150]+0x4ed8aa4aU)+ZR26(ZA[407]); ZA[156]=ZR15(ZA[150])+ZA[134]+ZR25(ZA[102])+ZA[95]; ZA[412]=ZA[393]+ZA[411]; ZA[413]=ZA[411]+ZMa(ZA[403],ZA[398],ZA[408])+ZR30(ZA[408]); ZA[416]=(ZCh(ZA[412],ZA[407],ZA[402])+ZA[397]+ZA[155]+0x5b9cca4fU)+ZR26(ZA[412]); ZA[161]=ZR15(ZA[155])+ZA[135]+ZR25(ZA[103])+ZA[102]; ZA[417]=ZA[398]+ZA[416]; ZA[418]=ZA[416]+ZMa(ZA[408],ZA[403],ZA[413])+ZR30(ZA[413]); ZA[421]=(ZCh(ZA[417],ZA[412],ZA[407])+ZA[402]+ZA[156]+0x682e6ff3U)+ZR26(ZA[417]); ZA[162]=ZR15(ZA[156])+ZA[142]+ZR25(ZA[110])+ZA[103]; ZA[422]=ZA[403]+ZA[421]; ZA[423]=ZA[421]+ZMa(ZA[413],ZA[408],ZA[418])+ZR30(ZA[418]); ZA[426]=(ZCh(ZA[422],ZA[417],ZA[412])+ZA[407]+ZA[161]+0x748f82eeU)+ZR26(ZA[422]); ZA[167]=ZR15(ZA[161])+ZA[143]+ZR25(ZA[111])+ZA[110]; ZA[427]=ZA[408]+ZA[426]; ZA[428]=ZA[426]+ZMa(ZA[418],ZA[413],ZA[423])+ZR30(ZA[423]); ZA[431]=(ZCh(ZA[427],ZA[422],ZA[417])+ZA[412]+ZA[162]+0x78a5636fU)+ZR26(ZA[427]); ZA[168]=ZR15(ZA[162])+ZA[149]+ZR25(ZA[118])+ZA[111]; ZA[432]=ZA[413]+ZA[431]; ZA[433]=ZA[431]+ZMa(ZA[423],ZA[418],ZA[428])+ZR30(ZA[428]); ZA[436]=(ZCh(ZA[432],ZA[427],ZA[422])+ZA[417]+ZA[167]+0x84c87814U)+ZR26(ZA[432]); ZA[172]=ZR15(ZA[167])+ZA[150]+ZR25(ZA[119])+ZA[118]; ZA[437]=ZA[418]+ZA[436]; ZA[438]=ZA[436]+ZMa(ZA[428],ZA[423],ZA[433])+ZR30(ZA[433]); ZA[441]=(ZCh(ZA[437],ZA[432],ZA[427])+ZA[422]+ZA[168]+0x8cc70208U)+ZR26(ZA[437]); ZA[173]=ZR15(ZA[168])+ZA[155]+ZR25(ZA[126])+ZA[119]; ZA[442]=ZA[423]+ZA[441]; ZA[443]=ZA[441]+ZMa(ZA[433],ZA[428],ZA[438])+ZR30(ZA[438]); ZA[445]=(ZCh(ZA[442],ZA[437],ZA[432])+ZA[427]+ZA[172]+0x90befffaU)+ZR26(ZA[442]); ZA[446]=ZA[428]+ZA[445]; ZA[447]=ZA[445]+ZMa(ZA[438],ZA[433],ZA[443])+ZR30(ZA[443]); ZA[449]=(ZCh(ZA[446],ZA[442],ZA[437])+ZA[432]+ZA[173]+0xa4506cebU)+ZR26(ZA[446]); ZA[451]=ZA[449]+ZMa(ZA[443],ZA[438],ZA[447])+ZR30(ZA[447]); ZA[450]=ZA[433]+ZA[449]; ZA[453]=(ZCh(ZA[450],ZA[446],ZA[442])+ZA[437]+ZR15(ZA[172])+ZA[156]+ZR25(ZA[127])+ZA[126]+0xbef9a3f7U)+ZR26(ZA[450]); ZA[454]=ZA[438]+ZA[453]; ZA[455]=ZA[453]+ZMa(ZA[447],ZA[443],ZA[451])+ZR30(ZA[451]); ZA[457]=(ZCh(ZA[454],ZA[450],ZA[446])+ZA[442]+ZR15(ZA[173])+ZA[161]+ZR25(ZA[134])+ZA[127]+0xc67178f2U)+ZR26(ZA[454]); ZA[461]=ZA[455]+state1; ZA[460]=ZA[457]+ZMa(ZA[451],ZA[447],ZA[455])+ZR30(ZA[455])+state0; ZA[495]=ZA[460]+0x98c7e2a2U; ZA[498]=(ZCh(ZA[495],0x510e527fU,0x9b05688cU)+ZA[461]+0x90bb1e3cU)+ZR26(ZA[495]); ZA[462]=ZA[451]+state2; ZA[496]=ZA[460]+0xfc08884dU; ZA[506]=ZA[498]+0x3c6ef372U; ZA[507]=(ZCh(ZA[506],ZA[495],0x510e527fU)+ZA[462]+0x50c6645bU)+ZR26(ZA[506]); ZA[463]=ZA[447]+state3; ZA[499]=ZA[498]+ZMa(0x6a09e667U,0xbb67ae85U,ZA[496])+ZR30(ZA[496]); ZA[508]=ZA[507]+0xbb67ae85U; ZA[510]=(ZCh(ZA[508],ZA[506],ZA[495])+ZA[463]+0x3ac42e24U)+ZR26(ZA[508]); ZA[464]=ZA[443]+ZA[457]+state4; ZA[511]=ZA[510]+0x6a09e667U; ZA[509]=ZMa(ZA[496],0x6a09e667U,ZA[499])+ZR30(ZA[499])+ZA[507]; ZA[465]=ZA[454]+state5; ZA[514]=(ZCh(ZA[511],ZA[508],ZA[506])+ZA[464]+ZA[460]+0xd21ea4fdU)+ZR26(ZA[511]); ZA[516]=ZA[496]+ZA[514]; ZA[513]=ZA[510]+ZMa(ZA[499],ZA[496],ZA[509])+ZR30(ZA[509]); ZA[466]=ZA[450]+state6; ZA[520]=(ZCh(ZA[516],ZA[511],ZA[508])+ZA[506]+ZA[465]+0x59f111f1U)+ZR26(ZA[516]); ZA[521]=ZA[499]+ZA[520]; ZA[517]=ZA[514]+ZMa(ZA[509],ZA[499],ZA[513])+ZR30(ZA[513]); ZA[467]=ZA[446]+state7; ZA[525]=(ZCh(ZA[521],ZA[516],ZA[511])+ZA[508]+ZA[466]+0x923f82a4U)+ZR26(ZA[521]); ZA[526]=ZA[509]+ZA[525]; ZA[523]=ZA[520]+ZMa(ZA[513],ZA[509],ZA[517])+ZR30(ZA[517]); ZA[530]=(ZCh(ZA[526],ZA[521],ZA[516])+ZA[511]+ZA[467]+0xab1c5ed5U)+ZR26(ZA[526]); ZA[531]=ZA[513]+ZA[530]; ZA[527]=ZMa(ZA[517],ZA[513],ZA[523])+ZR30(ZA[523])+ZA[525]; ZA[534]=(ZCh(ZA[531],ZA[526],ZA[521])+ZA[516]+0x5807aa98U)+ZR26(ZA[531]); ZA[535]=ZA[517]+ZA[534]; ZA[532]=ZMa(ZA[523],ZA[517],ZA[527])+ZR30(ZA[527])+ZA[530]; ZA[539]=(ZCh(ZA[535],ZA[531],ZA[526])+ZA[521]+0x12835b01U)+ZR26(ZA[535]); ZA[540]=ZA[523]+ZA[539]; ZA[536]=ZMa(ZA[527],ZA[523],ZA[532])+ZR30(ZA[532])+ZA[534]; ZA[543]=(ZCh(ZA[540],ZA[535],ZA[531])+ZA[526]+0x243185beU)+ZR26(ZA[540]); ZA[544]=ZA[527]+ZA[543]; ZA[541]=ZMa(ZA[532],ZA[527],ZA[536])+ZR30(ZA[536])+ZA[539]; ZA[558]=(ZCh(ZA[544],ZA[540],ZA[535])+ZA[531]+0x550c7dc3U)+ZR26(ZA[544]); ZA[559]=ZA[532]+ZA[558]; ZA[545]=ZMa(ZA[536],ZA[532],ZA[541])+ZR30(ZA[541])+ZA[543]; ZA[562]=(ZCh(ZA[559],ZA[544],ZA[540])+ZA[535]+0x72be5d74U)+ZR26(ZA[559]); ZA[563]=ZA[536]+ZA[562]; ZA[560]=ZMa(ZA[541],ZA[536],ZA[545])+ZR30(ZA[545])+ZA[558]; ZA[568]=(ZCh(ZA[563],ZA[559],ZA[544])+ZA[540]+0x80deb1feU)+ZR26(ZA[563]); ZA[569]=ZA[541]+ZA[568]; ZA[565]=ZA[562]+ZMa(ZA[545],ZA[541],ZA[560])+ZR30(ZA[560]); ZA[574]=(ZCh(ZA[569],ZA[563],ZA[559])+ZA[544]+0x9bdc06a7U)+ZR26(ZA[569]); ZA[497]=ZR25(ZA[461])+ZA[460]; ZA[575]=ZA[545]+ZA[574]; ZA[571]=ZA[568]+ZMa(ZA[560],ZA[545],ZA[565])+ZR30(ZA[565]); ZA[578]=(ZCh(ZA[575],ZA[569],ZA[563])+ZA[559]+0xc19bf274U)+ZR26(ZA[575]); ZA[471]=ZR25(ZA[462])+ZA[461]+0x00a00000U; ZA[579]=ZA[560]+ZA[578]; ZA[577]=ZA[574]+ZMa(ZA[565],ZA[560],ZA[571])+ZR30(ZA[571]); ZA[583]=(ZCh(ZA[579],ZA[575],ZA[569])+ZA[563]+ZA[497]+0xe49b69c1U)+ZR26(ZA[579]); ZA[584]=ZA[565]+ZA[583]; ZA[581]=ZA[578]+ZMa(ZA[571],ZA[565],ZA[577])+ZR30(ZA[577]); ZA[588]=(ZCh(ZA[584],ZA[579],ZA[575])+ZA[569]+ZA[471]+0xefbe4786U)+ZR26(ZA[584]); ZA[501]=ZR15(ZA[497])+ZR25(ZA[463])+ZA[462]; ZA[474]=ZR15(ZA[471])+ZA[463]+ZR25(ZA[464]); ZA[589]=ZA[571]+ZA[588]; ZA[585]=ZA[583]+ZMa(ZA[577],ZA[571],ZA[581])+ZR30(ZA[581]); ZA[592]=(ZCh(ZA[589],ZA[584],ZA[579])+ZA[575]+0x0fc19dc6U+ZA[501])+ZR26(ZA[589]); ZA[518]=ZR15(ZA[501])+ZR25(ZA[465])+ZA[464]; ZA[593]=ZA[577]+ZA[592]; ZA[591]=ZA[588]+ZMa(ZA[581],ZA[577],ZA[585])+ZR30(ZA[585]); ZA[597]=(ZCh(ZA[593],ZA[589],ZA[584])+ZA[579]+ZA[474]+0x240ca1ccU)+ZR26(ZA[593]); ZA[482]=ZR15(ZA[474])+ZR25(ZA[466])+ZA[465]; ZA[598]=ZA[581]+ZA[597]; ZA[595]=ZA[592]+ZMa(ZA[585],ZA[581],ZA[591])+ZR30(ZA[591]); ZA[632]=(ZCh(ZA[598],ZA[593],ZA[589])+ZA[584]+ZA[518]+0x2de92c6fU)+ZR26(ZA[598]); ZA[528]=ZR15(ZA[518])+ZA[466]+0x00000100U+ZR25(ZA[467]); ZA[736]=ZA[585]+ZA[632]; ZA[600]=ZA[597]+ZMa(ZA[591],ZA[585],ZA[595])+ZR30(ZA[595]); ZA[738]=(ZCh(ZA[736],ZA[598],ZA[593])+ZA[589]+ZA[482]+0x4a7484aaU)+ZR26(ZA[736]); ZA[502]=ZA[497]+ZR15(ZA[482])+ZA[467]+0x11002000U; ZA[739]=ZA[591]+ZA[738]; ZA[737]=ZMa(ZA[595],ZA[591],ZA[600])+ZR30(ZA[600])+ZA[632]; ZA[741]=(ZCh(ZA[739],ZA[736],ZA[598])+ZA[593]+ZA[528]+0x5cb0a9dcU)+ZR26(ZA[739]); ZA[537]=ZR15(ZA[528])+ZA[471]+0x80000000U; ZA[742]=ZA[595]+ZA[741]; ZA[740]=ZMa(ZA[600],ZA[595],ZA[737])+ZR30(ZA[737])+ZA[738]; ZA[747]=(ZCh(ZA[742],ZA[739],ZA[736])+ZA[598]+ZA[502]+0x76f988daU)+ZR26(ZA[742]); ZA[546]=ZR15(ZA[502])+ZA[501]; ZA[748]=ZA[600]+ZA[747]; ZA[743]=ZMa(ZA[737],ZA[600],ZA[740])+ZR30(ZA[740])+ZA[741]; ZA[752]=(ZCh(ZA[748],ZA[742],ZA[739])+ZA[736]+ZA[537]+0x983e5152U)+ZR26(ZA[748]); ZA[554]=ZR15(ZA[537])+ZA[474]; ZA[753]=ZA[737]+ZA[752]; ZA[750]=ZA[747]+ZMa(ZA[740],ZA[737],ZA[743])+ZR30(ZA[743]); ZA[757]=(ZCh(ZA[753],ZA[748],ZA[742])+ZA[739]+ZA[546]+0xa831c66dU)+ZR26(ZA[753]); ZA[566]=ZR15(ZA[546])+ZA[518]; ZA[758]=ZA[740]+ZA[757]; ZA[755]=ZA[752]+ZMa(ZA[743],ZA[740],ZA[750])+ZR30(ZA[750]); ZA[762]=(ZCh(ZA[758],ZA[753],ZA[748])+ZA[742]+ZA[554]+0xb00327c8U)+ZR26(ZA[758]); ZA[567]=ZR15(ZA[554])+ZA[482]; ZA[763]=ZA[743]+ZA[762]; ZA[760]=ZA[757]+ZMa(ZA[750],ZA[743],ZA[755])+ZR30(ZA[755]); ZA[767]=(ZCh(ZA[763],ZA[758],ZA[753])+ZA[748]+ZA[566]+0xbf597fc7U)+ZR26(ZA[763]); ZA[614]=ZR15(ZA[566])+ZA[528]; ZA[768]=ZA[750]+ZA[767]; ZA[765]=ZA[762]+ZMa(ZA[755],ZA[750],ZA[760])+ZR30(ZA[760]); ZA[772]=(ZCh(ZA[768],ZA[763],ZA[758])+ZA[753]+ZA[567]+0xc6e00bf3U)+ZR26(ZA[768]); ZA[616]=ZR15(ZA[567])+ZA[502]+0x00400022U; ZA[773]=ZA[755]+ZA[772]; ZA[770]=ZA[767]+ZMa(ZA[760],ZA[755],ZA[765])+ZR30(ZA[765]); ZA[777]=(ZCh(ZA[773],ZA[768],ZA[763])+ZA[758]+ZA[614]+0xd5a79147U)+ZR26(ZA[773]); ZA[619]=ZR15(ZA[614])+ZA[537]+ZR25(ZA[497])+0x00000100U; ZA[778]=ZA[760]+ZA[777]; ZA[775]=ZA[772]+ZMa(ZA[765],ZA[760],ZA[770])+ZR30(ZA[770]); ZA[782]=(ZCh(ZA[778],ZA[773],ZA[768])+ZA[763]+ZA[616]+0x06ca6351U)+ZR26(ZA[778]); ZA[622]=ZR15(ZA[616])+ZR25(ZA[471])+ZA[497]+ZA[546]; ZA[783]=ZA[765]+ZA[782]; ZA[780]=ZA[777]+ZMa(ZA[770],ZA[765],ZA[775])+ZR30(ZA[775]); ZA[787]=(ZCh(ZA[783],ZA[778],ZA[773])+ZA[768]+ZA[619]+0x14292967U)+ZR26(ZA[783]); ZA[627]=ZR15(ZA[619])+ZR25(ZA[501])+ZA[554]+ZA[471]; ZA[788]=ZA[770]+ZA[787]; ZA[785]=ZA[782]+ZMa(ZA[775],ZA[770],ZA[780])+ZR30(ZA[780]); ZA[792]=(ZCh(ZA[788],ZA[783],ZA[778])+ZA[773]+ZA[622]+0x27b70a85U)+ZR26(ZA[788]); ZA[631]=ZR15(ZA[622])+ZA[566]+ZR25(ZA[474])+ZA[501]; ZA[793]=ZA[775]+ZA[792]; ZA[790]=ZA[787]+ZMa(ZA[780],ZA[775],ZA[785])+ZR30(ZA[785]); ZA[797]=(ZCh(ZA[793],ZA[788],ZA[783])+ZA[778]+ZA[627]+0x2e1b2138U)+ZR26(ZA[793]); ZA[636]=ZR15(ZA[627])+ZA[567]+ZR25(ZA[518])+ZA[474]; ZA[798]=ZA[780]+ZA[797]; ZA[795]=ZA[792]+ZMa(ZA[785],ZA[780],ZA[790])+ZR30(ZA[790]); ZA[802]=(ZCh(ZA[798],ZA[793],ZA[788])+ZA[783]+ZA[631]+0x4d2c6dfcU)+ZR26(ZA[798]); ZA[640]=ZR15(ZA[631])+ZR25(ZA[482])+ZA[518]+ZA[614]; ZA[803]=ZA[785]+ZA[802]; ZA[800]=ZA[797]+ZMa(ZA[790],ZA[785],ZA[795])+ZR30(ZA[795]); ZA[807]=(ZCh(ZA[803],ZA[798],ZA[793])+ZA[788]+ZA[636]+0x53380d13U)+ZR26(ZA[803]); ZA[644]=ZR15(ZA[636])+ZA[616]+ZR25(ZA[528])+ZA[482]; ZA[808]=ZA[790]+ZA[807]; ZA[805]=ZA[802]+ZMa(ZA[795],ZA[790],ZA[800])+ZR30(ZA[800]); ZA[812]=(ZCh(ZA[808],ZA[803],ZA[798])+ZA[793]+ZA[640]+0x650a7354U)+ZR26(ZA[808]); ZA[648]=ZR15(ZA[640])+ZA[619]+ZR25(ZA[502])+ZA[528]; ZA[813]=ZA[795]+ZA[812]; ZA[810]=ZA[807]+ZMa(ZA[800],ZA[795],ZA[805])+ZR30(ZA[805]); ZA[817]=(ZCh(ZA[813],ZA[808],ZA[803])+ZA[798]+ZA[644]+0x766a0abbU)+ZR26(ZA[813]); ZA[651]=ZR15(ZA[644])+ZA[622]+ZR25(ZA[537])+ZA[502]; ZA[818]=ZA[800]+ZA[817]; ZA[815]=ZA[812]+ZMa(ZA[805],ZA[800],ZA[810])+ZR30(ZA[810]); ZA[822]=(ZCh(ZA[818],ZA[813],ZA[808])+ZA[803]+ZA[648]+0x81c2c92eU)+ZR26(ZA[818]); ZA[655]=ZR15(ZA[648])+ZA[627]+ZR25(ZA[546])+ZA[537]; ZA[823]=ZA[805]+ZA[822]; ZA[820]=ZA[817]+ZMa(ZA[810],ZA[805],ZA[815])+ZR30(ZA[815]); ZA[827]=(ZCh(ZA[823],ZA[818],ZA[813])+ZA[808]+ZA[651]+0x92722c85U)+ZR26(ZA[823]); ZA[659]=ZR15(ZA[651])+ZA[631]+ZR25(ZA[554])+ZA[546]; ZA[828]=ZA[810]+ZA[827]; ZA[825]=ZA[822]+ZMa(ZA[815],ZA[810],ZA[820])+ZR30(ZA[820]); ZA[832]=(ZCh(ZA[828],ZA[823],ZA[818])+ZA[813]+ZA[655]+0xa2bfe8a1U)+ZR26(ZA[828]); ZA[663]=ZR15(ZA[655])+ZA[636]+ZR25(ZA[566])+ZA[554]; ZA[833]=ZA[815]+ZA[832]; ZA[830]=ZA[827]+ZMa(ZA[820],ZA[815],ZA[825])+ZR30(ZA[825]); ZA[837]=(ZCh(ZA[833],ZA[828],ZA[823])+ZA[818]+ZA[659]+0xa81a664bU)+ZR26(ZA[833]); ZA[667]=ZR15(ZA[659])+ZA[640]+ZR25(ZA[567])+ZA[566]; ZA[838]=ZA[820]+ZA[837]; ZA[835]=ZA[832]+ZMa(ZA[825],ZA[820],ZA[830])+ZR30(ZA[830]); ZA[842]=(ZCh(ZA[838],ZA[833],ZA[828])+ZA[823]+ZA[663]+0xc24b8b70U)+ZR26(ZA[838]); ZA[671]=ZR15(ZA[663])+ZA[644]+ZR25(ZA[614])+ZA[567]; ZA[843]=ZA[825]+ZA[842]; ZA[840]=ZA[837]+ZMa(ZA[830],ZA[825],ZA[835])+ZR30(ZA[835]); ZA[847]=(ZCh(ZA[843],ZA[838],ZA[833])+ZA[828]+ZA[667]+0xc76c51a3U)+ZR26(ZA[843]); ZA[679]=ZR15(ZA[667])+ZA[648]+ZR25(ZA[616])+ZA[614]; ZA[848]=ZA[830]+ZA[847]; ZA[845]=ZA[842]+ZMa(ZA[835],ZA[830],ZA[840])+ZR30(ZA[840]); ZA[852]=(ZCh(ZA[848],ZA[843],ZA[838])+ZA[833]+ZA[671]+0xd192e819U)+ZR26(ZA[848]); ZA[684]=ZR15(ZA[671])+ZA[651]+ZR25(ZA[619])+ZA[616]; ZA[853]=ZA[835]+ZA[852]; ZA[850]=ZA[847]+ZMa(ZA[840],ZA[835],ZA[845])+ZR30(ZA[845]); ZA[857]=(ZCh(ZA[853],ZA[848],ZA[843])+ZA[838]+ZA[679]+0xd6990624U)+ZR26(ZA[853]); ZA[688]=ZR15(ZA[679])+ZA[655]+ZR25(ZA[622])+ZA[619]; ZA[858]=ZA[840]+ZA[857]; ZA[855]=ZA[852]+ZMa(ZA[845],ZA[840],ZA[850])+ZR30(ZA[850]); ZA[862]=(ZCh(ZA[858],ZA[853],ZA[848])+ZA[843]+ZA[684]+0xf40e3585U)+ZR26(ZA[858]); ZA[692]=ZR15(ZA[684])+ZA[659]+ZR25(ZA[627])+ZA[622]; ZA[863]=ZA[845]+ZA[862]; ZA[860]=ZA[857]+ZMa(ZA[850],ZA[845],ZA[855])+ZR30(ZA[855]); ZA[867]=(ZCh(ZA[863],ZA[858],ZA[853])+ZA[848]+ZA[688]+0x106aa070U)+ZR26(ZA[863]); ZA[696]=ZR15(ZA[688])+ZA[663]+ZR25(ZA[631])+ZA[627]; ZA[868]=ZA[850]+ZA[867]; ZA[865]=ZA[862]+ZMa(ZA[855],ZA[850],ZA[860])+ZR30(ZA[860]); ZA[873]=(ZCh(ZA[868],ZA[863],ZA[858])+ZA[853]+ZA[692]+0x19a4c116U)+ZR26(ZA[868]); ZA[700]=ZR15(ZA[692])+ZA[667]+ZR25(ZA[636])+ZA[631]; ZA[874]=ZA[855]+ZA[873]; ZA[870]=ZA[867]+ZMa(ZA[860],ZA[855],ZA[865])+ZR30(ZA[865]); ZA[878]=(ZCh(ZA[874],ZA[868],ZA[863])+ZA[858]+ZA[696]+0x1e376c08U)+ZR26(ZA[874]); ZA[704]=ZR15(ZA[696])+ZA[671]+ZR25(ZA[640])+ZA[636]; ZA[879]=ZA[860]+ZA[878]; ZA[876]=ZA[873]+ZMa(ZA[865],ZA[860],ZA[870])+ZR30(ZA[870]); ZA[883]=(ZCh(ZA[879],ZA[874],ZA[868])+ZA[863]+ZA[700]+0x2748774cU)+ZR26(ZA[879]); ZA[708]=ZR15(ZA[700])+ZA[679]+ZR25(ZA[644])+ZA[640]; ZA[884]=ZA[865]+ZA[883]; ZA[881]=ZA[878]+ZMa(ZA[870],ZA[865],ZA[876])+ZR30(ZA[876]); ZA[888]=(ZCh(ZA[884],ZA[879],ZA[874])+ZA[868]+ZA[704]+0x34b0bcb5U)+ZR26(ZA[884]); ZA[712]=ZR15(ZA[704])+ZA[684]+ZR25(ZA[648])+ZA[644]; ZA[889]=ZA[870]+ZA[888]; ZA[886]=ZA[883]+ZMa(ZA[876],ZA[870],ZA[881])+ZR30(ZA[881]); ZA[893]=(ZCh(ZA[889],ZA[884],ZA[879])+ZA[874]+ZA[708]+0x391c0cb3U)+ZR26(ZA[889]); ZA[716]=ZR15(ZA[708])+ZA[688]+ZR25(ZA[651])+ZA[648]; ZA[894]=ZA[876]+ZA[893]; ZA[891]=ZA[888]+ZMa(ZA[881],ZA[876],ZA[886])+ZR30(ZA[886]); ZA[898]=(ZCh(ZA[894],ZA[889],ZA[884])+ZA[879]+ZA[712]+0x4ed8aa4aU)+ZR26(ZA[894]); ZA[720]=ZR15(ZA[712])+ZA[692]+ZR25(ZA[655])+ZA[651]; ZA[899]=ZA[881]+ZA[898]; ZA[896]=ZA[893]+ZMa(ZA[886],ZA[881],ZA[891])+ZR30(ZA[891]); ZA[903]=(ZCh(ZA[899],ZA[894],ZA[889])+ZA[884]+ZA[716]+0x5b9cca4fU)+ZR26(ZA[899]); ZA[724]=ZR15(ZA[716])+ZA[696]+ZR25(ZA[659])+ZA[655]; ZA[904]=ZA[886]+ZA[903]; ZA[901]=ZA[898]+ZMa(ZA[891],ZA[886],ZA[896])+ZR30(ZA[896]); ZA[908]=(ZCh(ZA[904],ZA[899],ZA[894])+ZA[889]+ZA[720]+0x682e6ff3U)+ZR26(ZA[904]); ZA[727]=ZR15(ZA[720])+ZA[700]+ZR25(ZA[663])+ZA[659]; ZA[909]=ZA[891]+ZA[908]; ZA[906]=ZA[903]+ZMa(ZA[896],ZA[891],ZA[901])+ZR30(ZA[901]); ZA[913]=(ZCh(ZA[909],ZA[904],ZA[899])+ZA[894]+ZA[724]+0x748f82eeU)+ZR26(ZA[909]); ZA[730]=ZR15(ZA[724])+ZA[704]+ZR25(ZA[667])+ZA[663]; ZA[914]=ZA[896]+ZA[913]; ZA[911]=ZA[908]+ZMa(ZA[901],ZA[896],ZA[906])+ZR30(ZA[906]); ZA[918]=(ZCh(ZA[914],ZA[909],ZA[904])+ZA[899]+ZA[901]+ZA[727]+0x78a5636fU)+ZR26(ZA[914]); ZA[920]=(ZCh(ZA[918],ZA[914],ZA[909])+ZA[906]+ZA[904]+ZA[730]+0x84c87814U)+ZR26(ZA[918]); ZA[922]=(ZCh(ZA[920],ZA[918],ZA[914])+ZA[911]+ZA[909]+ZR15(ZA[727])+ZA[708]+ZR25(ZA[671])+ZA[667]+0x8cc70208U)+ZR26(ZA[920]); ZA[924]=(ZCh(ZA[922],ZA[920],ZA[918])+ZA[913]+ZMa(ZA[906],ZA[901],ZA[911])+ZR30(ZA[911])+ZA[914]+ZR15(ZA[730])+ZA[712]+ZR25(ZA[679])+ZA[671])+ZR26(ZA[922]); #define FOUND (0x80) #define NFLAG (0x7F) #if defined(VECTORS4) bool result = any(ZA[924] == 0x136032EDU); if (result) { if (ZA[924].x == 0x136032EDU) output[FOUND] = output[NFLAG & Znonce.x] = Znonce.x; if (ZA[924].y == 0x136032EDU) output[FOUND] = output[NFLAG & Znonce.y] = Znonce.y; if (ZA[924].z == 0x136032EDU) output[FOUND] = output[NFLAG & Znonce.z] = Znonce.z; if (ZA[924].w == 0x136032EDU) output[FOUND] = output[NFLAG & Znonce.w] = Znonce.w; } #elif defined(VECTORS2) bool result = any(ZA[924] == 0x136032EDU); if (result) { if (ZA[924].x == 0x136032EDU) output[FOUND] = output[NFLAG & Znonce.x] = Znonce.x; if (ZA[924].y == 0x136032EDU) output[FOUND] = output[NFLAG & Znonce.y] = Znonce.y; } #else if (ZA[924] == 0x136032EDU) output[FOUND] = output[NFLAG & Znonce] = Znonce; #endif }