int
__thiscall sub_43A640(
int
this
,
int
a2)
{
int
result;
int
v3;
int
v4;
int
v5;
unsigned
int
v6;
unsigned
int
v7;
unsigned
int
v8;
unsigned
int
v9;
int
v10;
unsigned
int
v11;
int
v12;
unsigned
int
v13;
int
v14;
unsigned
int
v15;
int
v16;
unsigned
int
v17;
int
v18;
unsigned
int
v19;
int
v20;
unsigned
int
v21;
int
v22;
unsigned
int
v23;
int
v24;
signed
int
v25;
unsigned
int
v26;
int
v27;
signed
int
v28;
unsigned
int
v29;
unsigned
int
v30;
int
v31;
unsigned
int
v32;
int
v33;
unsigned
int
v34;
int
v35;
unsigned
int
v36;
int
v37;
unsigned
int
v38;
int
v39;
int
v40;
unsigned
int
v41;
int
v42;
unsigned
int
v43;
unsigned
int
v44;
int
v45;
unsigned
int
v46;
int
v47;
int
v48;
unsigned
int
v49;
unsigned
int
v50;
int
v51;
unsigned
int
v52;
int
v53;
unsigned
int
v54;
int
v55;
unsigned
int
v56;
int
v57;
unsigned
int
v58;
int
v59;
unsigned
int
v60;
unsigned
int
v61;
int
v62;
unsigned
int
v63;
int
v64;
unsigned
int
v65;
int
v66;
unsigned
int
v67;
unsigned
int
v68;
int
v69;
unsigned
int
v70;
int
v71;
unsigned
int
v72;
int
v73;
unsigned
int
v74;
unsigned
int
v75;
int
v76;
unsigned
int
v77;
unsigned
int
v78;
unsigned
int
v79;
int
v80;
unsigned
int
v81;
unsigned
int
v82;
unsigned
int
v83;
unsigned
int
v84;
unsigned
int
v85;
int
v86;
int
v87;
int
v88;
int
v89;
int
v90;
int
v91;
unsigned
int
v92;
unsigned
int
v93;
unsigned
int
v94;
int
v95;
int
v96;
int
v97;
int
v98;
int
v99;
int
v100;
int
v101;
int
v102;
int
v103;
int
v104;
int
v105;
int
v106;
int
v107;
int
v108;
int
v109;
int
v110;
signed
int
v111;
v3 =
this
;
v4 = *(_DWORD *)(
this
+ 84);
v5 = *(_DWORD *)(
this
+ 76);
v92 = *(_DWORD *)(
this
+ 80);
v93 = v4;
v91 = v5;
v94 = *(_DWORD *)(
this
+ 88);
sub_43A5F0(&v95, a2, 64);
v6 = v92
+ (((v91 + v95 + (v92 & v93 | v94 & ~v92) - 680876936) << 7) | ((v91 + v95 + (v92 & v93 | v94 & ~v92) - 680876936) >> 25));
v7 = v6
+ (((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) << 12) | ((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) >> 20));
v8 = v7
+ (((v93
+ v97
+ (v6 & (v6
+ (((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) << 12) | ((v94
+ v96
+ (v6 & v92 | v93 & ~v6)
- 389564586) >> 20))) | v92 & ~v7)
+ 606105819) << 17) | ((v93
+ v97
+ (v6 & (v6
+ (((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) << 12) | ((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) >> 20))) | v92 & ~v7)
+ 606105819) >> 15));
v92 = v8
+ (((v92
+ v98
+ (v8 & (v6
+ (((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) << 12) | ((v94
+ v96
+ (v6 & v92 | v93 & ~v6)
- 389564586) >> 20))) | v6 & ~v8)
- 1044525330) >> 10) | ((v92
+ v98
+ (v8 & (v6
+ (((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) << 12) | ((v94 + v96 + (v6 & v92 | v93 & ~v6) - 389564586) >> 20))) | v6 & ~v8)
- 1044525330) << 22));
v9 = v6 + v99 + (v92 & v8 | v7 & ~v92) - 176418897;
v10 = v92 + ((v9 << 7) | (v9 >> 25));
v11 = v7 + v100 + (v10 & v92 | v8 & ~v10) + 1200080426;
v12 = v10 + ((v11 << 12) | (v11 >> 20));
v13 = v8 + v101 + (v10 & v12 | v92 & ~v12) - 1473231341;
v14 = v12 + ((v13 << 17) | (v13 >> 15));
v92 = v14
+ (((v92 + v102 + (v14 & v12 | v10 & ~v14) - 45705983) >> 10) | ((v92 + v102 + (v14 & v12 | v10 & ~v14) - 45705983) << 22));
v15 = v10 + v103 + (v92 & v14 | v12 & ~v92) + 1770035416;
v16 = v92 + ((v15 << 7) | (v15 >> 25));
v17 = v12 + v104 + (v16 & v92 | v14 & ~v16) - 1958414417;
v18 = v16 + ((v17 << 12) | (v17 >> 20));
v19 = v14 + v105 + (v16 & v18 | v92 & ~v18) - 42063;
v20 = v18 + ((v19 << 17) | (v19 >> 15));
v92 = v20
+ (((v92 + v106 + (v20 & v18 | v16 & ~v20) - 1990404162) >> 10) | ((v92
+ v106
+ (v20 & v18 | v16 & ~v20)
- 1990404162) << 22));
v21 = v16 + v107 + (v92 & v20 | v18 & ~v92) + 1804603682;
v22 = v92 + ((v21 << 7) | (v21 >> 25));
v23 = v18 + v108 + (v22 & v92 | v20 & ~v22) - 40341101;
v24 = v22 + ((v23 << 12) | (v23 >> 20));
v25 = ~(v22 + ((v23 << 12) | (v23 >> 20)));
v26 = v20 + v109 + (v22 & v24 | v92 & ~(v22 + ((v23 << 12) | (v23 >> 20)))) - 1502002290;
v27 = v24 + ((v26 << 17) | (v26 >> 15));
v28 = ~(v24 + ((v26 << 17) | (v26 >> 15)));
v111 = v28;
v29 = v27
+ (((v92 + 1236535329 + v110 + (v27 & v24 | v22 & v28)) >> 10) | ((v92
+ 1236535329
+ v110
+ (v27 & v24 | v22 & v28)) << 22));
v30 = v22 + v96 + (v29 & v24 | v27 & v25) - 165796510;
v31 = v29 + (32 * v30 | (v30 >> 27));
v32 = v24 + v101 + (v31 & v27 | v29 & v111) - 1069501632;
v33 = v31 + ((v32 << 9) | (v32 >> 23));
v34 = v27 + v106 + (v29 & v33 | v31 & ~v29) + 643717713;
v35 = v33 + ((v34 << 14) | (v34 >> 18));
v36 = v29 + v95 + (v31 & v35 | v33 & ~v31) - 373897302;
v37 = v35 + ((v36 >> 12) | (v36 << 20));
v38 = v31 + v100 + (v37 & v33 | v35 & ~v33) - 701558691;
v39 = v105 + ((v37 + (32 * v38 | (v38 >> 27))) & v35 | v37 & ~v35);
v40 = v37 + (32 * v38 | (v38 >> 27));
v41 = v40 + (((v33 + v39 + 38016083) << 9) | ((unsigned
int
)(v33 + v39 + 38016083) >> 23));
v42 = v110 + (v37 & v41 | v40 & ~v37);
v43 = v41 + (((v35 + v42 - 660478335) << 14) | ((unsigned
int
)(v35 + v42 - 660478335) >> 18));
v44 = v37 + v99 + (v40 & v43 | v41 & ~v40) - 405537848;
v45 = v43 + ((v44 >> 12) | (v44 << 20));
v46 = v40 + v104 + (v45 & v41 | v43 & ~v41) + 568446438;
v47 = 32 * v46 | (v46 >> 27);
v91 = v45 + v47;
v48 = (v45 + v47) & v43 | v45 & ~v43;
v49 = v91 + (((v41 + v109 + v48 - 1019803690) << 9) | ((v41 + v109 + v48 - 1019803690) >> 23));
v50 = v43 + v98 + (v45 & v49 | v91 & ~v45) - 187363961;
v51 = v49 + ((v50 << 14) | (v50 >> 18));
v52 = v45 + v103 + (v91 & (v49 + ((v50 << 14) | (v50 >> 18))) | v49 & ~v91) + 1163531501;
v53 = v51 + ((v52 >> 12) | (v52 << 20));
v91 = v53
+ (32 * (v91 + v108 + (v53 & v49 | v51 & ~v49) - 1444681467) | ((v91 + v108 + (v53 & v49 | v51 & ~v49) - 1444681467) >> 27));
v54 = v49 + v97 + (v91 & v51 | v53 & ~v51) - 51403784;
v55 = v91 + ((v54 << 9) | (v54 >> 23));
v56 = v51 + v102 + (v53 & v55 | v91 & ~v53) + 1735328473;
v57 = v55 + ((v56 << 14) | (v56 >> 18));
v58 = v53 + v107 + (v91 & (v55 + ((v56 << 14) | (v56 >> 18))) | v55 & ~v91) - 1926607734;
v59 = v57 + ((v58 >> 12) | (v58 << 20));
v60 = v59
+ (16 * (v91 + v100 + (v59 ^ v57 ^ v55) - 378558) | ((v91 + v100 + (v59 ^ v57 ^ (unsigned
int
)v55) - 378558) >> 28));
v61 = v55 + v103 + (v60 ^ v59 ^ v57) - 2022574463;
v62 = v60 + ((v61 << 11) | (v61 >> 21));
v63 = v57 + v106 + (v60 ^ v59 ^ (v60 + ((v61 << 11) | (v61 >> 21)))) + 1839030562;
v64 = v62 + ((v63 << 16) | (v63 >> 16));
v65 = v59 + v109 + (v60 ^ v64 ^ v62) - 35309556;
v66 = v64 + ((v65 >> 9) | (v65 << 23));
v67 = v66 + (16 * (v60 + v96 + (v66 ^ v64 ^ v62) - 1530992060) | ((v60 + v96 + (v66 ^ v64 ^ v62) - 1530992060) >> 28));
v68 = v62 + v99 + (v67 ^ v66 ^ v64) + 1272893353;
v69 = v67 + ((v68 << 11) | (v68 >> 21));
v70 = v64 + v102 + (v67 ^ v66 ^ v69) - 155497632;
v71 = v69 + ((v70 << 16) | (v70 >> 16));
v72 = v66 + v105 + (v67 ^ v71 ^ v69) - 1094730640;
v73 = v71 + ((v72 >> 9) | (v72 << 23));
v74 = v73 + (16 * (v67 + v108 + (v73 ^ v71 ^ v69) + 681279174) | ((v67 + v108 + (v73 ^ v71 ^ v69) + 681279174) >> 28));
v75 = v69 - 358537222 + v95 + (v74 ^ v73 ^ v71);
v76 = v74 + ((v75 << 11) | (v75 >> 21));
v77 = v76
+ (((v71 + v98 + (v74 ^ v73 ^ v76) - 722521979) << 16) | ((v71 + v98 + (v74 ^ v73 ^ v76) - 722521979) >> 16));
v78 = v77 + (((v101 + (v74 ^ v77 ^ v76) + 76029189 + v73) >> 9) | ((v101 + (v74 ^ v77 ^ v76) + 76029189 + v73) << 23));
v79 = v74 + v104 + (v78 ^ v77 ^ v76) - 640364487;
v80 = v78 + (16 * v79 | (v79 >> 28));
v81 = v80
+ (((v76 + v107 + (v80 ^ v78 ^ v77) - 421815835) << 11) | ((v76 + v107 + (v80 ^ v78 ^ v77) - 421815835) >> 21));
v82 = v81
+ (((v77 + v110 + (v80 ^ v78 ^ v81) + 530742520) << 16) | ((v77 + v110 + (v80 ^ v78 ^ v81) + 530742520) >> 16));
v83 = v78 + v97 + (v80 ^ v82 ^ v81) - 995338651;
v92 = v82 + ((v83 >> 9) | (v83 << 23));
v84 = v80 + v95 + (v82 ^ (v92 | ~v81)) - 198630844;
v91 = v92 + ((v84 << 6) | (v84 >> 26));
v94 = v91
+ (((v81 + v102 + (v92 ^ (v91 | ~v82)) + 1126891415) << 10) | ((v81 + v102 + (v92 ^ (v91 | ~v82)) + 1126891415) >> 22));
v85 = v82 + v109 + (v91 ^ (v94 | ~v92)) - 1416354905;
v86 = (v85 << 15) | (v85 >> 17);
v93 = v94 + v86;
sub_4529F0(&v92, v94 + v86, v94, v92 + ((v84 << 6) | (v84 >> 26)), v100, 21, -57434055);
sub_4529F0(&v91, v92, v93, v94, v107, 6, 1700485571);
sub_4529F0(&v94, v91, v92, v93, v98, 10, -1894986606);
sub_4529F0(&v93, v94, v91, v92, v105, 15, -1051523);
sub_4529F0(&v92, v93, v94, v91, v96, 21, -2054922799);
sub_4529F0(&v91, v92, v93, v94, v103, 6, 1873313359);
sub_4529F0(&v94, v91, v92, v93, v110, 10, -30611744);
sub_4529F0(&v93, v94, v91, v92, v101, 15, -1560198380);
sub_4529F0(&v92, v93, v94, v91, v108, 21, 1309151649);
sub_4529F0(&v91, v92, v93, v94, v99, 6, -145523070);
sub_4529F0(&v94, v91, v92, v93, v106, 10, -1120210379);
sub_4529F0(&v93, v94, v91, v92, v97, 15, 718787259);
sub_4529F0(&v92, v93, v94, v91, v104, 21, -343485551);
v87 = v93;
v88 = *(_DWORD *)(v3 + 84);
v89 = v92 + *(_DWORD *)(v3 + 80);
*(_DWORD *)(v3 + 76) += v91;
*(_DWORD *)(v3 + 80) = v89;
v90 = *(_DWORD *)(v3 + 88);
*(_DWORD *)(v3 + 84) = v87 + v88;
result = v94 + v90;
*(_DWORD *)(v3 + 88) = result;
return
result;