SymCryptSha256Append
VOID __stdcall SymCryptSha256Append(PSYMCRYPT_SHA256_STATE pState, PCBYTE pbData, _SIZE_T cbData, UINT64 a4){
unsigned __int64 v4;
const __m128i *v5;
__int64 v6;
__m128i *v7;
unsigned __int64 v8;
unsigned __int64 v9;
unsigned __int64 v10;
v10 = 0i64;
v4 = *(_QWORD *)&cbData;
*(_QWORD *)(*(_QWORD *)&pState + 16i64) += *(_QWORD *)&cbData;
v5 = (const __m128i *)pbData;
v6 = (unsigned int)**(_DWORD **)&pState;
v7 = *(__m128i **)&pState;
if( (_DWORD)v6 )
{
v8 = (unsigned int)(64 - v6);
if( *(_QWORD *)&cbData >= v8 )
{
memmove((VOID *)(v6 + *(_QWORD *)&pState + 32i64), pbData, v8);
v5 = (const __m128i *)((char *)v5 + v8);
v4 -= v8;
SymCryptSha256AppendBlocks(v7 + 6, v7 + 2, 0x40ui64, &v10);
LODWORD(v6) = 0;
}
}
if( v4 >= 0x40 )
{
SymCryptSha256AppendBlocks(v7 + 6, v5, v4, &v10);
v9 = v4;
v4 = v10;
v5 = (const __m128i *)((char *)v5 + v9 - v10);
}
if( v4 )
{
memmove(&v7[2].m128i_i8[(unsigned int)v6], v5, v4);
LODWORD(v6) = v4 + v6;
}
v7->m128i_i32[0] = v6;
}Referenced by:
SymCryptSha256