Code:
/*****************************************************************************/
/* Header: ThemidaSDK.h
/* Description: SDK header definition for the C/C++ language
/*
/* Author/s: MPGH | Qmo™
/*****************************************************************************/
#ifndef __THEMIDASDK__
#define __THEMIDASDK__
/* Definition for Borland C/C++ */
#ifdef __BORLANDC__
#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 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 __WL_MACROS__
#endif
#endif
/* Definition for Intel cpp compiler */
#ifndef __WL_MACROS__
#ifdef __ICL
#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 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 __WL_MACROS__
#endif
#endif
/* Definition for LCC by Jacob Navia */
#ifndef __WL_MACROS__
#ifdef __LCC__
#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 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 __WL_MACROS__
#endif
#endif
/* Definition for Visual C++ and others */
#ifndef __WL_MACROS__
#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 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 \
#endif