SymCryptParallelSha256Append
__m128i *__fastcall SymCryptParallelSha256Append(INT64 a1, UINT64 a2, UINT64 a3, __m128i *a4){
unsigned int v8;
UINT64 v10;
_QWORD *v11;
__int64 v12;
__int64 v13;
__int64 v14[8];
INT64 result[8];
memset((INT64)result, 0i64);
memset((INT64)v14, 0i64);
v8 = (a2 + 3) & 0xFFFFFFFC;
if( a2 < 2 )
return(__m128i *)SymCryptParallelSha256AppendBytes_serial(a1, a2, a3);
v10 = 0i64;
do
{
v11 = *(_QWORD **)(a1 + 8 * v10);
result[v10] = *v11 + 96i64;
v12 = v11[4];
v14[v10] = v12;
v11[4] = a3 + v12;
v13 = *(_QWORD *)(a1 + 8 * v10++);
*(_QWORD *)(v13 + 40) -= a3;
}
while( v10 < a2 );
while( v10 < v8 )
{
result[v10] = result[0];
v14[v10++] = v14[0];
}
if( v8 == 8 )
return(__m128i *)SymCryptParallelSha256AppendBlocks_ymm(result, v14, a3, (INT64)a4);
else
return SymCryptParallelSha256AppendBlocks_xmm((__m128i **)result, (INT64)v14, a3, a4);
}Referenced by:
No references.