SymCryptSha256AppendBlocks_ul1
INT64 __fastcall SymCryptSha256AppendBlocks_ul1(INT64 *a1, INT64 a2, UINT64 a3, UINT64 *a4){
int v4;
int v6;
int v7;
int v8;
int v9;
int v10;
int v11;
int v12;
unsigned int *v13;
int v14;
int v15;
int v16;
int v17;
int v18;
int v19;
int v20;
int v21;
int v22;
int v23;
int v24;
int v25;
int v26;
int v27;
int v28;
int v29;
int v30;
int v31;
int v32;
int v33;
int v34;
int v35;
int v36;
int v37;
int v38;
unsigned __int32 v39;
unsigned __int32 v40;
int v41;
int v42;
int v43;
unsigned __int32 v44;
int v45;
int v46;
int v47;
int v48;
int v49;
int v50;
int v51;
int v52;
int v53;
int v54;
int v55;
int v56;
int v57;
int v58;
int v59;
int v60;
int v61;
int v62;
int v63;
unsigned __int32 v64;
unsigned __int32 v65;
int v66;
int v67;
int v68;
unsigned __int32 v69;
unsigned __int32 v70;
unsigned __int32 v71;
int v72;
unsigned __int32 v73;
unsigned __int32 v74;
int v75;
unsigned __int32 v76;
unsigned __int32 v77;
int v78;
unsigned __int32 v79;
int v80;
unsigned __int32 v81;
unsigned __int32 v82;
int v83;
unsigned __int32 v84;
unsigned __int32 v85;
int v86;
int v87;
int v88;
int v89;
unsigned __int32 v90;
unsigned __int32 v91;
int v92;
unsigned __int32 v93;
unsigned __int32 v94;
int v95;
unsigned __int32 v96;
unsigned __int32 v97;
int v98;
unsigned __int32 v99;
unsigned __int32 v100;
int v101;
unsigned __int32 v102;
unsigned __int32 v103;
int v104;
unsigned __int32 v105;
unsigned __int32 v106;
unsigned __int32 v107;
unsigned __int32 v108;
unsigned __int32 v109;
int v110;
bool v111;
int v113;
unsigned __int32 v114;
int v115;
_DWORD *v116;
unsigned __int32 v117;
unsigned __int32 v118;
unsigned __int32 v119;
unsigned __int32 v120;
unsigned __int32 v121;
unsigned __int32 v122;
unsigned __int32 v123;
int v124;
int v125;
unsigned __int32 v126;
unsigned __int32 v127;
int v128;
unsigned __int32 v129;
unsigned __int32 v130;
unsigned __int32 v131;
unsigned __int32 v132;
unsigned __int32 v133;
unsigned __int32 v134;
int v135;
unsigned __int32 v136;
int v137;
int v138;
int v139;
int v140;
int v141;
int v142;
int v143;
unsigned int *v144;
UINT64 v145;
UINT64 v147;
unsigned __int32 v149;
v4 = *(_DWORD *)a1;
v6 = *((_DWORD *)a1 + 1);
v7 = *((_DWORD *)a1 + 2);
v8 = *((_DWORD *)a1 + 4);
v9 = *((_DWORD *)a1 + 5);
v10 = *((_DWORD *)a1 + 6);
v11 = *((_DWORD *)a1 + 7);
v12 = *((_DWORD *)a1 + 3);
if( a3 >= 0x40 )
{
v137 = *(_DWORD *)a1;
v13 = (unsigned int *)(a2 + 8);
v145 = a3 >> 6;
v138 = *((_DWORD *)a1 + 1);
v139 = *((_DWORD *)a1 + 2);
v147 = -64i64 * (a3 >> 6) + a3;
v140 = *((_DWORD *)a1 + 3);
v141 = *((_DWORD *)a1 + 4);
v142 = *((_DWORD *)a1 + 5);
v143 = *((_DWORD *)a1 + 6);
v135 = *((_DWORD *)a1 + 7);
v144 = (unsigned int *)(a2 + 8);
do
{
v133 = _byteswap_ulong(*(v13 - 2));
v14 = v133 + 1116352408 + (__ROR4__(v8, 11) ^ __ROR4__(v8, 25) ^ __ROR4__(v8, 6)) + (v10 ^ v8 & (v9 ^ v10)) + v11;
v15 = v14 + v12;
v16 = (v14 + v12) & (v8 ^ v9);
v17 = v14 + (__ROR4__(v4, 2) ^ __ROR4__(v4, 13) ^ __ROR4__(v4, 22)) + (v6 & v7 | v4 & (v6 | v7));
v118 = _byteswap_ulong(*(v13 - 1));
v18 = v118 + (__ROR4__(v15, 11) ^ __ROR4__(v15, 25) ^ __ROR4__(v15, 6)) + (v9 ^ v16) + v10 + 1899447441;
v19 = v18 + v7;
v20 = v18 + (__ROR4__(v17, 2) ^ __ROR4__(v17, 13) ^ __ROR4__(v17, 22)) + (v4 & v6 | v17 & (v4 | v6));
v119 = _byteswap_ulong(*v13);
v21 = v9
- 1245643825
+ (v8 ^ v19 & (v8 ^ v15))
+ (__ROR4__(v19, 6) ^ __ROR4__(v19, 11) ^ __ROR4__(v19, 25))
+ v119;
v22 = v21 + v6;
v23 = v21 + (__ROR4__(v20, 2) ^ __ROR4__(v20, 13) ^ __ROR4__(v20, 22)) + (v4 & v17 | v20 & (v4 | v17));
v130 = _byteswap_ulong(v13[1]);
v24 = v8
+ (v15 ^ v22 & (v19 ^ v15))
- 373957723
+ v130
+ (__ROR4__(v22, 6) ^ __ROR4__(v22, 11) ^ __ROR4__(v22, 25));
v25 = v24 + v4;
v120 = _byteswap_ulong(v13[2]);
v26 = v24 + (__ROR4__(v23, 2) ^ __ROR4__(v23, 13) ^ __ROR4__(v23, 22)) + (v20 & v17 | v23 & (v20 | v17));
v27 = v120
+ (__ROR4__(v25, 11) ^ __ROR4__(v25, 25) ^ __ROR4__(v25, 6))
+ (v19 ^ v25 & (v19 ^ v22))
+ v15
+ 961987163;
v28 = v17 + v27;
v29 = (__ROR4__(v26, 2) ^ __ROR4__(v26, 13) ^ __ROR4__(v26, 22)) + v27 + (v23 & v20 | v26 & (v23 | v20));
v121 = _byteswap_ulong(v144[3]);
v30 = v19
+ (__ROR4__(v17 + v27, 11) ^ __ROR4__(v17 + v27, 25) ^ __ROR4__(v17 + v27, 6))
+ (v22 ^ (v17 + v27) & (v25 ^ v22))
+ v121
+ 1508970993;
v31 = v30 + v20;
v32 = (__ROR4__(v29, 2) ^ __ROR4__(v29, 13) ^ __ROR4__(v29, 22)) + v30 + (v26 & v23 | v29 & (v26 | v23));
v122 = _byteswap_ulong(v144[4]);
v33 = v22
+ (v25 ^ v31 & (v25 ^ v28))
- 1841331548
+ (__ROR4__(v31, 6) ^ __ROR4__(v31, 11) ^ __ROR4__(v31, 25))
+ v122;
v34 = v33 + v23;
v35 = (__ROR4__(v32, 2) ^ __ROR4__(v32, 13) ^ __ROR4__(v32, 22)) + v33 + (v29 & v26 | v32 & (v29 | v26));
v136 = _byteswap_ulong(v144[5]);
v36 = v25
+ (__ROR4__(v34, 11) ^ __ROR4__(v34, 25) ^ __ROR4__(v34, 6))
+ (v28 ^ v34 & (v31 ^ v28))
+ v136
- 1424204075;
v37 = v36 + v26;
v38 = (__ROR4__(v35, 2) ^ __ROR4__(v35, 13) ^ __ROR4__(v35, 22)) + v36 + (v32 & v29 | v35 & (v32 | v29));
v127 = _byteswap_ulong(v144[6]);
v39 = v28
+ (v31 ^ v37 & (v34 ^ v31))
- 670586216
+ (__ROR4__(v37, 6) ^ __ROR4__(v37, 11) ^ __ROR4__(v37, 25))
+ v127;
v40 = v39 + v29;
v41 = (__ROR4__(v38, 2) ^ __ROR4__(v38, 13) ^ __ROR4__(v38, 22)) + v39 + (v35 & v32 | v38 & (v35 | v32));
v129 = _byteswap_ulong(v144[7]);
v42 = v31
+ (__ROR4__(v40, 11) ^ __ROR4__(v40, 25) ^ __ROR4__(v40, 6))
+ (v34 ^ v40 & (v37 ^ v34))
+ v129
+ 310598401;
v43 = v42 + v32;
v124 = (__ROR4__(v41, 2) ^ __ROR4__(v41, 13) ^ __ROR4__(v41, 22)) + (v38 & v35 | v41 & (v38 | v35)) + v42;
v44 = _byteswap_ulong(v144[8]);
v134 = v44;
v45 = v34
+ (__ROR4__(v43, 11) ^ __ROR4__(v43, 25) ^ __ROR4__(v43, 6))
+ (v37 ^ v43 & (v40 ^ v37))
+ v44
+ 607225278;
v46 = v45 + v35;
v131 = _byteswap_ulong(v144[9]);
v47 = v37 + (__ROR4__(v46, 11) ^ __ROR4__(v46, 25) ^ __ROR4__(v46, 6));
v48 = (__ROR4__(v124, 2) ^ __ROR4__(v124, 13) ^ __ROR4__(v124, 22)) + v45 + (v124 & (v38 | v41) | v38 & v41);
v49 = v47 + (v40 ^ v46 & (v43 ^ v40)) + v131 + 1426881987;
v50 = v49 + v38;
v51 = (__ROR4__(v48, 2) ^ __ROR4__(v48, 13) ^ __ROR4__(v48, 22)) + v49 + (v124 & v41 | v48 & (v124 | v41));
v126 = _byteswap_ulong(v144[10]);
v52 = v40
+ (__ROR4__(v50, 11) ^ __ROR4__(v50, 25) ^ __ROR4__(v50, 6))
+ (v43 ^ v50 & (v46 ^ v43))
+ v126
+ 1925078388;
v53 = v52 + v41;
v123 = _byteswap_ulong(v144[11]);
v54 = v43 + (__ROR4__(v53, 11) ^ __ROR4__(v53, 25) ^ __ROR4__(v53, 6));
v55 = (__ROR4__(v51, 2) ^ __ROR4__(v51, 13) ^ __ROR4__(v51, 22)) + v52 + (v51 & (v48 | v124) | v48 & v124);
v56 = v54 + (v46 ^ v53 & (v50 ^ v46)) + v123 - 2132889090;
v57 = v56 + v124;
v125 = v57;
v58 = v46 + (__ROR4__(v57, 11) ^ __ROR4__(v57, 25) ^ __ROR4__(v57, 6));
v59 = (__ROR4__(v55, 2) ^ __ROR4__(v55, 13) ^ __ROR4__(v55, 22)) + v56 + (v55 & (v51 | v48) | v51 & v48);
v132 = _byteswap_ulong(v144[12]);
v60 = v58 + (v50 ^ v57 & (v50 ^ v53)) + v132 - 1680079193;
v61 = v60 + v48;
v117 = _byteswap_ulong(v144[13]);
v62 = (__ROR4__(v59, 2) ^ __ROR4__(v59, 13) ^ __ROR4__(v59, 22)) + v60 + (v55 & v51 | v59 & (v55 | v51));
v63 = v50 + (__ROR4__(v61, 11) ^ __ROR4__(v61, 25) ^ __ROR4__(v61, 6));
v64 = v117;
v65 = v132;
v66 = v63 + (v53 ^ v61 & (v57 ^ v53)) + v117 - 1046744716;
v67 = v66 + v51;
v68 = v66 + (v62 & (v59 | v55) | v59 & v55);
v69 = v133;
v113 = (__ROR4__(v62, 2) ^ __ROR4__(v62, 13) ^ __ROR4__(v62, 22)) + v68;
v116 = (_DWORD *)&xmmword_14000F540 + 2;
do
{
v149 = v69
+ ((v65 >> 10) ^ __ROR4__(v65, 17) ^ __ROR4__(v65, 19))
+ v129
+ ((v118 >> 3) ^ __ROR4__(v118, 7) ^ __ROR4__(v118, 18));
v70 = v149
+ v53
+ *(v116 - 2)
+ (v57 ^ v67 & (v61 ^ v57))
+ (__ROR4__(v67, 6) ^ __ROR4__(v67, 11) ^ __ROR4__(v67, 25));
v71 = v70 + v55;
v72 = v70 + (__ROR4__(v113, 2) ^ __ROR4__(v113, 13) ^ __ROR4__(v113, 22)) + (v62 & v59 | v113 & (v62 | v59));
v118 += ((v119 >> 3) ^ __ROR4__(v119, 7) ^ __ROR4__(v119, 18))
+ v44
+ ((v64 >> 10) ^ __ROR4__(v64, 17) ^ __ROR4__(v64, 19));
v73 = v118
+ *(v116 - 1)
+ (v61 ^ (v70 + v55) & (v67 ^ v61))
+ (__ROR4__(v70 + v55, 6) ^ __ROR4__(v70 + v55, 11) ^ __ROR4__(v70 + v55, 25))
+ v125;
v74 = v73 + v59;
v75 = v73 + (__ROR4__(v72, 13) ^ __ROR4__(v72, 22) ^ __ROR4__(v72, 2)) + (v72 & (v113 | v62) | v62 & v113);
v119 += ((v130 >> 3) ^ __ROR4__(v130, 7) ^ __ROR4__(v130, 18))
+ v131
+ ((v149 >> 10) ^ __ROR4__(v149, 17) ^ __ROR4__(v149, 19));
v76 = v61
+ *v116
+ (v67 ^ (v73 + v59) & (v67 ^ v71))
+ (__ROR4__(v73 + v59, 6) ^ __ROR4__(v73 + v59, 11) ^ __ROR4__(v73 + v59, 25))
+ v119;
v77 = v76 + v62;
v78 = v76 + (__ROR4__(v75, 2) ^ __ROR4__(v75, 13) ^ __ROR4__(v75, 22)) + (v113 & v72 | v75 & (v113 | v72));
v130 += ((v120 >> 3) ^ __ROR4__(v120, 7) ^ __ROR4__(v120, 18))
+ v126
+ ((v118 >> 10) ^ __ROR4__(v118, 17) ^ __ROR4__(v118, 19));
v79 = v130
+ v116[1]
+ (v71 ^ v77 & (v74 ^ v71))
+ (__ROR4__(v77, 6) ^ __ROR4__(v77, 11) ^ __ROR4__(v77, 25))
+ v67;
v114 = v79 + v113;
v80 = (__ROR4__(v78, 2) ^ __ROR4__(v78, 13) ^ __ROR4__(v78, 22)) + (v75 & v72 | v78 & (v75 | v72)) + v79;
v120 += ((v119 >> 10) ^ __ROR4__(v119, 17) ^ __ROR4__(v119, 19))
+ v123
+ ((v121 >> 3) ^ __ROR4__(v121, 7) ^ __ROR4__(v121, 18));
v81 = v120
+ v116[2]
+ (v74 ^ v114 & ((v76 + v62) ^ v74))
+ (__ROR4__(v114, 6) ^ __ROR4__(v114, 11) ^ __ROR4__(v114, 25))
+ v71;
v82 = v81 + v72;
v83 = (__ROR4__(v80, 2) ^ __ROR4__(v80, 13) ^ __ROR4__(v80, 22)) + v81 + (v78 & v75 | v80 & (v78 | v75));
v121 += ((v130 >> 10) ^ __ROR4__(v130, 17) ^ __ROR4__(v130, 19))
+ v65
+ ((v122 >> 3) ^ __ROR4__(v122, 7) ^ __ROR4__(v122, 18));
v84 = v121
+ v116[3]
+ (v77 ^ v82 & (v114 ^ v77))
+ (__ROR4__(v82, 6) ^ __ROR4__(v82, 11) ^ __ROR4__(v82, 25))
+ v74;
v85 = v84 + v75;
v86 = (__ROR4__(v83, 2) ^ __ROR4__(v83, 13) ^ __ROR4__(v83, 22)) + v84 + (v80 & v78 | v83 & (v80 | v78));
v122 += ((v120 >> 10) ^ __ROR4__(v120, 17) ^ __ROR4__(v120, 19))
+ v117
+ ((v136 >> 3) ^ __ROR4__(v136, 7) ^ __ROR4__(v136, 18));
v87 = v122
+ v116[4]
+ (v114 ^ v85 & (v114 ^ v82))
+ (__ROR4__(v85, 6) ^ __ROR4__(v85, 11) ^ __ROR4__(v85, 25))
+ v76
+ v62;
v88 = v87 + v78;
v89 = (__ROR4__(v86, 2) ^ __ROR4__(v86, 13) ^ __ROR4__(v86, 22)) + v87 + (v83 & v80 | v86 & (v83 | v80));
v136 += v149
+ ((v121 >> 10) ^ __ROR4__(v121, 17) ^ __ROR4__(v121, 19))
+ ((v127 >> 3) ^ __ROR4__(v127, 7) ^ __ROR4__(v127, 18));
v90 = v136
+ v116[5]
+ (v82 ^ v88 & (v85 ^ v82))
+ (__ROR4__(v88, 6) ^ __ROR4__(v88, 11) ^ __ROR4__(v88, 25))
+ v114;
v91 = v90 + v80;
v92 = (__ROR4__(v89, 2) ^ __ROR4__(v89, 13) ^ __ROR4__(v89, 22)) + v90 + (v86 & v83 | v89 & (v86 | v83));
v127 += v118
+ ((v122 >> 10) ^ __ROR4__(v122, 17) ^ __ROR4__(v122, 19))
+ ((v129 >> 3) ^ __ROR4__(v129, 7) ^ __ROR4__(v129, 18));
v93 = v127
+ v116[6]
+ (v85 ^ v91 & (v88 ^ v85))
+ (__ROR4__(v91, 6) ^ __ROR4__(v91, 11) ^ __ROR4__(v91, 25))
+ v82;
v94 = v93 + v83;
v95 = (__ROR4__(v92, 2) ^ __ROR4__(v92, 13) ^ __ROR4__(v92, 22)) + v93 + (v89 & v86 | v92 & (v89 | v86));
v129 += v119
+ ((v136 >> 10) ^ __ROR4__(v136, 17) ^ __ROR4__(v136, 19))
+ ((v134 >> 3) ^ __ROR4__(v134, 7) ^ __ROR4__(v134, 18));
v96 = v129
+ v116[7]
+ (v88 ^ v94 & (v91 ^ v88))
+ (__ROR4__(v94, 6) ^ __ROR4__(v94, 11) ^ __ROR4__(v94, 25))
+ v85;
v97 = v96 + v86;
v98 = (__ROR4__(v95, 2) ^ __ROR4__(v95, 13) ^ __ROR4__(v95, 22)) + v96 + (v92 & v89 | v95 & (v92 | v89));
v134 += v130
+ ((v127 >> 10) ^ __ROR4__(v127, 17) ^ __ROR4__(v127, 19))
+ ((v131 >> 3) ^ __ROR4__(v131, 7) ^ __ROR4__(v131, 18));
v99 = v134
+ v116[8]
+ (v91 ^ v97 & (v94 ^ v91))
+ (__ROR4__(v97, 6) ^ __ROR4__(v97, 11) ^ __ROR4__(v97, 25))
+ v88;
v100 = v99 + v89;
v101 = (__ROR4__(v98, 2) ^ __ROR4__(v98, 13) ^ __ROR4__(v98, 22)) + v99 + (v92 & v95 | v98 & (v92 | v95));
v131 += v120
+ ((v129 >> 10) ^ __ROR4__(v129, 17) ^ __ROR4__(v129, 19))
+ ((v126 >> 3) ^ __ROR4__(v126, 7) ^ __ROR4__(v126, 18));
v102 = v131
+ v116[9]
+ (v94 ^ v100 & (v97 ^ v94))
+ (__ROR4__(v100, 6) ^ __ROR4__(v100, 11) ^ __ROR4__(v100, 25))
+ v91;
v103 = v102 + v92;
v104 = (__ROR4__(v101, 2) ^ __ROR4__(v101, 13) ^ __ROR4__(v101, 22)) + (v98 & v95 | v101 & (v98 | v95)) + v102;
v126 += v121
+ ((v134 >> 10) ^ __ROR4__(v134, 17) ^ __ROR4__(v134, 19))
+ ((v123 >> 3) ^ __ROR4__(v123, 7) ^ __ROR4__(v123, 18));
v105 = v126
+ v116[10]
+ (v97 ^ v103 & (v100 ^ v97))
+ (__ROR4__(v103, 6) ^ __ROR4__(v103, 11) ^ __ROR4__(v103, 25))
+ v94;
v115 = v105 + v95;
v55 = v105 + (__ROR4__(v104, 2) ^ __ROR4__(v104, 13) ^ __ROR4__(v104, 22)) + (v101 & v98 | v104 & (v101 | v98));
v123 += v122
+ ((v131 >> 10) ^ __ROR4__(v131, 17) ^ __ROR4__(v131, 19))
+ ((v132 >> 3) ^ __ROR4__(v132, 7) ^ __ROR4__(v132, 18));
v106 = v123
+ v116[11]
+ (v100 ^ (v105 + v95) & (v103 ^ v100))
+ (__ROR4__(v105 + v95, 6) ^ __ROR4__(v105 + v95, 11) ^ __ROR4__(v105 + v95, 25))
+ v97;
v57 = v98 + v106;
v125 = v57;
v59 = v106 + (__ROR4__(v55, 2) ^ __ROR4__(v55, 13) ^ __ROR4__(v55, 22)) + (v104 & v101 | v55 & (v104 | v101));
v65 = v136
+ ((v126 >> 10) ^ __ROR4__(v126, 17) ^ __ROR4__(v126, 19))
+ ((v117 >> 3) ^ __ROR4__(v117, 7) ^ __ROR4__(v117, 18))
+ v132;
v132 = v65;
v69 = v149;
v107 = v65
+ v116[12]
+ (v103 ^ v57 & (v103 ^ v115))
+ (__ROR4__(v57, 6) ^ __ROR4__(v57, 11) ^ __ROR4__(v57, 25))
+ v100;
v61 = v101 + v107;
v53 = v115;
v62 = (v55 & v104 | v59 & (v55 | v104)) + (__ROR4__(v59, 2) ^ __ROR4__(v59, 13) ^ __ROR4__(v59, 22)) + v107;
v64 = v127
+ ((v149 >> 3) ^ __ROR4__(v149, 7) ^ __ROR4__(v149, 18))
+ ((v123 >> 10) ^ __ROR4__(v123, 17) ^ __ROR4__(v123, 19))
+ v117;
v117 = v64;
v108 = v64
+ v116[13]
+ (v115 ^ v61 & (v57 ^ v115))
+ (__ROR4__(v61, 6) ^ __ROR4__(v61, 11) ^ __ROR4__(v61, 25))
+ v103;
v67 = v108 + v104;
v109 = v108 + (__ROR4__(v62, 2) ^ __ROR4__(v62, 13) ^ __ROR4__(v62, 22));
v44 = v134;
v110 = v109 + (v59 & v55 | v62 & (v59 | v55));
v113 = v110;
v116 += 16;
}
while( (__int64)v116 < (__int64)&_xmm + 8 );
v7 = v139 + v59;
v6 = v62 + v138;
v12 = v55 + v140;
v9 = v61 + v142;
v10 = v125 + v143;
v128 = v67;
v13 = v144 + 16;
v4 = v110 + v137;
v8 = v141 + v128;
v111 = v145-- == 1;
v137 += v110;
*(_DWORD *)a1 = v137;
v138 = v6;
*((_DWORD *)a1 + 1) = v6;
v140 = v12;
*((_DWORD *)a1 + 3) = v12;
v141 = v8;
*((_DWORD *)a1 + 4) = v8;
v142 = v9;
*((_DWORD *)a1 + 5) = v9;
v143 = v10;
*((_DWORD *)a1 + 6) = v10;
v135 += v53;
v11 = v135;
*((_DWORD *)a1 + 7) = v135;
v139 = v7;
*((_DWORD *)a1 + 2) = v7;
v144 += 16;
}
while( !v111 );
a3 = v147;
}
*a4 = a3;
return 0i64;
}Referenced by:
SymCryptSha256AppendBlocks