SymCryptSha256Result

void __fastcall SymCryptSha256Result(PVOID pbData, _QWORD *a2){
  __int64 v3; 
  unsigned int v5; 
  __int64 *v6; 
  __int64 v7; 
  __int64 v8; 
  UINT64 v9; 
  v9 = 0i64;
  v3 = *(unsigned int *)pbData;
  *((_BYTE *)pbData + v3 + 32) = 0x80;
  v5 = v3 + 1;
  if( v5 > 0x38 )
  {
    SymCryptWipe((char *)pbData + v5 + 32, 64 - v5);
    SymCryptSha256AppendBlocks((__m128i *)pbData + 6, (const __m128i *)pbData + 2, 0x40ui64, &v9);
    v5 = 0;
  }
  SymCryptWipe((char *)pbData + v5 + 32, 64 - v5);
  *((_QWORD *)pbData + 11) = _byteswap_uint64(8i64 * *((_QWORD *)pbData + 2));
  SymCryptSha256AppendBlocks((__m128i *)pbData + 6, (const __m128i *)pbData + 2, 0x40ui64, &v9);
  v6 = (__int64 *)((char *)pbData + 96);
  v7 = 4i64;
  do
  {
    v8 = *v6++;
    *a2++ = _byteswap_uint64(__ROL8__(v8, 32));
    --v7;
  }
  while( v7 );
  SymCryptWipe(pbData, 0x80ui64);
  *((_OWORD *)pbData + 6) = xmmword_14000F498;
  *((_OWORD *)pbData + 7) = xmmword_14000F4A8;
}

Referenced by:

SymCryptSha256