/*( getnum )*/ #define CAB char subr[2796]; int rel98[]={ 0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26, 0x2e,0x33,0x38,0x56,0x6e,0x77,0x7c,0x86, 0xad,0xa6d,0xa88,0xac3,0xacd,0xad8,0xae0,0 }; int relme[]={ 0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26, 0x2e,0x33,0x38,0x56,0x6e,0x77,0x7c,0x86, 0xac,0xa6c,0xa87,0xac2,0xacc,0xad7,0xadf,0 }; int reloff,*rel; #ifdef SELF char cr[]=" Windows 9X RAM Limitation Patch 4.0 Copyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved. "; #endif #ifdef PRO char cr[]=" Windows 9X RAM Limitation Patch 4.0 Copyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved.€€€€€€€€"; #endif #ifdef CAB char cr[]=" Windows 9X RAM Limitation Patch 4.0 Copyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved.€€€€€€€€"; #endif #ifdef DEMO char cr[]=" Windows 9X RAM Limitation Patch 4.0 (DEMO) Copyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved."; #endif #ifdef SELF #define CAB #endif char mz[]={ 0x4d,0x5a,0,0,6,0,0,0,4,0,0,0,0xff,0xff,0,0, 0xb8,0,0,0,0,0,0,0,0x40,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,0x80,0,0,0, 0xe,0x1f,0xba,0xe,0,0xb4,9,0xcd,0x21,0xb8,1,0x4c,0xcd,0x21,0x54,0x68, 0x69,0x73,0x20,0x70,0x72,0x6f,0x67,0x72,0x61,0x6d,0x20,0x63,0x61,0x6e,0x6e,0x6f, 0x74,0x20,0x62,0x65,0x20,0x72,0x75,0x6e,0x20,0x69,0x6e,0x20,0x44,0x4f,0x53,0x20, 0x6d,0x6f,0x64,0x65,0x2e,0xd,0xa,0x24,0,0,0,0,0,0,0,0, }; // Tail Space Entry: Set to Type 6 on Upgrades Only char vmm1998[]={ // 0x80,0xfc,0xff, // 0xc1,4,0x52,0x52,0x4c,0x20,0xc0,0x1c,0xc1,1,0x3e,0x80,0xdf,3, 0xc1,4,0x52,0x52,0x4c,0x20,0xc0,0x30,0xc1,2,0xfe,7,0xc0,0x3e,0xc1, 1,0x3e,0xc0,7,0xc1,1,0x3e,0xc0,0x4b,0xc1,2,0x2c,3,0xc0,0x5e,0xc1, 2,0x1c,0xb2,0x80,0xd3,3,0xc1,0xcd,0xe,0,0,0,2,0,0,0, 6,0,0,0,6,0,0,0,2,0,0,0,0x1e,0,0,0, 6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0, 6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0, 6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0, 0xe,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0, 0xe,0,0,0,2,0,0,0,0x1e,0,0,0,0x1e,0,0,0, 0x1e,0,0,0,2,0,0,0,0xe,0,0,0,0xe,0,0,0, 2,0,0,0,2,0,0,0,2,0,0,0,0xe,0,0,0, 2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0, 0x3e,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0, 0x1e,0,0,0,0xe,0,0,0,2,0,0,0,6,0,0,0, 0xe,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0, 0xe,0,0,0,0xe,0x80,0xec,1,0xc1,2,0x2c,0x3f,0x80,0xdd,3,0xc1, 2,0x2c,0x3f,0x80,0xcb,4,0xc1,2,0x14,0x3f,0x80,0xf9,8,0xc1,2,0x14, 0x3f,0x80,0x77,2,0xc1,2,0x34,0x3f,0x80,0x46,0x28,0xc1,2,0x14,0x3f,0xc0, 7,0xc1,2,0x14,0x3d,0x80,0x39,1,0xc1,2,0x1c,0x3f,0xc0,0xb,0xc1,2, 0x14,0x3f,0xc0,0x42,0xc1,2,0x3c,0x3f,0xc0,0x19,0xc1,2,0x34,0x3f,0x80,0x41, 1,0xc1,2,0x1c,0x3f,0xc0,0x4e,0xc1,2,0x3c,0x3f,0x80,0xb7,8,0xc1,2, 0x14,0x3f,0x80,0x13,5,0xc1,2,0x14,0x3f,0x80,0xc2,1,0xc1,2,0x34,0x3f, 0x80,0xf3,0x17,0xc1,2,0x1c,0x3f,0xc0,0x89,0xc1,2,0x14,0x3f,0x80,0xb0,1, 0xc1,6,0x10,0,0,0,0x90,0xa6,0xc2,2,1,0,0xc0,0x1d,0xc1,2, 0x14,0x3f,0xc0,0x65,0xc1,2,0x1c,0x3f,0x80,0xf4,1,0xc1,2,0x14,0x3f,0x80, 0xee,8,0xc1,2,0x34,0x3f,0x80,0xda,0xc,0xc1,2,0x34,0x3f,0x80,0x79,0x11, 0xc1,2,0x34,0x3f,0x80,0xc0,4,0xc1,2,0x14,0x3f,0x80,0xa4,2,0xc1,2, 0x14,0x3f,0x80,0xe,8,0xc1,2,0x14,0x3f,0x80,1,1,0xc1,2,0x2c,0x3f, 0xc0,0x88,0xc1,2,0x1c,0x3f,0x80,0x39,6,0xc1,2,0x14,0x3f,0x80,0xa,2, 0xc1,2,0x14,0x3f,0xc0,0xef,0xc1,2,0x14,0x3f,0x80,0xd7,4,0xc5,2,0, 0x80,0xe4,5,0xc1,2,0x2c,0x3f,0xc0,0x48,0xc1,2,0x2c,0x3f,0xc0,0x12,0xc1, 2,0x2c,0x3f,0x80,0x2d,0x21,0xc1,2,0x2c,0x3f,0x80,0x39,0x1a,0xc1,2,0x14, 0x3f,0xc0,0x3b,0xc1,2,0x14,0x3f,0x80,0xb4,0x33,0xc1,2,0x14,0x3f,0xc0,0x42, 0xc1,2,0x14,0x3f,0x80,0x4a,0x14,0xc1,2,0x34,0x3f,0xc0,0x53,0xc1,2,0x34, 0x3f,0xc0,0xa5,0xc1,2,0x34,0x3f,0xc0,0x59,0xc1,2,0x34,0x3f,0xc0,0x19,0xc1, 2,0x34,0x3f,0xc0,0x28,0xc1,2,0x34,0x3f,0xc0,0x79,0xc1,2,0x34,0x3f,0xc0, 0x13,0xc1,2,0x34,0x3f,0xc0,0x99,0xc1,2,0x34,0x3f,0x80,0xbc,0x98,0xc1,6, 0x14,0x3f,0,0,0x14,0x3d,0x80,0x8a,0xb,0xc1,2,0x34,0x3f,0x80,0x6a,1, 0xc1,2,0x14,0x3f,0x80,0x35,2,0xc1,2,0x3c,0x3f,0xc0,0xb,0xc1,2,0x1c, 0x3f,0xc0,0x13,0xc1,2,0x3c,0x3f,0xc0,0xf,0xc1,2,0x1c,0x3f,0x80,0x4b,0x14, 0xc1,2,0x1c,0x3f,0xc0,0xe,0xc1,2,0x3c,0x3f,0xc0,0xf,0xc1,2,0x1c,0x3f, 0xc0,0x19,0xc1,2,0x3c,0x3f,0x80,0xaf,0x3d,0xc1,2,0x14,0x3f,0xc0,0x5f,0xc1, 2,0x14,0x3f,0xc0,8,0xc1,2,0x14,0x3f,0x80,0xc0,2,0xc1,2,0x14,0x3f, 0x80,0xf7,0xd,0xc1,2,0x14,0x3f,0xc0,0x83,0xc1,2,0x14,0x3f,0x80,0x8e,1, 0xc1,2,0x14,0x3f,0xc0,0xf2,0xc1,2,0x34,0x3f,0x80,0xa3,0xb6,0xc1,2,0x14, 0x3f,0x80,0xab,3,0xc1,2,0x1c,0x3f,0x80,0xa3,3,0xc1,2,0x1c,0x3f,0xc0, 0x90,0xc1,2,0xa4,6,0xc0,5,0xc1,2,0xa4,6,0x80,0x23,1,0xc1,2, 0x30,0xc3,0xc0,6,0xc1,2,0x30,0xc3,0xc0,0x27,0xc1,3,0x90,0xa6,1,0xc0, 0x3f,0xc1,2,0x14,0x3f,0xc0,0x6b,0xc1,2,0x14,0x3f,0xc0,0x26,0xc1,2,0x14, 0x3f,0xc0,0x2e,0xc1,2,0x14,0x3f,0xc0,0x35,0xc1,2,0x14,0x3f,0xc0,0x2c,0xc1, 2,0x14,0x3f,0x80,0x37,1,0xc1,1,0xc,0xc0,0x3e,0xc1,1,0xc0,0xc0,0x73, 0xc1,2,0x14,0x3f,0xc0,0x12,0xc1,2,0x14,0x3f,0x80,0x87,2,0xc1,2,0x14, 0x3f,0xc0,0x16,0xc1,2,0x14,0x3f,0xc0,0x2f,0xc1,2,0x14,0x3f,0xc0,0xdb,0xc1, 1,0x80,0xc0,0x19,0xc1,1,0x80,0x80,0x50,2,0xc1,2,0x14,0x3f,0xc0,0x38, 0xc1,1,0x24,0x80,0xbe,0x21,0xc1,2,0x34,0x3f,0x80,0x6f,3,0xc1,2,0x34, 0x3f,0xc0,0x54,0xc1,2,0x34,0x3f,0x40,0x2e,8,1,0xc1,2,0x34,0x3f,0x80, 0xaa,0xbd,0xc1,2,0x34,0x3f,0x80,0xc7,0x2e,0xc1,2,0x14,0x3f,0x80,0x1d,6, 0xc1,2,0x14,0x3f,0x80,0xb2,0x3f,0xc1,2,0x14,0x3f,0x80,0xa0,1,0xc1,2, 0x14,0x3f,0xc0,0xfd,0xc1,2,0x14,0x3f,0xc0,0x88,0xc1,2,0x2c,0x3f,0xc0,9, 0xc1,2,0x2c,0x3f,0xc0,0x6c,0xc1,2,0x2c,0x3f,0xc0,0xc8,0xc1,2,0x2c,0x3f, 0x80,0xfb,3,0xc1,2,0x1c,0x3f,0xc0,0x2c,0xc1,2,0x1c,0x3f,0x80,0xb7,0x45, 0xc1,2,0x14,0x3f,0xc0,0x2d,0xc1,2,0x14,0x3f,0x80,0xfa,5,0xc1,2,0x14, 0x3f,0x80,0x29,1,0xc1,2,0x14,0x3f,0x80,0xe4,0x17,0xc1,2,0x14,0x3f,0xc0, 0x98,0xc1,2,0x14,0x3f,0xc0,0x95,0xc1,2,0x14,0x3f,0xc0,0x66,0xc1,2,0x14, 0x3f,0x80,0x7c,0x4d,-1,0 }; char vmm1999[]={ // 0x80,0xfc,0xf7, 0xc1,4,0x52,0x52,0x4c,0x20,0xc0,0x30,0xc1,1,2,0xc0,0x3f, 0xc1,1,2,0xc0,7,0xc1,1,2,0xc0,0x4b,0xc1,2,0x2c,3,0xc0,0x5e, 0xc1,2,0x1c,0xb2,0x80,0xd3,3,0xc1,0xcd,2,0,0,0,0xe,0,0, 0,2,0,0,0,2,0,0,0,0xe,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,6,0,0,0,0x7e,0,0,0,6,0,0, 0,2,0,0,0,0x7e,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,6,0,0,0,2,0,0,0,2,0,0, 0,0x1e,0,0,0,0x1e,0,0,0,6,0,0,0,2,0,0, 0,6,0,0,0,6,0,0,0,6,0,0,0,0x3e,0,0, 0,2,0,0,0,0xe,0,0,0,6,0,0,0,6,0,0, 0,2,0,0,0,2,0,0,0,6,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,0xe,0,0, 0,2,0,0,0,2,0x80,0xac,2,0xc1,2,0x2c,0x3f,0x80,0xb1,3, 0xc1,2,0x2c,0x3f,0x80,0xf8,4,0xc1,2,0x34,0x3f,0x80,0xe,7,0xc1,2, 0x74,0x3f,0x80,0x84,4,0xc1,2,0x14,0x3f,0x80,0xea,0x23,0xc1,2,0x74,0x3f, 0xc0,7,0xc1,2,0x74,0x3d,0x80,0x20,5,0xc1,2,0x3c,0x3f,0xc0,0x19,0xc1, 2,0x34,0x3f,0xc0,0x2b,0xc1,2,0x1c,0x3f,0xc0,0xb,0xc1,2,0x14,0x3f,0x80, 0x37,1,0xc1,2,0x3c,0x3f,0xc0,0x39,0xc1,2,0x1c,0x3f,0x80,0xae,9,0xc1, 2,0x34,0x3f,0x80,0xa2,5,0xc1,2,0x34,0x3f,0x80,0x5c,1,0xc1,2,0x14, 0x3f,0x80,0x83,0x15,0xc1,2,0x74,0x3f,0xc0,0x71,0xc1,2,0x7c,0x3f,0x80,0x21, 2,0xc1,2,0x3c,0x3f,0xc0,0xa7,0xc1,2,0x34,0x3f,0xc0,0x46,0xc1,6,0x10, 0,0,0,0x90,0xa6,0xc2,2,1,0,0x80,0xc7,2,0xc1,2,0x34,0x3f, 0x80,0xf2,9,0xc1,2,0x14,0x3f,0x80,0x51,0xc,0xc1,2,0x14,0x3f,0x80,0xbf, 0x10,0xc1,2,0x14,0x3f,0x80,0x52,5,0xc1,2,0x34,0x3f,0x80,0xb4,2,0xc1, 2,0x34,0x3f,0x80,0x59,6,0xc1,2,0x6c,0x3f,0xc0,0x60,0xc1,2,0x7c,0x3f, 0x80,0x7f,1,0xc1,2,0x34,0x3f,0x80,0x5b,7,0xc1,2,0x34,0x3f,0x80,0x4b, 1,0xc1,2,0x74,0x3f,0xc0,0xb2,0xc1,2,0x34,0x3f,0x80,0x2e,5,0xc5,2, 0,0x80,0xe4,5,0xc1,2,0x2c,0x3f,0xc0,0x48,0xc1,2,0x2c,0x3f,0xc0,0x12, 0xc1,2,0x2c,0x3f,0x80,0x2d,0x21,0xc1,2,0x2c,0x3f,0x80,0x39,0x1a,0xc1,2, 0x34,0x3f,0xc0,0x3b,0xc1,2,0x34,0x3f,0x80,0xb4,0x33,0xc1,2,0x74,0x3f,0xc0, 0x42,0xc1,2,0x74,0x3f,0x80,0x4a,0x14,0xc1,2,0x14,0x3f,0xc0,0x53,0xc1,2, 0x14,0x3f,0xc0,0xa5,0xc1,2,0x14,0x3f,0xc0,0x59,0xc1,2,0x14,0x3f,0xc0,0x19, 0xc1,2,0x14,0x3f,0xc0,0x28,0xc1,2,0x14,0x3f,0xc0,0x79,0xc1,2,0x14,0x3f, 0xc0,0x13,0xc1,2,0x14,0x3f,0xc0,0x99,0xc1,2,0x14,0x3f,0x80,0xbc,0x98,0xc1, 6,0x74,0x3f,0,0,0x74,0x3d,0x80,0x8a,0xb,0xc1,2,0x14,0x3f,0x80,0x6a, 1,0xc1,2,0x34,0x3f,0x80,0x45,2,0xc1,2,0x1c,0x3f,0xc0,0xb,0xc1,2, 0x3c,0x3f,0xc0,0x13,0xc1,2,0x1c,0x3f,0xc0,0xf,0xc1,2,0x3c,0x3f,0x80,0x4b, 0x14,0xc1,2,0x3c,0x3f,0xc0,0xe,0xc1,2,0x1c,0x3f,0xc0,0xf,0xc1,2,0x3c, 0x3f,0xc0,0x19,0xc1,2,0x1c,0x3f,0x80,0x9f,0x3d,0xc1,2,0x34,0x3f,0xc0,0x5f, 0xc1,2,0x34,0x3f,0xc0,8,0xc1,2,0x34,0x3f,0x80,0xc0,2,0xc1,2,0x34, 0x3f,0x80,0xf7,0xd,0xc1,2,0x34,0x3f,0xc0,0x83,0xc1,2,0x34,0x3f,0x80,0x8e, 1,0xc1,2,0x34,0x3f,0xc0,0xf2,0xc1,2,0x14,0x3f,0x80,0xa3,0xb6,0xc1,2, 0x74,0x3f,0x80,0xab,3,0xc1,2,0x7c,0x3f,0x80,0xa3,3,0xc1,2,0x3c,0x3f, 0xc0,0x90,0xc1,2,0xa4,6,0xc0,5,0xc1,2,0xa4,6,0x80,0x23,1,0xc1, 2,0x30,0xc3,0xc0,6,0xc1,2,0x30,0xc3,0xc0,0x27,0xc1,3,0x90,0xa6,1, 0xc0,0x3f,0xc1,2,0x34,0x3f,0xc0,0x6b,0xc1,2,0x34,0x3f,0xc0,0x26,0xc1,2, 0x34,0x3f,0xc0,0x2e,0xc1,2,0x34,0x3f,0xc0,0x35,0xc1,2,0x34,0x3f,0xc0,0x2c, 0xc1,2,0x34,0x3f,0x80,0x37,1,0xc1,1,0xc,0xc0,0x3e,0xc1,1,0xc0,0xc0, 0x73,0xc1,2,0x34,0x3f,0xc0,0x12,0xc1,2,0x34,0x3f,0x80,0x87,2,0xc1,2, 0x34,0x3f,0xc0,0x16,0xc1,2,0x34,0x3f,0xc0,0x2f,0xc1,2,0x34,0x3f,0xc0,0xdb, 0xc1,1,0x80,0xc0,0x19,0xc1,1,0x80,0x80,0x50,2,0xc1,2,0x34,0x3f,0xc0, 0x38,0xc1,1,0x24,0x80,0xbe,0x21,0xc1,2,0x14,0x3f,0x80,0x6f,3,0xc1,2, 0x14,0x3f,0xc0,0x54,0xc1,2,0x14,0x3f,0x40,0x2e,8,1,0xc1,2,0x14,0x3f, 0x80,0xaa,0xbd,0xc1,2,0x14,0x3f,0x80,0xc7,0x2e,0xc1,2,0x34,0x3f,0x80,0x1d, 6,0xc1,2,0x34,0x3f,0x80,0xb2,0x3f,0xc1,2,0x34,0x3f,0x80,0xa0,1,0xc1, 2,0x34,0x3f,0xc0,0xfd,0xc1,2,0x34,0x3f,0xc0,0x88,0xc1,2,0x6c,0x3f,0xc0, 9,0xc1,2,0x6c,0x3f,0xc0,0x6c,0xc1,2,0x6c,0x3f,0xc0,0xc8,0xc1,2,0x6c, 0x3f,0x80,0xfb,3,0xc1,2,0x7c,0x3f,0xc0,0x2c,0xc1,2,0x7c,0x3f,0x80,0xb7, 0x45,0xc1,2,0x34,0x3f,0xc0,0x2d,0xc1,2,0x34,0x3f,0x80,0xfa,5,0xc1,2, 0x34,0x3f,0x80,0x29,1,0xc1,2,0x34,0x3f,0x80,0xe4,0x17,0xc1,2,0x34,0x3f, 0xc0,0x98,0xc1,2,0x34,0x3f,0xc0,0x95,0xc1,2,0x34,0x3f,0xc0,0x66,0xc1,2, 0x74,0x3f,0x86,0xa4,0x4f,-1,0 }; char vmm2222[]={ // 0x80,0xfc,0xff, // 0xc1,4,0x52,0x52,0x4c,0x21,0xc0,0x1c,0xc1,1,2,0x80,0xdf,3, 0xc1,4,0x52,0x52,0x4c,0x21,0xc0,0x30,0xc1,1,0xe,0xc0,0x3f,0xc1,1, 2,0xc0,7,0xc1,1,2,0xc0,0x4b,0xc1,2,0x2c,1,0xc0,0x5e,0xc1,2, 0x1c,0xb2,0x80,0xd3,3,0xc1,0xcd,2,0,0,0,2,0,0,0,6, 0,0,0,6,0,0,0,2,0,0,0,0xe,0,0,0,6, 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0x1e, 0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0x3e, 0,0,0,2,0,0,0,0xe,0,0,0,0xe,0,0,0,0xe, 0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,6, 0,0,0,6,0,0,0,0x1e,0,0,0,0x1e,0,0,0,6, 0,0,0,2,0,0,0,0xe,0,0,0,0xe,0,0,0,0xe, 0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,2, 0,0,0,0x3e,0,0,0,6,0,0,0,6,0,0,0,2, 0,0,0,6,0,0,0,2,0,0,0,0x3e,0,0,0,0x1e, 0,0,0,0x3e,0x80,0xe2,1,0xc1,2,0x2c,0x3d,0x80,0x17,4,0xc1,2, 0x2c,0x3d,0x80,0x5b,4,0xc1,2,0x14,0x3d,0x80,0xeb,8,0xc1,2,0x14,0x3d, 0x80,0xd9,2,0xc1,2,0x34,0x3d,0x80,0xe7,0x27,0xc1,2,0x14,0x3d,0xc0,7, 0xc1,2,0x14,0x3d,0x80,0x4a,1,0xc1,2,0x1c,0x3d,0xc0,0xb,0xc1,2,0x14, 0x3d,0xc0,0x47,0xc1,2,0x3c,0x3d,0xc0,0xb,0xc1,2,0x34,0x3d,0x80,0x34,1, 0xc1,2,0x1c,0x3d,0xc0,0x61,0xc1,2,0x3c,0x3d,0x80,0xc7,8,0xc1,2,0x14, 0x3d,0x80,0x2e,5,0xc1,2,0x14,0x3d,0x80,0x8a,1,0xc1,2,0x34,0x3d,0x80, 6,0x18,0xc1,2,0x1c,0x3d,0xc0,0x95,0xc1,2,0x14,0x3d,0x80,0xa5,1,0xc1, 6,0x10,0,0,0,0x90,0xa6,0xc2,2,1,0,0xc0,0x2f,0xc1,2,0x14, 0x3d,0xc0,0x6e,0xc1,2,0x1c,0x3d,0x80,0xa7,1,0xc1,2,0x14,0x3d,0x80,4, 9,0xc1,2,0x34,0x3d,0x80,0x12,0xd,0xc1,2,0x34,0x3d,0x80,0xdd,0x11,0xc1, 2,0x34,0x3d,0x80,0x77,4,0xc1,2,0x14,0x3d,0x80,0xce,2,0xc1,2,0x14, 0x3d,0x80,0x3c,8,0xc1,2,0x14,0x3d,0x80,5,1,0xc1,2,0x2c,0x3d,0xc0, 0x78,0xc1,2,0x1c,0x3d,0x80,0x17,6,0xc1,2,0x14,0x3d,0x80,0x2d,2,0xc1, 2,0x14,0x3d,0xc0,0xf1,0xc1,2,0x14,0x3d,0x80,0x87,4,0xc5,2,0,0x80, 0xe4,5,0xc1,2,0x2c,0x3d,0xc0,0x48,0xc1,2,0x2c,0x3d,0xc0,0x12,0xc1,2, 0x2c,0x3d,0x80,0x2d,0x21,0xc1,2,0x2c,0x3d,0x80,0x39,0x1a,0xc1,2,0x14,0x3d, 0xc0,0x3b,0xc1,2,0x14,0x3d,0x80,0xe4,0x33,0xc1,2,0x14,0x3d,0xc0,0x42,0xc1, 2,0x14,0x3d,0x80,0x4a,0x14,0xc1,2,0x34,0x3d,0xc0,0x53,0xc1,2,0x34,0x3d, 0xc0,0xa5,0xc1,2,0x34,0x3d,0xc0,0x59,0xc1,2,0x34,0x3d,0xc0,0x19,0xc1,2, 0x34,0x3d,0xc0,0x28,0xc1,2,0x34,0x3d,0xc0,0x79,0xc1,2,0x34,0x3d,0xc0,0x13, 0xc1,2,0x34,0x3d,0xc0,0x99,0xc1,2,0x34,0x3d,0x80,0x44,0x99,0xc1,6,0x14, 0x3d,0,0,0x14,0x3d,0x80,0x82,0xb,0xc1,2,0x34,0x3d,0x80,0x6a,1,0xc1, 2,0x14,0x3d,0x80,0x35,2,0xc1,2,0x3c,0x3d,0xc0,0xb,0xc1,2,0x1c,0x3d, 0xc0,0x13,0xc1,2,0x3c,0x3d,0xc0,0xf,0xc1,2,0x1c,0x3d,0x80,0x5b,0x14,0xc1, 2,0x1c,0x3d,0xc0,0xe,0xc1,2,0x3c,0x3d,0xc0,0xf,0xc1,2,0x1c,0x3d,0xc0, 0x19,0xc1,2,0x3c,0x3d,0x80,0xef,0x3c,0xc1,2,0x14,0x3d,0xc0,0x5f,0xc1,2, 0x14,0x3d,0xc0,8,0xc1,2,0x14,0x3d,0x80,0xc0,2,0xc1,2,0x14,0x3d,0x80, 0xf7,0xd,0xc1,2,0x14,0x3d,0xc0,0x83,0xc1,2,0x14,0x3d,0x80,0x8e,1,0xc1, 2,0x14,0x3d,0xc0,0xf2,0xc1,2,0x34,0x3d,0x80,0xa3,0xb6,0xc1,2,0x14,0x3d, 0x80,0xab,3,0xc1,2,0x1c,0x3d,0x80,0xa3,3,0xc1,2,0x1c,0x3d,0xc0,0x90, 0xc1,2,0xa4,6,0xc0,5,0xc1,2,0xa4,6,0x80,0x23,1,0xc1,2,0x30, 0xc3,0xc0,6,0xc1,2,0x30,0xc3,0xc0,0x27,0xc1,3,0x90,0xa6,1,0xc0,0x3f, 0xc1,2,0x14,0x3d,0xc0,0x6b,0xc1,2,0x14,0x3d,0xc0,0x26,0xc1,2,0x14,0x3d, 0xc0,0x2e,0xc1,2,0x14,0x3d,0xc0,0x35,0xc1,2,0x14,0x3d,0xc0,0x2c,0xc1,2, 0x14,0x3d,0x80,0x35,1,0xc1,1,0xc,0xc0,0x3e,0xc1,1,0xc0,0xc0,0x73,0xc1, 2,0x14,0x3d,0xc0,0x12,0xc1,2,0x14,0x3d,0x80,0x89,2,0xc1,2,0x14,0x3d, 0xc0,0x16,0xc1,2,0x14,0x3d,0xc0,0x2f,0xc1,2,0x14,0x3d,0xc0,0xdb,0xc1,1, 0x80,0xc0,0x19,0xc1,1,0x80,0x80,0x50,2,0xc1,2,0x14,0x3d,0xc0,0x38,0xc1, 1,0x24,0x80,0xbe,0x21,0xc1,2,0x34,0x3d,0x80,0x6f,3,0xc1,2,0x34,0x3d, 0xc0,0x54,0xc1,2,0x34,0x3d,0x40,0x2e,8,1,0xc1,2,0x34,0x3d,0x80,0xaa, 0xbd,0xc1,2,0x34,0x3d,0x80,0xf7,0x2e,0xc1,2,0x14,0x3d,0x80,0x1d,6,0xc1, 2,0x14,0x3d,0x80,0x82,0x3f,0xc1,2,0x14,0x3d,0x80,0xa0,1,0xc1,2,0x14, 0x3d,0xc0,0xfd,0xc1,2,0x14,0x3d,0xc0,0x88,0xc1,2,0x2c,0x3d,0xc0,9,0xc1, 2,0x2c,0x3d,0xc0,0x6c,0xc1,2,0x2c,0x3d,0xc0,0xc8,0xc1,2,0x2c,0x3d,0x80, 0xfb,3,0xc1,2,0x1c,0x3d,0xc0,0x2c,0xc1,2,0x1c,0x3d,0x80,0xb7,0x45,0xc1, 2,0x14,0x3d,0xc0,0x2d,0xc1,2,0x14,0x3d,0x80,0xfa,5,0xc1,2,0x14,0x3d, 0x80,0x29,1,0xc1,2,0x14,0x3d,0x80,0xe4,0x17,0xc1,2,0x14,0x3d,0xc0,0x98, 0xc1,2,0x14,0x3d,0xc0,0x95,0xc1,2,0x14,0x3d,0xc0,0x66,0xc1,2,0x14,0x3d, 0x80,0x7c,0x4d,-1,0 }; char vmm2223[]={ // 0x80,0xfc,0xf7, 0xc1,4,0x52,0x52,0x4c,0x21,0xc0,0x30,0xc1,1,2,0xc0,0x3f, 0xc1,1,6,0xc0,7,0xc1,1,6,0xc0,0x4b,0xc1,2,0x2c,1,0xc0,0x5e, 0xc1,2,0x1c,0xb2,0x80,0xd3,3,0xc1,0xcd,6,0,0,0,0xfe,0,0, 0,2,0,0,0,2,0,0,0,0x3e,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,6,0,0,0,0xe,0,0,0,6,0,0, 0,2,0,0,0,0xe,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,0x1e,0,0,0,0x1e,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,0x1e,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,0x7e,0,0,0,2,0,0,0,6,0,0, 0,6,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,6,0,0,0,2,0,0,0,0xfe,0x1f,0,0,2,0,0, 0,2,0,0,0,2,0x80,0xa0,2,0xc1,2,0x2c,0x3d,0x80,0xe7,3, 0xc1,2,0x2c,0x3d,0x80,0xc1,4,0xc1,2,0x34,0x3d,0x80,0xd1,6,0xc1,2, 0xf4,0x3d,0x80,0xb2,4,0xc1,2,0x14,0x3d,0x80,0xe6,0x25,0xc1,2,0xf4,0x3d, 0xc0,7,0xc1,2,0xf4,2,0x80,2,3,0xc1,2,0x3c,0x3d,0xc0,0xb,0xc1, 2,0x34,0x3d,0xc0,0x2d,0xc1,2,0x1c,0x3d,0xc0,0x14,0xc1,2,0x14,0x3d,0x80, 0x3b,1,0xc1,2,0x3c,0x3d,0xc0,0x55,0xc1,2,0x1c,0x3d,0x80,0xb0,9,0xc1, 2,0x34,0x3d,0x80,0x77,5,0xc1,2,0x34,0x3d,0x80,0x87,1,0xc1,2,0x14, 0x3d,0x80,0x6e,0x15,0xc1,2,0xf4,0x3d,0xc0,0x6a,0xc1,2,0xfc,0x3d,0x80,0x39, 2,0xc1,2,0x3c,0x3d,0xc0,0x8f,0xc1,2,0x34,0x3d,0xc0,0x4b,0xc1,6,0x10, 0,0,0,0x90,0xa6,0xc2,2,1,0,0x80,0xa0,2,0xc1,2,0x34,0x3d, 0x80,0x3e,0xa,0xc1,2,0x14,0x3d,0x80,0x30,0xc,0xc1,2,0x14,0x3d,0x80,0x3e, 0x11,0xc1,2,0x14,0x3d,0x80,0x17,5,0xc1,2,0x34,0x3d,0x80,0xdc,2,0xc1, 2,0x34,0x3d,0x80,0x61,6,0xc1,2,0xec,0x3d,0xc0,0x67,0xc1,2,0xfc,0x3d, 0x80,0x9f,1,0xc1,2,0x34,0x3d,0x80,0x4f,7,0xc1,2,0x34,0x3d,0x80,0x1e, 1,0xc1,2,0xf4,0x3d,0xc0,0xc7,0xc1,2,0x34,0x3d,0x80,0xe9,4,0xc5,2, 0,0x80,0xe4,5,0xc1,2,0x2c,0x3d,0xc0,0x48,0xc1,2,0x2c,0x3d,0xc0,0x12, 0xc1,2,0x2c,0x3d,0x80,0x2d,0x21,0xc1,2,0x2c,0x3d,0x80,0x39,0x1a,0xc1,2, 0x34,0x3d,0xc0,0x3b,0xc1,2,0x34,0x3d,0x80,0xe4,0x33,0xc1,2,0xf4,0x3d,0xc0, 0x42,0xc1,2,0xf4,0x3d,0x80,0x4a,0x14,0xc1,2,0x14,0x3d,0xc0,0x53,0xc1,2, 0x14,0x3d,0xc0,0xa5,0xc1,2,0x14,0x3d,0xc0,0x59,0xc1,2,0x14,0x3d,0xc0,0x19, 0xc1,2,0x14,0x3d,0xc0,0x28,0xc1,2,0x14,0x3d,0xc0,0x79,0xc1,2,0x14,0x3d, 0xc0,0x13,0xc1,2,0x14,0x3d,0xc0,0x99,0xc1,2,0x14,0x3d,0x80,0x44,0x99,0xc1, 6,0xf4,0x3d,0,0,0xf4,2,0x80,0x82,0xb,0xc1,2,0x14,0x3d,0x80,0x6a, 1,0xc1,2,0x34,0x3d,0x80,0x45,2,0xc1,2,0x1c,0x3d,0xc0,0xb,0xc1,2, 0x3c,0x3d,0xc0,0x13,0xc1,2,0x1c,0x3d,0xc0,0xf,0xc1,2,0x3c,0x3d,0x80,0x5b, 0x14,0xc1,2,0x3c,0x3d,0xc0,0xe,0xc1,2,0x1c,0x3d,0xc0,0xf,0xc1,2,0x3c, 0x3d,0xc0,0x19,0xc1,2,0x1c,0x3d,0x80,0xdf,0x3c,0xc1,2,0x34,0x3d,0xc0,0x5f, 0xc1,2,0x34,0x3d,0xc0,8,0xc1,2,0x34,0x3d,0x80,0xc0,2,0xc1,2,0x34, 0x3d,0x80,0xf7,0xd,0xc1,2,0x34,0x3d,0xc0,0x83,0xc1,2,0x34,0x3d,0x80,0x8e, 1,0xc1,2,0x34,0x3d,0xc0,0xf2,0xc1,2,0x14,0x3d,0x80,0xa3,0xb6,0xc1,2, 0xf4,0x3d,0x80,0xab,3,0xc1,2,0xfc,0x3d,0x80,0xa3,3,0xc1,2,0x3c,0x3d, 0xc0,0x90,0xc1,2,0xa4,6,0xc0,5,0xc1,2,0xa4,6,0x80,0x23,1,0xc1, 2,0x30,0xc3,0xc0,6,0xc1,2,0x30,0xc3,0xc0,0x27,0xc1,3,0x90,0xa6,1, 0xc0,0x3f,0xc1,2,0x34,0x3d,0xc0,0x6b,0xc1,2,0x34,0x3d,0xc0,0x26,0xc1,2, 0x34,0x3d,0xc0,0x2e,0xc1,2,0x34,0x3d,0xc0,0x35,0xc1,2,0x34,0x3d,0xc0,0x2c, 0xc1,2,0x34,0x3d,0x80,0x35,1,0xc1,1,0xc,0xc0,0x3e,0xc1,1,0xc0,0xc0, 0x73,0xc1,2,0x34,0x3d,0xc0,0x12,0xc1,2,0x34,0x3d,0x80,0x89,2,0xc1,2, 0x34,0x3d,0xc0,0x16,0xc1,2,0x34,0x3d,0xc0,0x2f,0xc1,2,0x34,0x3d,0xc0,0xdb, 0xc1,1,0x80,0xc0,0x19,0xc1,1,0x80,0x80,0x50,2,0xc1,2,0x34,0x3d,0xc0, 0x38,0xc1,1,0x24,0x80,0xbe,0x21,0xc1,2,0x14,0x3d,0x80,0x6f,3,0xc1,2, 0x14,0x3d,0xc0,0x54,0xc1,2,0x14,0x3d,0x40,0x2e,8,1,0xc1,2,0x14,0x3d, 0x80,0xaa,0xbd,0xc1,2,0x14,0x3d,0x80,0xf7,0x2e,0xc1,2,0x34,0x3d,0x80,0x1d, 6,0xc1,2,0x34,0x3d,0x80,0x82,0x3f,0xc1,2,0x34,0x3d,0x80,0xa0,1,0xc1, 2,0x34,0x3d,0xc0,0xfd,0xc1,2,0x34,0x3d,0xc0,0x88,0xc1,2,0xec,0x3d,0xc0, 9,0xc1,2,0xec,0x3d,0xc0,0x6c,0xc1,2,0xec,0x3d,0xc0,0xc8,0xc1,2,0xec, 0x3d,0x80,0xfb,3,0xc1,2,0xfc,0x3d,0xc0,0x2c,0xc1,2,0xfc,0x3d,0x80,0xb7, 0x45,0xc1,2,0x34,0x3d,0xc0,0x2d,0xc1,2,0x34,0x3d,0x80,0xfa,5,0xc1,2, 0x34,0x3d,0x80,0x29,1,0xc1,2,0x34,0x3d,0x80,0xe4,0x17,0xc1,2,0x34,0x3d, 0xc0,0x98,0xc1,2,0x34,0x3d,0xc0,0x95,0xc1,2,0x34,0x3d,0xc0,0x66,0xc1,2, 0xf4,0x3d,0x86,0xa4,0x4f,-1,0 }; char vmm2225[]={ // 0x80,0xfc,0xf9, 0xc1,4,0x52,0x52,0x4c,0x21,0xc0,0x30,0xc1,1,6,0xc0,0x3f, 0xc1,1,0x1e,0xc0,7,0xc1,1,0x1e,0xc0,0x4b,0xc1,2,0x6c,7,0xc0,0x5e, 0xc1,2,0x1c,0xb2,0x80,0xdb,3,0xc1,0xce,6,0,0,0,6,0,0, 0,6,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,0xe,0,0,0,0xe,0,0,0,0xe,0,0,0,0xe,0,0, 0,0xe,0,0,0,0xe,0,0,0,0xe,0,0,0,0xe,0,0, 0,0xe,0,0,0,0xe,0,0,0,0xe,0,0,0,0xe,0,0, 0,6,0,0,0,2,0,0,0,6,0,0,0,0xe,0,0, 0,2,0,0,0,6,0,0,0,0xe,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,0x3e,0,0, 0,6,0,0,0,2,0,0,0,0xe,0,0,0,2,0,0, 0,0xe,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,0xe,0,0,0,0x1e,0,0,0,2,0,0,0,6,0,0, 0,0x1e,0,0,0,6,0,0,0,6,0,0,0,2,0,0, 0,0x1e,0,0,0,0xfe,1,0xc0,0x50,0xc1,2,0x6c,3,0x80,0xad,4, 0xc1,2,0x6c,3,0x80,0xcd,6,0xc1,2,0x14,3,0x80,0xea,6,0xc1,2, 0x14,3,0x80,0xac,1,0xc1,2,0x74,3,0x80,0xc1,0x28,0xc1,2,0x14,3, 0xc0,7,0xc1,2,0x14,3,0x80,0xa,1,0xc1,2,0x7c,3,0xc0,0xb,0xc1, 2,0x74,3,0x80,0x46,2,0xc1,2,0x1c,3,0xc0,0xb,0xc1,2,0x14,3, 0xc0,0x22,0xc1,2,0x7c,3,0x80,0x13,1,0xc1,2,0x1c,3,0x80,0xc9,0xa, 0xc1,2,0x14,3,0x80,0x81,1,0xc1,2,0x74,3,0x80,0x4b,4,0xc1,2, 0x14,3,0x80,0x6c,0x16,0xc1,2,0x14,3,0xc0,0x6f,0xc1,2,0x1c,3,0x80, 0xba,1,0xc1,6,0x10,0,0,0,0x90,0xa6,0xc2,2,1,0,0xc0,0xa4, 0xc1,2,0x1c,3,0xc0,0x6c,0xc1,2,0x14,3,0x80,0x14,3,0xc1,2,0x14, 3,0x80,0xd1,4,0xc1,2,0x74,3,0x80,0xeb,0xe,0xc1,2,0x74,3,0x80, 0xd,0x12,0xc1,2,0x74,3,0x80,0xba,6,0xc1,2,0x14,3,0x80,0xf2,2, 0xc1,2,0x14,3,0x80,0x19,6,0xc1,2,0x6c,3,0xc0,0x59,0xc1,2,0x1c, 3,0x80,0x92,1,0xc1,2,0x14,3,0x80,0x3b,7,0xc1,2,0x14,3,0x80, 0xe,1,0xc1,2,0x14,3,0xc0,0xaa,0xc1,2,0x14,3,0x80,0x6c,4,0xc5, 2,0,0x80,0xe4,5,0xc1,2,0x6c,3,0xc0,0x48,0xc1,2,0x6c,3,0xc0, 0x12,0xc1,2,0x6c,3,0x80,0x4d,0x21,0xc1,2,0x6c,3,0x80,0x79,0x1a,0xc1, 2,0x14,3,0xc0,0x3b,0xc1,2,0x14,3,0x80,4,0x34,0xc1,2,0x14,3, 0xc0,0x42,0xc1,2,0x14,3,0x80,0x4a,0x14,0xc1,2,0x74,3,0xc0,0x53,0xc1, 2,0x74,3,0xc0,0xa5,0xc1,2,0x74,3,0xc0,0x59,0xc1,2,0x74,3,0xc0, 0x19,0xc1,2,0x74,3,0xc0,0x28,0xc1,2,0x74,3,0xc0,0x79,0xc1,2,0x74, 3,0xc0,0x13,0xc1,2,0x74,3,0xc0,0x99,0xc1,2,0x74,3,0x80,0x58,0x99, 0xc1,6,0x14,3,0,0,0x14,3,0x80,0x7e,0xb,0xc1,2,0x74,3,0x80, 0x6a,1,0xc1,2,0x14,3,0x80,0x45,2,0xc1,2,0x7c,3,0xc0,0xb,0xc1, 2,0x1c,3,0xc0,0x13,0xc1,2,0x7c,3,0xc0,0xf,0xc1,2,0x1c,3,0x80, 0x95,0x14,0xc1,2,0x1c,3,0xc0,0xe,0xc1,2,0x7c,3,0xc0,0xf,0xc1,2, 0x1c,3,0xc0,0x17,0xc1,2,0x7c,3,0x80,0x17,0x4c,0xc1,2,0x14,3,0xc0, 0x5f,0xc1,2,0x14,3,0xc0,8,0xc1,2,0x14,3,0x80,0xc0,2,0xc1,2, 0x14,3,0x80,0xf7,0xd,0xc1,2,0x14,3,0xc0,0x83,0xc1,2,0x14,3,0x80, 0x8e,1,0xc1,2,0x14,3,0xc0,0xf2,0xc1,2,0x74,3,0x80,0xe3,0xb6,0xc1, 2,0x14,3,0x80,0xab,3,0xc1,2,0x1c,3,0x80,0xa3,3,0xc1,2,0x1c, 3,0xc0,0x90,0xc1,2,0xa4,6,0xc0,5,0xc1,2,0xa4,6,0x80,0x23,1, 0xc1,2,0x30,0xc3,0xc0,6,0xc1,2,0x30,0xc3,0xc0,0x27,0xc1,3,0x90,0xa6, 1,0xc0,0x3f,0xc1,2,0x14,3,0xc0,0x6b,0xc1,2,0x14,3,0xc0,0x26,0xc1, 2,0x14,3,0xc0,0x2e,0xc1,2,0x14,3,0xc0,0x35,0xc1,2,0x14,3,0xc0, 0x2c,0xc1,2,0x14,3,0x80,0x35,1,0xc1,1,0xc,0xc0,0x3e,0xc1,1,0xc0, 0xc0,0x73,0xc1,2,0x14,3,0xc0,0x12,0xc1,2,0x14,3,0x80,0x89,2,0xc1, 2,0x14,3,0xc0,0x16,0xc1,2,0x14,3,0xc0,0x2f,0xc1,2,0x14,3,0xc0, 0xdb,0xc1,1,0x80,0xc0,0x19,0xc1,1,0x80,0x80,0x50,2,0xc1,2,0x14,3, 0xc0,0x38,0xc1,1,0x24,0x80,0xbe,0x21,0xc1,2,0x74,3,0x80,0x6f,3,0xc1, 2,0x74,3,0xc0,0x54,0xc1,2,0x74,3,0x40,0xee,7,1,0xc1,2,0x74, 3,0x80,0xaa,0xbd,0xc1,2,0x74,3,0x80,0xf7,0x2e,0xc1,2,0x14,3,0x80, 0x1d,6,0xc1,2,0x14,3,0x80,0x82,0x3f,0xc1,2,0x14,3,0x80,0xa0,1, 0xc1,2,0x14,3,0xc0,0xfd,0xc1,2,0x14,3,0xc0,0x88,0xc1,2,0x6c,3, 0xc0,9,0xc1,2,0x6c,3,0xc0,0x6c,0xc1,2,0x6c,3,0xc0,0xc8,0xc1,2, 0x6c,3,0x80,0xfb,3,0xc1,2,0x1c,3,0xc0,0x2c,0xc1,2,0x1c,3,0x80, 0xb7,0x45,0xc1,2,0x14,3,0xc0,0x2d,0xc1,2,0x14,3,0x80,0xfa,5,0xc1, 2,0x14,3,0x80,0x29,1,0xc1,2,0x14,3,0x80,0xe4,0x17,0xc1,2,0x14, 3,0xc0,0x98,0xc1,2,0x14,3,0xc0,0x95,0xc1,2,0x14,3,0xc0,0x66,0xc1, 2,0x14,3,0x86,0xa4,0x4f,-1,0 }; char vmm2226[]={ // 0x80,0xfc,0xf7, 0xc1,4,0x52,0x52,0x4c,0x21,0xc0,0x30,0xc1,1,0x3e,0xc0,0x3f, 0xc1,1,2,0xc0,7,0xc1,1,2,0xc0,0x4b,0xc1,2,0x2c,1,0xc0,0x5e, 0xc1,2,0x1c,0xb2,0x80,0xd3,3,0xc1,0xcd,6,0,0,0,0xfe,0,0, 0,2,0,0,0,2,0,0,0,0x3e,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,6,0,0,0,0xe,0,0,0,6,0,0, 0,2,0,0,0,0xe,0,0,0,2,0,0,0,2,0,0, 0,2,0,0,0,2,0,0,0,0x1e,0,0,0,0x1e,0,0, 0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0, 0,0xe,0,0,0,2,0,0,0,0x3e,0,0,0,0x1e,0,0, 0,0xfe,7,0,0,2,0,0,0,6,0,0,0,2,0,0, 0,2,0,0,0,0xe,0,0,0,6,0,0,0,6,0,0, 0,2,0,0,0,6,0,0,0,2,0,0,0,0xe,0,0, 0,0xe,0,0,0,0xe,0x80,0xa0,2,0xc1,2,0x2c,0x3d,0x80,0xe7,3, 0xc1,2,0x2c,0x3d,0x80,0xc1,4,0xc1,2,0x34,0x3d,0x80,0xd1,6,0xc1,2, 0x74,0x3d,0x80,0xb2,4,0xc1,2,0x14,0x3d,0x80,0xe6,0x25,0xc1,2,0x74,0x3d, 0xc0,7,0xc1,2,0x74,3,0x80,0xf4,2,0xc1,2,0x3c,0x3d,0xc0,0x19,0xc1, 2,0x34,0x3d,0xc0,0x2d,0xc1,2,0x1c,0x3d,0xc0,0x14,0xc1,2,0x14,0x3d,0x80, 0x3b,1,0xc1,2,0x3c,0x3d,0xc0,0x55,0xc1,2,0x1c,0x3d,0x80,0xb0,9,0xc1, 2,0x34,0x3d,0x80,0x77,5,0xc1,2,0x34,0x3d,0x80,0x87,1,0xc1,2,0x14, 0x3d,0x80,0x6e,0x15,0xc1,2,0x74,0x3d,0xc0,0x6a,0xc1,2,0x7c,0x3d,0x80,0x39, 2,0xc1,2,0x3c,0x3d,0xc0,0x8f,0xc1,2,0x34,0x3d,0xc0,0x4b,0xc1,6,0x10, 0,0,0,0x90,0xa6,0xc2,2,1,0,0x80,0xa9,2,0xc1,2,0x34,0x3d, 0x80,0x35,0xa,0xc1,2,0x14,0x3d,0x80,0x30,0xc,0xc1,2,0x14,0x3d,0x80,0x3e, 0x11,0xc1,2,0x14,0x3d,0x80,7,5,0xc1,2,0x34,0x3d,0x80,0xf8,2,0xc1, 2,0x34,0x3d,0x80,0x5b,6,0xc1,2,0x6c,0x3d,0xc0,0x67,0xc1,2,0x7c,0x3d, 0x80,0xa9,1,0xc1,2,0x34,0x3d,0x80,0x55,7,0xc1,2,0x34,0x3d,0x80,0xe, 1,0xc1,2,0x74,0x3d,0xc0,0xd5,0xc1,2,0x34,0x3d,0x80,0xd5,4,0xc5,2, 0,0x80,0xe4,5,0xc1,2,0x2c,0x3d,0xc0,0x48,0xc1,2,0x2c,0x3d,0xc0,0x12, 0xc1,2,0x2c,0x3d,0x80,0x2d,0x21,0xc1,2,0x2c,0x3d,0x80,0x39,0x1a,0xc1,2, 0x34,0x3d,0xc0,0x3b,0xc1,2,0x34,0x3d,0x80,0xe4,0x33,0xc1,2,0x74,0x3d,0xc0, 0x42,0xc1,2,0x74,0x3d,0x80,0x4a,0x14,0xc1,2,0x14,0x3d,0xc0,0x53,0xc1,2, 0x14,0x3d,0xc0,0xa5,0xc1,2,0x14,0x3d,0xc0,0x59,0xc1,2,0x14,0x3d,0xc0,0x19, 0xc1,2,0x14,0x3d,0xc0,0x28,0xc1,2,0x14,0x3d,0xc0,0x79,0xc1,2,0x14,0x3d, 0xc0,0x13,0xc1,2,0x14,0x3d,0xc0,0x99,0xc1,2,0x14,0x3d,0x80,0x44,0x99,0xc1, 6,0x74,0x3d,0,0,0x74,3,0x80,0x82,0xb,0xc1,2,0x14,0x3d,0x80,0x6a, 1,0xc1,2,0x34,0x3d,0x80,0x45,2,0xc1,2,0x1c,0x3d,0xc0,0xb,0xc1,2, 0x3c,0x3d,0xc0,0x13,0xc1,2,0x1c,0x3d,0xc0,0xf,0xc1,2,0x3c,0x3d,0x80,0x95, 0x14,0xc1,2,0x3c,0x3d,0xc0,0xe,0xc1,2,0x1c,0x3d,0xc0,0xf,0xc1,2,0x3c, 0x3d,0xc0,0x17,0xc1,2,0x1c,0x3d,0x80,0xa7,0x3c,0xc1,2,0x34,0x3d,0xc0,0x5f, 0xc1,2,0x34,0x3d,0xc0,8,0xc1,2,0x34,0x3d,0x80,0xc0,2,0xc1,2,0x34, 0x3d,0x80,0xf7,0xd,0xc1,2,0x34,0x3d,0xc0,0x83,0xc1,2,0x34,0x3d,0x80,0x8e, 1,0xc1,2,0x34,0x3d,0xc0,0xf2,0xc1,2,0x14,0x3d,0x80,0xa3,0xb6,0xc1,2, 0x74,0x3d,0x80,0xab,3,0xc1,2,0x7c,0x3d,0x80,0xa3,3,0xc1,2,0x3c,0x3d, 0xc0,0x90,0xc1,2,0xa4,6,0xc0,5,0xc1,2,0xa4,6,0x80,0x23,1,0xc1, 2,0x30,0xc3,0xc0,6,0xc1,2,0x30,0xc3,0xc0,0x27,0xc1,3,0x90,0xa6,1, 0xc0,0x3f,0xc1,2,0x34,0x3d,0xc0,0x6b,0xc1,2,0x34,0x3d,0xc0,0x26,0xc1,2, 0x34,0x3d,0xc0,0x2e,0xc1,2,0x34,0x3d,0xc0,0x35,0xc1,2,0x34,0x3d,0xc0,0x2c, 0xc1,2,0x34,0x3d,0x80,0x35,1,0xc1,1,0xc,0xc0,0x3e,0xc1,1,0xc0,0xc0, 0x73,0xc1,2,0x34,0x3d,0xc0,0x12,0xc1,2,0x34,0x3d,0x80,0x89,2,0xc1,2, 0x34,0x3d,0xc0,0x16,0xc1,2,0x34,0x3d,0xc0,0x2f,0xc1,2,0x34,0x3d,0xc0,0xdb, 0xc1,1,0x80,0xc0,0x19,0xc1,1,0x80,0x80,0x50,2,0xc1,2,0x34,0x3d,0xc0, 0x38,0xc1,1,0x24,0x80,0xbe,0x21,0xc1,2,0x14,0x3d,0x80,0x6f,3,0xc1,2, 0x14,0x3d,0xc0,0x54,0xc1,2,0x14,0x3d,0x40,0x2e,8,1,0xc1,2,0x14,0x3d, 0x80,0xaa,0xbd,0xc1,2,0x14,0x3d,0x80,0x17,0x2f,0xc1,2,0x34,0x3d,0x80,0x1d, 6,0xc1,2,0x34,0x3d,0x80,0x62,0x3f,0xc1,2,0x34,0x3d,0x80,0xa0,1,0xc1, 2,0x34,0x3d,0xc0,0xfd,0xc1,2,0x34,0x3d,0xc0,0x88,0xc1,2,0x6c,0x3d,0xc0, 9,0xc1,2,0x6c,0x3d,0xc0,0x6c,0xc1,2,0x6c,0x3d,0xc0,0xc8,0xc1,2,0x6c, 0x3d,0x80,0xfb,3,0xc1,2,0x7c,0x3d,0xc0,0x2c,0xc1,2,0x7c,0x3d,0x80,0xb7, 0x45,0xc1,2,0x34,0x3d,0xc0,0x2d,0xc1,2,0x34,0x3d,0x80,0xfa,5,0xc1,2, 0x34,0x3d,0x80,0x29,1,0xc1,2,0x34,0x3d,0x80,0xe4,0x17,0xc1,2,0x34,0x3d, 0xc0,0x98,0xc1,2,0x34,0x3d,0xc0,0x95,0xc1,2,0x34,0x3d,0xc0,0x66,0xc1,2, 0x74,0x3d,0x86,0xa4,0x4f,-1,0 }; char vmm3000[]={ // 0x80,0xfc,0xcf, // 0xc1,4,0x52,0x52,0x4c,0x22,0xc0,0x1c,0xc1,1,0xc,0x80,0xdf,3, 0xc1,4,0x52,0x52,0x4c,0x22,0xc0,0x30,0xc1,1,4,0xc0,0x3f,0xc1,1, 0xc,0xc0,7,0xc1,1,0xc,0x80,0x2c,2,0xc1,2,0x10,3,0x80,0xe2,2, 0xc1,0xd,4,0,0,0,4,0,0,0,0x3c,0,0,0,4,0x80, 0x3f,0xa1,0xc1,2,0xe0,0xbd,0xc0,0x2f,0xc1,6,0x10,0,0,0,0x5c,0x73, 0xc2,2,1,0,0xc0,0x4b,0xc1,6,0x10,0,0,0,0xbc,0x70,0xc2,2, 1,0,0x80,0xaf,0xe,0xc5,4,0,0x40,0xc3,0x55,5,0xc1,2,0x34,0x19, 0xc0,0xb2,0xc1,2,0xd0,0xe2,0x80,0x77,2,0xc1,1,0xa,0xc0,0x29,0xc1,1, 0xa0,0x80,0xc3,0x34,-1,0 }; char vmm3002[]={ // 0x80,4,0xcc, 0xc1,4,0x52,0x52,0x4c,0x22,0xc0,0x30,0xc1,1,4,0xc0,0x3f, 0xc1,1,0xc,0xc0,7,0xc1,1,0xc,0x80,0x2c,2,0xc1,2,0x10,3,0x80, 0xea,2,0xc1,0xd,4,0,0,0,0x1c,0,0,0,4,0,0,0, 0xc,0x80,0x6a,0xa1,0xc1,2,0xe0,0xbd,0xc0,0x2f,0xc1,6,0x10,0,0,0, 0x5c,0x73,0xc2,2,1,0,0xc0,0x4b,0xc1,6,0x10,0,0,0,0xbc,0x70, 0xc2,2,1,0,0x80,0x74,0x1c,0xc5,4,0,0x40,0xc3,0x65,5,0xc1,2, 0x34,0x19,0xc0,0xb2,0xc1,2,0xd0,0xe2,0x80,0x77,2,0xc1,1,0xa,0xc0,0x29, 0xc1,1,0xa0,0x86,0xdd,0x36,-1,0 }; char vmm3003[]={ // 0x80,4,0xcc, 0xc1,4,0x52,0x52,0x4c,0x22,0xc0,0x30,0xc1,1,4,0xc0,0x3f, 0xc1,1,0xc,0xc0,7,0xc1,1,0xc,0x80,0x2c,2,0xc1,2,0x10,3,0x80, 0xea,2,0xc1,0xd,4,0,0,0,0x1c,0,0,0,4,0,0,0, 0xc,0x80,0x6a,0xa1,0xc1,2,0xe0,0xbd,0xc0,0x2f,0xc1,6,0x10,0,0,0, 0x5c,0x73,0xc2,2,1,0,0xc0,0x4b,0xc1,6,0x10,0,0,0,0xbc,0x70, 0xc2,2,1,0,0x80,0x64,0x1c,0xc1,4,0x50,0x32,3,0x78,0xc0,0xc,0xc5, 4,0,0x40,0xc3,0x65,5,0xc1,2,0x34,0x19,0xc0,0xb2,0xc1,2,0xd0,0xe2, 0x80,0x77,2,0xc1,1,0xa,0xc0,0x29,0xc1,1,0xa0,0x86,0xdd,0x36,-1,0 }; char vc1998[]={ 0xc0,0x7c,0xc1,4,0x52,0x52,0x4c,0x20,0x80,0xa5,0x5c,0xc1,2,0x20,1,0xc0, 5,0xc1,2,0x20,1,0x86,0xd0,0x31,-1,0 }; char vc2183[]={ 0xc0,0x7c,0xc1,4,0x52,0x52,0x4c,0x20,0x80,0xa5,0x5c,0xc1,2,0x20,1,0xc0, 5,0xc1,2,0x20,1,0x86,0x11,0x34,-1,0 }; char vc2222[]={ 0xc0,0x7c,0xc1,4,0x52,0x52,0x4c,0x21,0x80,0xa5,0x5c,0xc1,2,0x20,1,0xc0, 5,0xc1,2,0x20,1,0x86,0xd0,0x31,-1,0 }; char vc3000[]={ 0xc0,0x7c,0xc1,4,0x52,0x52,0x4c,0x22,0x80,0x36,0x7d,0xc1,2,0x20,1,0xc0, 5,0xc1,2,0x20,1,0x86,0xf7,2,-1,0 }; #ifdef CAB char vc98[]={ 0xc0,0x7c,0xc1,4,0x52,0x52,0x4c,0x20,0x80,0xa5,0x5c,0xc1,2,0x20,1,0xc0, 5,0xc1,2,0x20,1,0x86,0xf9,0x33,-1,0 }; char vcse[]={ 0xc0,0x7c,0xc1,4,0x52,0x52,0x4c,0x21,0x80,0xa5,0x5c,0xc1,2,0x20,1,0xc0, 5,0xc1,2,0x20,1,0x86,0xf9,0x33,-1,0 }; char vcme[]={ 0xc0,0xc4,0xc1,4,0x52,0x52,0x4c,0x22,0x80,0xee,0x80,0xc1,2,0xa0,1,0xc0, 5,0xc1,2,0xa0,1,0x86,0x2a,5,-1,0 }; #endif long vcksm[]={0xb2a9e5f5,0xa865e82d, 0xbec8673c,0x3d54192d,0x3929dff5,0x6f059bfc, 0xb7cb39e7,0x0712be02,0x42e9a7b0, // VMM.VXD #ifdef CAB 0xb2a9e1f5,0xbec8633c,0xb7cb35e7, // VMM32.VXD #endif 0}; long ccksm[]={0xc4ccba40,0xe358f06f, 0x8d33f070, 0xd7571fdb, // VCACHE.VXD #ifdef CAB 0x1af1ba3f,0xe358f06f,0x3293b2f5, // VCACHE.VXD #endif 0}; long hcksm[]={0x9c872941,0x9c882d41,0}; long vmask1[]={0,0xc600,0xf600,0x104dc,0x10510,0x30e00,0x32e00,0x3ce00,0x3de00,0x100000,0,0}; long vmask2[]={0,0xc600,0xf600,0xf8bc,0xf910,0x30200,0x32200,0x3c200,0x3d200,0x73400,0,0}; long vmask3[]={0,0xc900,0xf900,0xfabc,0xfb10,0x31400,0x33400,0x3d400,0x3e400,0x74600,0,0}; long vmask4[]={0,0xac00,0xcc00,0xd4bc,0xd510,0xd644,0xd648,0x2ea00,0x2fa00,0x39a00,0x3aa00,0x4da00,0x4ea00,0x100000,0,0}; long vmask5[]={0,0xac00,0xcc00,0xccc4,0xcd18,0xcd4c,0xce50,0x2f000,0x30000,0x3a000,0x3b000,0x4e000,0x4f000,0x72e00,0,0}; long cmask1[]={0,0x13c,0x160,0xc00,0x1c00,0x2c00,0x3c00,0x8f00,0,0}; long cmask2[]={0,0x13c,0x178,0xc00,0x1c00,0x4c00,0x5c00,0x8f00,0,0}; long cmask3[]={0,0x184,0x1c0,0x1000,0x2000,0x5000,0x6000,0x84c0,0,0}; long hmask[]={0,0x7c20,0,0}; #ifdef SELF long ring3_98[]={0x40c57,0x4192a,0x41b8e,0x41bc5,0x41c07,0x41c36,0x41c88,0x424fd,0}; long ring3_se[]={0x40c57,0x4192a,0x41b8c,0x41bc3,0x41c05,0x41c34,0x41c86,0x424fd,0}; long ring3_me[]={0x6d577,0x6e0b7,0x6e25c,0x6e9e3,0}; long ring3off[]={0,-0xc00,0,-0xc00,0x640,-0xc00,0,0x1600,0x1600,0,0,0}; long *r3=0; int au=0; #endif char v3name[256]; char vname[256],vback[256]; char cname[256],cback[256]; char hname[256],hback[256]; char *b,*diff; int f,f2,n,np; long base,table[1024],lseek(); int rl(f,b) int f; char *b; { int i,j; i=0; lp: j=_read(f,b+i,1); if (j<1) return(0); if (b[i]<32) { if (i==0) goto lp; b[i]=0;return(i); } if (i<255) i++; goto lp; } uncomp(src,dest) int src,dest; { int i,j,k,l[2]; *(long *)(subr+2792)=0xcbf53de8; // 0xe8,0x3d,0xf5,0xcb call $-0xaco retf i=0;j=(int)(&subr);k=(int)(&l); while(rel[i]) {(*(int *)(subr+rel[i]))+=j-reloff;i++;} rel[0]=0;j+=0xae8; _asm { db 0x60 push ds push es push ds pop es cld mov bx,[k] mov ax,[j] mov [bx],ax mov [bx+2],ds mov si,[src] mov di,[dest] mov ax,0x2000 db 0xff,0x1f pop es pop ds mov [i],ax db 0x61 }; return(i); } int readd(b1,l) char *b1; int l; { memcpy(b1,diff,l);diff+=l;return(l); } int readx(a,bb,l) long a; char *bb; int l; { long y,z; int i,j; a-=base; while(l) { y=a>>13; if (y-np) { lseek(f,table[y],0); z=table[y+1]-table[y];i=z; if (z>0x2000) return(-1); if (z<0x2000) { if (_read(f,b+0x6000,i)>6)&3;j=3-j; readd(z+2,j); z[0]&=0x3f; i= *(unsigned long *)(z+1); switch(z[0]) { case 0x3f: if (_read(f1,b,1)>0) goto badd; return(0); case 0: while(i>0) { j=i; if (j>8192) j=8192; if (_read(f1,b,j)0) { k=i; if (k>8192) k=8192; if (_read(f1,b,k)0) { j=i; if (j>8192) j=8192; readd(b2,j); if (_write(f3,b2,j)0) { k=i; if (k>8192) k=8192; if (_read(f1,b,k)0) { k=i; if (k>8192) k=8192; for (j=1;j0) { k=i; if (k>8192) k=8192; if (_read(f1,b,k)(l+13)) {printf("Invalid %s Name\n",e);return(20);} if (stricmp(n,b)==0) {printf("%s Name Conflicts with Backup Name\n",e);return(20);} (*r)=4; i=_open(n,0); if (i>0) {_close(i);(*r)|=1;} i=_open(b,0); if (i>0) {_close(i);(*r)|=2;} } return(0); } long cksm(f,m) int f; long *m; { int i,j,k; long x,y,z; z=0; lp: x= *(m++);y= *(m++); if (x==y) return(z); lseek(f,x,0); while(x-y) { i=y-x; if (y>(x+0x6000)) i=0x6000; j=_read(f,b,i);j&= -4; for (k=0;k1) if (v[1][0]=='+') {max=getnum(v[1]+1);c--;v++;} *(int *)(vc1998+0xd)= *(int *)(vc1998+0x13)=max^0x320; *(int *)(vc2183+0xd)= *(int *)(vc2183+0x13)=max^0x320; *(int *)(vc2222+0xd)= *(int *)(vc2222+0x13)=max^0x320; *(int *)(vc3000+0xd)= *(int *)(vc3000+0x13)=max^0x320; #ifdef CAB *(int *)(vc98+0xd)= *(int *)(vc98+0x13)=max^0x320; *(int *)(vcse+0xd)= *(int *)(vcse+0x13)=max^0x320; *(int *)(vcme+0xd)= *(int *)(vcme+0x13)=max^0x320; #endif #ifdef SELF if (c>1) if (v[1][0]=='#') {r3++;c--;v++;} if (c>1) if (v[1][0]=='=') {au++;c--;v++;} if ((c>1) && (c-5)) {printf("PATCHMEM [+MAXCACHE] [#Ring3] [=AutoUnInst] [VMM32File VMMFile VCACHEFile HimemFile]\n");return(20);} printf("\nWindows 98/SE/ME RAM Limitation Patch Version 4.0 Beta RRL\nCopyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved.\n\n"); #endif #ifdef PRO if ((c>1) && (c-5)) {printf("PATCHMEM [+MAXCACHE] [VMM32File VMMFile VCACHEFile HimemFile]\n");return(20);} printf("\nWindows 98/SE/ME RAM Limitation Patch Version 4.0 Beta\nCopyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved.\n\n"); #endif #ifdef CAB #ifndef SELF if ((c>1) && (c-5)) {printf("PATCHMEM [+MAXCACHE] [VMM32File VMMFile VCACHEFile HimemFile]\n");return(20);} printf("\nWindows 98/SE/ME RAM Limitation Patch (CAB) Version 4.0 Beta\nCopyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved.\n\n"); #endif #endif #ifdef DEMO if ((c>1) && (c-5)) {printf("PATCHM [+MAXCACHE] [VMM32File VMMFile VCACHEFile HimemFile]\n");return(20);} printf("\nWindows 98/SE/ME RAM Limitation Patch (DEMO) Version 4.0 Beta\nCopyright (C) 2007-2008 by Rudolph R. Loew. All Rights Reserved.\n\n"); #endif v3name[0]=vname[0]=cname[0]=hname[0]=0; b=(char *)malloc(32767); if (b==0) {printf("Not Enough Memory\n");return(20);} f=_open("C:\\MSDOS.SYS",0); if (f<0) goto nodir; while((i=rl(f,b))>0) if (i>9) { if (b[6]=='=') b[6]=0; if (stricmp(b,"WINDIR")==0) if (v3name[0]==0) strcpy(v3name,(char *)b+7); if (i>13) { if (b[10]=='=') b[10]=0; if (hname[0]==0) if (stricmp(b,"WINBOOTDIR")==0) strcpy(hname,(char *)b+11); } } _close(f); nodir: if (v3name[0]) { strcpy(vname,v3name);strcat(vname,"\\SYSTEM\\VMM32\\VMM.VXD"); strcpy(cname,v3name);strcat(cname,"\\SYSTEM\\VMM32\\VCACHE.VXD"); strcat(v3name,"\\SYSTEM\\VMM32.VXD"); } if (hname[0]) strcat(hname,"\\HIMEM.SYS"); if (c>1) { if (v[1][0]=='-') v3name[0]=0; else if (v[1][0]-'*') strcpy(v3name,v[1]); if (v[2][0]=='-') vname[0]=0; else if (v[2][0]-'*') strcpy(vname,v[2]); if (v[3][0]=='-') cname[0]=0; else if (v[3][0]-'*') strcpy(cname,v[3]); if (v[4][0]=='-') hname[0]=0; else if (v[4][0]-'*') strcpy(hname,v[4]); } else { if (v3name[0]==0) {printf("Cannot Locate Windows Directory\n");return(20);} if (hname[0]==0) {printf("Cannot Locate Windows Boot Directory\n");return(20);} } exist=0; if (bakname(v3name,b,"VMM32",&i)) return(20); exist|=i; if (bakname(vname,vback,"VMM",&i)) return(20); exist|=i<<4; if (bakname(cname,cback,"VCACHE",&i)) return(20); exist|=i<<8; if (bakname(hname,hback,"HIMEM",&i)) return(20); exist|=i<<12; if ((exist&0x4440)==0) {printf("No Files Specified for Update\n");return(20);} if (exist&2) {printf("%s Found: Cannot Patch modified VMM32.VXD\n",b);return(20);} if ((exist&0x30)==0x20) { printf("VMM Backup Found without VMM File - Rename (Y/N) ? (N) ");read(0,&i,4); if ((i&0xdf)-'Y') return(20); if (rename(vback,vname)) {printf("Unable To Rename Backup\n");return(20);} exist-=0x10; } if ((exist&0x300)==0x200) { printf("VCACHE Backup Found without VCACHE File - Rename (Y/N) ? (N) ");read(0,&i,4); if ((i&0xdf)-'Y') return(20); if (rename(cback,cname)) {printf("Unable To Rename Backup\n");return(20);} exist-=0x100; } if ((exist&0x3000)==0x2000) { printf("HIMEM Backup Found without HIMEM File - Rename (Y/N) ? (N) ");read(0,&i,4); if ((i&0xdf)-'Y') return(20); if (rename(hback,hname)) {printf("Unable To Rename Backup\n");return(20);} exist-=0x1000; } if ((exist&1)==0) { if (c<5) {printf("%s Missing\n",v3name);return(20);} if ((exist&0x50)==0x40) {printf("%s File Not Found - VMM32File Required\n",vname);return(20);} if ((exist&0x500)==0x400) {printf("%s File Not Found - VMM32File Required\n",cname);return(20);} } if ((exist&0x5000)==0x4000) {printf("%s File Not Found\n",hname);return(20);} t=0;f= -1; if (exist&0x10) f=_open(vname,0); else if (exist&1) f=_open(v3name,0); if (f>=0) { if (_read(f,b,64)<64) {printf("Error Reading VMM Header\n");return(20);} x= *(long *)(b+0x3c); lseek(f,x-4,0); if (_read(f,b,4)<4) {printf("Error Reading Patch Flag\n");return(20);} x= *(long *)b; if (x) { if ((x&0xffffff)-0x4c5252) {printf("Unknown Data in Patch Flag Area\n");return(20);} if ((exist&0x10)==0) {printf("VMM32 File Patched - Uninstall Patch using Original Patcher then Rerun Patch\n");return(20);} t=(x>>24)&255; } _close(f); } if ((exist&0x50)==0x50) { f=_open(vname,0); if (f<0) {printf("Cannot Open VMM File\n");return(20);} if (_read(f,b,64)<64) {printf("Error Reading VMM Header\n");return(20);} z= *(long *)(b+0x3c); lseek(f,z-4,0); if (_read(f,b,4)<4) {printf("Error Reading VMM Patch Flag\n");return(20);} z= *(long *)b; if (z) { if ((z&0xffffff)-0x4c5252) {printf("VMM File Overwritten by Unknown File\n");return(20);} if ((exist&0x20)==0) { printf("\nWARNING: Patched VMM File Found Without Backup - Skipping\n"); exist&=0xff0f; } } else { if (exist&0x20) { printf("VMM File Updated by Other Program\n"); // printf("VMM File Updated by Other Program - Removing Backup\n"); // if (unlink(vback)) {printf("Cannot Remove VMM Backup\n");return(20);} // exist&=0xffdf; } } _close(f); } if ((exist&0x500)==0x500) { f=_open(cname,0); if (f<0) {printf("Cannot Open VCACHE File\n");return(20);} if (_read(f,b,64)<64) {printf("Error Reading VCACHE Header\n");return(20);} z= *(long *)(b+0x3c); lseek(f,z-4,0); if (_read(f,b,4)<4) {printf("Error Reading VCACHE Patch Flag\n");return(20);} z= *(long *)b; if (z) { if ((z&0xffffff)-0x4c5252) {printf("VCACHE File Overwritten by Unknown File\n");return(20);} if ((exist&0x200)==0) { printf("\nWARNING: Patched VCACHE File Found Without Backup - Skipping\n"); exist&=0xf0ff; } } else { if (exist&0x200) { printf("VCACHE File Updated by Other Program\n"); // printf("VCACHE File Updated by Other Program - Removing Backup\n"); // if (unlink(cback)) {printf("Cannot Remove VCACHE Backup\n");return(20);} // exist&=0xfdff; } } _close(f); } if ((exist&0x5000)==0x5000) { f=_open(hname,0); if (f<0) {printf("Cannot Open HIMEM File\n");return(20);} lseek(f,0x6992L,0); if (_read(f,b,1)<1) {printf("Error Reading HIMEM Patch\n");return(20);} if ((b[0]-0x30) && (b[0]-0x50)) {printf("HIMEM File Overwritten by Unknown File\n");return(20);} if (b[0]==0x50) { if ((exist&0x2000)==0) { printf("\nWARNING: Patched HIMEM File Found Without Backup - Skipping\n"); exist&=0xfff; } } else { if (exist&0x2000) { printf("HIMEM File Updated by Other Program\n"); // printf("HIMEM File Updated by Other Program - Removing Backup\n"); // if (unlink(hback)) {printf("Cannot Remove HIMEM Backup\n");return(20);} // exist&=0xdfff; } } _close(f); } i=j=0; if ((exist&0x60)==0x60) i++; if ((exist&0x60)==0x40) j++; if ((exist&0x600)==0x600) i++; if ((exist&0x600)==0x400) j++; if ((exist&0x6000)==0x6000) i++; if ((exist&0x6000)==0x4000) j++; if (i && j) { printf("Incomplete Installation Detected - Continue/UnInstall/Quit (C/U/Q) ? (Q) "); read(0,&i,4); if ((i&0xdf)=='C') goto inst; if ((i&0xdf)=='U') goto uninst; return(20); } if (j) goto inst; if (i==0) {printf("\nNo Changes Made\n\n");return(1);} #ifdef SELF if (au) {printf("\nPatch Already Installed - Uninstalling\n");goto uninst;} #endif printf("\nPatch Already Installed - Uninstall (Y/N) ? (N) ");read(0,&i,4); if ((i&0xdf)-'Y') return(1); uninst: _close(f);_close(f2); if (exist&0x80) { if (unlink(vname)) printf("Cannot Remove VMM File\n"); else if (rename(vback,vname)) printf("Cannot Rename Backup VMM File\n"); exist&=0xff0f; } if (exist&0x800) { if (unlink(cname)) printf("Cannot Remove VCACHE File\n"); else if (rename(cback,cname)) printf("Cannot Rename Backup VCACHE File\n"); exist&=0xf0ff; } if (exist&0x8000) { if (unlink(hname)) printf("Cannot Remove HIMEM File\n"); else if (rename(hback,hname)) printf("Cannot Rename Backup HIMEM File\n"); exist&=0xfff; } if ((exist&0x70)==0x70) { z=0; f=_open(vname,0); if (f<0) {printf("Cannot Open VMM File\n");return(20);} if (_read(f,b,64)<64) {printf("Error Reading VMM Header\n");goto unvm;} z= *(long *)(b+0x3c); lseek(f,z-4,0); if (_read(f,b,4)<4) {printf("Error Reading VMM Patch Flag\n");goto unvm;} z= *(long *)b; unvm: _close(f); f=_open(vback,0); if (f<0) {printf("Error Opening %s\n",vback);return(20);} if (unlink(vname)) {printf("Cannot Remove Patched VMM32 File\n");return(20);} _close(f); if (z&0x10000000) { if (unlink(vback)) {printf("Cannot Remove VMM32 Backup\n");return(20);} } else { if (rename(vback,vname)) {printf("Cannot Rename VMM32 Backup\n");return(20);} } } if ((exist&0x700)==0x700) { z=0; f=_open(cname,0); if (f<0) {printf("Cannot Open VCACHE File\n");return(20);} if (_read(f,b,64)<64) {printf("Error Reading VCACHE Header\n");goto unvc;} z= *(long *)(b+0x3c); lseek(f,z-4,0); if (_read(f,b,4)<4) {printf("Error Reading VCACHE Patch Flag\n");goto unvc;} z= *(long *)b; unvc: _close(f); f=_open(cback,0); if (f<0) {printf("Error Opening %s\n",cback);return(20);} if (unlink(cname)) {printf("Cannot Remove Patched VCACHE File\n");return(20);} _close(f); if (z&0x10000000) { if (unlink(cback)) {printf("Cannot Remove VCACHE Backup\n");return(20);} } else { if (rename(cback,cname)) {printf("Cannot Rename VCACHE Backup\n");return(20);} } } if ((exist&0x7000)==0x7000) { f=_open(hback,0); if (f<0) {printf("Error Opening %s\n",hback);return(20);} if (unlink(hname)) {printf("Cannot Remove Patched HIMEM File\n");return(20);} _close(f); if (rename(hback,hname)) {printf("Cannot Rename HIMEM Backup\n");return(20);} } if (un) printf("\nUninstall Completed\n\n"); return(0); inst: un=0; if (((exist&0x70)==0x40) || ((exist&0x700)==0x400)) { f=_open(v3name,0); if (f<0) {printf("Cannot Open %s\n",v3name);return(20);} i=_read(f,b,0x6000); if (i<0x4c00) goto bad; if ((*(long *)(b+0x40ca))==0x2e061e60) { rel=rel98;reloff=0x3ea2;memcpy(subr,b+0x40a2,2792);goto ok; } if ((*(long *)(b+0x3636))==0x2e061e60) { rel=relme;reloff=0x340e;memcpy(subr,b+0x360e,2792);goto ok; } printf("Unrecognized Decompressor in VMM32 File\n");return(20); ok: base= *(long *)(b+0x3c);x=lseek(f,0L,2);lseek(f,base,0); if (_read(f,b,16)<16) goto bad; i= *(int *)b; if (i-0x3457) {printf("Not Compressed VMM32 File\n");return(20);} i= *(int *)(b+4); if (i-0x2000) goto bad; n= *(int *)(b+6);np= -1; if (n>1022) goto bad; table[n]=x;table[n+1]=0;i=n<<2; if (_read(f,table,i)0x4000) i=0x4000; if (_read(f,b,i)0x4000) i=0x4000; if (readx(x,b,i)<1) goto badvmr; vmp: if (_write(f2,b,i)0xb80) goto badvcr; z= *(long *)(b+0x80) - x; if (z<0xc00) goto badvcr; if (z>0x4000) goto badvcr; (*(long *)(b+128))=0xc00; if (_write(f2,b,132)<132) goto badvcw; if (readx(x+132,b,0xafc)<1) goto badvcr; if (_write(f2,b,0xafc)<0xafc) goto badvcw; x+=z; while(y) { i=y; if (y>0x4000) i=0x4000; if (readx(x,b,i)<1) goto badvcr; if (_write(f2,b,i)=9) { x+=1024; if (ckv==9) ckv=0; if (ckv==10) ckv=2; if (ckv==11) ckv=6; } #endif if (_write(f2,b,64)<64) goto undovmw; y=x-192; while(y) { i=y; if (y>0x4000) i=0x4000; if (_read(f,b,i)0x404) { lseek(f2,z-0x404,0); if (_read(f2,b+4,4)<4) {a="Read Error";goto skip;} b[7]|=0x40; if ((*(int *)b) == (*(int *)(b+4))) { lseek(f2,z-0x404,0); if (_write(f2,b+4,4)<4) {a="Read Error";goto skip;} } } lseek(f2,x,0);z=0xbf; if (_write(f2,&z,1)<1) {a="Write Error";goto skip;} skip:; } #endif _close(f);_close(f2); if (a) {printf("VMM Patch Error: %s\n",a);goto uninst;} #ifdef DEMO printf("VMM Version %d Patched (DEMO)\n",i); #else printf("VMM Version %d Patched\n",i); #endif } exist&=0xff7f; if ((exist&0x700)==0x500) { if (rename(cname,cback)) {printf("Cannot Rename VCACHE File\n");goto uninst;} exist|=0x800; f=_open(cback,0); if (f<0) {printf("Cannot Open Old VCACHE File\n");goto uninst;} f2=_creat(cname,0); if (f2<0) {printf("Cannot Create New VCACHE File\n");goto uninst;} exist|=0x200; switch(ckc) { case 0: a=dmake(f,vc1998,f2);i=1998;break; case 1: a=dmake(f,vc2183,f2);i=2183;break; case 2: a=dmake(f,vc2222,f2);i=2222;break; case 3: a=dmake(f,vc3000,f2);i=3000;break; #ifdef CAB case 4: a=dmake(f,vc98,f2);i=1998;break; case 5: a=dmake(f,vcse,f2);i=2222;break; case 6: a=dmake(f,vcme,f2);i=3000;break; #endif }; _close(f);_close(f2); if (a) {printf("VCACHE Patch Error: %s\n");goto uninst;} printf("VCACHE Version %d Patched\n",i); } exist&=0xf7ff; if ((exist&0x7000)==0x5000) { if (rename(hname,hback)) {printf("Cannot Rename HIMEM File\n");goto uninst;} exist|=0x8000; f=_open(hback,0); if (f<0) {printf("Cannot Open Old HIMEM File\n");goto uninst;} f2=_creat(hname,0); if (f2<0) {printf("Cannot Create New HIMEM File\n");goto uninst;} exist|=0x2000; if (_read(f,b,0x6000)<0x6000) goto undohir; if (_write(f2,b,0x6000)<0x6000) goto undohiw; if ((i=_read(f,b,0x6000))<0x993) goto undohir; if (b[0x992]-0x30) goto undohir; b[0x992]=0x50; if (_write(f2,b,i)