/*

  by Luigi Auriemma

the algorithm is very close to lzah
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef WIN32
    #include <windows.h>
#endif

static unsigned char stalker_lza_caller[] =
    "\x55"                  // PUSH EBP
    "\x8B\xEC"              // MOV EBP,ESP
    "\x8B\x44\x24\x08"      // MOV EAX,DWORD PTR SS:[ESP+8]
    "\x8B\x4C\x24\x0C"      // MOV ECX,DWORD PTR SS:[ESP+C]
    "\xFF\x74\x24\x14"      // PUSH DWORD PTR SS:[ESP+14]
    "\xFF\x74\x24\x14"      // PUSH DWORD PTR SS:[ESP+14]   // ESP+18-4
    "\xE8\xa0\xff\xff\xff"  // CALL function
    "\x83\xC4\x08"          // ADD ESP,8
    "\xC9"                  // LEAVE
    "\xC3";                 // RETN



static unsigned char *x100af1a4 = NULL;
static unsigned char *x1003f1b0 = NULL;

static unsigned char stalker_lza_dump[] = {
0x8b,0x0d,0x00,0xf0,0x0b,0x10,0xa1,0xfc,0xef,0x0b,0x10,0x3b,0xc8,0x53,0x8a,0x5c,
0x24,0x08,0x75,0x43,0x8b,0x0d,0xf8,0xef,0x0b,0x10,0x2b,0xc1,0x56,0x8b,0xf0,0x8d,
0x86,0x00,0x04,0x00,0x00,0x50,0x51,0xb9,0x54,0xf8,0x03,0x10,0xe8,0x6f,0x75,0xff,
0xff,0xa3,0xf8,0xef,0x0b,0x10,0x03,0xc6,0x8d,0x88,0x00,0x04,0x00,0x00,0xa3,0x00,
0xf0,0x0b,0x10,0x89,0x0d,0xfc,0xef,0x0b,0x10,0x88,0x18,0x83,0x05,0x00,0xf0,0x0b,
0x10,0x01,0x5e,0x5b,0xc2,0x04,0x00,0x88,0x19,0x83,0x05,0x00,0xf0,0x0b,0x10,0x01,
0x5b,0xc2,0x04,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
0x8b,0x15,0xe0,0xef,0x0b,0x10,0x83,0xfa,0x08,0x77,0x4f,0x56,0x8b,0x35,0xf4,0xef,
0x0b,0x10,0x57,0x8b,0x3d,0xf0,0xef,0x0b,0x10,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,
0x3b,0xf7,0x75,0x05,0x83,0xc8,0xff,0xeb,0x0c,0x0f,0xb6,0x06,0x83,0xc6,0x01,0x89,
0x35,0xf4,0xef,0x0b,0x10,0x85,0xc0,0x7d,0x02,0x33,0xc0,0xb9,0x08,0x00,0x00,0x00,
0x2b,0xca,0xd3,0xe0,0x83,0xc2,0x08,0x89,0x15,0xe0,0xef,0x0b,0x10,0x09,0x05,0xdc,
0xef,0x0b,0x10,0x83,0xfa,0x08,0x76,0xc8,0x5f,0x5e,0x8b,0x0d,0xdc,0xef,0x0b,0x10,
0x8b,0xc1,0x03,0xc9,0x83,0xea,0x01,0xc1,0xe8,0x0f,0x89,0x0d,0xdc,0xef,0x0b,0x10,
0x89,0x15,0xe0,0xef,0x0b,0x10,0x83,0xe0,0x01,0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
0x8b,0x15,0xe0,0xef,0x0b,0x10,0x83,0xfa,0x08,0x77,0x4f,0x56,0x8b,0x35,0xf4,0xef,
0x0b,0x10,0x57,0x8b,0x3d,0xf0,0xef,0x0b,0x10,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,
0x3b,0xf7,0x75,0x05,0x83,0xc8,0xff,0xeb,0x0c,0x0f,0xb6,0x06,0x83,0xc6,0x01,0x89,
0x35,0xf4,0xef,0x0b,0x10,0x85,0xc0,0x7d,0x02,0x33,0xc0,0xb9,0x08,0x00,0x00,0x00,
0x2b,0xca,0xd3,0xe0,0x83,0xc2,0x08,0x89,0x15,0xe0,0xef,0x0b,0x10,0x09,0x05,0xdc,
0xef,0x0b,0x10,0x83,0xfa,0x08,0x76,0xc8,0x5f,0x5e,0x8b,0x0d,0xdc,0xef,0x0b,0x10,
0x8b,0xc1,0xc1,0xe1,0x08,0x83,0xea,0x08,0x89,0x0d,0xdc,0xef,0x0b,0x10,0x89,0x15,
0xe0,0xef,0x0b,0x10,0x0f,0xb6,0xc4,0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
0x8b,0x0d,0xe8,0xef,0x0b,0x10,0x56,0x8b,0xf0,0xa1,0xe4,0xef,0x0b,0x10,0x8b,0xd6,
0xd3,0xea,0x03,0xcf,0x89,0x0d,0xe8,0xef,0x0b,0x10,0x0b,0xc2,0x83,0xf9,0x08,0xa3,
0xe4,0xef,0x0b,0x10,0x72,0x56,0xc1,0xe8,0x08,0x50,0xe8,0x61,0xfe,0xff,0xff,0xa1,
0xe8,0xef,0x0b,0x10,0x83,0xe8,0x08,0x83,0xf8,0x08,0xa3,0xe8,0xef,0x0b,0x10,0x72,
0x2d,0xa1,0xe4,0xef,0x0b,0x10,0x50,0xe8,0x44,0xfe,0xff,0xff,0xa1,0xe8,0xef,0x0b,
0x10,0x83,0x05,0xc0,0xe9,0x0b,0x10,0x02,0x83,0xe8,0x08,0x8b,0xcf,0x2b,0xc8,0xd3,
0xe6,0xa3,0xe8,0xef,0x0b,0x10,0x89,0x35,0xe4,0xef,0x0b,0x10,0x5e,0xc3,0xc1,0x25,
0xe4,0xef,0x0b,0x10,0x08,0x83,0x05,0xc0,0xe9,0x0b,0x10,0x01,0x5e,0xc3,0xcc,0xcc,
0x0f,0xb6,0x82,0x98,0xd8,0x0b,0x10,0x53,0x55,0x56,0x8b,0x35,0x8c,0x98,0x0b,0x10,
0x05,0x01,0x10,0x00,0x00,0xb9,0x00,0x10,0x00,0x00,0x33,0xdb,0x57,0xbf,0x01,0x00,
0x00,0x00,0x89,0x0c,0x95,0x90,0x98,0x0b,0x10,0x89,0x0c,0x95,0x88,0x54,0x0b,0x10,
0x89,0x1d,0x84,0x54,0x0b,0x10,0x85,0xff,0x7c,0x1b,0x8b,0x0c,0x85,0x88,0x54,0x0b,
0x10,0x81,0xf9,0x00,0x10,0x00,0x00,0x75,0x1f,0x89,0x14,0x85,0x88,0x54,0x0b,0x10,
0xe9,0x0e,0x01,0x00,0x00,0x8b,0x0c,0x85,0x90,0x98,0x0b,0x10,0x81,0xf9,0x00,0x10,
0x00,0x00,0x0f,0x84,0xf4,0x00,0x00,0x00,0x8b,0xc1,0xb9,0x01,0x00,0x00,0x00,0x90,
0x0f,0xb6,0xac,0x08,0x98,0xd8,0x0b,0x10,0x0f,0xb6,0xbc,0x11,0x98,0xd8,0x0b,0x10,
0x2b,0xfd,0x75,0x08,0x83,0xc1,0x01,0x83,0xf9,0x3c,0x7c,0xe4,0x83,0xf9,0x02,0x7e,
0xa5,0x3b,0xcb,0x0f,0x8e,0x90,0x00,0x00,0x00,0x8b,0xf2,0x2b,0xf0,0x81,0xe6,0xff,
0x0f,0x00,0x00,0x83,0xee,0x01,0x83,0xf9,0x3c,0x8b,0xd9,0x0f,0x8c,0x7e,0x00,0x00,
0x00,0x8b,0x0c,0x85,0x80,0x14,0x0b,0x10,0x89,0x0c,0x95,0x80,0x14,0x0b,0x10,0x8b,
0x0c,0x85,0x90,0x98,0x0b,0x10,0x89,0x35,0x8c,0x98,0x0b,0x10,0x8d,0x34,0x85,0x80,
0x14,0x0b,0x10,0x89,0x0c,0x95,0x90,0x98,0x0b,0x10,0x8b,0x0c,0x85,0x88,0x54,0x0b,
0x10,0x89,0x0c,0x95,0x88,0x54,0x0b,0x10,0x8b,0x0c,0x85,0x90,0x98,0x0b,0x10,0x89,
0x14,0x8d,0x80,0x14,0x0b,0x10,0x8b,0x0c,0x85,0x88,0x54,0x0b,0x10,0x89,0x14,0x8d,
0x80,0x14,0x0b,0x10,0x8b,0x0e,0x03,0xc9,0x03,0xc9,0x39,0x81,0x88,0x54,0x0b,0x10,
0x89,0x1d,0x84,0x54,0x0b,0x10,0x75,0x33,0x5f,0xc7,0x06,0x00,0x10,0x00,0x00,0x5e,
0x5d,0x89,0x91,0x88,0x54,0x0b,0x10,0x5b,0xc3,0x0f,0x85,0x07,0xff,0xff,0xff,0x8b,
0xca,0x2b,0xc8,0x81,0xe1,0xff,0x0f,0x00,0x00,0x83,0xe9,0x01,0x3b,0xce,0x0f,0x83,
0xf2,0xfe,0xff,0xff,0x8b,0xf1,0xe9,0xeb,0xfe,0xff,0xff,0x5f,0xc7,0x06,0x00,0x10,
0x00,0x00,0x5e,0x5d,0x89,0x91,0x90,0x98,0x0b,0x10,0x5b,0xc3,0x89,0x14,0x85,0x90,
0x98,0x0b,0x10,0x5f,0x89,0x35,0x8c,0x98,0x0b,0x10,0x5e,0x5d,0x89,0x1d,0x84,0x54,
0x0b,0x10,0x89,0x04,0x95,0x80,0x14,0x0b,0x10,0x5b,0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,
0x81,0x3c,0xbd,0x80,0x14,0x0b,0x10,0x00,0x10,0x00,0x00,0x53,0x8d,0x1c,0xbd,0x80,
0x14,0x0b,0x10,0x0f,0x84,0xdc,0x00,0x00,0x00,0x8b,0x04,0xbd,0x88,0x54,0x0b,0x10,
0x3d,0x00,0x10,0x00,0x00,0x75,0x0c,0x8b,0x04,0xbd,0x90,0x98,0x0b,0x10,0xe9,0x91,
0x00,0x00,0x00,0x56,0x8b,0x34,0xbd,0x90,0x98,0x0b,0x10,0x81,0xfe,0x00,0x10,0x00,
0x00,0x0f,0x84,0x7c,0x00,0x00,0x00,0x8b,0xc6,0x81,0x3c,0x85,0x88,0x54,0x0b,0x10,
0x00,0x10,0x00,0x00,0x8d,0x0c,0x85,0x88,0x54,0x0b,0x10,0x74,0x4a,0x8d,0x49,0x00,
0x8b,0x01,0x81,0x3c,0x85,0x88,0x54,0x0b,0x10,0x00,0x10,0x00,0x00,0x8d,0x0c,0x85,
0x88,0x54,0x0b,0x10,0x75,0xea,0x8b,0x0c,0x85,0x80,0x14,0x0b,0x10,0x8b,0x14,0x85,
0x90,0x98,0x0b,0x10,0x89,0x0c,0x95,0x80,0x14,0x0b,0x10,0x89,0x14,0x8d,0x88,0x54,
0x0b,0x10,0x89,0x34,0x85,0x90,0x98,0x0b,0x10,0x8b,0x0c,0xbd,0x90,0x98,0x0b,0x10,
0x89,0x04,0x8d,0x80,0x14,0x0b,0x10,0x8b,0x14,0xbd,0x88,0x54,0x0b,0x10,0x89,0x14,
0x85,0x88,0x54,0x0b,0x10,0x8b,0x0c,0xbd,0x88,0x54,0x0b,0x10,0x89,0x04,0x8d,0x80,
0x14,0x0b,0x10,0x5e,0x8b,0x13,0x89,0x14,0x85,0x80,0x14,0x0b,0x10,0x8b,0x0b,0x03,
0xc9,0x03,0xc9,0x39,0xb9,0x88,0x54,0x0b,0x10,0x75,0x0e,0xc7,0x03,0x00,0x10,0x00,
0x00,0x89,0x81,0x88,0x54,0x0b,0x10,0x5b,0xc3,0x89,0x81,0x90,0x98,0x0b,0x10,0xc7,
0x03,0x00,0x10,0x00,0x00,0x5b,0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
0x57,0xb9,0x3a,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x00,0xbf,0xb0,0x0a,0x0b,0x10,
0xf3,0xab,0x33,0xd2,0x5f,0xeb,0x09,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,0x8b,0xff,
0x8d,0x82,0x73,0x02,0x00,0x00,0x89,0x04,0x95,0x28,0xf2,0x0a,0x10,0x89,0x14,0x95,
0xc4,0x05,0x0b,0x10,0x83,0xc2,0x01,0x81,0xfa,0x3a,0x01,0x00,0x00,0x7c,0xe1,0x33,
0xc9,0xb8,0x3a,0x01,0x00,0x00,0xeb,0x08,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,0x90,
0x8b,0x14,0x8d,0xb4,0x0a,0x0b,0x10,0x03,0x14,0x8d,0xb0,0x0a,0x0b,0x10,0x89,0x0c,
0x85,0x28,0xf2,0x0a,0x10,0x89,0x04,0x8d,0xfc,0xfb,0x0a,0x10,0x89,0x04,0x8d,0xf8,
0xfb,0x0a,0x10,0x89,0x14,0x85,0xb0,0x0a,0x0b,0x10,0x83,0xc0,0x01,0x83,0xc1,0x02,
0x3d,0x72,0x02,0x00,0x00,0x7e,0xc9,0xc7,0x05,0x7c,0x14,0x0b,0x10,0xff,0xff,0x00,
0x00,0xc7,0x05,0xc0,0x05,0x0b,0x10,0x00,0x00,0x00,0x00,0xc3,0xcc,0xcc,0xcc,0xcc,
0x83,0xec,0x08,0x56,0xba,0x28,0xf2,0x0a,0x10,0xb9,0xb0,0x0a,0x0b,0x10,0x33,0xc0,
0x57,0x8b,0xb0,0x28,0xf2,0x0a,0x10,0x81,0xfe,0x73,0x02,0x00,0x00,0x7c,0x15,0x8b,
0xb8,0xb0,0x0a,0x0b,0x10,0x83,0xc7,0x01,0xd1,0xef,0x89,0x39,0x89,0x32,0x83,0xc1,
0x04,0x83,0xc2,0x04,0x8b,0xb0,0x2c,0xf2,0x0a,0x10,0x81,0xfe,0x73,0x02,0x00,0x00,
0x7c,0x15,0x8b,0xb8,0xb4,0x0a,0x0b,0x10,0x83,0xc7,0x01,0xd1,0xef,0x89,0x39,0x89,
0x32,0x83,0xc1,0x04,0x83,0xc2,0x04,0x8b,0xb0,0x30,0xf2,0x0a,0x10,0x81,0xfe,0x73,
0x02,0x00,0x00,0x7c,0x15,0x8b,0xb8,0xb8,0x0a,0x0b,0x10,0x83,0xc7,0x01,0xd1,0xef,
0x89,0x39,0x89,0x32,0x83,0xc1,0x04,0x83,0xc2,0x04,0x83,0xc0,0x0c,0x3d,0xcc,0x09,
0x00,0x00,0x7c,0x8d,0x53,0x33,0xc0,0x55,0x89,0x44,0x24,0x10,0xbb,0x3a,0x01,0x00,
0x00,0xeb,0x04,0x8b,0x44,0x24,0x10,0x8b,0x0c,0x85,0xb4,0x0a,0x0b,0x10,0x8b,0x14,
0x85,0xb0,0x0a,0x0b,0x10,0x8d,0x04,0x11,0x89,0x04,0x9d,0xb0,0x0a,0x0b,0x10,0x3b,
0x04,0x9d,0xac,0x0a,0x0b,0x10,0x89,0x44,0x24,0x14,0x8d,0x73,0xff,0x73,0x0d,0x90,
0x83,0xee,0x01,0x3b,0x04,0xb5,0xb0,0x0a,0x0b,0x10,0x72,0xf4,0x83,0xc6,0x01,0x8b,
0xfb,0x2b,0xfe,0x03,0xff,0x03,0xff,0x57,0x8d,0x2c,0xb5,0xb0,0x0a,0x0b,0x10,0x8d,
0x04,0xb5,0xb4,0x0a,0x0b,0x10,0x55,0x50,0xff,0x15,0x7c,0xa1,0x02,0x10,0x8b,0x4c,
0x24,0x20,0x89,0x4d,0x00,0x57,0x8d,0x2c,0xb5,0x28,0xf2,0x0a,0x10,0x8d,0x14,0xb5,
0x2c,0xf2,0x0a,0x10,0x55,0x52,0xff,0x15,0x7c,0xa1,0x02,0x10,0x8b,0x44,0x24,0x28,
0x89,0x45,0x00,0x83,0xc0,0x02,0x83,0xc3,0x01,0x83,0xc4,0x18,0x81,0xfb,0x73,0x02,
0x00,0x00,0x89,0x44,0x24,0x10,0x0f,0x8c,0x67,0xff,0xff,0xff,0x5d,0xb8,0x02,0x00,
0x00,0x00,0xbe,0x2c,0xf2,0x0a,0x10,0x5b,0xeb,0x06,0x8d,0x9b,0x00,0x00,0x00,0x00,
0x8b,0x4e,0xfc,0x81,0xf9,0x73,0x02,0x00,0x00,0x8d,0x50,0xfe,0x89,0x14,0x8d,0xf8,
0xfb,0x0a,0x10,0x7d,0x07,0x89,0x14,0x8d,0xfc,0xfb,0x0a,0x10,0x8b,0x0e,0x81,0xf9,
0x73,0x02,0x00,0x00,0x8d,0x50,0xff,0x7d,0x07,0x89,0x14,0x8d,0xfc,0xfb,0x0a,0x10,
0x89,0x14,0x8d,0xf8,0xfb,0x0a,0x10,0x8b,0x4e,0x04,0x81,0xf9,0x73,0x02,0x00,0x00,
0x7d,0x07,0x89,0x04,0x8d,0xfc,0xfb,0x0a,0x10,0x89,0x04,0x8d,0xf8,0xfb,0x0a,0x10,
0x83,0xc0,0x03,0x8d,0x48,0xfe,0x83,0xc6,0x0c,0x81,0xf9,0x73,0x02,0x00,0x00,0x7c,
0x9f,0x5f,0x5e,0x83,0xc4,0x08,0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
0x81,0x3d,0x78,0x14,0x0b,0x10,0x00,0x40,0x00,0x00,0x75,0x05,0xe8,0x3f,0xfe,0xff,
0xff,0x8b,0x44,0x24,0x04,0x8b,0x14,0x85,0xc4,0x05,0x0b,0x10,0x56,0x57,0x8b,0xff,
0x83,0x04,0x95,0xb0,0x0a,0x0b,0x10,0x01,0x8b,0x0c,0x95,0xb0,0x0a,0x0b,0x10,0x8d,
0x42,0x01,0x3b,0x0c,0x85,0xb0,0x0a,0x0b,0x10,0x76,0x70,0xeb,0x03,0x8d,0x49,0x00,
0x83,0xc0,0x01,0x3b,0x0c,0x85,0xb0,0x0a,0x0b,0x10,0x77,0xf4,0x8b,0x34,0x85,0xac,
0x0a,0x0b,0x10,0x83,0xe8,0x01,0x89,0x34,0x95,0xb0,0x0a,0x0b,0x10,0x8d,0x3c,0x95,
0x28,0xf2,0x0a,0x10,0x89,0x0c,0x85,0xb0,0x0a,0x0b,0x10,0x8b,0x0f,0x81,0xf9,0x73,
0x02,0x00,0x00,0x89,0x04,0x8d,0xf8,0xfb,0x0a,0x10,0x7d,0x07,0x89,0x04,0x8d,0xfc,
0xfb,0x0a,0x10,0x8b,0x34,0x85,0x28,0xf2,0x0a,0x10,0x81,0xfe,0x73,0x02,0x00,0x00,
0x89,0x0c,0x85,0x28,0xf2,0x0a,0x10,0x89,0x14,0xb5,0xf8,0xfb,0x0a,0x10,0x7d,0x07,
0x89,0x14,0xb5,0xfc,0xfb,0x0a,0x10,0x89,0x37,0x8b,0xd0,0x8b,0x14,0x95,0xf8,0xfb,
0x0a,0x10,0x85,0xd2,0x0f,0x85,0x66,0xff,0xff,0xff,0x5f,0x5e,0xc3,0xcc,0xcc,0xcc,
0xa1,0xf0,0xef,0x0b,0x10,0x2b,0x05,0xec,0xef,0x0b,0x10,0x83,0xec,0x10,0x53,0x56,
0x50,0xb9,0x54,0xf8,0x03,0x10,0xa3,0xbc,0xe9,0x0b,0x10,0x8b,0xf0,0xe8,0x9e,0x6c,
0xff,0xff,0x8b,0x15,0xbc,0xe9,0x0b,0x10,0x81,0xe2,0xff,0x00,0x00,0x00,0x8d,0x0c,
0x30,0x52,0xa3,0xf8,0xef,0x0b,0x10,0x89,0x0d,0xfc,0xef,0x0b,0x10,0xa3,0x00,0xf0,
0x0b,0x10,0xe8,0x39,0xf8,0xff,0xff,0x0f,0xb6,0x05,0xbd,0xe9,0x0b,0x10,0x50,0xe8,
0x2c,0xf8,0xff,0xff,0x0f,0xb6,0x0d,0xbe,0xe9,0x0b,0x10,0x51,0xe8,0x1f,0xf8,0xff,
0xff,0x0f,0xb6,0x15,0xbf,0xe9,0x0b,0x10,0x52,0xe8,0x12,0xf8,0xff,0xff,0x33,0xdb,
0x39,0x1d,0xbc,0xe9,0x0b,0x10,0x0f,0x84,0xf3,0x03,0x00,0x00,0x55,0x57,0xe8,0x6d,
0xfc,0xff,0xff,0xb8,0x00,0x10,0x00,0x00,0x68,0xc4,0x0f,0x00,0x00,0xb9,0x00,0x01,
0x00,0x00,0xbf,0x8c,0x94,0x0b,0x10,0xf3,0xab,0x8b,0xc8,0x6a,0x20,0xbf,0x80,0x14,
0x0b,0x10,0x68,0x98,0xd8,0x0b,0x10,0xf3,0xab,0x89,0x5c,0x24,0x20,0xc7,0x44,0x24,
0x24,0xc4,0x0f,0x00,0x00,0xe8,0xc8,0x56,0x00,0x00,0x8b,0x15,0xf0,0xef,0x0b,0x10,
0x8b,0x0d,0xf4,0xef,0x0b,0x10,0x83,0xc4,0x0c,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,
0x3b,0xca,0x74,0x1f,0x0f,0xb6,0x01,0x83,0xc1,0x01,0x83,0xf8,0xff,0x89,0x0d,0xf4,
0xef,0x0b,0x10,0x74,0x0e,0x88,0x83,0x5c,0xe8,0x0b,0x10,0x83,0xc3,0x01,0x83,0xfb,
0x3c,0x7c,0xdd,0x89,0x5c,0x24,0x10,0x89,0x1d,0xbc,0xe9,0x0b,0x10,0xba,0xc3,0x0f,
0x00,0x00,0xe8,0x69,0xf9,0xff,0xff,0x83,0xea,0x01,0x81,0xfa,0x88,0x0f,0x00,0x00,
0x7d,0xf0,0xba,0xc4,0x0f,0x00,0x00,0xe8,0x54,0xf9,0xff,0xff,0xa1,0x84,0x54,0x0b,
0x10,0x3b,0xc3,0x7e,0x07,0x8b,0xc3,0xa3,0x84,0x54,0x0b,0x10,0x33,0xf6,0x33,0xff,
0x83,0xf8,0x02,0x7f,0x60,0x8b,0x44,0x24,0x18,0x0f,0xb6,0xa8,0x98,0xd8,0x0b,0x10,
0x8b,0x04,0xad,0xc4,0x05,0x0b,0x10,0xc7,0x05,0x84,0x54,0x0b,0x10,0x01,0x00,0x00,
0x00,0xd1,0xee,0xa8,0x01,0x74,0x06,0x81,0xc6,0x00,0x80,0x00,0x00,0x8b,0x04,0x85,
0xf8,0xfb,0x0a,0x10,0x83,0xc7,0x01,0x3d,0x72,0x02,0x00,0x00,0x75,0xe3,0x8b,0xc6,
0xe8,0x7b,0xf8,0xff,0xff,0x55,0x89,0x35,0xf4,0xfb,0x0a,0x10,0x89,0x3d,0xa4,0xf1,
0x0a,0x10,0xe8,0xb9,0xfd,0xff,0xff,0x8b,0x2d,0xe8,0xef,0x0b,0x10,0x83,0xc4,0x04,
0xe9,0x8a,0x01,0x00,0x00,0x8d,0xa8,0xfd,0x00,0x00,0x00,0x8b,0x04,0xad,0xc4,0x05,
0x0b,0x10,0xd1,0xee,0xa8,0x01,0x74,0x06,0x81,0xc6,0x00,0x80,0x00,0x00,0x8b,0x04,
0x85,0xf8,0xfb,0x0a,0x10,0x83,0xc7,0x01,0x3d,0x72,0x02,0x00,0x00,0x75,0xe3,0x8b,
0xc6,0xe8,0x2a,0xf8,0xff,0xff,0x55,0x89,0x35,0xf4,0xfb,0x0a,0x10,0x89,0x3d,0xa4,
0xf1,0x0a,0x10,0xe8,0x68,0xfd,0xff,0xff,0xa1,0x8c,0x98,0x0b,0x10,0x8b,0xf0,0xc1,
0xe8,0x06,0x0f,0xb6,0xb8,0xb0,0xf1,0x03,0x10,0x33,0xc9,0x8a,0xa8,0xf0,0xf1,0x03,
0x10,0x83,0xc4,0x04,0x8b,0xc1,0xe8,0xf5,0xf7,0xff,0xff,0x8b,0x2d,0xe8,0xef,0x0b,
0x10,0xa1,0xe4,0xef,0x0b,0x10,0x83,0xe6,0x3f,0xc1,0xe6,0x0a,0x8b,0xcd,0x8b,0xd6,
0xd3,0xea,0x83,0xc5,0x06,0x89,0x2d,0xe8,0xef,0x0b,0x10,0x0b,0xc2,0x83,0xfd,0x08,
0xa3,0xe4,0xef,0x0b,0x10,0x0f,0x82,0xf4,0x00,0x00,0x00,0x8b,0x0d,0xfc,0xef,0x0b,
0x10,0xc1,0xe8,0x08,0x8b,0xd8,0xa1,0x00,0xf0,0x0b,0x10,0x3b,0xc1,0x75,0x33,0xa1,
0xf8,0xef,0x0b,0x10,0x2b,0xc8,0x8b,0xf9,0x8d,0x8f,0x00,0x04,0x00,0x00,0x51,0x50,
0xb9,0x54,0xf8,0x03,0x10,0xe8,0xc6,0x6b,0xff,0xff,0xa3,0xf8,0xef,0x0b,0x10,0x03,
0xc7,0x8d,0x90,0x00,0x04,0x00,0x00,0xa3,0x00,0xf0,0x0b,0x10,0x89,0x15,0xfc,0xef,
0x0b,0x10,0x88,0x18,0x8b,0x2d,0xe8,0xef,0x0b,0x10,0xb8,0x01,0x00,0x00,0x00,0x01,
0x05,0x00,0xf0,0x0b,0x10,0x83,0xed,0x08,0x83,0xfd,0x08,0x89,0x2d,0xe8,0xef,0x0b,
0x10,0x72,0x7b,0xa1,0xfc,0xef,0x0b,0x10,0x39,0x05,0x00,0xf0,0x0b,0x10,0x8b,0x1d,
0xe4,0xef,0x0b,0x10,0x75,0x32,0x8b,0x0d,0xf8,0xef,0x0b,0x10,0x2b,0xc1,0x8b,0xf8,
0x8d,0x87,0x00,0x04,0x00,0x00,0x50,0x51,0xb9,0x54,0xf8,0x03,0x10,0xe8,0x5e,0x6b,
0xff,0xff,0xa3,0xf8,0xef,0x0b,0x10,0x03,0xc7,0xa3,0x00,0xf0,0x0b,0x10,0x05,0x00,
0x04,0x00,0x00,0xa3,0xfc,0xef,0x0b,0x10,0x8b,0x0d,0x00,0xf0,0x0b,0x10,0x83,0x05,
0xc0,0xe9,0x0b,0x10,0x02,0x88,0x19,0x8b,0x2d,0xe8,0xef,0x0b,0x10,0x83,0x05,0x00,
0xf0,0x0b,0x10,0x01,0x83,0xed,0x08,0xb9,0x06,0x00,0x00,0x00,0x2b,0xcd,0xd3,0xe6,
0x89,0x2d,0xe8,0xef,0x0b,0x10,0x89,0x35,0xe4,0xef,0x0b,0x10,0xeb,0x0d,0xc1,0x25,
0xe4,0xef,0x0b,0x10,0x08,0x01,0x05,0xc0,0xe9,0x0b,0x10,0x8b,0x5c,0x24,0x10,0xa1,
0x84,0x54,0x0b,0x10,0x8b,0xc8,0x33,0xf6,0x85,0xc9,0x89,0x4c,0x24,0x1c,0x7e,0x74,
0xa1,0xf4,0xef,0x0b,0x10,0x3b,0x05,0xf0,0xef,0x0b,0x10,0x74,0x62,0x0f,0xb6,0x18,
0x83,0xc0,0x01,0x83,0xfb,0xff,0xa3,0xf4,0xef,0x0b,0x10,0x74,0x4e,0x8b,0x7c,0x24,
0x14,0xe8,0x9a,0xf8,0xff,0xff,0x83,0xff,0x3b,0x88,0x9f,0x98,0xd8,0x0b,0x10,0x7d,
0x06,0x88,0x9f,0x98,0xe8,0x0b,0x10,0x8b,0x54,0x24,0x18,0x83,0xc7,0x01,0x83,0xc2,
0x01,0x81,0xe2,0xff,0x0f,0x00,0x00,0x81,0xe7,0xff,0x0f,0x00,0x00,0x89,0x7c,0x24,
0x14,0x89,0x54,0x24,0x18,0xe8,0xe6,0xf6,0xff,0xff,0x8b,0x4c,0x24,0x1c,0x8b,0x5c,
0x24,0x10,0x83,0xc6,0x01,0x3b,0xf1,0x7c,0x97,0xeb,0x04,0x8b,0x5c,0x24,0x10,0xa1,
0x84,0x54,0x0b,0x10,0x01,0x35,0xbc,0xe9,0x0b,0x10,0x3b,0xf1,0x7d,0x44,0x2b,0xce,
0x8b,0xf1,0x8b,0x7c,0x24,0x14,0xe8,0x35,0xf8,0xff,0xff,0x8b,0x4c,0x24,0x18,0x8b,
0xc7,0x83,0xc0,0x01,0x8d,0x51,0x01,0x25,0xff,0x0f,0x00,0x00,0x81,0xe2,0xff,0x0f,
0x00,0x00,0x83,0xeb,0x01,0x89,0x44,0x24,0x14,0x89,0x54,0x24,0x18,0x74,0x05,0xe8,
0x8c,0xf6,0xff,0xff,0x83,0xee,0x01,0x75,0xc9,0xa1,0x84,0x54,0x0b,0x10,0x89,0x5c,
0x24,0x10,0x85,0xdb,0x0f,0x8f,0x27,0xfd,0xff,0xff,0x5f,0x85,0xed,0x5d,0x74,0x63,
0x8b,0x1d,0xe4,0xef,0x0b,0x10,0xa1,0xfc,0xef,0x0b,0x10,0xc1,0xeb,0x08,0x39,0x05,
0x00,0xf0,0x0b,0x10,0x75,0x35,0x8b,0x0d,0xf8,0xef,0x0b,0x10,0x2b,0xc1,0x8b,0xf0,
0x8d,0x96,0x00,0x04,0x00,0x00,0x52,0x51,0xb9,0x54,0xf8,0x03,0x10,0xe8,0xee,0x69,
0xff,0xff,0x03,0xf0,0x89,0x35,0x00,0xf0,0x0b,0x10,0x81,0xc6,0x00,0x04,0x00,0x00,
0xa3,0xf8,0xef,0x0b,0x10,0x89,0x35,0xfc,0xef,0x0b,0x10,0xa1,0x00,0xf0,0x0b,0x10,
0x88,0x18,0xb8,0x01,0x00,0x00,0x00,0x01,0x05,0x00,0xf0,0x0b,0x10,0x01,0x05,0xc0,
0xe9,0x0b,0x10,0x8b,0x0d,0xbc,0xe9,0x0b,0x10,0x89,0x0d,0xc4,0xe9,0x0b,0x10,0x5e,
0x5b,0x83,0xc4,0x10,0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
0xa1,0xf4,0xef,0x0b,0x10,0x83,0xec,0x0c,0x56,0x8b,0x35,0xf0,0xef,0x0b,0x10,0x3b,
0xc6,0x75,0x05,0x83,0xca,0xff,0xeb,0x0b,0x0f,0xb6,0x10,0x83,0xc0,0x01,0xa3,0xf4,
0xef,0x0b,0x10,0x3b,0xc6,0x75,0x05,0x83,0xc9,0xff,0xeb,0x0b,0x0f,0xb6,0x08,0x83,
0xc0,0x01,0xa3,0xf4,0xef,0x0b,0x10,0xc1,0xe1,0x08,0x0b,0xca,0x3b,0xc6,0x75,0x05,
0x83,0xca,0xff,0xeb,0x0b,0x0f,0xb6,0x10,0x83,0xc0,0x01,0xa3,0xf4,0xef,0x0b,0x10,
0xc1,0xe2,0x10,0x0b,0xca,0x3b,0xc6,0x75,0x05,0x83,0xca,0xff,0xeb,0x0b,0x0f,0xb6,
0x10,0x83,0xc0,0x01,0xa3,0xf4,0xef,0x0b,0x10,0xc1,0xe2,0x18,0x0b,0xca,0x89,0x0d,
0xbc,0xe9,0x0b,0x10,0x0f,0x84,0xfd,0x01,0x00,0x00,0x55,0x57,0x8b,0xf1,0x51,0xb9,
0x54,0xf8,0x03,0x10,0xe8,0xb7,0x67,0xff,0xff,0x8d,0x0c,0x30,0xa3,0xf8,0xef,0x0b,
0x10,0x89,0x0d,0xfc,0xef,0x0b,0x10,0xa3,0x00,0xf0,0x0b,0x10,0xe8,0xcf,0xf7,0xff,
0xff,0x68,0xc4,0x0f,0x00,0x00,0x6a,0x20,0x68,0x98,0xd8,0x0b,0x10,0xe8,0x50,0x52,
0x00,0x00,0x33,0xff,0x83,0xc4,0x0c,0x39,0x3d,0xbc,0xe9,0x0b,0x10,0xbd,0xc4,0x0f,
0x00,0x00,0x89,0x7c,0x24,0x0c,0x0f,0x86,0xa3,0x01,0x00,0x00,0x53,0x8d,0x49,0x00,
0x8b,0x1d,0xf0,0xfb,0x0a,0x10,0x81,0xfb,0x73,0x02,0x00,0x00,0x73,0x18,0x8b,0xff,
0xe8,0x8b,0xf3,0xff,0xff,0x03,0xd8,0x8b,0x1c,0x9d,0x28,0xf2,0x0a,0x10,0x81,0xfb,
0x73,0x02,0x00,0x00,0x72,0xea,0x81,0xeb,0x73,0x02,0x00,0x00,0x53,0xe8,0xbe,0xf9,
0xff,0xff,0x83,0xc4,0x04,0x81,0xfb,0x00,0x01,0x00,0x00,0x7d,0x66,0xa1,0x00,0xf0,
0x0b,0x10,0x8b,0x0d,0xfc,0xef,0x0b,0x10,0x3b,0xc1,0x75,0x33,0xa1,0xf8,0xef,0x0b,
0x10,0x2b,0xc8,0x8b,0xf1,0x8d,0x96,0x00,0x04,0x00,0x00,0x52,0x50,0xb9,0x54,0xf8,
0x03,0x10,0xe8,0x69,0x68,0xff,0xff,0xa3,0xf8,0xef,0x0b,0x10,0x03,0xc6,0x8d,0x88,
0x00,0x04,0x00,0x00,0xa3,0x00,0xf0,0x0b,0x10,0x89,0x0d,0xfc,0xef,0x0b,0x10,0x88,
0x18,0x83,0x05,0x00,0xf0,0x0b,0x10,0x01,0x88,0x9d,0x98,0xd8,0x0b,0x10,0x83,0xc5,
0x01,0x81,0xe5,0xff,0x0f,0x00,0x00,0x83,0xc7,0x01,0x89,0x7c,0x24,0x10,0xe9,0xeb,
0x00,0x00,0x00,0xe8,0x78,0xf3,0xff,0xff,0x8b,0xf0,0x0f,0xb6,0x86,0x30,0xf2,0x03,
0x10,0x0f,0xb6,0xbe,0x30,0xf3,0x03,0x10,0xc1,0xe0,0x06,0x83,0xef,0x02,0x89,0x44,
0x24,0x14,0x74,0x13,0x83,0xef,0x01,0xe8,0xd4,0xf2,0xff,0xff,0x85,0xff,0x8d,0x34,
0x70,0x75,0xf1,0x8b,0x44,0x24,0x14,0x83,0xe6,0x3f,0x0b,0xf0,0x8b,0xfd,0x2b,0xfe,
0x83,0xef,0x01,0x81,0xc3,0x03,0xff,0xff,0xff,0x81,0xe7,0xff,0x0f,0x00,0x00,0x33,
0xf6,0x85,0xdb,0x89,0x5c,0x24,0x14,0x0f,0x8e,0x91,0x00,0x00,0x00,0x01,0x5c,0x24,
0x10,0xa1,0x00,0xf0,0x0b,0x10,0xeb,0x08,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,0x90,
0x8b,0x0d,0xfc,0xef,0x0b,0x10,0x8d,0x14,0x3e,0x81,0xe2,0xff,0x0f,0x00,0x00,0x3b,
0xc1,0x0f,0xb6,0x92,0x98,0xd8,0x0b,0x10,0x89,0x54,0x24,0x18,0x75,0x3b,0xa1,0xf8,
0xef,0x0b,0x10,0x2b,0xc8,0x8b,0xd9,0x8d,0x8b,0x00,0x04,0x00,0x00,0x51,0x50,0xb9,
0x54,0xf8,0x03,0x10,0xe8,0x87,0x67,0xff,0xff,0xa3,0xf8,0xef,0x0b,0x10,0x03,0xc3,
0x8b,0x5c,0x24,0x14,0x8d,0x90,0x00,0x04,0x00,0x00,0x89,0x15,0xfc,0xef,0x0b,0x10,
0x8b,0x54,0x24,0x18,0xa3,0x00,0xf0,0x0b,0x10,0x88,0x10,0xa1,0x00,0xf0,0x0b,0x10,
0x88,0x95,0x98,0xd8,0x0b,0x10,0x83,0xc5,0x01,0x83,0xc0,0x01,0x83,0xc6,0x01,0x81,
0xe5,0xff,0x0f,0x00,0x00,0x3b,0xf3,0xa3,0x00,0xf0,0x0b,0x10,0x7c,0x82,0x8b,0x7c,
0x24,0x10,0x3b,0x3d,0xbc,0xe9,0x0b,0x10,0x0f,0x82,0x62,0xfe,0xff,0xff,0x5b,0x89,
0x3d,0xc4,0xe9,0x0b,0x10,0x5f,0x5d,0x5e,0x83,0xc4,0x0c,0xc3,0xcc,0xcc,0xcc,0xcc,
0x8d,0x14,0x08,0xa3,0xec,0xef,0x0b,0x10,0xa3,0xf4,0xef,0x0b,0x10,0x33,0xc0,0x89,
0x15,0xf0,0xef,0x0b,0x10,0xa3,0xe8,0xef,0x0b,0x10,0xa3,0xe4,0xef,0x0b,0x10,0xa3,
0xe0,0xef,0x0b,0x10,0xa3,0xdc,0xef,0x0b,0x10,0xe8,0x52,0xfd,0xff,0xff,0xa1,0xf8,
0xef,0x0b,0x10,0x8b,0x4c,0x24,0x04,0x8b,0x15,0x00,0xf0,0x0b,0x10,0x2b,0xd0,0x89,
0x01,0x8b,0x44,0x24,0x08,0x89,0x10,0xc3,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};

void (*__cdecl stalker_lza)(void *in, int insz, unsigned char **out, int *outsz) = NULL;

static void* __stdcall stalker_lza_malloc(int size) {
    return(malloc(size));
}
static void* __stdcall stalker_lza_realloc(void *data, int size) {
    return(realloc(data, size));
}
static void* __cdecl stalker_lza_memset(void *data, int c, int size) {
    return(memset(data, c, size));
}
static void* __cdecl stalker_lza_memmove(void *dest, void *src, int size) {
    return(memmove(dest, src, size));
}

// anti DEP limitation! if you apply VirtualAlloc on a static char
// it will cover also the rest of the page included other variables!
void *stalker_lza_alloc(void *dump, int dumpsz) {
    int     pagesz;
    void    *ret;

    pagesz = (dumpsz + 4095) & (~4095); // useful for pages? mah

#ifdef WIN32
    ret = VirtualAlloc(
        NULL,
        pagesz,
        MEM_COMMIT | MEM_RESERVE,
        PAGE_EXECUTE_READWRITE);    // write for memcpy
#else
    ret = malloc(pagesz);
    mprotect(
        ret,
        pagesz,
        PROT_EXEC | PROT_WRITE);    // write for memcpy
#endif
    memcpy(ret, dump, dumpsz);
    return(ret);
}

void stalker_lza_init(void) {
    if(stalker_lza) return;

    x100af1a4 = calloc(0x10f00, 1);
    x1003f1b0 = calloc(0x280, 1);   // 0x6a4 is not used

    memcpy(x1003f1b0,
        "\x03\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06"
        "\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07"
        "\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
        "\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08"
        "\x00\x20\x30\x40\x50\x58\x60\x68\x70\x78\x80\x88\x90\x94\x98\x9c"
        "\xa0\xa4\xa8\xac\xb0\xb4\xb8\xbc\xc0\xc2\xc4\xc6\xc8\xca\xcc\xce"
        "\xd0\xd2\xd4\xd6\xd8\xda\xdc\xde\xe0\xe2\xe4\xe6\xe8\xea\xec\xee"
        "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
        0x80);
    memcpy(x1003f1b0 + 0x00000080,
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
        "\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02"
        "\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
        "\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05"
        "\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07"
        "\x08\x08\x08\x08\x08\x08\x08\x08\x09\x09\x09\x09\x09\x09\x09\x09"
        "\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
        "\x0c\x0c\x0c\x0c\x0d\x0d\x0d\x0d\x0e\x0e\x0e\x0e\x0f\x0f\x0f\x0f"
        "\x10\x10\x10\x10\x11\x11\x11\x11\x12\x12\x12\x12\x13\x13\x13\x13"
        "\x14\x14\x14\x14\x15\x15\x15\x15\x16\x16\x16\x16\x17\x17\x17\x17"
        "\x18\x18\x19\x19\x1a\x1a\x1b\x1b\x1c\x1c\x1d\x1d\x1e\x1e\x1f\x1f"
        "\x20\x20\x21\x21\x22\x22\x23\x23\x24\x24\x25\x25\x26\x26\x27\x27"
        "\x28\x28\x29\x29\x2a\x2a\x2b\x2b\x2c\x2c\x2d\x2d\x2e\x2e\x2f\x2f"
        "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f",
        0x100);
    memcpy(x1003f1b0 + 0x00000180,
        "\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
        "\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
        "\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04"
        "\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04"
        "\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04"
        "\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05"
        "\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05"
        "\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05"
        "\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05"
        "\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
        "\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
        "\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
        "\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
        "\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
        "\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
        "\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08",
        0x100);

    #define PATCHIT(X,Y) *(int *)(stalker_lza_dump + X) = (int)(Y);
    PATCHIT(0x00000002, x100af1a4 + 0x0000fe5c) // mov ecx, dword ptr [100BF000]
    PATCHIT(0x00000007, x100af1a4 + 0x0000fe58) // mov eax, dword ptr [100BEFFC]
    PATCHIT(0x00000016, x100af1a4 + 0x0000fe54) // mov ecx, dword ptr [100BEFF8]
    PATCHIT(0x00000028, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x00000032, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x0000003f, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x00000045, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], ecx
    PATCHIT(0x0000004d, x100af1a4 + 0x0000fe5c) // add dword ptr [100BF000], 1
    PATCHIT(0x0000005b, x100af1a4 + 0x0000fe5c) // add dword ptr [100BF000], 1
    PATCHIT(0x00000072, x100af1a4 + 0x0000fe3c) // mov edx, dword ptr [100BEFE0]
    PATCHIT(0x0000007e, x100af1a4 + 0x0000fe50) // mov esi, dword ptr [100BEFF4]
    PATCHIT(0x00000085, x100af1a4 + 0x0000fe4c) // mov edi, dword ptr [100BEFF0]
    PATCHIT(0x000000a1, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], esi
    PATCHIT(0x000000b9, x100af1a4 + 0x0000fe3c) // mov dword ptr [100BEFE0], edx
    PATCHIT(0x000000bf, x100af1a4 + 0x0000fe38) // or dword ptr [100BEFDC], eax
    PATCHIT(0x000000cc, x100af1a4 + 0x0000fe38) // mov ecx, dword ptr [100BEFDC]
    PATCHIT(0x000000dc, x100af1a4 + 0x0000fe38) // mov dword ptr [100BEFDC], ecx
    PATCHIT(0x000000e2, x100af1a4 + 0x0000fe3c) // mov dword ptr [100BEFE0], edx
    PATCHIT(0x000000f2, x100af1a4 + 0x0000fe3c) // mov edx, dword ptr [100BEFE0]
    PATCHIT(0x000000fe, x100af1a4 + 0x0000fe50) // mov esi, dword ptr [100BEFF4]
    PATCHIT(0x00000105, x100af1a4 + 0x0000fe4c) // mov edi, dword ptr [100BEFF0]
    PATCHIT(0x00000121, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], esi
    PATCHIT(0x00000139, x100af1a4 + 0x0000fe3c) // mov dword ptr [100BEFE0], edx
    PATCHIT(0x0000013f, x100af1a4 + 0x0000fe38) // or dword ptr [100BEFDC], eax
    PATCHIT(0x0000014c, x100af1a4 + 0x0000fe38) // mov ecx, dword ptr [100BEFDC]
    PATCHIT(0x0000015a, x100af1a4 + 0x0000fe38) // mov dword ptr [100BEFDC], ecx
    PATCHIT(0x00000160, x100af1a4 + 0x0000fe3c) // mov dword ptr [100BEFE0], edx
    PATCHIT(0x00000172, x100af1a4 + 0x0000fe44) // mov ecx, dword ptr [100BEFE8]
    PATCHIT(0x0000017a, x100af1a4 + 0x0000fe40) // mov eax, dword ptr [100BEFE4]
    PATCHIT(0x00000186, x100af1a4 + 0x0000fe44) // mov dword ptr [100BEFE8], ecx
    PATCHIT(0x00000190, x100af1a4 + 0x0000fe40) // mov dword ptr [100BEFE4], eax
    PATCHIT(0x000001a0, x100af1a4 + 0x0000fe44) // mov eax, dword ptr [100BEFE8]
    PATCHIT(0x000001ab, x100af1a4 + 0x0000fe44) // mov dword ptr [100BEFE8], eax
    PATCHIT(0x000001b2, x100af1a4 + 0x0000fe40) // mov eax, dword ptr [100BEFE4]
    PATCHIT(0x000001bd, x100af1a4 + 0x0000fe44) // mov eax, dword ptr [100BEFE8]
    PATCHIT(0x000001c3, x100af1a4 + 0x0000f81c) // add dword ptr [100BE9C0], 2
    PATCHIT(0x000001d2, x100af1a4 + 0x0000fe44) // mov dword ptr [100BEFE8], eax
    PATCHIT(0x000001d8, x100af1a4 + 0x0000fe40) // mov dword ptr [100BEFE4], esi
    PATCHIT(0x000001e0, x100af1a4 + 0x0000fe40) // shl dword ptr [100BEFE4], 8
    PATCHIT(0x000001e7, x100af1a4 + 0x0000f81c) // add dword ptr [100BE9C0], 1
    PATCHIT(0x000001f3, x100af1a4 + 0x0000e6f4) // movzx eax, byte ptr [edx+100BD898]
    PATCHIT(0x000001fc, x100af1a4 + 0x0000a6e8) // mov esi, dword ptr [100B988C]
    PATCHIT(0x00000215, x100af1a4 + 0x0000a6ec) // mov dword ptr [edx*4+100B9890], ecx
    PATCHIT(0x0000021c, x100af1a4 + 0x000062e4) // mov dword ptr [edx*4+100B5488], ecx
    PATCHIT(0x00000222, x100af1a4 + 0x000062e0) // mov dword ptr [100B5484], ebx
    PATCHIT(0x0000022d, x100af1a4 + 0x000062e4) // mov ecx, dword ptr [eax*4+100B5488]
    PATCHIT(0x0000023c, x100af1a4 + 0x000062e4) // mov dword ptr [eax*4+100B5488], edx
    PATCHIT(0x00000248, x100af1a4 + 0x0000a6ec) // mov ecx, dword ptr [eax*4+100B9890]
    PATCHIT(0x00000264, x100af1a4 + 0x0000e6f4) // movzx ebp, byte ptr [eax+ecx+100BD898]
    PATCHIT(0x0000026c, x100af1a4 + 0x0000e6f4) // movzx edi, byte ptr [ecx+edx+100BD898]
    PATCHIT(0x000002a4, x100af1a4 + 0x000022dc) // mov ecx, dword ptr [eax*4+100B1480]
    PATCHIT(0x000002ab, x100af1a4 + 0x000022dc) // mov dword ptr [edx*4+100B1480], ecx
    PATCHIT(0x000002b2, x100af1a4 + 0x0000a6ec) // mov ecx, dword ptr [eax*4+100B9890]
    PATCHIT(0x000002b8, x100af1a4 + 0x0000a6e8) // mov dword ptr [100B988C], esi
    PATCHIT(0x000002bf, x100af1a4 + 0x000022dc) // lea esi, dword ptr [eax*4+100B1480]
    PATCHIT(0x000002c6, x100af1a4 + 0x0000a6ec) // mov dword ptr [edx*4+100B9890], ecx
    PATCHIT(0x000002cd, x100af1a4 + 0x000062e4) // mov ecx, dword ptr [eax*4+100B5488]
    PATCHIT(0x000002d4, x100af1a4 + 0x000062e4) // mov dword ptr [edx*4+100B5488], ecx
    PATCHIT(0x000002db, x100af1a4 + 0x0000a6ec) // mov ecx, dword ptr [eax*4+100B9890]
    PATCHIT(0x000002e2, x100af1a4 + 0x000022dc) // mov dword ptr [ecx*4+100B1480], edx
    PATCHIT(0x000002e9, x100af1a4 + 0x000062e4) // mov ecx, dword ptr [eax*4+100B5488]
    PATCHIT(0x000002f0, x100af1a4 + 0x000022dc) // mov dword ptr [ecx*4+100B1480], edx
    PATCHIT(0x000002fc, x100af1a4 + 0x000062e4) // cmp dword ptr [ecx+100B5488], eax
    PATCHIT(0x00000302, x100af1a4 + 0x000062e0) // mov dword ptr [100B5484], ebx
    PATCHIT(0x00000313, x100af1a4 + 0x000062e4) // mov dword ptr [ecx+100B5488], edx
    PATCHIT(0x00000346, x100af1a4 + 0x0000a6ec) // mov dword ptr [ecx+100B9890], edx
    PATCHIT(0x0000034f, x100af1a4 + 0x0000a6ec) // mov dword ptr [eax*4+100B9890], edx
    PATCHIT(0x00000356, x100af1a4 + 0x0000a6e8) // mov dword ptr [100B988C], esi
    PATCHIT(0x0000035e, x100af1a4 + 0x000062e0) // mov dword ptr [100B5484], ebx
    PATCHIT(0x00000365, x100af1a4 + 0x000022dc) // mov dword ptr [edx*4+100B1480], eax
    PATCHIT(0x00000373, x100af1a4 + 0x000022dc) // cmp dword ptr [edi*4+100B1480], 1000
    PATCHIT(0x0000037f, x100af1a4 + 0x000022dc) // lea ebx, dword ptr [edi*4+100B1480]
    PATCHIT(0x0000038c, x100af1a4 + 0x000062e4) // mov eax, dword ptr [edi*4+100B5488]
    PATCHIT(0x0000039a, x100af1a4 + 0x0000a6ec) // mov eax, dword ptr [edi*4+100B9890]
    PATCHIT(0x000003a7, x100af1a4 + 0x0000a6ec) // mov esi, dword ptr [edi*4+100B9890]
    PATCHIT(0x000003bc, x100af1a4 + 0x000062e4) // cmp dword ptr [eax*4+100B5488], 1000
    PATCHIT(0x000003c7, x100af1a4 + 0x000062e4) // lea ecx, dword ptr [eax*4+100B5488]
    PATCHIT(0x000003d5, x100af1a4 + 0x000062e4) // cmp dword ptr [eax*4+100B5488], 1000
    PATCHIT(0x000003e0, x100af1a4 + 0x000062e4) // lea ecx, dword ptr [eax*4+100B5488]
    PATCHIT(0x000003e9, x100af1a4 + 0x000022dc) // mov ecx, dword ptr [eax*4+100B1480]
    PATCHIT(0x000003f0, x100af1a4 + 0x0000a6ec) // mov edx, dword ptr [eax*4+100B9890]
    PATCHIT(0x000003f7, x100af1a4 + 0x000022dc) // mov dword ptr [edx*4+100B1480], ecx
    PATCHIT(0x000003fe, x100af1a4 + 0x000062e4) // mov dword ptr [ecx*4+100B5488], edx
    PATCHIT(0x00000405, x100af1a4 + 0x0000a6ec) // mov dword ptr [eax*4+100B9890], esi
    PATCHIT(0x0000040c, x100af1a4 + 0x0000a6ec) // mov ecx, dword ptr [edi*4+100B9890]
    PATCHIT(0x00000413, x100af1a4 + 0x000022dc) // mov dword ptr [ecx*4+100B1480], eax
    PATCHIT(0x0000041a, x100af1a4 + 0x000062e4) // mov edx, dword ptr [edi*4+100B5488]
    PATCHIT(0x00000421, x100af1a4 + 0x000062e4) // mov dword ptr [eax*4+100B5488], edx
    PATCHIT(0x00000428, x100af1a4 + 0x000062e4) // mov ecx, dword ptr [edi*4+100B5488]
    PATCHIT(0x0000042f, x100af1a4 + 0x000022dc) // mov dword ptr [ecx*4+100B1480], eax
    PATCHIT(0x00000439, x100af1a4 + 0x000022dc) // mov dword ptr [eax*4+100B1480], edx
    PATCHIT(0x00000445, x100af1a4 + 0x000062e4) // cmp dword ptr [ecx+100B5488], edi
    PATCHIT(0x00000453, x100af1a4 + 0x000062e4) // mov dword ptr [ecx+100B5488], eax
    PATCHIT(0x0000045b, x100af1a4 + 0x0000a6ec) // mov dword ptr [ecx+100B9890], eax
    PATCHIT(0x0000047c, x100af1a4 + 0x0000190c) // mov edi, 100B0AB0
    PATCHIT(0x00000499, x100af1a4 + 0x00000084) // mov dword ptr [edx*4+100AF228], eax
    PATCHIT(0x000004a0, x100af1a4 + 0x00001420) // mov dword ptr [edx*4+100B05C4], edx
    PATCHIT(0x000004c3, x100af1a4 + 0x00001910) // mov edx, dword ptr [ecx*4+100B0AB4]
    PATCHIT(0x000004ca, x100af1a4 + 0x0000190c) // add edx, dword ptr [ecx*4+100B0AB0]
    PATCHIT(0x000004d1, x100af1a4 + 0x00000084) // mov dword ptr [eax*4+100AF228], ecx
    PATCHIT(0x000004d8, x100af1a4 + 0x00000a58) // mov dword ptr [ecx*4+100AFBFC], eax
    PATCHIT(0x000004df, x100af1a4 + 0x00000a54) // mov dword ptr [ecx*4+100AFBF8], eax
    PATCHIT(0x000004e6, x100af1a4 + 0x0000190c) // mov dword ptr [eax*4+100B0AB0], edx
    PATCHIT(0x000004f9, x100af1a4 + 0x000022d8) // mov dword ptr [100B147C], FFFF
    PATCHIT(0x00000503, x100af1a4 + 0x0000141c) // mov dword ptr [100B05C0], 0
    PATCHIT(0x00000515, x100af1a4 + 0x00000084) // mov edx, 100AF228
    PATCHIT(0x0000051a, x100af1a4 + 0x0000190c) // mov ecx, 100B0AB0
    PATCHIT(0x00000523, x100af1a4 + 0x00000084) // mov esi, dword ptr [eax+100AF228]
    PATCHIT(0x00000531, x100af1a4 + 0x0000190c) // mov edi, dword ptr [eax+100B0AB0]
    PATCHIT(0x00000546, x100af1a4 + 0x00000088) // mov esi, dword ptr [eax+100AF22C]
    PATCHIT(0x00000554, x100af1a4 + 0x00001910) // mov edi, dword ptr [eax+100B0AB4]
    PATCHIT(0x00000569, x100af1a4 + 0x0000008c) // mov esi, dword ptr [eax+100AF230]
    PATCHIT(0x00000577, x100af1a4 + 0x00001914) // mov edi, dword ptr [eax+100B0AB8]
    PATCHIT(0x000005aa, x100af1a4 + 0x00001910) // mov ecx, dword ptr [eax*4+100B0AB4]
    PATCHIT(0x000005b1, x100af1a4 + 0x0000190c) // mov edx, dword ptr [eax*4+100B0AB0]
    PATCHIT(0x000005bb, x100af1a4 + 0x0000190c) // mov dword ptr [ebx*4+100B0AB0], eax
    PATCHIT(0x000005c2, x100af1a4 + 0x00001908) // cmp eax, dword ptr [ebx*4+100B0AAC]
    PATCHIT(0x000005d6, x100af1a4 + 0x0000190c) // cmp eax, dword ptr [esi*4+100B0AB0]
    PATCHIT(0x000005eb, x100af1a4 + 0x0000190c) // lea ebp, dword ptr [esi*4+100B0AB0]
    PATCHIT(0x000005f2, x100af1a4 + 0x00001910) // lea eax, dword ptr [esi*4+100B0AB4]
    PATCHIT(0x00000609, x100af1a4 + 0x00000084) // lea ebp, dword ptr [esi*4+100AF228]
    PATCHIT(0x00000610, x100af1a4 + 0x00000088) // lea edx, dword ptr [esi*4+100AF22C]
    PATCHIT(0x00000643, x100af1a4 + 0x00000088) // mov esi, 100AF22C
    PATCHIT(0x0000065f, x100af1a4 + 0x00000a54) // mov dword ptr [ecx*4+100AFBF8], edx
    PATCHIT(0x00000668, x100af1a4 + 0x00000a58) // mov dword ptr [ecx*4+100AFBFC], edx
    PATCHIT(0x0000067c, x100af1a4 + 0x00000a58) // mov dword ptr [ecx*4+100AFBFC], edx
    PATCHIT(0x00000683, x100af1a4 + 0x00000a54) // mov dword ptr [ecx*4+100AFBF8], edx
    PATCHIT(0x00000695, x100af1a4 + 0x00000a58) // mov dword ptr [ecx*4+100AFBFC], eax
    PATCHIT(0x0000069c, x100af1a4 + 0x00000a54) // mov dword ptr [ecx*4+100AFBF8], eax
    PATCHIT(0x000006c2, x100af1a4 + 0x000022d4) // cmp dword ptr [100B1478], 4000
    PATCHIT(0x000006d8, x100af1a4 + 0x00001420) // mov edx, dword ptr [eax*4+100B05C4]
    PATCHIT(0x000006e3, x100af1a4 + 0x0000190c) // add dword ptr [edx*4+100B0AB0], 1
    PATCHIT(0x000006eb, x100af1a4 + 0x0000190c) // mov ecx, dword ptr [edx*4+100B0AB0]
    PATCHIT(0x000006f5, x100af1a4 + 0x0000190c) // cmp ecx, dword ptr [eax*4+100B0AB0]
    PATCHIT(0x00000706, x100af1a4 + 0x0000190c) // cmp ecx, dword ptr [eax*4+100B0AB0]
    PATCHIT(0x0000070f, x100af1a4 + 0x00001908) // mov esi, dword ptr [eax*4+100B0AAC]
    PATCHIT(0x00000719, x100af1a4 + 0x0000190c) // mov dword ptr [edx*4+100B0AB0], esi
    PATCHIT(0x00000720, x100af1a4 + 0x00000084) // lea edi, dword ptr [edx*4+100AF228]
    PATCHIT(0x00000727, x100af1a4 + 0x0000190c) // mov dword ptr [eax*4+100B0AB0], ecx
    PATCHIT(0x00000736, x100af1a4 + 0x00000a54) // mov dword ptr [ecx*4+100AFBF8], eax
    PATCHIT(0x0000073f, x100af1a4 + 0x00000a58) // mov dword ptr [ecx*4+100AFBFC], eax
    PATCHIT(0x00000746, x100af1a4 + 0x00000084) // mov esi, dword ptr [eax*4+100AF228]
    PATCHIT(0x00000753, x100af1a4 + 0x00000084) // mov dword ptr [eax*4+100AF228], ecx
    PATCHIT(0x0000075a, x100af1a4 + 0x00000a54) // mov dword ptr [esi*4+100AFBF8], edx
    PATCHIT(0x00000763, x100af1a4 + 0x00000a58) // mov dword ptr [esi*4+100AFBFC], edx
    PATCHIT(0x0000076e, x100af1a4 + 0x00000a54) // mov edx, dword ptr [edx*4+100AFBF8]
    PATCHIT(0x00000781, x100af1a4 + 0x0000fe4c) // mov eax, dword ptr [100BEFF0]
    PATCHIT(0x00000787, x100af1a4 + 0x0000fe48) // sub eax, dword ptr [100BEFEC]
    PATCHIT(0x00000792, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x00000797, x100af1a4 + 0x0000f818) // mov dword ptr [100BE9BC], eax
    PATCHIT(0x000007a4, x100af1a4 + 0x0000f818) // mov edx, dword ptr [100BE9BC]
    PATCHIT(0x000007b3, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x000007b9, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], ecx
    PATCHIT(0x000007be, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x000007ca, x100af1a4 + 0x0000f819) // movzx eax, byte ptr [100BE9BD]
    PATCHIT(0x000007d7, x100af1a4 + 0x0000f81a) // movzx ecx, byte ptr [100BE9BE]
    PATCHIT(0x000007e4, x100af1a4 + 0x0000f81b) // movzx edx, byte ptr [100BE9BF]
    PATCHIT(0x000007f2, x100af1a4 + 0x0000f818) // cmp dword ptr [100BE9BC], ebx
    PATCHIT(0x00000813, x100af1a4 + 0x0000a2e8) // mov edi, 100B948C
    PATCHIT(0x0000081e, x100af1a4 + 0x000022dc) // mov edi, 100B1480
    PATCHIT(0x00000823, x100af1a4 + 0x0000e6f4) // push 100BD898
    PATCHIT(0x0000083c, x100af1a4 + 0x0000fe4c) // mov edx, dword ptr [100BEFF0]
    PATCHIT(0x00000842, x100af1a4 + 0x0000fe50) // mov ecx, dword ptr [100BEFF4]
    PATCHIT(0x0000085f, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], ecx
    PATCHIT(0x00000867, x100af1a4 + 0x0000f6b8) // mov byte ptr [ebx+100BE85C], al
    PATCHIT(0x00000879, x100af1a4 + 0x0000f818) // mov dword ptr [100BE9BC], ebx
    PATCHIT(0x0000089d, x100af1a4 + 0x000062e0) // mov eax, dword ptr [100B5484]
    PATCHIT(0x000008a8, x100af1a4 + 0x000062e0) // mov dword ptr [100B5484], eax
    PATCHIT(0x000008bc, x100af1a4 + 0x0000e6f4) // movzx ebp, byte ptr [eax+100BD898]
    PATCHIT(0x000008c3, x100af1a4 + 0x00001420) // mov eax, dword ptr [ebp*4+100B05C4]
    PATCHIT(0x000008c9, x100af1a4 + 0x000062e0) // mov dword ptr [100B5484], 1
    PATCHIT(0x000008e0, x100af1a4 + 0x00000a54) // mov eax, dword ptr [eax*4+100AFBF8]
    PATCHIT(0x000008f8, x100af1a4 + 0x00000a50) // mov dword ptr [100AFBF4], esi
    PATCHIT(0x000008fe, x100af1a4 + 0x00000000) // mov dword ptr [100AF1A4], edi
    PATCHIT(0x00000909, x100af1a4 + 0x0000fe44) // mov ebp, dword ptr [100BEFE8]
    PATCHIT(0x0000091e, x100af1a4 + 0x00001420) // mov eax, dword ptr [ebp*4+100B05C4]
    PATCHIT(0x00000931, x100af1a4 + 0x00000a54) // mov eax, dword ptr [eax*4+100AFBF8]
    PATCHIT(0x00000949, x100af1a4 + 0x00000a50) // mov dword ptr [100AFBF4], esi
    PATCHIT(0x0000094f, x100af1a4 + 0x00000000) // mov dword ptr [100AF1A4], edi
    PATCHIT(0x00000959, x100af1a4 + 0x0000a6e8) // mov eax, dword ptr [100B988C]
    PATCHIT(0x00000965, x1003f1b0 + 0x00000000) // movzx edi, byte ptr [eax+1003F1B0]
    PATCHIT(0x0000096d, x1003f1b0 + 0x00000040) // mov ch, byte ptr [eax+1003F1F0]
    PATCHIT(0x0000097d, x100af1a4 + 0x0000fe44) // mov ebp, dword ptr [100BEFE8]
    PATCHIT(0x00000982, x100af1a4 + 0x0000fe40) // mov eax, dword ptr [100BEFE4]
    PATCHIT(0x00000997, x100af1a4 + 0x0000fe44) // mov dword ptr [100BEFE8], ebp
    PATCHIT(0x000009a1, x100af1a4 + 0x0000fe40) // mov dword ptr [100BEFE4], eax
    PATCHIT(0x000009ad, x100af1a4 + 0x0000fe58) // mov ecx, dword ptr [100BEFFC]
    PATCHIT(0x000009b7, x100af1a4 + 0x0000fe5c) // mov eax, dword ptr [100BF000]
    PATCHIT(0x000009c0, x100af1a4 + 0x0000fe54) // mov eax, dword ptr [100BEFF8]
    PATCHIT(0x000009d1, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x000009db, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x000009e8, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x000009ee, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], edx
    PATCHIT(0x000009f6, x100af1a4 + 0x0000fe44) // mov ebp, dword ptr [100BEFE8]
    PATCHIT(0x00000a01, x100af1a4 + 0x0000fe5c) // add dword ptr [100BF000], eax
    PATCHIT(0x00000a0d, x100af1a4 + 0x0000fe44) // mov dword ptr [100BEFE8], ebp
    PATCHIT(0x00000a14, x100af1a4 + 0x0000fe58) // mov eax, dword ptr [100BEFFC]
    PATCHIT(0x00000a1a, x100af1a4 + 0x0000fe5c) // cmp dword ptr [100BF000], eax
    PATCHIT(0x00000a20, x100af1a4 + 0x0000fe40) // mov ebx, dword ptr [100BEFE4]
    PATCHIT(0x00000a28, x100af1a4 + 0x0000fe54) // mov ecx, dword ptr [100BEFF8]
    PATCHIT(0x00000a39, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x00000a43, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x00000a4a, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x00000a54, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], eax
    PATCHIT(0x00000a5a, x100af1a4 + 0x0000fe5c) // mov ecx, dword ptr [100BF000]
    PATCHIT(0x00000a60, x100af1a4 + 0x0000f81c) // add dword ptr [100BE9C0], 2
    PATCHIT(0x00000a69, x100af1a4 + 0x0000fe44) // mov ebp, dword ptr [100BEFE8]
    PATCHIT(0x00000a6f, x100af1a4 + 0x0000fe5c) // add dword ptr [100BF000], 1
    PATCHIT(0x00000a82, x100af1a4 + 0x0000fe44) // mov dword ptr [100BEFE8], ebp
    PATCHIT(0x00000a88, x100af1a4 + 0x0000fe40) // mov dword ptr [100BEFE4], esi
    PATCHIT(0x00000a90, x100af1a4 + 0x0000fe40) // shl dword ptr [100BEFE4], 8
    PATCHIT(0x00000a97, x100af1a4 + 0x0000f81c) // add dword ptr [100BE9C0], eax
    PATCHIT(0x00000aa0, x100af1a4 + 0x000062e0) // mov eax, dword ptr [100B5484]
    PATCHIT(0x00000ab1, x100af1a4 + 0x0000fe50) // mov eax, dword ptr [100BEFF4]
    PATCHIT(0x00000ab7, x100af1a4 + 0x0000fe4c) // cmp eax, dword ptr [100BEFF0]
    PATCHIT(0x00000ac7, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], eax
    PATCHIT(0x00000adb, x100af1a4 + 0x0000e6f4) // mov byte ptr [edi+100BD898], bl
    PATCHIT(0x00000ae3, x100af1a4 + 0x0000f6f4) // mov byte ptr [edi+100BE898], bl
    PATCHIT(0x00000b20, x100af1a4 + 0x000062e0) // mov eax, dword ptr [100B5484]
    PATCHIT(0x00000b26, x100af1a4 + 0x0000f818) // add dword ptr [100BE9BC], esi
    PATCHIT(0x00000b6a, x100af1a4 + 0x000062e0) // mov eax, dword ptr [100B5484]
    PATCHIT(0x00000b82, x100af1a4 + 0x0000fe40) // mov ebx, dword ptr [100BEFE4]
    PATCHIT(0x00000b87, x100af1a4 + 0x0000fe58) // mov eax, dword ptr [100BEFFC]
    PATCHIT(0x00000b90, x100af1a4 + 0x0000fe5c) // cmp dword ptr [100BF000], eax
    PATCHIT(0x00000b98, x100af1a4 + 0x0000fe54) // mov ecx, dword ptr [100BEFF8]
    PATCHIT(0x00000ba9, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x00000bb6, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], esi
    PATCHIT(0x00000bc1, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x00000bc7, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], esi
    PATCHIT(0x00000bcc, x100af1a4 + 0x0000fe5c) // mov eax, dword ptr [100BF000]
    PATCHIT(0x00000bd9, x100af1a4 + 0x0000fe5c) // add dword ptr [100BF000], eax
    PATCHIT(0x00000bdf, x100af1a4 + 0x0000f81c) // add dword ptr [100BE9C0], eax
    PATCHIT(0x00000be5, x100af1a4 + 0x0000f818) // mov ecx, dword ptr [100BE9BC]
    PATCHIT(0x00000beb, x100af1a4 + 0x0000f820) // mov dword ptr [100BE9C4], ecx
    PATCHIT(0x00000c01, x100af1a4 + 0x0000fe50) // mov eax, dword ptr [100BEFF4]
    PATCHIT(0x00000c0b, x100af1a4 + 0x0000fe4c) // mov esi, dword ptr [100BEFF0]
    PATCHIT(0x00000c1f, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], eax
    PATCHIT(0x00000c33, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], eax
    PATCHIT(0x00000c4c, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], eax
    PATCHIT(0x00000c65, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], eax
    PATCHIT(0x00000c70, x100af1a4 + 0x0000f818) // mov dword ptr [100BE9BC], ecx
    PATCHIT(0x00000c80, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x00000c8d, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x00000c93, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], ecx
    PATCHIT(0x00000c98, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x00000ca9, x100af1a4 + 0x0000e6f4) // push 100BD898
    PATCHIT(0x00000cb9, x100af1a4 + 0x0000f818) // cmp dword ptr [100BE9BC], edi
    PATCHIT(0x00000cd2, x100af1a4 + 0x00000a4c) // mov ebx, dword ptr [100AFBF0]
    PATCHIT(0x00000cea, x100af1a4 + 0x00000084) // mov ebx, dword ptr [ebx*4+100AF228]
    PATCHIT(0x00000d0e, x100af1a4 + 0x0000fe5c) // mov eax, dword ptr [100BF000]
    PATCHIT(0x00000d14, x100af1a4 + 0x0000fe58) // mov ecx, dword ptr [100BEFFC]
    PATCHIT(0x00000d1d, x100af1a4 + 0x0000fe54) // mov eax, dword ptr [100BEFF8]
    PATCHIT(0x00000d2e, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x00000d38, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x00000d45, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x00000d4b, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], ecx
    PATCHIT(0x00000d53, x100af1a4 + 0x0000fe5c) // add dword ptr [100BF000], 1
    PATCHIT(0x00000d5a, x100af1a4 + 0x0000e6f4) // mov byte ptr [ebp+100BD898], bl
    PATCHIT(0x00000d7d, x1003f1b0 + 0x00000080) // movzx eax, byte ptr [esi+1003F230]
    PATCHIT(0x00000d84, x1003f1b0 + 0x00000180) // movzx edi, byte ptr [esi+1003F330]
    PATCHIT(0x00000dd2, x100af1a4 + 0x0000fe5c) // mov eax, dword ptr [100BF000]
    PATCHIT(0x00000de2, x100af1a4 + 0x0000fe58) // mov ecx, dword ptr [100BEFFC]
    PATCHIT(0x00000df4, x100af1a4 + 0x0000e6f4) // movzx edx, byte ptr [edx+100BD898]
    PATCHIT(0x00000dff, x100af1a4 + 0x0000fe54) // mov eax, dword ptr [100BEFF8]
    PATCHIT(0x00000e10, x1003f1b0 + 0x000006a4) // mov ecx, 1003F854
    PATCHIT(0x00000e1a, x100af1a4 + 0x0000fe54) // mov dword ptr [100BEFF8], eax
    PATCHIT(0x00000e2c, x100af1a4 + 0x0000fe58) // mov dword ptr [100BEFFC], edx
    PATCHIT(0x00000e35, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x00000e3c, x100af1a4 + 0x0000fe5c) // mov eax, dword ptr [100BF000]
    PATCHIT(0x00000e42, x100af1a4 + 0x0000e6f4) // mov byte ptr [ebp+100BD898], dl
    PATCHIT(0x00000e58, x100af1a4 + 0x0000fe5c) // mov dword ptr [100BF000], eax
    PATCHIT(0x00000e64, x100af1a4 + 0x0000f818) // cmp edi, dword ptr [100BE9BC]
    PATCHIT(0x00000e71, x100af1a4 + 0x0000f820) // mov dword ptr [100BE9C4], edi
    PATCHIT(0x00000e84, x100af1a4 + 0x0000fe48) // mov dword ptr [100BEFEC], eax
    PATCHIT(0x00000e89, x100af1a4 + 0x0000fe50) // mov dword ptr [100BEFF4], eax
    PATCHIT(0x00000e91, x100af1a4 + 0x0000fe4c) // mov dword ptr [100BEFF0], edx
    PATCHIT(0x00000e96, x100af1a4 + 0x0000fe44) // mov dword ptr [100BEFE8], eax
    PATCHIT(0x00000e9b, x100af1a4 + 0x0000fe40) // mov dword ptr [100BEFE4], eax
    PATCHIT(0x00000ea0, x100af1a4 + 0x0000fe3c) // mov dword ptr [100BEFE0], eax
    PATCHIT(0x00000ea5, x100af1a4 + 0x0000fe38) // mov dword ptr [100BEFDC], eax
    PATCHIT(0x00000eaf, x100af1a4 + 0x0000fe54) // mov eax, dword ptr [100BEFF8]
    PATCHIT(0x00000eb9, x100af1a4 + 0x0000fe5c) // mov edx, dword ptr [100BF000]
    #undef PATCHIT

    memcpy(
        stalker_lza_dump + 3784,
        stalker_lza_caller,
        sizeof(stalker_lza_caller));

    stalker_lza = stalker_lza_alloc(stalker_lza_dump, sizeof(stalker_lza_dump));

    #define CALLIT(X,Y) \
        *(int *)((unsigned char *)stalker_lza + (X) + 1) = \
            (unsigned char *)Y - ((unsigned char *)stalker_lza + (X) + 1 + 4);
    CALLIT(0x002c, stalker_lza_realloc)
    *((unsigned char *)stalker_lza+0x05f8) = 0x90;
    *((unsigned char *)stalker_lza+0x05f9) = 0xe8;
    CALLIT(0x05f8+1, stalker_lza_memmove)
    *((unsigned char *)stalker_lza+0x0616) = 0x90;
    *((unsigned char *)stalker_lza+0x0617) = 0xe8;
    CALLIT(0x0616+1, stalker_lza_memmove)
    CALLIT(0x079d, stalker_lza_malloc)
    CALLIT(0x0835, stalker_lza_memset)
    CALLIT(0x09d5, stalker_lza_realloc)
    CALLIT(0x0a3d, stalker_lza_realloc)
    CALLIT(0x0bad, stalker_lza_realloc)
    CALLIT(0x0c84, stalker_lza_malloc)
    CALLIT(0x0cad, stalker_lza_memset)
    CALLIT(0x0d32, stalker_lza_realloc)
    CALLIT(0x0e14, stalker_lza_realloc)
    #undef CALLIT

    stalker_lza = (void *)((unsigned char *)stalker_lza + 3784);
}

