HalpUnloadMicrocode

NTSTATUS __stdcall HalpUnloadMicrocode(){
  VOID *v0; 

  *(&CmpDummyThreadEvent + 862) = 0i64;
  *(&CmpDummyThreadEvent + 855) = 0i64;
  *(&CmpDummyThreadEvent + 854) = 0i64;
  *(&CmpDummyThreadEvent + 859) = 0i64;
  *(&CmpDummyThreadEvent + 858) = 0i64;
  *(&CmpDummyThreadEvent + 857) = 0i64;
  HalpMcSetUpdateInfoInvalid();
  v0 = (VOID *)*(&CmpDummyThreadEvent + 861);
  if( *(&CmpDummyThreadEvent + 861) )
  {
    *(&CmpDummyThreadEvent + 861) = 0i64;
    if( *(&CmpDummyThreadEvent + 6880) )
    {
      MmReturnChargesToLockPagedPool(v0, *(&CmpDummyThreadEvent + 1726));
      *(&CmpDummyThreadEvent + 6880) = 0;
    }
    *(&CmpDummyThreadEvent + 1726) = 0;
    ExFreePoolWithTag(v0, 0);
  }
  return 0;
}

Referenced by:

HalpLoadMicrocode
HalpMcExportAndChargeNeededData