HalpInitializeCmc

NTSTATUS __stdcall HalpInitializeCmc(INT64 a1, INT64 a2){
  INT64 v4; 

  HIDWORD(v4) = 0;
  if( (_DWORD)a1 )
  {
    if( (_DWORD)a1 == 1 )
    {
      dword_140C50554 = *(_DWORD *)(a2 + 28);
      qword_140C50530 = a2;
      if( HalpIsCmciImplemented() )
      {
        *(_BYTE *)(a2 + 48) = 5;
        HalpCmciInit(a2);
      }
      HalpCmcInitializePolling(a2);
      HalpCmcStartPolling();
    }
    else
    {
      LODWORD(v4) = KeGetPcr()->Prcb.Number;
      if( HalpIsCmciImplemented() )
      {
        HalpCmciInitializeErrorPacket(a2, v4);
        HalpCmciInitProcessor(a2, v4);
      }
    }
  }
  else
  {
    dword_140C50554 = *(_DWORD *)(a2 + 28);
    qword_140C50530 = a2;
    if( HalpIsCmciImplemented() )
    {
      byte_140C50521 = 1;
      *(_BYTE *)(a2 + 48) = 5;
      HalpCmciInit(a2);
    }
  }
  return 0;
}

Referenced by:

HalpInitializeErrSrc