SymCryptSha256Append
VOID __fastcall SymCryptSha256Append(__m128i *a1, const __m128i *a2, UINT64 a3){
UINT64 v3;
__m128i *v4;
__int64 v5;
UINT64 v7;
UINT64 v8;
UINT64 v9;
v9 = 0i64;
v3 = a3;
a1[1].m128i_i64[0] += a3;
v4 = (__m128i *)a2;
v5 = a1->m128i_u32[0];
if( (_DWORD)v5 )
{
v7 = (unsigned int)(64 - v5);
if( a3 >= v7 )
{
memmove(&a1[2].m128i_u8[v5], (UINT8 *)a2, (unsigned int)v7);
v4 = (__m128i *)((char *)v4 + v7);
v3 -= v7;
SymCryptSha256AppendBlocks(a1 + 6, a1 + 2, 0x40ui64, &v9);
LODWORD(v5) = 0;
}
}
if( v3 >= 0x40 )
{
SymCryptSha256AppendBlocks(a1 + 6, v4, v3, &v9);
v8 = v3;
v3 = v9;
v4 = (__m128i *)((char *)v4 + v8 - v9);
}
if( v3 )
{
memmove(&a1[2].m128i_u8[(unsigned int)v5], (UINT8 *)v4, v3);
LODWORD(v5) = v3 + v5;
}
a1->m128i_i32[0] = v5;
}Referenced by:
SymCryptSha256