HalpCmciInitializeErrorPacket

INT64 __fastcall HalpCmciInitializeErrorPacket(INT64 a1, INT64 a2){
  __int64 v3; 
  __int64 v4; 
  INT64 McaPcrContext; 
  unsigned __int8 CurrentIrql; 
  INT64 result; 
  v3 = 0i64;
  McaPcrContext = HalpGetMcaPcrContext(a2);
  if( !*(_QWORD *)(McaPcrContext + 16) )
  {
    v3 = HalpMmAllocCtxAlloc(v4, 352i64);
    if( !v3 )
      KeBugCheckEx(0xACu, 0x160ui64, 0xDA00ui64, 0i64, 0i64);
  }
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(0xFui64);
  if( v3 )
    *(_QWORD *)(McaPcrContext + 16) = v3;
  else
    v3 = *(_QWORD *)(McaPcrContext + 16);
  HalpCmcInitializeErrorPacketContents(v3);
  *(_OWORD *)(*(_QWORD *)(McaPcrContext + 16) + 32i64) = CMCI_NOTIFY_TYPE_GUID;
  *(_QWORD *)(McaPcrContext + 24) = a1;
  result = CurrentIrql;
  __writecr8(CurrentIrql);
  return result;
}

Referenced by:

HalpCmciInit
HalpInitializeCmc