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