This is a port of z0mbie's Length-Disassembler-Engine (LDE) into VC7++ assembler syntax. The whole engine(Code+Data) fits now in one naked function. You will also find in the .c file the mentioned naked function as an shellcode like byte array. This is useful for hooking and code injection techiques, because the code is reallocateable.
a9014ee23609a933d12a93b167eeae5f39e2a3179f26582e3ad4cd8638f9c724
/*
www.delikon.de / 18.10.05
vc++ 7.0 inline assembler port from z0mbie's lde
this can be useful for code injection techniques, because with this code you have the data+code in one
naked function. the function uses only relative addressing.
tnx to fatmike for the Asm2Clipboard plugin
usage : dis(BYTE*,DWORD *);
this code can be used under the terms of the GNU Public License
++++i don't have test this code, please mail me if you find bugs++++++
*/
#include <windows.h>
#include <stdio.h>
typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef int BOOL;
#define C_NULL _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_ERROR 0xFFFFFFFF
#define C_ERROR _asm _emit 0xff _asm _emit 0xff _asm _emit 0xff _asm _emit 0xff
//#define C_PREFIX 0x00000001
#define C_PREFIX _asm _emit 0x01 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_66 0x00000002
#define C_66 _asm _emit 0x02 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
#define C_PREFIX_C_66 _asm _emit 0x03 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_67 0x00000004
#define C_67 _asm _emit 0x04 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
#define C_PREFIX_C_67 _asm _emit 0x05 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_DATA66 0x00000008
#define C_DATA66 _asm _emit 0x08 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_DATA1 0x00000010
#define C_DATA1 _asm _emit 0x10 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_DATA2 0x00000020
#define C_DATA2 _asm _emit 0x20 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_DATA4 0x00000040
#define C_DATA4 _asm _emit 0x40 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_MEM67 0x00000080
#define C_MEM67 _asm _emit 0x80 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
//#define C_MEM1 0x00000100
#define C_MEM1 _asm _emit 0x00 _asm _emit 0x01 _asm _emit 0x00 _asm _emit 0x00
//#define C_MEM2 0x00000200
#define C_MEM2 _asm _emit 0x00 _asm _emit 0x02 _asm _emit 0x00 _asm _emit 0x00
//#define C_MEM4 0x00000400
#define C_MEM4 __asm _emit 0x00 _asm _emit 0x04 _asm _emit 0x00 _asm _emit 0x00
//#define C_MODRM 0x00000800
#define C_MODRM _asm _emit 0x00 _asm _emit 0x08 _asm _emit 0x00 _asm _emit 0x00
//#define C_DATAW0 0x00001000
#define C_DATAW0 _asm _emit 0x00 _asm _emit 0x10 _asm _emit 0x00 _asm _emit 0x00
//#define C_FUCKINGTEST 0x00002000
#define C_FUCKINGTEST _asm _emit 0x00 _asm _emit 0x20 _asm _emit 0x00 _asm _emit 0x00
//#define C_TABLE_0F 0x00004000
#define C_TABLE_0F _asm _emit 0x00 _asm _emit 0x40 _asm _emit 0x00 _asm _emit 0x00
#define C_MODRM_C_DATA66 _asm _emit 0x08 _asm _emit 0x08 _asm _emit 0x00 _asm _emit 0x00
#define C_MODRM_C_DATA1 _asm _emit 0x10 _asm _emit 0x08 _asm _emit 0x00 _asm _emit 0x00
#define C_DATA66_C_MEM2 _asm _emit 0x08 _asm _emit 0x02 _asm _emit 0x00 _asm _emit 0x00
#define C_DATA2_C_DATA1 _asm _emit 0x30 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
#define C_DATA1_C_DATA4 _asm _emit 0x50 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00
// Generated by BreakPoint Software's Hex Workshop v4.20
// http://www.hexworkshop.com
// http://www.bpsoft.com
//
// Source File: 1.exe
// Time: 19.10.2005 12:31
// Orig. Offset: 1024 / 0x00000000
// Length: 2359 / 0x00000937 (bytes)
//++++++++++++++++++++dis2 is the byte array of the dis function. it shows that the function is reallocateable
unsigned char dis2[2359] =
{
0xE9, 0x0A, 0x08, 0x00, 0x00, 0xE8, 0x19, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x08,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x08, 0x08,
0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00,
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00,
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x10, 0x08,
0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00,
0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xE8, 0x44, 0x04, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x56,
0x36, 0x8B, 0x74, 0x24, 0x08, 0x33, 0xC0, 0x3E, 0x8A, 0x0E, 0x0F, 0xB6, 0xD1, 0x57, 0xE9, 0xE2,
0xF7, 0xFF, 0xFF, 0x5F, 0x3E, 0x0B, 0x04, 0x97, 0x5F, 0x46, 0xF6, 0xC4, 0x20, 0x74, 0x13, 0x3E,
0x8A, 0x06, 0x24, 0x38, 0xF6, 0xD8, 0x1B, 0xC0, 0x25, 0x00, 0xF0, 0xFF, 0xFF, 0x05, 0x00, 0x18,
0x00, 0x00, 0xF6, 0xC4, 0x40, 0x74, 0x13, 0x3E, 0x8A, 0x0E, 0x0F, 0xB6, 0xC1, 0x57, 0xE9, 0xB7,
0xFB, 0xFF, 0xFF, 0x5F, 0x3E, 0x8B, 0x04, 0x87, 0x5F, 0x46, 0xA8, 0x01, 0x74, 0x05, 0x83, 0xE0,
0xFE, 0xEB, 0xB4, 0xF6, 0xC4, 0x10, 0x74, 0x0D, 0xF6, 0xC1, 0x01, 0x74, 0x05, 0x83, 0xC8, 0x08,
0xEB, 0x03, 0x83, 0xC8, 0x10, 0xF6, 0xC4, 0x08, 0x53, 0x55, 0x57, 0xBF, 0x00, 0x02, 0x00, 0x00,
0xBD, 0x00, 0x04, 0x00, 0x00, 0xBB, 0x00, 0x01, 0x00, 0x00, 0x74, 0x55, 0x3E, 0x8A, 0x0E, 0x8A,
0xD1, 0x80, 0xE2, 0xC0, 0x46, 0x80, 0xE1, 0x07, 0x80, 0xFA, 0xC0, 0x74, 0x44, 0xA8, 0x04, 0x74,
0x1B, 0x84, 0xD2, 0x75, 0x07, 0x80, 0xF9, 0x06, 0x75, 0x37, 0x0B, 0xC7, 0x80, 0xFA, 0x40, 0x75,
0x02, 0x0B, 0xC3, 0x80, 0xFA, 0x80, 0x75, 0x29, 0x0B, 0xC7, 0xEB, 0x25, 0x80, 0xFA, 0x40, 0x75,
0x02, 0x0B, 0xC3, 0x80, 0xFA, 0x80, 0x75, 0x02, 0x0B, 0xC5, 0x80, 0xF9, 0x04, 0x75, 0x07, 0x3E,
0x8A, 0x0E, 0x80, 0xE1, 0x07, 0x46, 0x80, 0xF9, 0x05, 0x75, 0x06, 0x84, 0xD2, 0x75, 0x02, 0x0B,
0xC5, 0x84, 0xC0, 0x79, 0x0A, 0xA8, 0x04, 0x74, 0x04, 0x0B, 0xC7, 0xEB, 0x02, 0x0B, 0xC5, 0xA8,
0x08, 0x74, 0x0C, 0xA8, 0x02, 0x74, 0x05, 0x83, 0xC8, 0x20, 0xEB, 0x03, 0x83, 0xC8, 0x40, 0x85,
0xD8, 0x74, 0x01, 0x46, 0x85, 0xF8, 0x74, 0x02, 0x46, 0x46, 0x5F, 0x85, 0xE8, 0x5D, 0x5B, 0x74,
0x03, 0x83, 0xC6, 0x04, 0xA8, 0x10, 0x74, 0x01, 0x46, 0xA8, 0x20, 0x74, 0x02, 0x46, 0x46, 0xA8,
0x40, 0x74, 0x03, 0x83, 0xC6, 0x04, 0x36, 0x2B, 0x74, 0x24, 0x08, 0x36, 0x8B, 0x44, 0x24, 0x0C,
0x3E, 0x89, 0x30, 0x5E, 0xC2, 0x08, 0x00,
} ;
__declspec ( naked ) dis(){
_asm{
jmp over
table_1:
call callback1
C_MODRM
/* 01 */ C_MODRM
/* 02 */ C_MODRM
/* 03 */ C_MODRM
/* 04 */ C_DATAW0
/* 05 */ C_DATAW0
/* 06 */ C_NULL
/* 07 */ C_NULL
/* 08 */ C_MODRM
/* 09 */ C_MODRM
/* 0A */ C_MODRM
/* 0B */ C_MODRM
/* 0C */ C_DATAW0
/* 0D */ C_DATAW0
/* 0E */ C_NULL
/* 0F */ C_TABLE_0F
/* 10 */ C_MODRM
/* 11 */ C_MODRM
/* 12 */ C_MODRM
/* 13 */ C_MODRM
/* 14 */ C_DATAW0
/* 15 */ C_DATAW0
/* 16 */ C_NULL
/* 17 */ C_NULL
/* 18 */ C_MODRM
/* 19 */ C_MODRM
/* 1A */ C_MODRM
/* 1B */ C_MODRM
/* 1C */ C_DATAW0
/* 1D */ C_DATAW0
/* 1E */ C_NULL
/* 1F */ C_NULL
/* 20 */ C_MODRM
/* 21 */ C_MODRM
/* 22 */ C_MODRM
/* 23 */ C_MODRM
/* 24 */ C_DATAW0
/* 25 */ C_DATAW0
/* 26 */ C_PREFIX
/* 27 */ C_NULL
/* 28 */ C_MODRM
/* 29 */ C_MODRM
/* 2A */ C_MODRM
/* 2B */ C_MODRM
/* 2C */ C_DATAW0
/* 2D */ C_DATAW0
/* 2E */ C_PREFIX
/* 2F */ C_NULL
/* 30 */ C_MODRM
/* 31 */ C_MODRM
/* 32 */ C_MODRM
/* 33 */ C_MODRM
/* 34 */ C_DATAW0
/* 35 */ C_DATAW0
/* 36 */ C_PREFIX
/* 37 */ C_NULL
/* 38 */ C_MODRM
/* 39 */ C_MODRM
/* 3A */ C_MODRM
/* 3B */ C_MODRM
/* 3C */ C_DATAW0
/* 3D */ C_DATAW0
/* 3E */ C_PREFIX
/* 3F */ C_NULL
/* 40 */ C_NULL
/* 41 */ C_NULL
/* 42 */ C_NULL
/* 43 */ C_NULL
/* 44 */ C_NULL
/* 45 */ C_NULL
/* 46 */ C_NULL
/* 47 */ C_NULL
/* 48 */ C_NULL
/* 49 */ C_NULL
/* 4A */ C_NULL
/* 4B */ C_NULL
/* 4C */ C_NULL
/* 4D */ C_NULL
/* 4E */ C_NULL
/* 4F */ C_NULL
/* 50 */ C_NULL
/* 51 */ C_NULL
/* 52 */ C_NULL
/* 53 */ C_NULL
/* 54 */ C_NULL
/* 55 */ C_NULL
/* 56 */ C_NULL
/* 57 */ C_NULL
/* 58 */ C_NULL
/* 59 */ C_NULL
/* 5A */ C_NULL
/* 5B */ C_NULL
/* 5C */ C_NULL
/* 5D */ C_NULL
/* 5E */ C_NULL
/* 5F */ C_NULL
/* 60 */ C_NULL
/* 61 */ C_NULL
/* 62 */ C_MODRM
/* 63 */ C_MODRM
/* 64 */ C_PREFIX
/* 65 */ C_PREFIX
/* 66 */ C_PREFIX_C_66
/* 67 */ C_PREFIX_C_67
/* 68 */ C_DATA66
/* 69 */ C_MODRM_C_DATA66
/* 6A */ C_DATA1
/* 6B */ C_MODRM_C_DATA1
/* 6C */ C_NULL
/* 6D */ C_NULL
/* 6E */ C_NULL
/* 6F */ C_NULL
/* 70 */ C_DATA1
/* 71 */ C_DATA1
/* 72 */ C_DATA1
/* 73 */ C_DATA1
/* 74 */ C_DATA1
/* 75 */ C_DATA1
/* 76 */ C_DATA1
/* 77 */ C_DATA1
/* 78 */ C_DATA1
/* 79 */ C_DATA1
/* 7A */ C_DATA1
/* 7B */ C_DATA1
/* 7C */ C_DATA1
/* 7D */ C_DATA1
/* 7E */ C_DATA1
/* 7F */ C_DATA1
/* 80 */ C_MODRM_C_DATA1
/* 81 */ C_MODRM_C_DATA66
/* 82 */ C_MODRM_C_DATA1
/* 83 */ C_MODRM_C_DATA1
/* 84 */ C_MODRM
/* 85 */ C_MODRM
/* 86 */ C_MODRM
/* 87 */ C_MODRM
/* 88 */ C_MODRM
/* 89 */ C_MODRM
/* 8A */ C_MODRM
/* 8B */ C_MODRM
/* 8C */ C_MODRM
/* 8D */ C_MODRM
/* 8E */ C_MODRM
/* 8F */ C_MODRM
/* 90 */ C_NULL
/* 91 */ C_NULL
/* 92 */ C_NULL
/* 93 */ C_NULL
/* 94 */ C_NULL
/* 95 */ C_NULL
/* 96 */ C_NULL
/* 97 */ C_NULL
/* 98 */ C_NULL
/* 99 */ C_NULL
/* 9A */ C_DATA66_C_MEM2
/* 9B */ C_NULL
/* 9C */ C_NULL
/* 9D */ C_NULL
/* 9E */ C_NULL
/* 9F */ C_NULL
/* A0 */ C_MEM67
/* A1 */ C_MEM67
/* A2 */ C_MEM67
/* A3 */ C_MEM67
/* A4 */ C_NULL
/* A5 */ C_NULL
/* A6 */ C_NULL
/* A7 */ C_NULL
/* A8 */ C_DATA1
/* A9 */ C_DATA66
/* AA */ C_NULL
/* AB */ C_NULL
/* AC */ C_NULL
/* AD */ C_NULL
/* AE */ C_NULL
/* AF */ C_NULL
/* B0 */ C_DATA1
/* B1 */ C_DATA1
/* B2 */ C_DATA1
/* B3 */ C_DATA1
/* B4 */ C_DATA1
/* B5 */ C_DATA1
/* B6 */ C_DATA1
/* B7 */ C_DATA1
/* B8 */ C_DATA66
/* B9 */ C_DATA66
/* BA */ C_DATA66
/* BB */ C_DATA66
/* BC */ C_DATA66
/* BD */ C_DATA66
/* BE */ C_DATA66
/* BF */ C_DATA66
/* C0 */ C_MODRM_C_DATA1
/* C1 */ C_MODRM_C_DATA1
/* C2 */ C_DATA2
/* C3 */ C_NULL
/* C4 */ C_MODRM
/* C5 */ C_MODRM
/* C6 */ C_MODRM_C_DATA66
/* C7 */ C_MODRM_C_DATA66
/* C8 */ C_DATA2_C_DATA1
/* C9 */ C_NULL
/* CA */ C_DATA2
/* CB */ C_NULL
/* CC */ C_NULL
/* CD */ C_DATA1_C_DATA4
/* CE */ C_NULL
/* CF */ C_NULL
/* D0 */ C_MODRM
/* D1 */ C_MODRM
/* D2 */ C_MODRM
/* D3 */ C_MODRM
/* D4 */ C_NULL
/* D5 */ C_NULL
/* D6 */ C_NULL
/* D7 */ C_NULL
/* D8 */ C_MODRM
/* D9 */ C_MODRM
/* DA */ C_MODRM
/* DB */ C_MODRM
/* DC */ C_MODRM
/* DD */ C_MODRM
/* DE */ C_MODRM
/* DF */ C_MODRM
/* E0 */ C_DATA1
/* E1 */ C_DATA1
/* E2 */ C_DATA1
/* E3 */ C_DATA1
/* E4 */ C_DATA1
/* E5 */ C_DATA1
/* E6 */ C_DATA1
/* E7 */ C_DATA1
/* E8 */ C_DATA66
/* E9 */ C_DATA66
/* EA */ C_DATA66_C_MEM2
/* EB */ C_DATA1
/* EC */ C_NULL
/* ED */ C_NULL
/* EE */ C_NULL
/* EF */ C_NULL
/* F0 */ C_PREFIX
/* F1 */ C_NULL // 0xF1
/* F2 */ C_PREFIX
/* F3 */ C_PREFIX
/* F4 */ C_NULL
/* F5 */ C_NULL
/* F6 */ C_FUCKINGTEST
/* F7 */ C_FUCKINGTEST
/* F8 */ C_NULL
/* F9 */ C_NULL
/* FA */ C_NULL
/* FB */ C_NULL
/* FC */ C_NULL
/* FD */ C_NULL
/* FE */ C_MODRM
/* FF */ C_MODRM
table_0F:
call callback2
/* 00 */ C_MODRM
/* 01 */ C_MODRM
/* 02 */ C_MODRM
/* 03 */ C_MODRM
/* 04 */ C_ERROR
/* 05 */ C_ERROR
/* 06 */ C_NULL
/* 07 */ C_ERROR
/* 08 */ C_NULL
/* 09 */ C_NULL
/* 0A */ C_NULL
/* 0B */ C_NULL
/* 0C */ C_ERROR
/* 0D */ C_ERROR
/* 0E */ C_ERROR
/* 0F */ C_ERROR
/* 10 */ C_ERROR
/* 11 */ C_ERROR
/* 12 */ C_ERROR
/* 13 */ C_ERROR
/* 14 */ C_ERROR
/* 15 */ C_ERROR
/* 16 */ C_ERROR
/* 17 */ C_ERROR
/* 18 */ C_ERROR
/* 19 */ C_ERROR
/* 1A */ C_ERROR
/* 1B */ C_ERROR
/* 1C */ C_ERROR
/* 1D */ C_ERROR
/* 1E */ C_ERROR
/* 1F */ C_ERROR
/* 20 */ C_ERROR
/* 21 */ C_ERROR
/* 22 */ C_ERROR
/* 23 */ C_ERROR
/* 24 */ C_ERROR
/* 25 */ C_ERROR
/* 26 */ C_ERROR
/* 27 */ C_ERROR
/* 28 */ C_ERROR
/* 29 */ C_ERROR
/* 2A */ C_ERROR
/* 2B */ C_ERROR
/* 2C */ C_ERROR
/* 2D */ C_ERROR
/* 2E */ C_ERROR
/* 2F */ C_ERROR
/* 30 */ C_ERROR
/* 31 */ C_ERROR
/* 32 */ C_ERROR
/* 33 */ C_ERROR
/* 34 */ C_ERROR
/* 35 */ C_ERROR
/* 36 */ C_ERROR
/* 37 */ C_ERROR
/* 38 */ C_ERROR
/* 39 */ C_ERROR
/* 3A */ C_ERROR
/* 3B */ C_ERROR
/* 3C */ C_ERROR
/* 3D */ C_ERROR
/* 3E */ C_ERROR
/* 3F */ C_ERROR
/* 40 */ C_ERROR
/* 41 */ C_ERROR
/* 42 */ C_ERROR
/* 43 */ C_ERROR
/* 44 */ C_ERROR
/* 45 */ C_ERROR
/* 46 */ C_ERROR
/* 47 */ C_ERROR
/* 48 */ C_ERROR
/* 49 */ C_ERROR
/* 4A */ C_ERROR
/* 4B */ C_ERROR
/* 4C */ C_ERROR
/* 4D */ C_ERROR
/* 4E */ C_ERROR
/* 4F */ C_ERROR
/* 50 */ C_ERROR
/* 51 */ C_ERROR
/* 52 */ C_ERROR
/* 53 */ C_ERROR
/* 54 */ C_ERROR
/* 55 */ C_ERROR
/* 56 */ C_ERROR
/* 57 */ C_ERROR
/* 58 */ C_ERROR
/* 59 */ C_ERROR
/* 5A */ C_ERROR
/* 5B */ C_ERROR
/* 5C */ C_ERROR
/* 5D */ C_ERROR
/* 5E */ C_ERROR
/* 5F */ C_ERROR
/* 60 */ C_ERROR
/* 61 */ C_ERROR
/* 62 */ C_ERROR
/* 63 */ C_ERROR
/* 64 */ C_ERROR
/* 65 */ C_ERROR
/* 66 */ C_ERROR
/* 67 */ C_ERROR
/* 68 */ C_ERROR
/* 69 */ C_ERROR
/* 6A */ C_ERROR
/* 6B */ C_ERROR
/* 6C */ C_ERROR
/* 6D */ C_ERROR
/* 6E */ C_ERROR
/* 6F */ C_ERROR
/* 70 */ C_ERROR
/* 71 */ C_ERROR
/* 72 */ C_ERROR
/* 73 */ C_ERROR
/* 74 */ C_ERROR
/* 75 */ C_ERROR
/* 76 */ C_ERROR
/* 77 */ C_ERROR
/* 78 */ C_ERROR
/* 79 */ C_ERROR
/* 7A */ C_ERROR
/* 7B */ C_ERROR
/* 7C */ C_ERROR
/* 7D */ C_ERROR
/* 7E */ C_ERROR
/* 7F */ C_ERROR
/* 80 */ C_DATA66
/* 81 */ C_DATA66
/* 82 */ C_DATA66
/* 83 */ C_DATA66
/* 84 */ C_DATA66
/* 85 */ C_DATA66
/* 86 */ C_DATA66
/* 87 */ C_DATA66
/* 88 */ C_DATA66
/* 89 */ C_DATA66
/* 8A */ C_DATA66
/* 8B */ C_DATA66
/* 8C */ C_DATA66
/* 8D */ C_DATA66
/* 8E */ C_DATA66
/* 8F */ C_DATA66
/* 90 */ C_MODRM
/* 91 */ C_MODRM
/* 92 */ C_MODRM
/* 93 */ C_MODRM
/* 94 */ C_MODRM
/* 95 */ C_MODRM
/* 96 */ C_MODRM
/* 97 */ C_MODRM
/* 98 */ C_MODRM
/* 99 */ C_MODRM
/* 9A */ C_MODRM
/* 9B */ C_MODRM
/* 9C */ C_MODRM
/* 9D */ C_MODRM
/* 9E */ C_MODRM
/* 9F */ C_MODRM
/* A0 */ C_NULL
/* A1 */ C_NULL
/* A2 */ C_NULL
/* A3 */ C_MODRM
/* A4 */ C_MODRM_C_DATA1
/* A5 */ C_MODRM
/* A6 */ C_ERROR
/* A7 */ C_ERROR
/* A8 */ C_NULL
/* A9 */ C_NULL
/* AA */ C_NULL
/* AB */ C_MODRM
/* AC */ C_MODRM_C_DATA1
/* AD */ C_MODRM
/* AE */ C_ERROR
/* AF */ C_MODRM
/* B0 */ C_MODRM
/* B1 */ C_MODRM
/* B2 */ C_MODRM
/* B3 */ C_MODRM
/* B4 */ C_MODRM
/* B5 */ C_MODRM
/* B6 */ C_MODRM
/* B7 */ C_MODRM
/* B8 */ C_ERROR
/* B9 */ C_ERROR
/* BA */ C_MODRM_C_DATA1
/* BB */ C_MODRM
/* BC */ C_MODRM
/* BD */ C_MODRM
/* BE */ C_MODRM
/* BF */ C_MODRM
/* C0 */ C_MODRM
/* C1 */ C_MODRM
/* C2 */ C_ERROR
/* C3 */ C_ERROR
/* C4 */ C_ERROR
/* C5 */ C_ERROR
/* C6 */ C_ERROR
/* C7 */ C_ERROR
/* C8 */ C_NULL
/* C9 */ C_NULL
/* CA */ C_NULL
/* CB */ C_NULL
/* CC */ C_NULL
/* CD */ C_NULL
/* CE */ C_NULL
/* CF */ C_NULL
/* D0 */ C_ERROR
/* D1 */ C_ERROR
/* D2 */ C_ERROR
/* D3 */ C_ERROR
/* D4 */ C_ERROR
/* D5 */ C_ERROR
/* D6 */ C_ERROR
/* D7 */ C_ERROR
/* D8 */ C_ERROR
/* D9 */ C_ERROR
/* DA */ C_ERROR
/* DB */ C_ERROR
/* DC */ C_ERROR
/* DD */ C_ERROR
/* DE */ C_ERROR
/* DF */ C_ERROR
/* E0 */ C_ERROR
/* E1 */ C_ERROR
/* E2 */ C_ERROR
/* E3 */ C_ERROR
/* E4 */ C_ERROR
/* E5 */ C_ERROR
/* E6 */ C_ERROR
/* E7 */ C_ERROR
/* E8 */ C_ERROR
/* E9 */ C_ERROR
/* EA */ C_ERROR
/* EB */ C_ERROR
/* EC */ C_ERROR
/* ED */ C_ERROR
/* EE */ C_ERROR
/* EF */ C_ERROR
/* F0 */ C_ERROR
/* F1 */ C_ERROR
/* F2 */ C_ERROR
/* F3 */ C_ERROR
/* F4 */ C_ERROR
/* F5 */ C_ERROR
/* F6 */ C_ERROR
/* F7 */ C_ERROR
/* F8 */ C_ERROR
/* F9 */ C_ERROR
/* FA */ C_ERROR
/* FB */ C_ERROR
/* FC */ C_ERROR
/* FD */ C_ERROR
/* FE */ C_ERROR
/* FF */ C_ERROR
over:
PUSH ESI
MOV ESI,DWORD PTR SS:[ESP+8]
XOR EAX,EAX
L003:
MOV CL,BYTE PTR DS:[ESI]
MOVZX EDX,CL
push edi//save edi
jmp table_1//relative address
callback1:
pop edi//get table_1 address
//OR EAX,DWORD PTR DS:[EDX*4+table_1]
OR EAX,DWORD PTR DS:[EDX*4+edi]
pop edi
INC ESI
TEST AH,0x20
JE L015
MOV AL,BYTE PTR DS:[ESI]
AND AL,0x38
NEG AL
SBB EAX,EAX
AND EAX,0xFFFFF000
ADD EAX,0x1800
L015:
TEST AH,0x40
JE L021
MOV CL,BYTE PTR DS:[ESI]
MOVZX EAX,CL
push edi//save edi
jmp table_0f//relative address
callback2:
pop edi
//MOV EAX,DWORD PTR DS:[EAX*4+table_0F]
MOV EAX,DWORD PTR DS:[EAX*4+edi]
pop edi
INC ESI
L021:
TEST AL,1
JE L025
AND EAX,0xFFFFFFFE
JMP L003
L025:
TEST AH,0x10
JE L032
TEST CL,0x1
JE L031
OR EAX,0x8
JMP L032
L031:
OR EAX,0x10
L032:
TEST AH,0x8
PUSH EBX
PUSH EBP
PUSH EDI
MOV EDI,0x200
MOV EBP,0x400
MOV EBX,0x100
JE L077
MOV CL,BYTE PTR DS:[ESI]
MOV DL,CL
AND DL,0xC0
INC ESI
AND CL,0x7
CMP DL,0xC0
JE L077
TEST AL,0x4
JE L061
TEST DL,DL
JNZ L054
CMP CL,0x6
JNZ L077
OR EAX,EDI
L054:
CMP DL,0x40
JNZ L057
OR EAX,EBX
L057:
CMP DL,0x80
JNZ L077
OR EAX,EDI
JMP L077
L061:
CMP DL,0x40
JNZ L064
OR EAX,EBX
L064:
CMP DL,0x80
JNZ L067
OR EAX,EBP
L067:
CMP CL,0x4
JNZ L072
MOV CL,BYTE PTR DS:[ESI]
AND CL,0x7
INC ESI
L072:
CMP CL,0x5
JNZ L077
TEST DL,DL
JNZ L077
OR EAX,EBP
L077:
TEST AL,AL
JNS L084
TEST AL,0x4
JE L083
OR EAX,EDI
JMP L084
L083:
OR EAX,EBP
L084:
TEST AL,0x8
JE L091
TEST AL,0x2
JE L090
OR EAX,0x20
JMP L091
L090:
OR EAX,0x40
L091:
TEST EBX,EAX
JE L094
INC ESI
L094:
TEST EDI,EAX
JE L098
INC ESI
INC ESI
L098:
POP EDI
TEST EBP,EAX
POP EBP
POP EBX
JE L104
ADD ESI,0x4
L104:
TEST AL,0x10
JE L107
INC ESI
L107:
TEST AL,0x20
JE L111
INC ESI
INC ESI
L111:
TEST AL,0x40
JE L114
ADD ESI,0x4
L114:
SUB ESI,DWORD PTR SS:[ESP+0x8]
MOV EAX,DWORD PTR SS:[ESP+0xC]
MOV DWORD PTR DS:[EAX],ESI
POP ESI
RETN 0x8
}
}
//this example use the function dis() to get an instruction length
/*void main()
{
BYTE* o=(BYTE*)dis;//memory pointer
int i;
DWORD s;//instruction size
//disasm(o, &s);
for(i=0;i<20;i++){
_asm{
int 3
lea eax,s
push eax
push o
call dis
mov edx,o
add edx,[eax]
mov o,edx
}
}
}*/
//this example use the byte block dis2 to get an instruction length
void main()
{
BYTE* o=(BYTE*)dis;//memory pointer
int i;
DWORD s;//instruction size
//disasm(o, &s);
for(i=0;i<20;i++){
_asm{
int 3
lea eax,s
push eax
push o
lea eax,dis2
call eax
mov edx,o
add edx,[eax]
mov o,edx
}
}
}