SymCryptParallelSha256Process

void __fastcall SymCryptParallelSha256Process(INT64 a1, UINT64 a2, UINT64 a3, UINT64 a4, INT64 a5, INT64 a6){
  UINT64 v10; 
  char pSaveData[64]; 

  memset(pSaveData, 0i64, sizeof(pSaveData));
  if( (((unsigned __int8)g_SymCryptCpuFeaturesNotPresent | (unsigned __int8)SymCryptCpuFeaturesNeverPresent()) & 0x10) != 0
    || SymCryptSaveYmm((PSYMCRYPT_EXTENDED_SAVE_DATA)pSaveData) )
  {
    if( (((unsigned __int8)g_SymCryptCpuFeaturesNotPresent | (unsigned __int8)SymCryptCpuFeaturesNeverPresent()) & 2) != 0
      || SymCryptCpuFeaturesNeverPresent() )
    {
      SymCryptParallelHashProcess_serial((INT64 *)&SymCryptParallelSha256Algorithm_default, a1, a2, a3, a4, a5, a6);
    }
    else
    {
      LODWORD(v10) = 4;
      SymCryptParallelHashProcess((INT64)&SymCryptParallelSha256Algorithm_default, a1, a2, a3, a4, a5, a6, v10);
      SymCryptRestoreXmm((PSYMCRYPT_EXTENDED_SAVE_DATA)pSaveData);
    }
  }
  else
  {
    LODWORD(v10) = 8;
    SymCryptParallelHashProcess((INT64)&SymCryptParallelSha256Algorithm_default, a1, a2, a3, a4, a5, a6, v10);
    SymCryptRestoreYmm((_XSTATE_SAVE *)pSaveData);
  }
}

Referenced by:

KeComputeParallelSha256