SymCryptParallelSha256Process

VOID __fastcall SymCryptParallelSha256Process(INT64 a1, UINT64 a2, UINT64 a3, UINT64 a4, INT64 a5, UINT64 a6){
  WHEA_ERROR_SEVERITY *v10; 
  UINT64 v11; 
  INT64 result[8]; 
  memset((INT64)result, 0i64);
  if( (((unsigned __int8)g_SymCryptCpuFeaturesNotPresent | (unsigned __int8)SymCryptCpuFeaturesNeverPresent()) & 0x10) != 0
    || (unsigned int)SymCryptSaveYmm((struct XSTATE_SAVE *)result) )
  {
    if( (((unsigned __int8)g_SymCryptCpuFeaturesNotPresent | (unsigned __int8)SymCryptCpuFeaturesNeverPresent()) & 2) != 0
      || (unsigned int)SymCryptCpuFeaturesNeverPresent() )
    {
      SymCryptParallelHashProcess_serial((INT64 *)&SymCryptParallelSha256Algorithm_default, a1, a2, a3, a4, a5, a6);
    }
    else
    {
      LODWORD(v11) = 4;
      SymCryptParallelHashProcess((INT64)&SymCryptParallelSha256Algorithm_default, a1, a2, a3, a4, a5, a6, v11);
      SymCryptRestoreXmm(result, v10);
    }
  }
  else
  {
    LODWORD(v11) = 8;
    SymCryptParallelHashProcess((INT64)&SymCryptParallelSha256Algorithm_default, a1, a2, a3, a4, a5, a6, v11);
    SymCryptRestoreYmm((struct XSTATE_SAVE *)result);
  }
}

Referenced by:

KeComputeParallelSha256