* 9/02/06
  Fixed problem with import by ordinal.  ordinal base value was not being
  subtracted.  Added proper checking for optional .dll extension in calls
  to LoadLibrary and GetModuleHandle.
  
* 6/07/06
  Added logic to check for thunk/jump funcs to dll functions.
  Ensure that a segment is created for the iat.  Ida doesn't always create
  an iat when the iat falls in a non-standard section such as .rsrc 

* 5/09/06
  Redesign of import table handling. Emulator no searches for dlls on disk
  and loads the headers for any referenced dlls along with their export 
  directories.  Additionally, the emulator ensures that the import name table
  from the original binary is loaded and does lookup against the loaded
  export directories to resolve and set IAT address.  The emulator no longer
  makes any calls to the GetProcAddress, LoadLibrary, or GetModuleHandle.
  Release of version 0.9.3

* 5/06/06
  Improved handling of import tables.
  Emulator now creates header sections and loads headers for PE and ELF
  binaries.
  Release of version 0.9.2
  Added conditional compilation code for compatibility back to SDK46
  
* 3/13/06
  Added heap info dump.  All chunk addresses and sizes can be dumped 
  to message window.
  Generated makefile (x86Emulator.mak) for Visual Studio users to 
  build from command line.
  
* 01/27/06
  Added support for bit test/set/reset/compliment operations
  
* 01/01/06
  Initial support for threads
  
* 12/21/05
  New exception handling architecture
  
* 12/06/05
  Release of version 0.8

* 12/01/05
  Added GUI functionality to write user supplied data to any memory
  location the emulator know about.  This includes ida space, and the
  emulated stack and heap space.
  
  Fixed bug in heap allocator logic.

* 11/29/05
  Changed heap implementation to allow for multiple heaps.  Added emulations
  for Windows heap functions GetProcessHeap, HeapCreate, HeapDestroy, 
  HeapAlloc, and HeapFree.
  
* 11/24/05
  Fixed implementation of mov reg, seg and mov seg, reg.  Fixed in/out to 
  fetch proper number of bytes but make no other state changes.
  
* 11/22/05
  Added reverse lookup capability to map function addresses to their exported
  name in loaded Windows dlls.  Added popup dialog box whenever a call is made
  to an unemulated library function from a Windows exe.
  
* 11/21/05
  Moved linking code so that it runs on pluging initiation rather than file
  load.  Automatically loads modules that were previously loaded, skips modules
  that are being faked.  Tests all function calls to see if they call to a 
  loaded module.  If they do, a reverse lookup is done from the function call
  address to the corresponding function name via the dll export table and 
  the function is hooked automatically.
  
* 11/20/05
  For Windows PE files, parse import table on initial load. Use actual module
  handles. Use actual return values from GetProcAddress.  Offer user the
  chance to call LoadLibrary, or generate fake handle for unloaded modules.
  Automatically hooks all imported functions that it has emulations for.
  Compiles for SDK 4.9
  
* 07/12/05
  Finally activated the state saving code that has been sitting dormant for a
  while.  Thanks to Jeremy Cooper for the netnode manipulation code and input
  on the state saving code in general.
  
* 07/08/05
  Implemented BSWAP instruction
  
* 07/04/05
  Fix for MOV problem reported by daineng
  Addition of makefile.gcc to allow compiling with cygwin
  
* 04/04/05
  Changes to compile with SDK480

* 11/08/04
  Changes to stack display logic

  Implemented breakpoints

  Added manual exception generation

* 10/07/04
  Menu reorganization
  
  Main Dialog box resized and reorganized

  Added the ability to automatically regenerate an import table by specifying
  the instruction responsible for storing the results of calls to 
  GetProcAddress.  This is called the GetProcAddress "save point" and when 
  encountered the emulator names the location after the last function looked
  up in a call to GetProcAddress. Set via Emulate/Windows/Set GPA save point

* 10/06/04
  Fixed incorrect REP prefix testing for MOVS, LODS, and STOS

  Added code to increment EDI and ESI during INS and OUT respectively though
  no data is moved during the instruction

* 08/17/04
   Fixed hook function combo box behavior.

   Changes to hooking data structures to support GetProcAddress emulation

   Added basic emulated implementations of GetProcAddress, GetModuleHandle,
   and LoadLibrary.  Each reports how they are called to the message window
   and generates a unique return value for use later function calls. 

   GetProcAddress automatically creates hooks wherever possible.

   Changed setup to include a default heap at startup.

* 08/15/04
   Fixed MOVZX behavior

   Implemented a formerly unimplemented IMUL instruction (0F AF)
   
* 07/26/04
   Changed function hooking behavior.  Hooks are now based on destination
   (i.e. hooked function) address rather than call location.  Now, hooking
   a function once properly hooks it for all calls to that function.

* 07/04/04
   Activated SEH functionality.  Plugin now detects loaded file type 
   (pe or elf) and activates SEH if type is pe.  Also does a little 
   better initial stack setup based on file type.  Plugin currently
   generates SEH exception frames for INT3, single stepping with TRAP
   flag, use of Debug registers 0-3/7 and division by zero.
   
* 07/02/04
   Added Scc functionality.
   
* 04/10/2004
   Minor change to project options to clear up warning messages generated 
   during build under SDK460SP1
   
* 04/06/2004
   Corrected behavior of sbb.

* 04/03/2004
   Incorporated memory manager code with proof of concept function call 
   hooking.