Advertisement
Guest User

Untitled

a guest
Jan 8th, 2020
493
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 55.97 KB | None | 0 0
  1. /******************************************************************************
  2.   Header: SecureEngineSDK.h
  3.   Description: SDK header definition for the C/C++ language
  4.  
  5.   Author/s: Oreans Technologies  
  6.   (c) 2013 Oreans Technologies
  7. *****************************************************************************/
  8.  
  9. #pragma once
  10.  
  11.  
  12. // ***********************************************
  13. // Cross Compiler definitions
  14. // ***********************************************
  15.  
  16. #ifdef __GNUC__
  17.  #define DLL_IMPORT             extern
  18.  #define STDCALL_CONVENTION
  19. #else
  20.  #define DLL_IMPORT             __declspec(dllimport)
  21.  #define STDCALL_CONVENTION     __stdcall
  22. #endif
  23.  
  24.  
  25. // ***********************************************
  26. // Specify platform
  27. // ***********************************************
  28.  
  29. #ifdef __GNUC__
  30.  
  31.   #ifdef __x86_64__
  32.   #define PLATFORM_X64
  33.   #else
  34.   #define PLATFORM_X32
  35.   #endif
  36.  
  37. #else
  38.  
  39.   #ifdef _WIN64
  40.   #define PLATFORM_X64
  41.   #else
  42.   #define PLATFORM_X32
  43.   #endif
  44.  
  45. #endif
  46.  
  47.  
  48. // ***********************************************
  49. // Defines
  50. // ***********************************************
  51.  
  52. #ifdef __GNUC__
  53.  
  54. #define X32_INSERT_VIA_INLINE
  55. #define X64_INSERT_VIA_INLINE
  56.  
  57. #else
  58.  
  59. #define X32_INSERT_VIA_INLINE
  60. //#define X64_INSERT_VIA_INLINE
  61.  
  62. #endif
  63.  
  64.  
  65. // ***********************************************
  66. // Include files
  67. // ***********************************************
  68.  
  69. #include "SecureEngineCustomVMs.h"
  70.  
  71.  
  72. // ***********************************************
  73. // Link with correct platform library
  74. // ***********************************************
  75.  
  76. #ifdef PLATFORM_X64
  77.  #pragma comment(lib, "SecureEngineSDK64.lib")
  78. #else
  79.  #pragma comment(lib, "SecureEngineSDK32.lib")
  80. #endif
  81.  
  82.  
  83. // ***********************************************
  84. // Definition of macros as function names
  85. // ***********************************************
  86.  
  87.  #ifdef __cplusplus
  88.   extern "C" {
  89.  #endif
  90.  
  91.  DLL_IMPORT void STDCALL_CONVENTION VMStart(void);
  92.  
  93.  DLL_IMPORT void STDCALL_CONVENTION VMEnd(void);
  94.  
  95.  DLL_IMPORT void STDCALL_CONVENTION CodeReplaceStart(void);
  96.  
  97.  DLL_IMPORT void STDCALL_CONVENTION CodeReplaceEnd(void);
  98.  
  99.  DLL_IMPORT void STDCALL_CONVENTION RegisteredStart(void);
  100.  
  101.  DLL_IMPORT void STDCALL_CONVENTION RegisteredEnd(void);
  102.  
  103.  DLL_IMPORT void STDCALL_CONVENTION EncodeStart(void);
  104.  
  105.  DLL_IMPORT void STDCALL_CONVENTION EncodeEnd(void);
  106.  
  107.  DLL_IMPORT void STDCALL_CONVENTION ClearStart(void);
  108.  
  109.  DLL_IMPORT void STDCALL_CONVENTION ClearEnd(void);
  110.  
  111.  DLL_IMPORT void STDCALL_CONVENTION MutateStart(void);
  112.  
  113.  DLL_IMPORT void STDCALL_CONVENTION MutateEnd(void);
  114.  
  115.  DLL_IMPORT void STDCALL_CONVENTION StrEncryptStart(void);
  116.  
  117.  DLL_IMPORT void STDCALL_CONVENTION StrEncryptEnd(void);
  118.  
  119.  DLL_IMPORT void STDCALL_CONVENTION StrEncryptWStart(void);
  120.  
  121.  DLL_IMPORT void STDCALL_CONVENTION StrEncryptWEnd(void);
  122.  
  123.  DLL_IMPORT void STDCALL_CONVENTION UnregisteredStart(void);
  124.  
  125.  DLL_IMPORT void STDCALL_CONVENTION UnregisteredEnd(void);
  126.  
  127.  DLL_IMPORT void STDCALL_CONVENTION RegisteredVMStart(void);
  128.  
  129.  DLL_IMPORT void STDCALL_CONVENTION RegisteredVMEnd(void);
  130.  
  131.  DLL_IMPORT void STDCALL_CONVENTION UnprotectedStart(void);
  132.  
  133.  DLL_IMPORT void STDCALL_CONVENTION UnprotectedEnd(void);
  134.  
  135.  DLL_IMPORT void STDCALL_CONVENTION SECheckProtection(int *user_var, int user_value);
  136.  
  137.  DLL_IMPORT void STDCALL_CONVENTION SECheckCodeIntegrity(int *user_var, int user_value);
  138.  
  139.  DLL_IMPORT void STDCALL_CONVENTION SECheckRegistration(int *user_var, int user_value);
  140.  
  141.  DLL_IMPORT void STDCALL_CONVENTION SECheckVirtualPC(int *user_var, int user_value);
  142.  
  143.  #ifdef __cplusplus
  144.  }
  145.  #endif
  146.  
  147.  
  148. #ifdef PLATFORM_X64
  149.  
  150. // ***********************************************
  151. // SecureEngine x64 macros definitions to keep
  152. // compatibility with old x32 inline macros
  153. // ***********************************************
  154.  
  155.  #define VM_START VMStart();
  156.  #define VM_END VMEnd();
  157.  #define VM_START_WITHLEVEL(x) VMStart();
  158.  
  159.  #define CODEREPLACE_START CodeReplaceStart();
  160.  #define CODEREPLACE_END CodeReplaceEnd();
  161.  
  162.  #define REGISTERED_START RegisteredStart();
  163.  #define REGISTERED_END RegisteredEnd();
  164.  
  165.  #define ENCODE_START EncodeStart();
  166.  #define ENCODE_END EncodeEnd();
  167.  
  168.  #define CLEAR_START ClearStart();
  169.  #define CLEAR_END ClearEnd();
  170.  
  171.  #define MUTATE_START MutateStart();
  172.  #define MUTATE_END MutateEnd();
  173.  
  174.  #define STR_ENCRYPT_START StrEncryptStart();
  175.  #define STR_ENCRYPT_END StrEncryptEnd();
  176.  
  177.  #define STR_ENCRYPTW_START StrEncryptWStart();
  178.  #define STR_ENCRYPTW_END StrEncryptWEnd();
  179.  
  180.  #define UNREGISTERED_START UnregisteredStart();
  181.  #define UNREGISTERED_END UnregisteredEnd();
  182.  
  183.  #define CLEAR_START ClearStart();
  184.  #define CLEAR_END ClearEnd();
  185.  
  186.  #define REGISTEREDVM_START RegisteredVMStart();
  187.  #define REGISTEREDVM_END RegisteredVMEnd();
  188.  
  189.  #define UNPROTECTED_START UnprotectedStart();
  190.  #define UNPROTECTED_END UnprotectedEnd();
  191.  
  192.  #define CHECK_PROTECTION(var, val) SECheckProtection(&var, val);
  193.  #define CHECK_CODE_INTEGRITY(var, val) SECheckCodeIntegrity(&var, val);
  194.  #define CHECK_REGISTRATION(var, val) SECheckRegistration(&var, val);
  195.  #define CHECK_VIRTUAL_PC(var, val) SECheckVirtualPC(&var, val);
  196.  
  197. #else
  198.  
  199. // ***********************************************
  200. // SecureEngine x32 inline macros definitions
  201. // ***********************************************
  202.  
  203.  // Borland macros definitions
  204.  
  205.  #ifdef __BORLANDC__
  206.  
  207.  #define REMOVE_BLOCK_START     __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
  208.                                            0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  209.  #define REMOVE_BLOCK_END       __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
  210.                                            0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  211.  
  212.  #define CODEREPLACE_START      __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
  213.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  214.  #define CODEREPLACE_END        __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
  215.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  216.  
  217.  #define REGISTERED_START       __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x02, 0x00, 0x00, 0x00, \
  218.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  219.  #define REGISTERED_END         __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x03, 0x00, 0x00, 0x00, \
  220.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  221.  
  222.  #define ENCODE_START           __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x04, 0x00, 0x00, 0x00, \
  223.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  224.  #define ENCODE_END             __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x05, 0x00, 0x00, 0x00, \
  225.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  226.  
  227.  #define CLEAR_START            __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x06, 0x00, 0x00, 0x00, \
  228.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  229.  #define CLEAR_END              __emit__ (0xEB, 0x15, 0x57, 0x4C, 0x20, 0x20, 0x07, 0x00, 0x00, 0x00, \
  230.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, \
  231.                                           0x00, 0x00, 0x00);
  232.  
  233.  #define UNREGISTERED_START     __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x08, 0x00, 0x00, 0x00, \
  234.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  235.  #define UNREGISTERED_END       __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x09, 0x00, 0x00, 0x00, \
  236.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  237.  
  238.  #define VM_START               __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
  239.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  240.  #define VM_END                 __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0D, 0x00, 0x00, 0x00, \
  241.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  242.  
  243.  #define MUTATE_START           __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, \
  244.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  245.  #define MUTATE_END             __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x11, 0x00, 0x00, 0x00, \
  246.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  247.  
  248.  #define STR_ENCRYPT_START      __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x12, 0x00, 0x00, 0x00, \
  249.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  250.  #define STR_ENCRYPT_END        __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, \
  251.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  252.  
  253.  #define STR_ENCRYPTW_START     __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x22, 0x00, 0x00, 0x00, \
  254.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  255.  #define STR_ENCRYPTW_END       __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x23, 0x00, 0x00, 0x00, \
  256.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  257.  
  258.  #define REGISTEREDVM_START     __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0E, 0x00, 0x00, 0x00, \
  259.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  260.  #define REGISTEREDVM_END       __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0F, 0x00, 0x00, 0x00, \
  261.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  262.  
  263.  #define VM_START_WITHLEVEL(x)  __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
  264.                                           0x00, x, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  265.  
  266.  #define UNPROTECTED_START      __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, \
  267.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  268.  #define UNPROTECTED_END        __emit__ (0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x21, 0x00, 0x00, 0x00, \
  269.                                           0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20);
  270.  
  271.  #define CHECK_PROTECTION(var, val) \
  272.  asm {  \
  273.    dw    0x10EB; \
  274.    dd    0x091ab3167; \
  275.    dd    0x08a8b717a; \
  276.    dd    0x0bc117abd; \
  277.    dd    0x0; \
  278.    push  val; \
  279.    pop   var; \
  280.    dw    0x0CEB; \
  281.    dd    0x0bc117abd; \
  282.    dd    0x08a8b717a; \
  283.    dd    0x091ab3167; \
  284. }
  285.  
  286.  #define CHECK_CODE_INTEGRITY(var, val) \
  287.  asm {  \
  288.    dw    0x10EB; \
  289.    dd    0x091ab3167; \
  290.    dd    0x08a8b717a; \
  291.    dd    0x0bc117abd; \
  292.    dd    0x1; \
  293.    push  val; \
  294.    pop   var; \
  295.    dw    0x0CEB; \
  296.    dd    0x0bc117abd; \
  297.    dd    0x08a8b717a; \
  298.    dd    0x091ab3167; \
  299. }
  300.  
  301.  #define CHECK_REGISTRATION(var, val) \
  302.  asm {  \
  303.    dw    0x10EB; \
  304.    dd    0x091ab3167; \
  305.    dd    0x08a8b717a; \
  306.    dd    0x0bc117abd; \
  307.    dd    0x2; \
  308.    push  val; \
  309.    pop   var; \
  310.    dw    0x0CEB; \
  311.    dd    0x0bc117abd; \
  312.    dd    0x08a8b717a; \
  313.    dd    0x091ab3167; \
  314. }
  315.  
  316.  #define CHECK_VIRTUAL_PC(var, val) \
  317.  asm {  \
  318.    dw    0x10EB; \
  319.    dd    0x091ab3167; \
  320.    dd    0x08a8b717a; \
  321.    dd    0x0bc117abd; \
  322.    dd    0x3; \
  323.    push  val; \
  324.    pop   var; \
  325.    dw    0x0CEB; \
  326.    dd    0x0bc117abd; \
  327.    dd    0x08a8b717a; \
  328.    dd    0x091ab3167; \
  329. }
  330.  
  331. #else
  332. #ifdef __GNUC__
  333.  
  334.  // GNUC (MinGW) Compatible compiler macros definitions
  335.  
  336.  #define NO_OPTIMIZATION __attribute__((optimize("O0")))
  337.  
  338.  #define REMOVE_BLOCK_START \
  339.  asm ( ".byte 0xEB\n"\
  340.        ".byte 0x10\n"\
  341.        ".byte 0x57\n"\
  342.        ".byte 0x4C\n"\
  343.        ".byte 0x20\n"\
  344.        ".byte 0x20\n"\
  345.        ".byte 0x00\n"\
  346.        ".byte 0x00\n"\
  347.        ".byte 0x00\n"\
  348.        ".byte 0x00\n"\
  349.        ".byte 0x00\n"\
  350.        ".byte 0x00\n"\
  351.        ".byte 0x00\n"\
  352.        ".byte 0x00\n"\
  353.        ".byte 0x57\n"\
  354.        ".byte 0x4C\n"\
  355.        ".byte 0x20\n"\
  356.        ".byte 0x20\n"\
  357.      );
  358.  
  359.  #define REMOVE_BLOCK_END \
  360. asm ( ".byte 0xEB\n"\
  361.       ".byte 0x10\n"\
  362.       ".byte 0x57\n"\
  363.       ".byte 0x4C\n"\
  364.       ".byte 0x20\n"\
  365.       ".byte 0x20\n"\
  366.       ".byte 0x01\n"\
  367.       ".byte 0x00\n"\
  368.       ".byte 0x00\n"\
  369.       ".byte 0x00\n"\
  370.       ".byte 0x00\n"\
  371.       ".byte 0x00\n"\
  372.       ".byte 0x00\n"\
  373.       ".byte 0x00\n"\
  374.       ".byte 0x57\n"\
  375.       ".byte 0x4C\n"\
  376.       ".byte 0x20\n"\
  377.       ".byte 0x20\n"\
  378.     );
  379.  
  380.  #define CODEREPLACE_START \
  381.  asm ( ".byte 0xEB\n"\
  382.        ".byte 0x10\n"\
  383.        ".byte 0x57\n"\
  384.        ".byte 0x4C\n"\
  385.        ".byte 0x20\n"\
  386.        ".byte 0x20\n"\
  387.        ".byte 0x00\n"\
  388.        ".byte 0x00\n"\
  389.        ".byte 0x00\n"\
  390.        ".byte 0x00\n"\
  391.        ".byte 0x00\n"\
  392.        ".byte 0x00\n"\
  393.        ".byte 0x00\n"\
  394.        ".byte 0x00\n"\
  395.        ".byte 0x57\n"\
  396.        ".byte 0x4C\n"\
  397.        ".byte 0x20\n"\
  398.        ".byte 0x20\n"\
  399.      );
  400.  
  401. #define CODEREPLACE_END \
  402. asm ( ".byte 0xEB\n"\
  403.       ".byte 0x10\n"\
  404.       ".byte 0x57\n"\
  405.       ".byte 0x4C\n"\
  406.       ".byte 0x20\n"\
  407.       ".byte 0x20\n"\
  408.       ".byte 0x01\n"\
  409.       ".byte 0x00\n"\
  410.       ".byte 0x00\n"\
  411.       ".byte 0x00\n"\
  412.       ".byte 0x00\n"\
  413.       ".byte 0x00\n"\
  414.       ".byte 0x00\n"\
  415.       ".byte 0x00\n"\
  416.       ".byte 0x57\n"\
  417.       ".byte 0x4C\n"\
  418.       ".byte 0x20\n"\
  419.       ".byte 0x20\n"\
  420.     );
  421.  
  422.  #define REGISTERED_START \
  423.  asm ( ".byte 0xEB\n"\
  424.        ".byte 0x10\n"\
  425.        ".byte 0x57\n"\
  426.        ".byte 0x4C\n"\
  427.        ".byte 0x20\n"\
  428.        ".byte 0x20\n"\
  429.        ".byte 0x02\n"\
  430.        ".byte 0x00\n"\
  431.        ".byte 0x00\n"\
  432.        ".byte 0x00\n"\
  433.        ".byte 0x00\n"\
  434.        ".byte 0x00\n"\
  435.        ".byte 0x00\n"\
  436.        ".byte 0x00\n"\
  437.        ".byte 0x57\n"\
  438.        ".byte 0x4C\n"\
  439.        ".byte 0x20\n"\
  440.        ".byte 0x20\n"\
  441.      );
  442.  
  443. #define REGISTERED_END \
  444. asm ( ".byte 0xEB\n"\
  445.       ".byte 0x10\n"\
  446.       ".byte 0x57\n"\
  447.       ".byte 0x4C\n"\
  448.       ".byte 0x20\n"\
  449.       ".byte 0x20\n"\
  450.       ".byte 0x03\n"\
  451.       ".byte 0x00\n"\
  452.       ".byte 0x00\n"\
  453.       ".byte 0x00\n"\
  454.       ".byte 0x00\n"\
  455.       ".byte 0x00\n"\
  456.       ".byte 0x00\n"\
  457.       ".byte 0x00\n"\
  458.       ".byte 0x57\n"\
  459.       ".byte 0x4C\n"\
  460.       ".byte 0x20\n"\
  461.       ".byte 0x20\n"\
  462.     );
  463.  
  464. #define ENCODE_START \
  465. asm ( ".byte 0xEB\n"\
  466.       ".byte 0x10\n"\
  467.       ".byte 0x57\n"\
  468.       ".byte 0x4C\n"\
  469.       ".byte 0x20\n"\
  470.       ".byte 0x20\n"\
  471.       ".byte 0x04\n"\
  472.       ".byte 0x00\n"\
  473.       ".byte 0x00\n"\
  474.       ".byte 0x00\n"\
  475.       ".byte 0x00\n"\
  476.       ".byte 0x00\n"\
  477.       ".byte 0x00\n"\
  478.       ".byte 0x00\n"\
  479.       ".byte 0x57\n"\
  480.       ".byte 0x4C\n"\
  481.       ".byte 0x20\n"\
  482.       ".byte 0x20\n"\
  483.     );
  484.  
  485. #define ENCODE_END \
  486. asm ( ".byte 0xEB\n"\
  487.       ".byte 0x10\n"\
  488.       ".byte 0x57\n"\
  489.       ".byte 0x4C\n"\
  490.       ".byte 0x20\n"\
  491.       ".byte 0x20\n"\
  492.       ".byte 0x05\n"\
  493.       ".byte 0x00\n"\
  494.       ".byte 0x00\n"\
  495.       ".byte 0x00\n"\
  496.       ".byte 0x00\n"\
  497.       ".byte 0x00\n"\
  498.       ".byte 0x00\n"\
  499.       ".byte 0x00\n"\
  500.       ".byte 0x57\n"\
  501.       ".byte 0x4C\n"\
  502.       ".byte 0x20\n"\
  503.       ".byte 0x20\n"\
  504.     );
  505.  
  506. #define CLEAR_START \
  507. asm ( ".byte 0xEB\n"\
  508.       ".byte 0x10\n"\
  509.       ".byte 0x57\n"\
  510.       ".byte 0x4C\n"\
  511.       ".byte 0x20\n"\
  512.       ".byte 0x20\n"\
  513.       ".byte 0x06\n"\
  514.       ".byte 0x00\n"\
  515.       ".byte 0x00\n"\
  516.       ".byte 0x00\n"\
  517.       ".byte 0x00\n"\
  518.       ".byte 0x00\n"\
  519.       ".byte 0x00\n"\
  520.       ".byte 0x00\n"\
  521.       ".byte 0x57\n"\
  522.       ".byte 0x4C\n"\
  523.       ".byte 0x20\n"\
  524.       ".byte 0x20\n"\
  525.     );
  526.  
  527. #define CLEAR_END \
  528. asm ( ".byte 0xEB\n"\
  529.       ".byte 0x15\n"\
  530.       ".byte 0x57\n"\
  531.       ".byte 0x4C\n"\
  532.       ".byte 0x20\n"\
  533.       ".byte 0x20\n"\
  534.       ".byte 0x07\n"\
  535.       ".byte 0x00\n"\
  536.       ".byte 0x00\n"\
  537.       ".byte 0x00\n"\
  538.       ".byte 0x00\n"\
  539.       ".byte 0x00\n"\
  540.       ".byte 0x00\n"\
  541.       ".byte 0x00\n"\
  542.       ".byte 0x57\n"\
  543.       ".byte 0x4C\n"\
  544.       ".byte 0x20\n"\
  545.       ".byte 0x20\n"\
  546.       ".byte 0x00\n"\
  547.       ".byte 0x00\n"\
  548.       ".byte 0x00\n"\
  549.       ".byte 0x00\n"\
  550.       ".byte 0x00\n"\
  551.     );
  552.  
  553. #define UNREGISTERED_START \
  554. asm ( ".byte 0xEB\n"\
  555.       ".byte 0x10\n"\
  556.       ".byte 0x57\n"\
  557.       ".byte 0x4C\n"\
  558.       ".byte 0x20\n"\
  559.       ".byte 0x20\n"\
  560.       ".byte 0x08\n"\
  561.       ".byte 0x00\n"\
  562.       ".byte 0x00\n"\
  563.       ".byte 0x00\n"\
  564.       ".byte 0x00\n"\
  565.       ".byte 0x00\n"\
  566.       ".byte 0x00\n"\
  567.       ".byte 0x00\n"\
  568.       ".byte 0x57\n"\
  569.       ".byte 0x4C\n"\
  570.       ".byte 0x20\n"\
  571.       ".byte 0x20\n"\
  572.     );
  573.  
  574. #define UNREGISTERED_END \
  575. asm ( ".byte 0xEB\n"\
  576.       ".byte 0x10\n"\
  577.       ".byte 0x57\n"\
  578.       ".byte 0x4C\n"\
  579.       ".byte 0x20\n"\
  580.       ".byte 0x20\n"\
  581.       ".byte 0x09\n"\
  582.       ".byte 0x00\n"\
  583.       ".byte 0x00\n"\
  584.       ".byte 0x00\n"\
  585.       ".byte 0x00\n"\
  586.       ".byte 0x00\n"\
  587.       ".byte 0x00\n"\
  588.       ".byte 0x00\n"\
  589.       ".byte 0x57\n"\
  590.       ".byte 0x4C\n"\
  591.       ".byte 0x20\n"\
  592.       ".byte 0x20\n"\
  593.     );
  594.  
  595. #define VM_START \
  596. asm ( ".byte 0xEB\n"\
  597.       ".byte 0x10\n"\
  598.       ".byte 0x57\n"\
  599.       ".byte 0x4C\n"\
  600.       ".byte 0x20\n"\
  601.       ".byte 0x20\n"\
  602.       ".byte 0x0C\n"\
  603.       ".byte 0x00\n"\
  604.       ".byte 0x00\n"\
  605.       ".byte 0x00\n"\
  606.       ".byte 0x00\n"\
  607.       ".byte 0x00\n"\
  608.       ".byte 0x00\n"\
  609.       ".byte 0x00\n"\
  610.       ".byte 0x57\n"\
  611.       ".byte 0x4C\n"\
  612.       ".byte 0x20\n"\
  613.       ".byte 0x20\n"\
  614.     );
  615.  
  616. #define VM_END \
  617. asm ( ".byte 0xEB\n"\
  618.       ".byte 0x10\n"\
  619.       ".byte 0x57\n"\
  620.       ".byte 0x4C\n"\
  621.       ".byte 0x20\n"\
  622.       ".byte 0x20\n"\
  623.       ".byte 0x0D\n"\
  624.       ".byte 0x00\n"\
  625.       ".byte 0x00\n"\
  626.       ".byte 0x00\n"\
  627.       ".byte 0x00\n"\
  628.       ".byte 0x00\n"\
  629.       ".byte 0x00\n"\
  630.       ".byte 0x00\n"\
  631.       ".byte 0x57\n"\
  632.       ".byte 0x4C\n"\
  633.       ".byte 0x20\n"\
  634.       ".byte 0x20\n"\
  635.     );
  636.  
  637. #define MUTATE_START \
  638. asm ( ".byte 0xEB\n"\
  639.       ".byte 0x10\n"\
  640.       ".byte 0x57\n"\
  641.       ".byte 0x4C\n"\
  642.       ".byte 0x20\n"\
  643.       ".byte 0x20\n"\
  644.       ".byte 0x10\n"\
  645.       ".byte 0x00\n"\
  646.       ".byte 0x00\n"\
  647.       ".byte 0x00\n"\
  648.       ".byte 0x00\n"\
  649.       ".byte 0x00\n"\
  650.       ".byte 0x00\n"\
  651.       ".byte 0x00\n"\
  652.       ".byte 0x57\n"\
  653.       ".byte 0x4C\n"\
  654.       ".byte 0x20\n"\
  655.       ".byte 0x20\n"\
  656.     );
  657.  
  658. #define MUTATE_END \
  659. asm ( ".byte 0xEB\n"\
  660.       ".byte 0x10\n"\
  661.       ".byte 0x57\n"\
  662.       ".byte 0x4C\n"\
  663.       ".byte 0x20\n"\
  664.       ".byte 0x20\n"\
  665.       ".byte 0x11\n"\
  666.       ".byte 0x00\n"\
  667.       ".byte 0x00\n"\
  668.       ".byte 0x00\n"\
  669.       ".byte 0x00\n"\
  670.       ".byte 0x00\n"\
  671.       ".byte 0x00\n"\
  672.       ".byte 0x00\n"\
  673.       ".byte 0x57\n"\
  674.       ".byte 0x4C\n"\
  675.       ".byte 0x20\n"\
  676.       ".byte 0x20\n"\
  677.     );
  678.  
  679. #define STR_ENCRYPT_START \
  680. asm ( ".byte 0xEB\n"\
  681.       ".byte 0x10\n"\
  682.       ".byte 0x57\n"\
  683.       ".byte 0x4C\n"\
  684.       ".byte 0x20\n"\
  685.       ".byte 0x20\n"\
  686.       ".byte 0x12\n"\
  687.       ".byte 0x00\n"\
  688.       ".byte 0x00\n"\
  689.       ".byte 0x00\n"\
  690.       ".byte 0x00\n"\
  691.       ".byte 0x00\n"\
  692.       ".byte 0x00\n"\
  693.       ".byte 0x00\n"\
  694.       ".byte 0x57\n"\
  695.       ".byte 0x4C\n"\
  696.       ".byte 0x20\n"\
  697.       ".byte 0x20\n"\
  698.     );
  699.  
  700. #define STR_ENCRYPT_END \
  701. asm ( ".byte 0xEB\n"\
  702.       ".byte 0x10\n"\
  703.       ".byte 0x57\n"\
  704.       ".byte 0x4C\n"\
  705.       ".byte 0x20\n"\
  706.       ".byte 0x20\n"\
  707.       ".byte 0x13\n"\
  708.       ".byte 0x00\n"\
  709.       ".byte 0x00\n"\
  710.       ".byte 0x00\n"\
  711.       ".byte 0x00\n"\
  712.       ".byte 0x00\n"\
  713.       ".byte 0x00\n"\
  714.       ".byte 0x00\n"\
  715.       ".byte 0x57\n"\
  716.       ".byte 0x4C\n"\
  717.       ".byte 0x20\n"\
  718.       ".byte 0x20\n"\
  719.     );
  720.  
  721. #define STR_ENCRYPTW_START \
  722. asm ( ".byte 0xEB\n"\
  723.       ".byte 0x10\n"\
  724.       ".byte 0x57\n"\
  725.       ".byte 0x4C\n"\
  726.       ".byte 0x20\n"\
  727.       ".byte 0x20\n"\
  728.       ".byte 0x22\n"\
  729.       ".byte 0x00\n"\
  730.       ".byte 0x00\n"\
  731.       ".byte 0x00\n"\
  732.       ".byte 0x00\n"\
  733.       ".byte 0x00\n"\
  734.       ".byte 0x00\n"\
  735.       ".byte 0x00\n"\
  736.       ".byte 0x57\n"\
  737.       ".byte 0x4C\n"\
  738.       ".byte 0x20\n"\
  739.       ".byte 0x20\n"\
  740.     );
  741.  
  742. #define STR_ENCRYPTW_END \
  743. asm ( ".byte 0xEB\n"\
  744.       ".byte 0x10\n"\
  745.       ".byte 0x57\n"\
  746.       ".byte 0x4C\n"\
  747.       ".byte 0x20\n"\
  748.       ".byte 0x20\n"\
  749.       ".byte 0x23\n"\
  750.       ".byte 0x00\n"\
  751.       ".byte 0x00\n"\
  752.       ".byte 0x00\n"\
  753.       ".byte 0x00\n"\
  754.       ".byte 0x00\n"\
  755.       ".byte 0x00\n"\
  756.       ".byte 0x00\n"\
  757.       ".byte 0x57\n"\
  758.       ".byte 0x4C\n"\
  759.       ".byte 0x20\n"\
  760.       ".byte 0x20\n"\
  761.     );
  762.  
  763.  
  764. #define REGISTEREDVM_START \
  765. asm ( ".byte 0xEB\n"\
  766.       ".byte 0x10\n"\
  767.       ".byte 0x57\n"\
  768.       ".byte 0x4C\n"\
  769.       ".byte 0x20\n"\
  770.       ".byte 0x20\n"\
  771.       ".byte 0x0E\n"\
  772.       ".byte 0x00\n"\
  773.       ".byte 0x00\n"\
  774.       ".byte 0x00\n"\
  775.       ".byte 0x00\n"\
  776.       ".byte 0x00\n"\
  777.       ".byte 0x00\n"\
  778.       ".byte 0x00\n"\
  779.       ".byte 0x57\n"\
  780.       ".byte 0x4C\n"\
  781.       ".byte 0x20\n"\
  782.       ".byte 0x20\n"\
  783.     );
  784.  
  785. #define REGISTEREDVM_END \
  786. asm ( ".byte 0xEB\n"\
  787.       ".byte 0x10\n"\
  788.       ".byte 0x57\n"\
  789.       ".byte 0x4C\n"\
  790.       ".byte 0x20\n"\
  791.       ".byte 0x20\n"\
  792.       ".byte 0x0F\n"\
  793.       ".byte 0x00\n"\
  794.       ".byte 0x00\n"\
  795.       ".byte 0x00\n"\
  796.       ".byte 0x00\n"\
  797.       ".byte 0x00\n"\
  798.       ".byte 0x00\n"\
  799.       ".byte 0x00\n"\
  800.       ".byte 0x57\n"\
  801.       ".byte 0x4C\n"\
  802.       ".byte 0x20\n"\
  803.       ".byte 0x20\n"\
  804.     );
  805.  
  806. #define VM_START_WITHLEVEL(x) \
  807. asm ( ".byte 0xEB\n"\
  808.       ".byte 0x10\n"\
  809.       ".byte 0x57\n"\
  810.       ".byte 0x4C\n"\
  811.       ".byte 0x20\n"\
  812.       ".byte 0x20\n"\
  813.       ".byte 0x0C\n"\
  814.       ".byte 0x00\n"\
  815.       ".byte 0x00\n"\
  816.       ".byte 0x00\n"\
  817.       ".byte 0x00\n"\
  818.       ".byte $" #x "\n"\
  819.       ".byte 0x00\n"\
  820.       ".byte 0x00\n"\
  821.       ".byte 0x57\n"\
  822.       ".byte 0x4C\n"\
  823.       ".byte 0x20\n"\
  824.       ".byte 0x20\n"\
  825.     );
  826.  
  827. #define UNPROTECTED_START \
  828. asm ( ".byte 0xEB\n"\
  829.       ".byte 0x10\n"\
  830.       ".byte 0x57\n"\
  831.       ".byte 0x4C\n"\
  832.       ".byte 0x20\n"\
  833.       ".byte 0x20\n"\
  834.       ".byte 0x20\n"\
  835.       ".byte 0x00\n"\
  836.       ".byte 0x00\n"\
  837.       ".byte 0x00\n"\
  838.       ".byte 0x00\n"\
  839.       ".byte 0x00\n"\
  840.       ".byte 0x00\n"\
  841.       ".byte 0x00\n"\
  842.       ".byte 0x57\n"\
  843.       ".byte 0x4C\n"\
  844.       ".byte 0x20\n"\
  845.       ".byte 0x20\n"\
  846.     );
  847.  
  848.  
  849. #define UNPROTECTED_END \
  850. asm ( ".byte 0xEB\n"\
  851.       ".byte 0x10\n"\
  852.       ".byte 0x57\n"\
  853.       ".byte 0x4C\n"\
  854.       ".byte 0x20\n"\
  855.       ".byte 0x20\n"\
  856.       ".byte 0x21\n"\
  857.       ".byte 0x00\n"\
  858.       ".byte 0x00\n"\
  859.       ".byte 0x00\n"\
  860.       ".byte 0x00\n"\
  861.       ".byte 0x00\n"\
  862.       ".byte 0x00\n"\
  863.       ".byte 0x00\n"\
  864.       ".byte 0x57\n"\
  865.       ".byte 0x4C\n"\
  866.       ".byte 0x20\n"\
  867.       ".byte 0x20\n"\
  868.     );
  869.  
  870. #define CHECK_PROTECTION(var, val) \
  871. asm ( ".byte 0xEB\n"\
  872.       ".byte 0x10\n"\
  873.       ".byte 0x67\n"\
  874.       ".byte 0x31\n"\
  875.       ".byte 0xAB\n"\
  876.       ".byte 0x91\n"\
  877.       ".byte 0x7A\n"\
  878.       ".byte 0x71\n"\
  879.       ".byte 0x8B\n"\
  880.       ".byte 0x8A\n"\
  881.       ".byte 0xBD\n"\
  882.       ".byte 0x7A\n"\
  883.       ".byte 0x11\n"\
  884.       ".byte 0xBC\n"\
  885.       ".byte 0x00\n"\
  886.       ".byte 0x00\n"\
  887.       ".byte 0x00\n"\
  888.       ".byte 0x00\n"\
  889.       "push  $" #val "\n"); \
  890.       __asm__  ("pop %0" : "=m" (var):); \
  891.       asm (".byte 0xEB\n"\
  892.       ".byte 0x0C\n"\
  893.       ".byte 0xBD\n"\
  894.       ".byte 0x7A\n"\
  895.       ".byte 0x11\n"\
  896.       ".byte 0xBC\n"\
  897.       ".byte 0x7A\n"\
  898.       ".byte 0x71\n"\
  899.       ".byte 0x8B\n"\
  900.       ".byte 0x8A\n"\
  901.       ".byte 0x67\n"\
  902.       ".byte 0x31\n"\
  903.       ".byte 0xAB\n"\
  904.       ".byte 0x91\n"\
  905.       );
  906.  
  907. #define CHECK_CODE_INTEGRITY(var, val) \
  908. asm ( ".byte 0xEB\n"\
  909.       ".byte 0x10\n"\
  910.       ".byte 0x67\n"\
  911.       ".byte 0x31\n"\
  912.       ".byte 0xAB\n"\
  913.       ".byte 0x91\n"\
  914.       ".byte 0x7A\n"\
  915.       ".byte 0x71\n"\
  916.       ".byte 0x8B\n"\
  917.       ".byte 0x8A\n"\
  918.       ".byte 0xBD\n"\
  919.       ".byte 0x7A\n"\
  920.       ".byte 0x11\n"\
  921.       ".byte 0xBC\n"\
  922.       ".byte 0x01\n"\
  923.       ".byte 0x00\n"\
  924.       ".byte 0x00\n"\
  925.       ".byte 0x00\n"\
  926.       "push  $" #val "\n"); \
  927.       __asm__  ("pop %0" : "=m" (var):); \
  928.       asm (".byte 0xEB\n"\
  929.       ".byte 0x0C\n"\
  930.       ".byte 0xBD\n"\
  931.       ".byte 0x7A\n"\
  932.       ".byte 0x11\n"\
  933.       ".byte 0xBC\n"\
  934.       ".byte 0x7A\n"\
  935.       ".byte 0x71\n"\
  936.       ".byte 0x8B\n"\
  937.       ".byte 0x8A\n"\
  938.       ".byte 0x67\n"\
  939.       ".byte 0x31\n"\
  940.       ".byte 0xAB\n"\
  941.       ".byte 0x91\n"\
  942.       );
  943.  
  944. #define CHECK_REGISTRATION(var, val) \
  945. asm ( ".byte 0xEB\n"\
  946.       ".byte 0x10\n"\
  947.       ".byte 0x67\n"\
  948.       ".byte 0x31\n"\
  949.       ".byte 0xAB\n"\
  950.       ".byte 0x91\n"\
  951.       ".byte 0x7A\n"\
  952.       ".byte 0x71\n"\
  953.       ".byte 0x8B\n"\
  954.       ".byte 0x8A\n"\
  955.       ".byte 0xBD\n"\
  956.       ".byte 0x7A\n"\
  957.       ".byte 0x11\n"\
  958.       ".byte 0xBC\n"\
  959.       ".byte 0x02\n"\
  960.       ".byte 0x00\n"\
  961.       ".byte 0x00\n"\
  962.       ".byte 0x00\n"\
  963.       "push  $" #val "\n"); \
  964.       __asm__  ("pop %0" : "=m" (var):); \
  965.       asm (".byte 0xEB\n"\
  966.       ".byte 0x0C\n"\
  967.       ".byte 0xBD\n"\
  968.       ".byte 0x7A\n"\
  969.       ".byte 0x11\n"\
  970.       ".byte 0xBC\n"\
  971.       ".byte 0x7A\n"\
  972.       ".byte 0x71\n"\
  973.       ".byte 0x8B\n"\
  974.       ".byte 0x8A\n"\
  975.       ".byte 0x67\n"\
  976.       ".byte 0x31\n"\
  977.       ".byte 0xAB\n"\
  978.       ".byte 0x91\n"\
  979.       );
  980.  
  981. #define CHECK_VIRTUAL_PC(var, val) \
  982. asm ( ".byte 0xEB\n"\
  983.       ".byte 0x10\n"\
  984.       ".byte 0x67\n"\
  985.       ".byte 0x31\n"\
  986.       ".byte 0xAB\n"\
  987.       ".byte 0x91\n"\
  988.       ".byte 0x7A\n"\
  989.       ".byte 0x71\n"\
  990.       ".byte 0x8B\n"\
  991.       ".byte 0x8A\n"\
  992.       ".byte 0xBD\n"\
  993.       ".byte 0x7A\n"\
  994.       ".byte 0x11\n"\
  995.       ".byte 0xBC\n"\
  996.       ".byte 0x03\n"\
  997.       ".byte 0x00\n"\
  998.       ".byte 0x00\n"\
  999.       ".byte 0x00\n"\
  1000.       "push  $" #val "\n"); \
  1001.       __asm__  ("pop %0" : "=m" (var):); \
  1002.       asm (".byte 0xEB\n"\
  1003.       ".byte 0x0C\n"\
  1004.       ".byte 0xBD\n"\
  1005.       ".byte 0x7A\n"\
  1006.       ".byte 0x11\n"\
  1007.       ".byte 0xBC\n"\
  1008.       ".byte 0x7A\n"\
  1009.       ".byte 0x71\n"\
  1010.       ".byte 0x8B\n"\
  1011.       ".byte 0x8A\n"\
  1012.       ".byte 0x67\n"\
  1013.       ".byte 0x31\n"\
  1014.       ".byte 0xAB\n"\
  1015.       ".byte 0x91\n"\
  1016.       );
  1017.  
  1018. #else
  1019. #ifdef __ICL
  1020.  
  1021. // ICL macros definitions
  1022.  
  1023.  #define REMOVE_BLOCK_START \
  1024.   __asm __emit 0xEB \
  1025.   __asm __emit 0x10 \
  1026.   __asm __emit 0x57 \
  1027.   __asm __emit 0x4C \
  1028.   __asm __emit 0x20 \
  1029.   __asm __emit 0x20 \
  1030.   __asm __emit 0x00 \
  1031.   __asm __emit 0x00 \
  1032.   __asm __emit 0x00 \
  1033.   __asm __emit 0x00 \
  1034.   __asm __emit 0x00 \
  1035.   __asm __emit 0x00 \
  1036.   __asm __emit 0x00 \
  1037.   __asm __emit 0x00 \
  1038.   __asm __emit 0x57 \
  1039.   __asm __emit 0x4C \
  1040.   __asm __emit 0x20 \
  1041.   __asm __emit 0x20 \
  1042.  
  1043.  #define REMOVE_BLOCK_END \
  1044.   __asm __emit 0xEB \
  1045.   __asm __emit 0x10 \
  1046.   __asm __emit 0x57 \
  1047.   __asm __emit 0x4C \
  1048.   __asm __emit 0x20 \
  1049.   __asm __emit 0x20 \
  1050.   __asm __emit 0x01 \
  1051.   __asm __emit 0x00 \
  1052.   __asm __emit 0x00 \
  1053.   __asm __emit 0x00 \
  1054.   __asm __emit 0x00 \
  1055.   __asm __emit 0x00 \
  1056.   __asm __emit 0x00 \
  1057.   __asm __emit 0x00 \
  1058.   __asm __emit 0x57 \
  1059.   __asm __emit 0x4C \
  1060.   __asm __emit 0x20 \
  1061.   __asm __emit 0x20 \
  1062.  
  1063.   #define CODEREPLACE_START \
  1064.   __asm __emit 0xEB \
  1065.   __asm __emit 0x10 \
  1066.   __asm __emit 0x57 \
  1067.   __asm __emit 0x4C \
  1068.   __asm __emit 0x20 \
  1069.   __asm __emit 0x20 \
  1070.   __asm __emit 0x00 \
  1071.   __asm __emit 0x00 \
  1072.   __asm __emit 0x00 \
  1073.   __asm __emit 0x00 \
  1074.   __asm __emit 0x00 \
  1075.   __asm __emit 0x00 \
  1076.   __asm __emit 0x00 \
  1077.   __asm __emit 0x00 \
  1078.   __asm __emit 0x57 \
  1079.   __asm __emit 0x4C \
  1080.   __asm __emit 0x20 \
  1081.   __asm __emit 0x20 \
  1082.  
  1083.  #define CODEREPLACE_END \
  1084.   __asm __emit 0xEB \
  1085.   __asm __emit 0x10 \
  1086.   __asm __emit 0x57 \
  1087.   __asm __emit 0x4C \
  1088.   __asm __emit 0x20 \
  1089.   __asm __emit 0x20 \
  1090.   __asm __emit 0x01 \
  1091.   __asm __emit 0x00 \
  1092.   __asm __emit 0x00 \
  1093.   __asm __emit 0x00 \
  1094.   __asm __emit 0x00 \
  1095.   __asm __emit 0x00 \
  1096.   __asm __emit 0x00 \
  1097.   __asm __emit 0x00 \
  1098.   __asm __emit 0x57 \
  1099.   __asm __emit 0x4C \
  1100.   __asm __emit 0x20 \
  1101.   __asm __emit 0x20 \
  1102.  
  1103.  #define REGISTERED_START \
  1104.   __asm __emit 0xEB \
  1105.   __asm __emit 0x10 \
  1106.   __asm __emit 0x57 \
  1107.   __asm __emit 0x4C \
  1108.   __asm __emit 0x20 \
  1109.   __asm __emit 0x20 \
  1110.   __asm __emit 0x02 \
  1111.   __asm __emit 0x00 \
  1112.   __asm __emit 0x00 \
  1113.   __asm __emit 0x00 \
  1114.   __asm __emit 0x00 \
  1115.   __asm __emit 0x00 \
  1116.   __asm __emit 0x00 \
  1117.   __asm __emit 0x00 \
  1118.   __asm __emit 0x57 \
  1119.   __asm __emit 0x4C \
  1120.   __asm __emit 0x20 \
  1121.   __asm __emit 0x20 \
  1122.  
  1123.  #define REGISTERED_END \
  1124.   __asm __emit 0xEB \
  1125.   __asm __emit 0x10 \
  1126.   __asm __emit 0x57 \
  1127.   __asm __emit 0x4C \
  1128.   __asm __emit 0x20 \
  1129.   __asm __emit 0x20 \
  1130.   __asm __emit 0x03 \
  1131.   __asm __emit 0x00 \
  1132.   __asm __emit 0x00 \
  1133.   __asm __emit 0x00 \
  1134.   __asm __emit 0x00 \
  1135.   __asm __emit 0x00 \
  1136.   __asm __emit 0x00 \
  1137.   __asm __emit 0x00 \
  1138.   __asm __emit 0x57 \
  1139.   __asm __emit 0x4C \
  1140.   __asm __emit 0x20 \
  1141.   __asm __emit 0x20 \
  1142.  
  1143.  
  1144.  #define ENCODE_START \
  1145.   __asm __emit 0xEB \
  1146.   __asm __emit 0x10 \
  1147.   __asm __emit 0x57 \
  1148.   __asm __emit 0x4C \
  1149.   __asm __emit 0x20 \
  1150.   __asm __emit 0x20 \
  1151.   __asm __emit 0x04 \
  1152.   __asm __emit 0x00 \
  1153.   __asm __emit 0x00 \
  1154.   __asm __emit 0x00 \
  1155.   __asm __emit 0x00 \
  1156.   __asm __emit 0x00 \
  1157.   __asm __emit 0x00 \
  1158.   __asm __emit 0x00 \
  1159.   __asm __emit 0x57 \
  1160.   __asm __emit 0x4C \
  1161.   __asm __emit 0x20 \
  1162.   __asm __emit 0x20 \
  1163.  
  1164.  
  1165.  #define ENCODE_END \
  1166.   __asm __emit 0xEB \
  1167.   __asm __emit 0x10 \
  1168.   __asm __emit 0x57 \
  1169.   __asm __emit 0x4C \
  1170.   __asm __emit 0x20 \
  1171.   __asm __emit 0x20 \
  1172.   __asm __emit 0x05 \
  1173.   __asm __emit 0x00 \
  1174.   __asm __emit 0x00 \
  1175.   __asm __emit 0x00 \
  1176.   __asm __emit 0x00 \
  1177.   __asm __emit 0x00 \
  1178.   __asm __emit 0x00 \
  1179.   __asm __emit 0x00 \
  1180.   __asm __emit 0x57 \
  1181.   __asm __emit 0x4C \
  1182.   __asm __emit 0x20 \
  1183.   __asm __emit 0x20 \
  1184.  
  1185.  
  1186.  #define CLEAR_START \
  1187.   __asm __emit 0xEB \
  1188.   __asm __emit 0x10 \
  1189.   __asm __emit 0x57 \
  1190.   __asm __emit 0x4C \
  1191.   __asm __emit 0x20 \
  1192.   __asm __emit 0x20 \
  1193.   __asm __emit 0x06 \
  1194.   __asm __emit 0x00 \
  1195.   __asm __emit 0x00 \
  1196.   __asm __emit 0x00 \
  1197.   __asm __emit 0x00 \
  1198.   __asm __emit 0x00 \
  1199.   __asm __emit 0x00 \
  1200.   __asm __emit 0x00 \
  1201.   __asm __emit 0x57 \
  1202.   __asm __emit 0x4C \
  1203.   __asm __emit 0x20 \
  1204.   __asm __emit 0x20 \
  1205.  
  1206.  
  1207.  #define CLEAR_END \
  1208.   __asm __emit 0xEB \
  1209.   __asm __emit 0x15 \
  1210.   __asm __emit 0x57 \
  1211.   __asm __emit 0x4C \
  1212.   __asm __emit 0x20 \
  1213.   __asm __emit 0x20 \
  1214.   __asm __emit 0x07 \
  1215.   __asm __emit 0x00 \
  1216.   __asm __emit 0x00 \
  1217.   __asm __emit 0x00 \
  1218.   __asm __emit 0x00 \
  1219.   __asm __emit 0x00 \
  1220.   __asm __emit 0x00 \
  1221.   __asm __emit 0x00 \
  1222.   __asm __emit 0x57 \
  1223.   __asm __emit 0x4C \
  1224.   __asm __emit 0x20 \
  1225.   __asm __emit 0x20 \
  1226.   __asm __emit 0x00 \
  1227.   __asm __emit 0x00 \
  1228.   __asm __emit 0x00 \
  1229.   __asm __emit 0x00 \
  1230.   __asm __emit 0x00
  1231.  
  1232.   #define UNREGISTERED_START \
  1233.   __asm __emit 0xEB \
  1234.   __asm __emit 0x10 \
  1235.   __asm __emit 0x57 \
  1236.   __asm __emit 0x4C \
  1237.   __asm __emit 0x20 \
  1238.   __asm __emit 0x20 \
  1239.   __asm __emit 0x08 \
  1240.   __asm __emit 0x00 \
  1241.   __asm __emit 0x00 \
  1242.   __asm __emit 0x00 \
  1243.   __asm __emit 0x00 \
  1244.   __asm __emit 0x00 \
  1245.   __asm __emit 0x00 \
  1246.   __asm __emit 0x00 \
  1247.   __asm __emit 0x57 \
  1248.   __asm __emit 0x4C \
  1249.   __asm __emit 0x20 \
  1250.   __asm __emit 0x20 \
  1251.  
  1252.  #define UNREGISTERED_END \
  1253.   __asm __emit 0xEB \
  1254.   __asm __emit 0x10 \
  1255.   __asm __emit 0x57 \
  1256.   __asm __emit 0x4C \
  1257.   __asm __emit 0x20 \
  1258.   __asm __emit 0x20 \
  1259.   __asm __emit 0x09 \
  1260.   __asm __emit 0x00 \
  1261.   __asm __emit 0x00 \
  1262.   __asm __emit 0x00 \
  1263.   __asm __emit 0x00 \
  1264.   __asm __emit 0x00 \
  1265.   __asm __emit 0x00 \
  1266.   __asm __emit 0x00 \
  1267.   __asm __emit 0x57 \
  1268.   __asm __emit 0x4C \
  1269.   __asm __emit 0x20 \
  1270.   __asm __emit 0x20 \
  1271.  
  1272.   #define VM_START_WITHLEVEL(x) \
  1273.   __asm __emit 0xEB \
  1274.   __asm __emit 0x10 \
  1275.   __asm __emit 0x57 \
  1276.   __asm __emit 0x4C \
  1277.   __asm __emit 0x20 \
  1278.   __asm __emit 0x20 \
  1279.   __asm __emit 0x0C \
  1280.   __asm __emit 0x00 \
  1281.   __asm __emit 0x00 \
  1282.   __asm __emit 0x00 \
  1283.   __asm __emit 0x00 \
  1284.   __asm __emit x \
  1285.   __asm __emit 0x00 \
  1286.   __asm __emit 0x00 \
  1287.   __asm __emit 0x57 \
  1288.   __asm __emit 0x4C \
  1289.   __asm __emit 0x20 \
  1290.   __asm __emit 0x20 \
  1291.  
  1292.   #define VM_START \
  1293.   __asm __emit 0xEB \
  1294.   __asm __emit 0x10 \
  1295.   __asm __emit 0x57 \
  1296.   __asm __emit 0x4C \
  1297.   __asm __emit 0x20 \
  1298.   __asm __emit 0x20 \
  1299.   __asm __emit 0x0C \
  1300.   __asm __emit 0x00 \
  1301.   __asm __emit 0x00 \
  1302.   __asm __emit 0x00 \
  1303.   __asm __emit 0x00 \
  1304.   __asm __emit 0x00 \
  1305.   __asm __emit 0x00 \
  1306.   __asm __emit 0x00 \
  1307.   __asm __emit 0x57 \
  1308.   __asm __emit 0x4C \
  1309.   __asm __emit 0x20 \
  1310.   __asm __emit 0x20 \
  1311.  
  1312.  #define VM_END \
  1313.   __asm __emit 0xEB \
  1314.   __asm __emit 0x10 \
  1315.   __asm __emit 0x57 \
  1316.   __asm __emit 0x4C \
  1317.   __asm __emit 0x20 \
  1318.   __asm __emit 0x20 \
  1319.   __asm __emit 0x0D \
  1320.   __asm __emit 0x00 \
  1321.   __asm __emit 0x00 \
  1322.   __asm __emit 0x00 \
  1323.   __asm __emit 0x00 \
  1324.   __asm __emit 0x00 \
  1325.   __asm __emit 0x00 \
  1326.   __asm __emit 0x00 \
  1327.   __asm __emit 0x57 \
  1328.   __asm __emit 0x4C \
  1329.   __asm __emit 0x20 \
  1330.   __asm __emit 0x20 \
  1331.  
  1332.   #define MUTATE_START \
  1333.   __asm __emit 0xEB \
  1334.   __asm __emit 0x10 \
  1335.   __asm __emit 0x57 \
  1336.   __asm __emit 0x4C \
  1337.   __asm __emit 0x20 \
  1338.   __asm __emit 0x20 \
  1339.   __asm __emit 0x10 \
  1340.   __asm __emit 0x00 \
  1341.   __asm __emit 0x00 \
  1342.   __asm __emit 0x00 \
  1343.   __asm __emit 0x00 \
  1344.   __asm __emit 0x00 \
  1345.   __asm __emit 0x00 \
  1346.   __asm __emit 0x00 \
  1347.   __asm __emit 0x57 \
  1348.   __asm __emit 0x4C \
  1349.   __asm __emit 0x20 \
  1350.   __asm __emit 0x20 \
  1351.  
  1352.  #define MUTATE_END \
  1353.   __asm __emit 0xEB \
  1354.   __asm __emit 0x10 \
  1355.   __asm __emit 0x57 \
  1356.   __asm __emit 0x4C \
  1357.   __asm __emit 0x20 \
  1358.   __asm __emit 0x20 \
  1359.   __asm __emit 0x11 \
  1360.   __asm __emit 0x00 \
  1361.   __asm __emit 0x00 \
  1362.   __asm __emit 0x00 \
  1363.   __asm __emit 0x00 \
  1364.   __asm __emit 0x00 \
  1365.   __asm __emit 0x00 \
  1366.   __asm __emit 0x00 \
  1367.   __asm __emit 0x57 \
  1368.   __asm __emit 0x4C \
  1369.   __asm __emit 0x20 \
  1370.   __asm __emit 0x20 \
  1371.  
  1372.   #define STR_ENCRYPT_START \
  1373.   __asm __emit 0xEB \
  1374.   __asm __emit 0x10 \
  1375.   __asm __emit 0x57 \
  1376.   __asm __emit 0x4C \
  1377.   __asm __emit 0x20 \
  1378.   __asm __emit 0x20 \
  1379.   __asm __emit 0x12 \
  1380.   __asm __emit 0x00 \
  1381.   __asm __emit 0x00 \
  1382.   __asm __emit 0x00 \
  1383.   __asm __emit 0x00 \
  1384.   __asm __emit 0x00 \
  1385.   __asm __emit 0x00 \
  1386.   __asm __emit 0x00 \
  1387.   __asm __emit 0x57 \
  1388.   __asm __emit 0x4C \
  1389.   __asm __emit 0x20 \
  1390.   __asm __emit 0x20 \
  1391.  
  1392.  #define STR_ENCRYPT_END \
  1393.   __asm __emit 0xEB \
  1394.   __asm __emit 0x10 \
  1395.   __asm __emit 0x57 \
  1396.   __asm __emit 0x4C \
  1397.   __asm __emit 0x20 \
  1398.   __asm __emit 0x20 \
  1399.   __asm __emit 0x13 \
  1400.   __asm __emit 0x00 \
  1401.   __asm __emit 0x00 \
  1402.   __asm __emit 0x00 \
  1403.   __asm __emit 0x00 \
  1404.   __asm __emit 0x00 \
  1405.   __asm __emit 0x00 \
  1406.   __asm __emit 0x00 \
  1407.   __asm __emit 0x57 \
  1408.   __asm __emit 0x4C \
  1409.   __asm __emit 0x20 \
  1410.   __asm __emit 0x20 \
  1411.  
  1412.   #define STR_ENCRYPTW_START \
  1413.   __asm __emit 0xEB \
  1414.   __asm __emit 0x10 \
  1415.   __asm __emit 0x57 \
  1416.   __asm __emit 0x4C \
  1417.   __asm __emit 0x20 \
  1418.   __asm __emit 0x20 \
  1419.   __asm __emit 0x22 \
  1420.   __asm __emit 0x00 \
  1421.   __asm __emit 0x00 \
  1422.   __asm __emit 0x00 \
  1423.   __asm __emit 0x00 \
  1424.   __asm __emit 0x00 \
  1425.   __asm __emit 0x00 \
  1426.   __asm __emit 0x00 \
  1427.   __asm __emit 0x57 \
  1428.   __asm __emit 0x4C \
  1429.   __asm __emit 0x20 \
  1430.   __asm __emit 0x20 \
  1431.  
  1432.  #define STR_ENCRYPTW_END \
  1433.   __asm __emit 0xEB \
  1434.   __asm __emit 0x10 \
  1435.   __asm __emit 0x57 \
  1436.   __asm __emit 0x4C \
  1437.   __asm __emit 0x20 \
  1438.   __asm __emit 0x20 \
  1439.   __asm __emit 0x23 \
  1440.   __asm __emit 0x00 \
  1441.   __asm __emit 0x00 \
  1442.   __asm __emit 0x00 \
  1443.   __asm __emit 0x00 \
  1444.   __asm __emit 0x00 \
  1445.   __asm __emit 0x00 \
  1446.   __asm __emit 0x00 \
  1447.   __asm __emit 0x57 \
  1448.   __asm __emit 0x4C \
  1449.   __asm __emit 0x20 \
  1450.   __asm __emit 0x20 \
  1451.  
  1452.  
  1453.   #define REGISTEREDVM_START \
  1454.   __asm __emit 0xEB \
  1455.   __asm __emit 0x10 \
  1456.   __asm __emit 0x57 \
  1457.   __asm __emit 0x4C \
  1458.   __asm __emit 0x20 \
  1459.   __asm __emit 0x20 \
  1460.   __asm __emit 0x0E \
  1461.   __asm __emit 0x00 \
  1462.   __asm __emit 0x00 \
  1463.   __asm __emit 0x00 \
  1464.   __asm __emit 0x00 \
  1465.   __asm __emit 0x00 \
  1466.   __asm __emit 0x00 \
  1467.   __asm __emit 0x00 \
  1468.   __asm __emit 0x57 \
  1469.   __asm __emit 0x4C \
  1470.   __asm __emit 0x20 \
  1471.   __asm __emit 0x20 \
  1472.  
  1473.  #define REGISTEREDVM_END \
  1474.   __asm __emit 0xEB \
  1475.   __asm __emit 0x10 \
  1476.   __asm __emit 0x57 \
  1477.   __asm __emit 0x4C \
  1478.   __asm __emit 0x20 \
  1479.   __asm __emit 0x20 \
  1480.   __asm __emit 0x0F \
  1481.   __asm __emit 0x00 \
  1482.   __asm __emit 0x00 \
  1483.   __asm __emit 0x00 \
  1484.   __asm __emit 0x00 \
  1485.   __asm __emit 0x00 \
  1486.   __asm __emit 0x00 \
  1487.   __asm __emit 0x00 \
  1488.   __asm __emit 0x57 \
  1489.   __asm __emit 0x4C \
  1490.   __asm __emit 0x20 \
  1491.   __asm __emit 0x20 \
  1492.  
  1493.   #define UNPROTECTED_START \
  1494.   __asm __emit 0xEB \
  1495.   __asm __emit 0x10 \
  1496.   __asm __emit 0x57 \
  1497.   __asm __emit 0x4C \
  1498.   __asm __emit 0x20 \
  1499.   __asm __emit 0x20 \
  1500.   __asm __emit 0x20 \
  1501.   __asm __emit 0x00 \
  1502.   __asm __emit 0x00 \
  1503.   __asm __emit 0x00 \
  1504.   __asm __emit 0x00 \
  1505.   __asm __emit 0x00 \
  1506.   __asm __emit 0x00 \
  1507.   __asm __emit 0x00 \
  1508.   __asm __emit 0x57 \
  1509.   __asm __emit 0x4C \
  1510.   __asm __emit 0x20 \
  1511.   __asm __emit 0x20 \
  1512.  
  1513.  #define UNPROTECTED_END \
  1514.   __asm __emit 0xEB \
  1515.   __asm __emit 0x10 \
  1516.   __asm __emit 0x57 \
  1517.   __asm __emit 0x4C \
  1518.   __asm __emit 0x20 \
  1519.   __asm __emit 0x20 \
  1520.   __asm __emit 0x21 \
  1521.   __asm __emit 0x00 \
  1522.   __asm __emit 0x00 \
  1523.   __asm __emit 0x00 \
  1524.   __asm __emit 0x00 \
  1525.   __asm __emit 0x00 \
  1526.   __asm __emit 0x00 \
  1527.   __asm __emit 0x00 \
  1528.   __asm __emit 0x57 \
  1529.   __asm __emit 0x4C \
  1530.   __asm __emit 0x20 \
  1531.   __asm __emit 0x20 \
  1532.  
  1533. #else
  1534. #ifdef __LCC__
  1535.  
  1536. // LCC macros definitions
  1537.  
  1538.  #define REMOVE_BLOCK_START     __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
  1539.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1540.  #define REMOVE_BLOCK_END       __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
  1541.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1542.  
  1543.  #define CODEREPLACE_START      __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, \
  1544.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1545.  #define CODEREPLACE_END        __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, \
  1546.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1547.  
  1548.  #define REGISTERED_START       __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x02, 0x00, 0x00, 0x00, \
  1549.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1550.  #define REGISTERED_END         __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x03, 0x00, 0x00, 0x00, \
  1551.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1552.  
  1553.  #define ENCODE_START           __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x04, 0x00, 0x00, 0x00, \
  1554.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1555.  #define ENCODE_END             __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x05, 0x00, 0x00, 0x00, \
  1556.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1557.  
  1558.  #define CLEAR_START            __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x06, 0x00, 0x00, 0x00, \
  1559.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1560.  
  1561.  #define CLEAR_END              __asm__ (" .byte\t0xEB, 0x15, 0x57, 0x4C, 0x20, 0x20, 0x07, 0x00, 0x00, 0x00, \
  1562.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20, 0x00, 0x00, \
  1563.                                          0x00, 0x00, 0x00");
  1564.  
  1565.  #define UNREGISTERED_START     __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x08, 0x00, 0x00, 0x00, \
  1566.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1567.  #define UNREGISTERED_END       __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x09, 0x00, 0x00, 0x00, \
  1568.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1569.  
  1570.  #define VM_START_WITHLEVEL(x)  __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
  1571.                                          0x00, "x", 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1572.  
  1573.  #define VM_START               __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0C, 0x00, 0x00, 0x00, \
  1574.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1575.  
  1576.  #define VM_END                 __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0D, 0x00, 0x00, 0x00, \
  1577.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1578.  
  1579.  #define MUTATE_START           __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, \
  1580.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1581.  
  1582.  #define MUTATE_END             __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x11, 0x00, 0x00, 0x00, \
  1583.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1584.  
  1585.  #define STR_ENCRYPT_START      __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x12, 0x00, 0x00, 0x00, \
  1586.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1587.  
  1588.  #define STR_ENCRYPT_END        __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, \
  1589.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1590.  
  1591.  #define STR_ENCRYPT_START      __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x22, 0x00, 0x00, 0x00, \
  1592.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1593.  
  1594.  #define STR_ENCRYPT_END        __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x23, 0x00, 0x00, 0x00, \
  1595.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1596.  
  1597.  #define REGISTEREDVM_START     __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0E, 0x00, 0x00, 0x00, \
  1598.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1599.  
  1600.  #define REGISTEREDVM_END       __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x0F, 0x00, 0x00, 0x00, \
  1601.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1602.  
  1603.  #define UNPROTECTED_START      __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, \
  1604.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1605.  
  1606.  #define UNPROTECTED_END        __asm__ (" .byte\t0xEB, 0x10, 0x57, 0x4C, 0x20, 0x20, 0x21, 0x00, 0x00, 0x00, \
  1607.                                          0x00, 0x00, 0x00, 0x00, 0x57, 0x4C, 0x20, 0x20");
  1608.  
  1609. #else
  1610.  
  1611.  // Visual Studio macros definitions
  1612.  
  1613.  #define REMOVE_BLOCK_START \
  1614.   __asm _emit 0xEB \
  1615.   __asm _emit 0x10 \
  1616.   __asm _emit 0x57 \
  1617.   __asm _emit 0x4C \
  1618.   __asm _emit 0x20 \
  1619.   __asm _emit 0x20 \
  1620.   __asm _emit 0x00 \
  1621.   __asm _emit 0x00 \
  1622.   __asm _emit 0x00 \
  1623.   __asm _emit 0x00 \
  1624.   __asm _emit 0x00 \
  1625.   __asm _emit 0x00 \
  1626.   __asm _emit 0x00 \
  1627.   __asm _emit 0x00 \
  1628.   __asm _emit 0x57 \
  1629.   __asm _emit 0x4C \
  1630.   __asm _emit 0x20 \
  1631.   __asm _emit 0x20 \
  1632.  
  1633.  #define REMOVE_BLOCK_END \
  1634.   __asm _emit 0xEB \
  1635.   __asm _emit 0x10 \
  1636.   __asm _emit 0x57 \
  1637.   __asm _emit 0x4C \
  1638.   __asm _emit 0x20 \
  1639.   __asm _emit 0x20 \
  1640.   __asm _emit 0x01 \
  1641.   __asm _emit 0x00 \
  1642.   __asm _emit 0x00 \
  1643.   __asm _emit 0x00 \
  1644.   __asm _emit 0x00 \
  1645.   __asm _emit 0x00 \
  1646.   __asm _emit 0x00 \
  1647.   __asm _emit 0x00 \
  1648.   __asm _emit 0x57 \
  1649.   __asm _emit 0x4C \
  1650.   __asm _emit 0x20 \
  1651.   __asm _emit 0x20 \
  1652.  
  1653.  #define CODEREPLACE_START \
  1654.   __asm _emit 0xEB \
  1655.   __asm _emit 0x10 \
  1656.   __asm _emit 0x57 \
  1657.   __asm _emit 0x4C \
  1658.   __asm _emit 0x20 \
  1659.   __asm _emit 0x20 \
  1660.   __asm _emit 0x00 \
  1661.   __asm _emit 0x00 \
  1662.   __asm _emit 0x00 \
  1663.   __asm _emit 0x00 \
  1664.   __asm _emit 0x00 \
  1665.   __asm _emit 0x00 \
  1666.   __asm _emit 0x00 \
  1667.   __asm _emit 0x00 \
  1668.   __asm _emit 0x57 \
  1669.   __asm _emit 0x4C \
  1670.   __asm _emit 0x20 \
  1671.   __asm _emit 0x20 \
  1672.  
  1673.  #define CODEREPLACE_END \
  1674.   __asm _emit 0xEB \
  1675.   __asm _emit 0x10 \
  1676.   __asm _emit 0x57 \
  1677.   __asm _emit 0x4C \
  1678.   __asm _emit 0x20 \
  1679.   __asm _emit 0x20 \
  1680.   __asm _emit 0x01 \
  1681.   __asm _emit 0x00 \
  1682.   __asm _emit 0x00 \
  1683.   __asm _emit 0x00 \
  1684.   __asm _emit 0x00 \
  1685.   __asm _emit 0x00 \
  1686.   __asm _emit 0x00 \
  1687.   __asm _emit 0x00 \
  1688.   __asm _emit 0x57 \
  1689.   __asm _emit 0x4C \
  1690.   __asm _emit 0x20 \
  1691.   __asm _emit 0x20 \
  1692.  
  1693.  #define REGISTERED_START \
  1694.   __asm _emit 0xEB \
  1695.   __asm _emit 0x10 \
  1696.   __asm _emit 0x57 \
  1697.   __asm _emit 0x4C \
  1698.   __asm _emit 0x20 \
  1699.   __asm _emit 0x20 \
  1700.   __asm _emit 0x02 \
  1701.   __asm _emit 0x00 \
  1702.   __asm _emit 0x00 \
  1703.   __asm _emit 0x00 \
  1704.   __asm _emit 0x00 \
  1705.   __asm _emit 0x00 \
  1706.   __asm _emit 0x00 \
  1707.   __asm _emit 0x00 \
  1708.   __asm _emit 0x57 \
  1709.   __asm _emit 0x4C \
  1710.   __asm _emit 0x20 \
  1711.   __asm _emit 0x20 \
  1712.  
  1713. #define REGISTERED_END \
  1714.   __asm _emit 0xEB \
  1715.   __asm _emit 0x10 \
  1716.   __asm _emit 0x57 \
  1717.   __asm _emit 0x4C \
  1718.   __asm _emit 0x20 \
  1719.   __asm _emit 0x20 \
  1720.   __asm _emit 0x03 \
  1721.   __asm _emit 0x00 \
  1722.   __asm _emit 0x00 \
  1723.   __asm _emit 0x00 \
  1724.   __asm _emit 0x00 \
  1725.   __asm _emit 0x00 \
  1726.   __asm _emit 0x00 \
  1727.   __asm _emit 0x00 \
  1728.   __asm _emit 0x57 \
  1729.   __asm _emit 0x4C \
  1730.   __asm _emit 0x20 \
  1731.   __asm _emit 0x20 \
  1732.  
  1733.  #define ENCODE_START \
  1734.   __asm _emit 0xEB \
  1735.   __asm _emit 0x10 \
  1736.   __asm _emit 0x57 \
  1737.   __asm _emit 0x4C \
  1738.   __asm _emit 0x20 \
  1739.   __asm _emit 0x20 \
  1740.   __asm _emit 0x04 \
  1741.   __asm _emit 0x00 \
  1742.   __asm _emit 0x00 \
  1743.   __asm _emit 0x00 \
  1744.   __asm _emit 0x00 \
  1745.   __asm _emit 0x00 \
  1746.   __asm _emit 0x00 \
  1747.   __asm _emit 0x00 \
  1748.   __asm _emit 0x57 \
  1749.   __asm _emit 0x4C \
  1750.   __asm _emit 0x20 \
  1751.   __asm _emit 0x20 \
  1752.  
  1753.  #define ENCODE_END \
  1754.   __asm _emit 0xEB \
  1755.   __asm _emit 0x10 \
  1756.   __asm _emit 0x57 \
  1757.   __asm _emit 0x4C \
  1758.   __asm _emit 0x20 \
  1759.   __asm _emit 0x20 \
  1760.   __asm _emit 0x05 \
  1761.   __asm _emit 0x00 \
  1762.   __asm _emit 0x00 \
  1763.   __asm _emit 0x00 \
  1764.   __asm _emit 0x00 \
  1765.   __asm _emit 0x00 \
  1766.   __asm _emit 0x00 \
  1767.   __asm _emit 0x00 \
  1768.   __asm _emit 0x57 \
  1769.   __asm _emit 0x4C \
  1770.   __asm _emit 0x20 \
  1771.   __asm _emit 0x20 \
  1772.  
  1773.  #define CLEAR_START \
  1774.   __asm _emit 0xEB \
  1775.   __asm _emit 0x10 \
  1776.   __asm _emit 0x57 \
  1777.   __asm _emit 0x4C \
  1778.   __asm _emit 0x20 \
  1779.   __asm _emit 0x20 \
  1780.   __asm _emit 0x06 \
  1781.   __asm _emit 0x00 \
  1782.   __asm _emit 0x00 \
  1783.   __asm _emit 0x00 \
  1784.   __asm _emit 0x00 \
  1785.   __asm _emit 0x00 \
  1786.   __asm _emit 0x00 \
  1787.   __asm _emit 0x00 \
  1788.   __asm _emit 0x57 \
  1789.   __asm _emit 0x4C \
  1790.   __asm _emit 0x20 \
  1791.   __asm _emit 0x20 \
  1792.  
  1793.  #define CLEAR_END \
  1794.   __asm _emit 0xEB \
  1795.   __asm _emit 0x15 \
  1796.   __asm _emit 0x57 \
  1797.   __asm _emit 0x4C \
  1798.   __asm _emit 0x20 \
  1799.   __asm _emit 0x20 \
  1800.   __asm _emit 0x07 \
  1801.   __asm _emit 0x00 \
  1802.   __asm _emit 0x00 \
  1803.   __asm _emit 0x00 \
  1804.   __asm _emit 0x00 \
  1805.   __asm _emit 0x00 \
  1806.   __asm _emit 0x00 \
  1807.   __asm _emit 0x00 \
  1808.   __asm _emit 0x57 \
  1809.   __asm _emit 0x4C \
  1810.   __asm _emit 0x20 \
  1811.   __asm _emit 0x20 \
  1812.   __asm _emit 0x00 \
  1813.   __asm _emit 0x00 \
  1814.   __asm _emit 0x00 \
  1815.   __asm _emit 0x00 \
  1816.   __asm _emit 0x00
  1817.  
  1818.  #define UNREGISTERED_START \
  1819.   __asm _emit 0xEB \
  1820.   __asm _emit 0x10 \
  1821.   __asm _emit 0x57 \
  1822.   __asm _emit 0x4C \
  1823.   __asm _emit 0x20 \
  1824.   __asm _emit 0x20 \
  1825.   __asm _emit 0x08 \
  1826.   __asm _emit 0x00 \
  1827.   __asm _emit 0x00 \
  1828.   __asm _emit 0x00 \
  1829.   __asm _emit 0x00 \
  1830.   __asm _emit 0x00 \
  1831.   __asm _emit 0x00 \
  1832.   __asm _emit 0x00 \
  1833.   __asm _emit 0x57 \
  1834.   __asm _emit 0x4C \
  1835.   __asm _emit 0x20 \
  1836.   __asm _emit 0x20 \
  1837.  
  1838. #define UNREGISTERED_END \
  1839.   __asm _emit 0xEB \
  1840.   __asm _emit 0x10 \
  1841.   __asm _emit 0x57 \
  1842.   __asm _emit 0x4C \
  1843.   __asm _emit 0x20 \
  1844.   __asm _emit 0x20 \
  1845.   __asm _emit 0x09 \
  1846.   __asm _emit 0x00 \
  1847.   __asm _emit 0x00 \
  1848.   __asm _emit 0x00 \
  1849.   __asm _emit 0x00 \
  1850.   __asm _emit 0x00 \
  1851.   __asm _emit 0x00 \
  1852.   __asm _emit 0x00 \
  1853.   __asm _emit 0x57 \
  1854.   __asm _emit 0x4C \
  1855.   __asm _emit 0x20 \
  1856.   __asm _emit 0x20 \
  1857.  
  1858.  #define VM_START \
  1859.   __asm _emit 0xEB \
  1860.   __asm _emit 0x10 \
  1861.   __asm _emit 0x57 \
  1862.   __asm _emit 0x4C \
  1863.   __asm _emit 0x20 \
  1864.   __asm _emit 0x20 \
  1865.   __asm _emit 0x0C \
  1866.   __asm _emit 0x00 \
  1867.   __asm _emit 0x00 \
  1868.   __asm _emit 0x00 \
  1869.   __asm _emit 0x00 \
  1870.   __asm _emit 0x00 \
  1871.   __asm _emit 0x00 \
  1872.   __asm _emit 0x00 \
  1873.   __asm _emit 0x57 \
  1874.   __asm _emit 0x4C \
  1875.   __asm _emit 0x20 \
  1876.   __asm _emit 0x20 \
  1877.  
  1878.  #define VM_START_WITHLEVEL(x) \
  1879.   __asm _emit 0xEB \
  1880.   __asm _emit 0x10 \
  1881.   __asm _emit 0x57 \
  1882.   __asm _emit 0x4C \
  1883.   __asm _emit 0x20 \
  1884.   __asm _emit 0x20 \
  1885.   __asm _emit 0x0C \
  1886.   __asm _emit 0x00 \
  1887.   __asm _emit 0x00 \
  1888.   __asm _emit 0x00 \
  1889.   __asm _emit 0x00 \
  1890.   __asm _emit x \
  1891.   __asm _emit 0x00 \
  1892.   __asm _emit 0x00 \
  1893.   __asm _emit 0x57 \
  1894.   __asm _emit 0x4C \
  1895.   __asm _emit 0x20 \
  1896.   __asm _emit 0x20 \
  1897.  
  1898.  #define VM_END \
  1899.   __asm _emit 0xEB \
  1900.   __asm _emit 0x10 \
  1901.   __asm _emit 0x57 \
  1902.   __asm _emit 0x4C \
  1903.   __asm _emit 0x20 \
  1904.   __asm _emit 0x20 \
  1905.   __asm _emit 0x0D \
  1906.   __asm _emit 0x00 \
  1907.   __asm _emit 0x00 \
  1908.   __asm _emit 0x00 \
  1909.   __asm _emit 0x00 \
  1910.   __asm _emit 0x00 \
  1911.   __asm _emit 0x00 \
  1912.   __asm _emit 0x00 \
  1913.   __asm _emit 0x57 \
  1914.   __asm _emit 0x4C \
  1915.   __asm _emit 0x20 \
  1916.   __asm _emit 0x20 \
  1917.  
  1918.  #define MUTATE_START \
  1919.   __asm _emit 0xEB \
  1920.   __asm _emit 0x10 \
  1921.   __asm _emit 0x57 \
  1922.   __asm _emit 0x4C \
  1923.   __asm _emit 0x20 \
  1924.   __asm _emit 0x20 \
  1925.   __asm _emit 0x10 \
  1926.   __asm _emit 0x00 \
  1927.   __asm _emit 0x00 \
  1928.   __asm _emit 0x00 \
  1929.   __asm _emit 0x00 \
  1930.   __asm _emit 0x00 \
  1931.   __asm _emit 0x00 \
  1932.   __asm _emit 0x00 \
  1933.   __asm _emit 0x57 \
  1934.   __asm _emit 0x4C \
  1935.   __asm _emit 0x20 \
  1936.   __asm _emit 0x20 \
  1937.  
  1938.  #define MUTATE_END \
  1939.   __asm _emit 0xEB \
  1940.   __asm _emit 0x10 \
  1941.   __asm _emit 0x57 \
  1942.   __asm _emit 0x4C \
  1943.   __asm _emit 0x20 \
  1944.   __asm _emit 0x20 \
  1945.   __asm _emit 0x11 \
  1946.   __asm _emit 0x00 \
  1947.   __asm _emit 0x00 \
  1948.   __asm _emit 0x00 \
  1949.   __asm _emit 0x00 \
  1950.   __asm _emit 0x00 \
  1951.   __asm _emit 0x00 \
  1952.   __asm _emit 0x00 \
  1953.   __asm _emit 0x57 \
  1954.   __asm _emit 0x4C \
  1955.   __asm _emit 0x20 \
  1956.   __asm _emit 0x20 \
  1957.  
  1958.  #define STR_ENCRYPT_START \
  1959.   __asm _emit 0xEB \
  1960.   __asm _emit 0x10 \
  1961.   __asm _emit 0x57 \
  1962.   __asm _emit 0x4C \
  1963.   __asm _emit 0x20 \
  1964.   __asm _emit 0x20 \
  1965.   __asm _emit 0x12 \
  1966.   __asm _emit 0x00 \
  1967.   __asm _emit 0x00 \
  1968.   __asm _emit 0x00 \
  1969.   __asm _emit 0x00 \
  1970.   __asm _emit 0x00 \
  1971.   __asm _emit 0x00 \
  1972.   __asm _emit 0x00 \
  1973.   __asm _emit 0x57 \
  1974.   __asm _emit 0x4C \
  1975.   __asm _emit 0x20 \
  1976.   __asm _emit 0x20 \
  1977.  
  1978.  #define STR_ENCRYPT_END \
  1979.   __asm _emit 0xEB \
  1980.   __asm _emit 0x10 \
  1981.   __asm _emit 0x57 \
  1982.   __asm _emit 0x4C \
  1983.   __asm _emit 0x20 \
  1984.   __asm _emit 0x20 \
  1985.   __asm _emit 0x13 \
  1986.   __asm _emit 0x00 \
  1987.   __asm _emit 0x00 \
  1988.   __asm _emit 0x00 \
  1989.   __asm _emit 0x00 \
  1990.   __asm _emit 0x00 \
  1991.   __asm _emit 0x00 \
  1992.   __asm _emit 0x00 \
  1993.   __asm _emit 0x57 \
  1994.   __asm _emit 0x4C \
  1995.   __asm _emit 0x20 \
  1996.   __asm _emit 0x20 \
  1997.  
  1998.  #define STR_ENCRYPTW_START \
  1999.   __asm _emit 0xEB \
  2000.   __asm _emit 0x10 \
  2001.   __asm _emit 0x57 \
  2002.   __asm _emit 0x4C \
  2003.   __asm _emit 0x20 \
  2004.   __asm _emit 0x20 \
  2005.   __asm _emit 0x22 \
  2006.   __asm _emit 0x00 \
  2007.   __asm _emit 0x00 \
  2008.   __asm _emit 0x00 \
  2009.   __asm _emit 0x00 \
  2010.   __asm _emit 0x00 \
  2011.   __asm _emit 0x00 \
  2012.   __asm _emit 0x00 \
  2013.   __asm _emit 0x57 \
  2014.   __asm _emit 0x4C \
  2015.   __asm _emit 0x20 \
  2016.   __asm _emit 0x20 \
  2017.  
  2018.  #define STR_ENCRYPTW_END \
  2019.   __asm _emit 0xEB \
  2020.   __asm _emit 0x10 \
  2021.   __asm _emit 0x57 \
  2022.   __asm _emit 0x4C \
  2023.   __asm _emit 0x20 \
  2024.   __asm _emit 0x20 \
  2025.   __asm _emit 0x23 \
  2026.   __asm _emit 0x00 \
  2027.   __asm _emit 0x00 \
  2028.   __asm _emit 0x00 \
  2029.   __asm _emit 0x00 \
  2030.   __asm _emit 0x00 \
  2031.   __asm _emit 0x00 \
  2032.   __asm _emit 0x00 \
  2033.   __asm _emit 0x57 \
  2034.   __asm _emit 0x4C \
  2035.   __asm _emit 0x20 \
  2036.   __asm _emit 0x20 \
  2037.  
  2038.  
  2039.  #define REGISTEREDVM_START \
  2040.   __asm _emit 0xEB \
  2041.   __asm _emit 0x10 \
  2042.   __asm _emit 0x57 \
  2043.   __asm _emit 0x4C \
  2044.   __asm _emit 0x20 \
  2045.   __asm _emit 0x20 \
  2046.   __asm _emit 0x0E \
  2047.   __asm _emit 0x00 \
  2048.   __asm _emit 0x00 \
  2049.   __asm _emit 0x00 \
  2050.   __asm _emit 0x00 \
  2051.   __asm _emit 0x00 \
  2052.   __asm _emit 0x00 \
  2053.   __asm _emit 0x00 \
  2054.   __asm _emit 0x57 \
  2055.   __asm _emit 0x4C \
  2056.   __asm _emit 0x20 \
  2057.   __asm _emit 0x20 \
  2058.  
  2059.  #define REGISTEREDVM_END \
  2060.   __asm _emit 0xEB \
  2061.   __asm _emit 0x10 \
  2062.   __asm _emit 0x57 \
  2063.   __asm _emit 0x4C \
  2064.   __asm _emit 0x20 \
  2065.   __asm _emit 0x20 \
  2066.   __asm _emit 0x0F \
  2067.   __asm _emit 0x00 \
  2068.   __asm _emit 0x00 \
  2069.   __asm _emit 0x00 \
  2070.   __asm _emit 0x00 \
  2071.   __asm _emit 0x00 \
  2072.   __asm _emit 0x00 \
  2073.   __asm _emit 0x00 \
  2074.   __asm _emit 0x57 \
  2075.   __asm _emit 0x4C \
  2076.   __asm _emit 0x20 \
  2077.   __asm _emit 0x20 \
  2078.  
  2079.  
  2080.  #define UNPROTECTED_START \
  2081.   __asm _emit 0xEB \
  2082.   __asm _emit 0x10 \
  2083.   __asm _emit 0x57 \
  2084.   __asm _emit 0x4C \
  2085.   __asm _emit 0x20 \
  2086.   __asm _emit 0x20 \
  2087.   __asm _emit 0x20 \
  2088.   __asm _emit 0x00 \
  2089.   __asm _emit 0x00 \
  2090.   __asm _emit 0x00 \
  2091.   __asm _emit 0x00 \
  2092.   __asm _emit 0x00 \
  2093.   __asm _emit 0x00 \
  2094.   __asm _emit 0x00 \
  2095.   __asm _emit 0x57 \
  2096.   __asm _emit 0x4C \
  2097.   __asm _emit 0x20 \
  2098.   __asm _emit 0x20 \
  2099.  
  2100.  #define UNPROTECTED_END \
  2101.   __asm _emit 0xEB \
  2102.   __asm _emit 0x10 \
  2103.   __asm _emit 0x57 \
  2104.   __asm _emit 0x4C \
  2105.   __asm _emit 0x20 \
  2106.   __asm _emit 0x20 \
  2107.   __asm _emit 0x21 \
  2108.   __asm _emit 0x00 \
  2109.   __asm _emit 0x00 \
  2110.   __asm _emit 0x00 \
  2111.   __asm _emit 0x00 \
  2112.   __asm _emit 0x00 \
  2113.   __asm _emit 0x00 \
  2114.   __asm _emit 0x00 \
  2115.   __asm _emit 0x57 \
  2116.   __asm _emit 0x4C \
  2117.   __asm _emit 0x20 \
  2118.   __asm _emit 0x20 \
  2119.  
  2120.   #define CHECK_PROTECTION(var, val) \
  2121.   __asm _emit 0xEB \
  2122.   __asm _emit 0x10 \
  2123.   __asm _emit 0x67 \
  2124.   __asm _emit 0x31 \
  2125.   __asm _emit 0xAB \
  2126.   __asm _emit 0x91 \
  2127.   __asm _emit 0x7A \
  2128.   __asm _emit 0x71 \
  2129.   __asm _emit 0x8B \
  2130.   __asm _emit 0x8A \
  2131.   __asm _emit 0xBD \
  2132.   __asm _emit 0x7A \
  2133.   __asm _emit 0x11 \
  2134.   __asm _emit 0xBC \
  2135.   __asm _emit 0x00 \
  2136.   __asm _emit 0x00 \
  2137.   __asm _emit 0x00 \
  2138.   __asm _emit 0x00 \
  2139.   __asm push  val \
  2140.   __asm pop   var \
  2141.   __asm _emit 0xEB \
  2142.   __asm _emit 0x0C \
  2143.   __asm _emit 0xBD \
  2144.   __asm _emit 0x7A \
  2145.   __asm _emit 0x11 \
  2146.   __asm _emit 0xBC \
  2147.   __asm _emit 0x7A \
  2148.   __asm _emit 0x71 \
  2149.   __asm _emit 0x8B \
  2150.   __asm _emit 0x8A \
  2151.   __asm _emit 0x67 \
  2152.   __asm _emit 0x31 \
  2153.   __asm _emit 0xAB \
  2154.   __asm _emit 0x91 \
  2155.  
  2156.   #define CHECK_CODE_INTEGRITY(var, val) \
  2157.   __asm _emit 0xEB \
  2158.   __asm _emit 0x10 \
  2159.   __asm _emit 0x67 \
  2160.   __asm _emit 0x31 \
  2161.   __asm _emit 0xAB \
  2162.   __asm _emit 0x91 \
  2163.   __asm _emit 0x7A \
  2164.   __asm _emit 0x71 \
  2165.   __asm _emit 0x8B \
  2166.   __asm _emit 0x8A \
  2167.   __asm _emit 0xBD \
  2168.   __asm _emit 0x7A \
  2169.   __asm _emit 0x11 \
  2170.   __asm _emit 0xBC \
  2171.   __asm _emit 0x01 \
  2172.   __asm _emit 0x00 \
  2173.   __asm _emit 0x00 \
  2174.   __asm _emit 0x00 \
  2175.   __asm push  val \
  2176.   __asm pop   var \
  2177.   __asm _emit 0xEB \
  2178.   __asm _emit 0x0C \
  2179.   __asm _emit 0xBD \
  2180.   __asm _emit 0x7A \
  2181.   __asm _emit 0x11 \
  2182.   __asm _emit 0xBC \
  2183.   __asm _emit 0x7A \
  2184.   __asm _emit 0x71 \
  2185.   __asm _emit 0x8B \
  2186.   __asm _emit 0x8A \
  2187.   __asm _emit 0x67 \
  2188.   __asm _emit 0x31 \
  2189.   __asm _emit 0xAB \
  2190.   __asm _emit 0x91 \
  2191.  
  2192.   #define CHECK_REGISTRATION(var, val) \
  2193.   __asm _emit 0xEB \
  2194.   __asm _emit 0x10 \
  2195.   __asm _emit 0x67 \
  2196.   __asm _emit 0x31 \
  2197.   __asm _emit 0xAB \
  2198.   __asm _emit 0x91 \
  2199.   __asm _emit 0x7A \
  2200.   __asm _emit 0x71 \
  2201.   __asm _emit 0x8B \
  2202.   __asm _emit 0x8A \
  2203.   __asm _emit 0xBD \
  2204.   __asm _emit 0x7A \
  2205.   __asm _emit 0x11 \
  2206.   __asm _emit 0xBC \
  2207.   __asm _emit 0x02 \
  2208.   __asm _emit 0x00 \
  2209.   __asm _emit 0x00 \
  2210.   __asm _emit 0x00 \
  2211.   __asm push  val \
  2212.   __asm pop   var \
  2213.   __asm _emit 0xEB \
  2214.   __asm _emit 0x0C \
  2215.   __asm _emit 0xBD \
  2216.   __asm _emit 0x7A \
  2217.   __asm _emit 0x11 \
  2218.   __asm _emit 0xBC \
  2219.   __asm _emit 0x7A \
  2220.   __asm _emit 0x71 \
  2221.   __asm _emit 0x8B \
  2222.   __asm _emit 0x8A \
  2223.   __asm _emit 0x67 \
  2224.   __asm _emit 0x31 \
  2225.   __asm _emit 0xAB \
  2226.   __asm _emit 0x91 \
  2227.  
  2228.   #define CHECK_VIRTUAL_PC(var, val) \
  2229.   __asm _emit 0xEB \
  2230.   __asm _emit 0x10 \
  2231.   __asm _emit 0x67 \
  2232.   __asm _emit 0x31 \
  2233.   __asm _emit 0xAB \
  2234.   __asm _emit 0x91 \
  2235.   __asm _emit 0x7A \
  2236.   __asm _emit 0x71 \
  2237.   __asm _emit 0x8B \
  2238.   __asm _emit 0x8A \
  2239.   __asm _emit 0xBD \
  2240.   __asm _emit 0x7A \
  2241.   __asm _emit 0x11 \
  2242.   __asm _emit 0xBC \
  2243.   __asm _emit 0x03 \
  2244.   __asm _emit 0x00 \
  2245.   __asm _emit 0x00 \
  2246.   __asm _emit 0x00 \
  2247.   __asm push  val \
  2248.   __asm pop   var \
  2249.   __asm _emit 0xEB \
  2250.   __asm _emit 0x0C \
  2251.   __asm _emit 0xBD \
  2252.   __asm _emit 0x7A \
  2253.   __asm _emit 0x11 \
  2254.   __asm _emit 0xBC \
  2255.   __asm _emit 0x7A \
  2256.   __asm _emit 0x71 \
  2257.   __asm _emit 0x8B \
  2258.   __asm _emit 0x8A \
  2259.   __asm _emit 0x67 \
  2260.   __asm _emit 0x31 \
  2261.   __asm _emit 0xAB \
  2262.   __asm _emit 0x91 \
  2263.  
  2264.   #endif  
  2265.  #endif  
  2266. #endif
  2267. #endif
  2268. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement