diff options
Diffstat (limited to 'csgo-loader/themida-sdk/include/ThemidaSDK.h')
| -rw-r--r-- | csgo-loader/themida-sdk/include/ThemidaSDK.h | 2265 |
1 files changed, 2265 insertions, 0 deletions
diff --git a/csgo-loader/themida-sdk/include/ThemidaSDK.h b/csgo-loader/themida-sdk/include/ThemidaSDK.h new file mode 100644 index 0000000..01aaa92 --- /dev/null +++ b/csgo-loader/themida-sdk/include/ThemidaSDK.h @@ -0,0 +1,2265 @@ +/******************************************************************************
+ Header: SecureEngineSDK.h
+ Description: SDK header definition for the C/C++ language
+
+ Author/s: Oreans Technologies
+ (c) 2013 Oreans Technologies
+*****************************************************************************/
+
+#pragma once
+
+
+// ***********************************************
+// Cross Compiler definitions
+// ***********************************************
+
+#ifdef __GNUC__
+ #define DLL_IMPORT extern
+ #define STDCALL_CONVENTION
+#else
+ #define DLL_IMPORT __declspec(dllimport)
+ #define STDCALL_CONVENTION __stdcall
+#endif
+
+
+// ***********************************************
+// Specify platform
+// ***********************************************
+
+#ifdef __GNUC__
+
+ #ifdef __x86_64__
+ #define PLATFORM_X64
+ #else
+ #define PLATFORM_X32
+ #endif
+
+#else
+
+ #ifdef _WIN64
+ #define PLATFORM_X64
+ #else
+ #define PLATFORM_X32
+ #endif
+
+#endif
+
+
+// ***********************************************
+// Defines
+// ***********************************************
+
+#ifdef __GNUC__
+
+#define X32_INSERT_VIA_INLINE
+#define X64_INSERT_VIA_INLINE
+
+#else
+
+#define X32_INSERT_VIA_INLINE
+//#define X64_INSERT_VIA_INLINE
+
+#endif
+
+
+// ***********************************************
+// Include files
+// ***********************************************
+
+#include "SecureEngineCustomVMs.h"
+
+
+// ***********************************************
+// Link with correct platform library
+// ***********************************************
+
+#ifdef PLATFORM_X64
+ #pragma comment(lib, "SecureEngineSDK64.lib")
+#else
+ #pragma comment(lib, "SecureEngineSDK32.lib")
+#endif
+
+
+// ***********************************************
+// Definition of macros as function names
+// ***********************************************
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+ DLL_IMPORT void STDCALL_CONVENTION VMStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION VMEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION CodeReplaceStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION CodeReplaceEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION RegisteredStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION RegisteredEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION EncodeStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION EncodeEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION ClearStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION ClearEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION MutateStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION MutateEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION StrEncryptStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION StrEncryptEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION StrEncryptWStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION StrEncryptWEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION UnregisteredStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION UnregisteredEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION RegisteredVMStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION RegisteredVMEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION UnprotectedStart(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION UnprotectedEnd(void);
+
+ DLL_IMPORT void STDCALL_CONVENTION SECheckProtection(int *user_var, int user_value);
+
+ DLL_IMPORT void STDCALL_CONVENTION SECheckCodeIntegrity(int *user_var, int user_value);
+
+ DLL_IMPORT void STDCALL_CONVENTION SECheckRegistration(int *user_var, int user_value);
+
+ DLL_IMPORT void STDCALL_CONVENTION SECheckVirtualPC(int *user_var, int user_value);
+
+ #ifdef __cplusplus
+ }
+ #endif
+
+
+#ifdef PLATFORM_X64
+
+// ***********************************************
+// SecureEngine x64 macros definitions to keep
+// compatibility with old x32 inline macros
+// ***********************************************
+
+ #define VM_START VMStart();
+ #define VM_END VMEnd();
+ #define VM_START_WITHLEVEL(x) VMStart();
+
+ #define CODEREPLACE_START CodeReplaceStart();
+ #define CODEREPLACE_END CodeReplaceEnd();
+
+ #define REGISTERED_START RegisteredStart();
+ #define REGISTERED_END RegisteredEnd();
+
+ #define ENCODE_START EncodeStart();
+ #define ENCODE_END EncodeEnd();
+
+ #define MUTATE_START MutateStart();
+ #define MUTATE_END MutateEnd();
+
+ #define STR_ENCRYPT_START StrEncryptStart();
+ #define STR_ENCRYPT_END StrEncryptEnd();
+
+ #define STR_ENCRYPTW_START StrEncryptWStart();
+ #define STR_ENCRYPTW_END StrEncryptWEnd();
+
+ #define UNREGISTERED_START UnregisteredStart();
+ #define UNREGISTERED_END UnregisteredEnd();
+
+ #define CLEAR_START ClearStart();
+ #define CLEAR_END ClearEnd();
+
+ #define REGISTEREDVM_START RegisteredVMStart();
+ #define REGISTEREDVM_END RegisteredVMEnd();
+
+ #define UNPROTECTED_START UnprotectedStart();
+ #define UNPROTECTED_END UnprotectedEnd();
+
+ #define CHECK_PROTECTION(var, val) SECheckProtection(&var, val);
+ #define CHECK_CODE_INTEGRITY(var, val) SECheckCodeIntegrity(&var, val);
+ #define CHECK_REGISTRATION(var, val) SECheckRegistration(&var, val);
+ #define CHECK_VIRTUAL_PC(var, val) SECheckVirtualPC(&var, val);
+
+#else
+
+// ***********************************************
+// SecureEngine x32 inline macros definitions
+// ***********************************************
+
+ // Borland macros definitions
+
+ #ifdef __BORLANDC__
+
+ #define REMOVE_BLOCK_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define REMOVE_BLOCK_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define CODEREPLACE_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define CODEREPLACE_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define REGISTERED_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x02, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define REGISTERED_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x03, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define ENCODE_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x04, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define ENCODE_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x05, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define CLEAR_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x06, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define CLEAR_END __emit__ (0xEB, 0x15, 0x57, 0x4C, 0x20, 0x20, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, \
+ 0x00, 0x00, 0x00);
+
+ #define UNREGISTERED_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x08, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define UNREGISTERED_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x09, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define VM_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define VM_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0D, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define MUTATE_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define MUTATE_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x11, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define STR_ENCRYPT_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x12, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define STR_ENCRYPT_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define STR_ENCRYPTW_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x22, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define STR_ENCRYPTW_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x23, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define REGISTEREDVM_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0E, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define REGISTEREDVM_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0F, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define VM_START_WITHLEVEL(x) __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
+ 0x00, x, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define UNPROTECTED_START __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+ #define UNPROTECTED_END __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x21, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
+
+ #define CHECK_PROTECTION(var, val) \
+ asm { \
+ dw 0x10EB; \
+ dd 0x091ab3167; \
+ dd 0x08a8b717a; \
+ dd 0x0bc117abd; \
+ dd 0x0; \
+ push val; \
+ pop var; \
+ dw 0x0CEB; \
+ dd 0x0bc117abd; \
+ dd 0x08a8b717a; \
+ dd 0x091ab3167; \
+}
+
+ #define CHECK_CODE_INTEGRITY(var, val) \
+ asm { \
+ dw 0x10EB; \
+ dd 0x091ab3167; \
+ dd 0x08a8b717a; \
+ dd 0x0bc117abd; \
+ dd 0x1; \
+ push val; \
+ pop var; \
+ dw 0x0CEB; \
+ dd 0x0bc117abd; \
+ dd 0x08a8b717a; \
+ dd 0x091ab3167; \
+}
+
+ #define CHECK_REGISTRATION(var, val) \
+ asm { \
+ dw 0x10EB; \
+ dd 0x091ab3167; \
+ dd 0x08a8b717a; \
+ dd 0x0bc117abd; \
+ dd 0x2; \
+ push val; \
+ pop var; \
+ dw 0x0CEB; \
+ dd 0x0bc117abd; \
+ dd 0x08a8b717a; \
+ dd 0x091ab3167; \
+}
+
+ #define CHECK_VIRTUAL_PC(var, val) \
+ asm { \
+ dw 0x10EB; \
+ dd 0x091ab3167; \
+ dd 0x08a8b717a; \
+ dd 0x0bc117abd; \
+ dd 0x3; \
+ push val; \
+ pop var; \
+ dw 0x0CEB; \
+ dd 0x0bc117abd; \
+ dd 0x08a8b717a; \
+ dd 0x091ab3167; \
+}
+
+#else
+#ifdef __GNUC__
+
+ // GNUC (MinGW) Compatible compiler macros definitions
+
+ #define NO_OPTIMIZATION __attribute__((optimize("O0")))
+
+ #define REMOVE_BLOCK_START \
+ asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+ #define REMOVE_BLOCK_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x01\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+ #define CODEREPLACE_START \
+ asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define CODEREPLACE_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x01\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+ #define REGISTERED_START \
+ asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x02\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define REGISTERED_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x03\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define ENCODE_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x04\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define ENCODE_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x05\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define CLEAR_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x06\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define CLEAR_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x15\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x07\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ );
+
+#define UNREGISTERED_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x08\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define UNREGISTERED_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x09\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define VM_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x0C\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define VM_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x0D\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define MUTATE_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x10\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define MUTATE_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x11\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define STR_ENCRYPT_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x12\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define STR_ENCRYPT_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x13\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define STR_ENCRYPTW_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x22\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define STR_ENCRYPTW_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x23\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+
+#define REGISTEREDVM_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x0E\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define REGISTEREDVM_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x0F\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define VM_START_WITHLEVEL(x) \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x0C\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte $" #x "\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define UNPROTECTED_START \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+
+#define UNPROTECTED_END \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ ".byte 0x21\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x57\n"\
+ ".byte 0x4C\n"\
+ ".byte 0x20\n"\
+ ".byte 0x20\n"\
+ );
+
+#define CHECK_PROTECTION(var, val) \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ "push $" #val "\n"); \
+ __asm__ ("pop %0" : "=m" (var):); \
+ asm (".byte 0xEB\n"\
+ ".byte 0x0C\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ );
+
+#define CHECK_CODE_INTEGRITY(var, val) \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x01\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ "push $" #val "\n"); \
+ __asm__ ("pop %0" : "=m" (var):); \
+ asm (".byte 0xEB\n"\
+ ".byte 0x0C\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ );
+
+#define CHECK_REGISTRATION(var, val) \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x02\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ "push $" #val "\n"); \
+ __asm__ ("pop %0" : "=m" (var):); \
+ asm (".byte 0xEB\n"\
+ ".byte 0x0C\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ );
+
+#define CHECK_VIRTUAL_PC(var, val) \
+asm ( ".byte 0xEB\n"\
+ ".byte 0x10\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x03\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ ".byte 0x00\n"\
+ "push $" #val "\n"); \
+ __asm__ ("pop %0" : "=m" (var):); \
+ asm (".byte 0xEB\n"\
+ ".byte 0x0C\n"\
+ ".byte 0xBD\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x11\n"\
+ ".byte 0xBC\n"\
+ ".byte 0x7A\n"\
+ ".byte 0x71\n"\
+ ".byte 0x8B\n"\
+ ".byte 0x8A\n"\
+ ".byte 0x67\n"\
+ ".byte 0x31\n"\
+ ".byte 0xAB\n"\
+ ".byte 0x91\n"\
+ );
+
+#else
+#ifdef __ICL
+
+// ICL macros definitions
+
+ #define REMOVE_BLOCK_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define REMOVE_BLOCK_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x01 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define CODEREPLACE_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define CODEREPLACE_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x01 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define REGISTERED_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x02 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define REGISTERED_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x03 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+
+ #define ENCODE_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x04 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+
+ #define ENCODE_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x05 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+
+ #define CLEAR_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x06 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+
+ #define CLEAR_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x15 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x07 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00
+
+ #define UNREGISTERED_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x08 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define UNREGISTERED_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x09 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define VM_START_WITHLEVEL(x) \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x0C \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit x \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define VM_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x0C \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define VM_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x0D \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define MUTATE_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x10 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define MUTATE_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x11 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define STR_ENCRYPT_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x12 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define STR_ENCRYPT_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x13 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define STR_ENCRYPTW_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x22 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define STR_ENCRYPTW_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x23 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+
+ #define REGISTEREDVM_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x0E \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define REGISTEREDVM_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x0F \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define UNPROTECTED_START \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+ #define UNPROTECTED_END \
+ __asm __emit 0xEB \
+ __asm __emit 0x10 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+ __asm __emit 0x21 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x00 \
+ __asm __emit 0x57 \
+ __asm __emit 0x4C \
+ __asm __emit 0x20 \
+ __asm __emit 0x20 \
+
+#else
+#ifdef __LCC__
+
+// LCC macros definitions
+
+ #define REMOVE_BLOCK_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+ #define REMOVE_BLOCK_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define CODEREPLACE_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+ #define CODEREPLACE_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define REGISTERED_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x02, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+ #define REGISTERED_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x03, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define ENCODE_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x04, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+ #define ENCODE_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x05, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define CLEAR_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x06, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define CLEAR_END __asm__ (" .byte\t0xEB, 0x15, 0x57, 0x4C, 0x20, 0x20, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, \
+ 0x00, 0x00, 0x00");
+
+ #define UNREGISTERED_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x08, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+ #define UNREGISTERED_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x09, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define VM_START_WITHLEVEL(x) __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
+ 0x00, "x", 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define VM_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define VM_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0D, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define MUTATE_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define MUTATE_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x11, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define STR_ENCRYPT_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x12, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define STR_ENCRYPT_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define STR_ENCRYPT_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x22, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define STR_ENCRYPT_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x23, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define REGISTEREDVM_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0E, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define REGISTEREDVM_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0F, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define UNPROTECTED_START __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+ #define UNPROTECTED_END __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x21, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
+
+#else
+
+ // Visual Studio macros definitions
+
+ #define REMOVE_BLOCK_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define REMOVE_BLOCK_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x01 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define CODEREPLACE_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define CODEREPLACE_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x01 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define REGISTERED_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x02 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+#define REGISTERED_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x03 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define ENCODE_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x04 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define ENCODE_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x05 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define CLEAR_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x06 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define CLEAR_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x15 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x07 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00
+
+ #define UNREGISTERED_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x08 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+#define UNREGISTERED_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x09 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define VM_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x0C \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define VM_START_WITHLEVEL(x) \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x0C \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit x \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define VM_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x0D \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define MUTATE_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x10 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define MUTATE_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x11 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define STR_ENCRYPT_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x12 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define STR_ENCRYPT_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x13 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define STR_ENCRYPTW_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x22 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define STR_ENCRYPTW_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x23 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+
+ #define REGISTEREDVM_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x0E \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define REGISTEREDVM_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x0F \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+
+ #define UNPROTECTED_START \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define UNPROTECTED_END \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+ __asm _emit 0x21 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x57 \
+ __asm _emit 0x4C \
+ __asm _emit 0x20 \
+ __asm _emit 0x20 \
+
+ #define CHECK_PROTECTION(var, val) \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm push val \
+ __asm pop var \
+ __asm _emit 0xEB \
+ __asm _emit 0x0C \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+
+ #define CHECK_CODE_INTEGRITY(var, val) \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x01 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm push val \
+ __asm pop var \
+ __asm _emit 0xEB \
+ __asm _emit 0x0C \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+
+ #define CHECK_REGISTRATION(var, val) \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x02 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm push val \
+ __asm pop var \
+ __asm _emit 0xEB \
+ __asm _emit 0x0C \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+
+ #define CHECK_VIRTUAL_PC(var, val) \
+ __asm _emit 0xEB \
+ __asm _emit 0x10 \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x03 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm _emit 0x00 \
+ __asm push val \
+ __asm pop var \
+ __asm _emit 0xEB \
+ __asm _emit 0x0C \
+ __asm _emit 0xBD \
+ __asm _emit 0x7A \
+ __asm _emit 0x11 \
+ __asm _emit 0xBC \
+ __asm _emit 0x7A \
+ __asm _emit 0x71 \
+ __asm _emit 0x8B \
+ __asm _emit 0x8A \
+ __asm _emit 0x67 \
+ __asm _emit 0x31 \
+ __asm _emit 0xAB \
+ __asm _emit 0x91 \
+
+ #endif
+ #endif
+#endif
+#endif
+#endif
|
