SymCryptSha256Result
VOID __stdcall SymCryptSha256Result(PSYMCRYPT_SHA256_STATE pState, PBYTE pbResult){
__int64 v2;
__int64 v3;
unsigned int v5;
__int64 *v6;
__int64 v7;
__int64 v8;
unsigned __int64 v9;
v9 = 0i64;
v2 = *(_QWORD *)&pState;
v3 = (unsigned int)**(_DWORD **)&pState;
*(_BYTE *)(v3 + v2 + 32) = 0x80;
v5 = v3 + 1;
if( v5 > 0x38 )
{
SymCryptWipe((VOID *)(v5 + v2 + 32), 64 - v5);
SymCryptSha256AppendBlocks((__m128i *)(v2 + 96), (const __m128i *)(v2 + 32), 0x40ui64, &v9);
v5 = 0;
}
SymCryptWipe((VOID *)(v5 + v2 + 32), 64 - v5);
*(_QWORD *)(v2 + 88) = _byteswap_uint64(8i64 * *(_QWORD *)(v2 + 16));
SymCryptSha256AppendBlocks((__m128i *)(v2 + 96), (const __m128i *)(v2 + 32), 0x40ui64, &v9);
v6 = (__int64 *)(v2 + 96);
v7 = 4i64;
do
{
v8 = *v6++;
*(_QWORD *)pbResult = _byteswap_uint64(__ROL8__(v8, 32));
pbResult += 8;
--v7;
}
while( v7 );
SymCryptWipe((VOID *)v2, 128);
*(_OWORD *)(v2 + 96) = xmmword_14000F498;
*(_OWORD *)(v2 + 112) = xmmword_14000F4A8;
}Referenced by:
SymCryptSha256