/** @file
  KbcEmul.c -- KbcEmul

  Auto-converted from IDA decompiler output.
  Functions: 1

Copyright (c) HR650X BIOS Decompilation Project
**/

#include "KbcEmul.h"

// Recovered context placeholder: name recovered from decompilation usage and
// documentation intent; exact layout is outside the current decompilation scope.
STATIC VOID *mKbcEmulationContext = NULL;


// Function: ModuleEntryPoint
// Recovered symbols and roles:
// - KbcEmulInitialize: cache image/system table context
// - KbcEmulRegisterPortEmulation: register KBC SMI I/O traps
// - KbcEmulCleanupContext / KbcEmulUnregisterPortTraps / KbcEmulAssert:
//   module teardown/assertion helpers from AutoGen assertions
EFI_STATUS ModuleEntryPoint(
  EFI_HANDLE      ImageHandle,
  EFI_SYSTEM_TABLE *SystemTable
  )
{
  EFI_HANDLE       ImageHandleArg = ImageHandle; // rcx
  EFI_STATUS       DriverStatus;              // rax
  EFI_STATUS       ModuleStatus = 0x8000000000000001uLL;
  VOID            *EmulationContext = mKbcEmulationContext;

  KbcEmulInitialize(ImageHandleArg);
  ModuleStatus = 0x8000000000000001uLL;
  if ( !KbcEmulContextNeedsSetup(EmulationContext) )
  {
    DriverStatus = KbcEmulRegisterPortEmulation(ImageHandleArg, SystemTable);
    if ( DriverStatus >= 0 || ModuleStatus < 0 )
      ModuleStatus = DriverStatus;
    KbcEmulCleanupContext(EmulationContext);
    KbcEmulUnregisterPortTraps(EmulationContext, -1);
    KbcEmulAssert(
      "e:\\hs\\Build\\HR6N0XMLK\\DEBUG_VS2015\\X64\\AmiModulePkg\\KbcEmulation\\KbcEmul\\DEBUG\\AutoGen.c",
      226,
      "((BOOLEAN)(0==1))");
    KbcEmulAssert(
      "e:\\hs\\Build\\HR6N0XMLK\\DEBUG_VS2015\\X64\\AmiModulePkg\\KbcEmulation\\KbcEmul\\DEBUG\\AutoGen.c",
      241,
      "((BOOLEAN)(0==1))");
  }
  return ModuleStatus;
}
