Code:
// Decrypter.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <tchar.h>
#include <iostream>
#include <Windows.h>
using namespace std;
unsigned char keys [] = {
0xF5,
0x38,
0xFC,
0x67,
0x6C,
0x3,
0x32,
0x36,
0x42,
0xE0,
0xF6,
0xB2,
0x2A,
0xAB,
0xD6,
0xE2,
0x3,
0x87,
0xB1,
0x5B,
0xD8,
0x82,
0x86,
0x44,
0x78,
0x1E,
0x6E,
0x2F,
0x49,
0xFA,
0x68,
0x84,
0xFD,
0x25,
0xB0,
0x81,
0x96,
0x5D,
0x30,
0xF6,
0x5B,
0x75,
0xBC,
0x9,
0xF6,
0xAD,
0x56,
0xB7,
0xBF,
0x8D,
0x5A,
0xEC,
0x5F,
0x40,
0xD8,
0x74,
0xB0,
0xB8,
0xEE,
0x4F,
0x93,
0x4,
0xEC,
0x47,
0x79,
0x73,
0xB4,
0x5,
0xF9,
0x56,
0x4C,
0xA5,
0x57,
0xB9,
0xFE,
0x64,
0xC5,
0x7E,
0x4C,
0xC9,
0xC6,
0xB5,
0x6F,
0xBA,
0xA0,
0x7A,
0x25,
0xBE,
0x4C,
0x3C,
0xD0,
0xDD,
0x6D,
0xDF,
0x63,
0x58,
0x87,
0x75,
0x8E,
0x84,
0xF7,
0x52,
0xBC,
0x69,
0x41,
0xB4,
0x95,
0xA4,
0x40,
0x75,
0xAE,
0x33,
0x6C,
0x25,
0x88,
0xDC,
0x93,
0x32,
0xA5,
0xFD,
0x4F,
0xF5,
0xB8,
0xBD,
0x84,
0x6E,
0x38,
0x76,
0x56,
0xA7,
0xDB,
0x50,
0xEE,
0xC7,
0xD1,
0x75,
0xF8,
0x6,
0x7A,
0xEB,
0xE4,
0x7F,
0x7E,
0xD6,
0x8D,
0x9D,
0x71,
0x49,
0x58,
0x86,
0xC3,
0x55,
0xCF,
0x90,
0x36,
0x3,
0x98,
0xFD,
0xE4,
0xD2,
0x7C,
0x1F,
0x4F,
0x98,
0x98,
0x5E,
0x43,
0xA4,
0x53,
0x13,
0xE3,
0x8D,
0xB7,
0xB8,
0x19,
0xCE,
0x77,
0xE0,
0x31,
0xE6,
0xFB,
0xEE,
0x1F,
0xCF,
0xE2,
0x87,
0x80,
0x5E,
0x92,
0xCE,
0xDB,
0xF9,
0x21,
0xA6,
0x70,
0xC5,
0x31,
0xE5,
0x3E,
0x30,
0x5B,
0xCC,
0xF4,
0x45,
0xA1,
0x36,
0x9C,
0x17,
0x77,
0x66,
0x8B,
0xB6,
0xCD,
0xFD,
0xD5,
0x8C,
0x1,
0x7E,
0xB4,
0x12,
0xDD,
0xE4,
0x13,
0x84,
0x37,
0xE9,
0x6D,
0x12,
0x49,
0x53,
0x9E,
0x91,
0xA3,
0x1,
0x8C,
0x30,
0xF9,
0xD8,
0x2F,
0xAC,
0xE9,
0x69,
0xE6,
0x2C,
0x44,
0x25,
0x2C,
0x23,
0xCF,
0xE2,
0xC4,
0xB1,
0x31,
0x2D,
0x51,
0x75,
0xBA,
0x70,
0x0F,
0xB6,
0xC8,
0x8B,
0xCC,
0x25,
0xC7,
0xF8,
0x14,
0xCC,
0x71,
0xA6,
0x92,
0x27,
0x50,
0x9,
0x27,
0x74,
0xFC,
0xE5,
0x41,
0x12,
0xBE,
0x4A,
0x41,
0x66,
0x8E,
0xEB,
0x61,
0x76,
0xAF,
0x17,
0x74,
0x89,
0xCA,
0x77,
0xE2,
0x5E,
0x9C,
0xC2,
0x64,
0x4A,
0x11,
0x5E,
0xB0,
0x2A,
0x50,
0x9D,
0x62,
0x28,
0x6,
0xDC,
0x78,
0xD4,
0x30,
0xFB,
0xF7,
0x7E,
0x4B,
0x67,
0x95,
0xDA,
0x98,
0x9C,
0x1E,
0x5B,
0x32,
0x0A,
0x5C,
0xD8,
0x25,
0xC7,
0xD7,
0x3B,
0x81,
0xF5,
0x1,
0x60,
0x99,
0x17,
0x16,
0xEF,
0x89,
0x39,
0x70,
0xD2,
0x9E,
0x9F,
0x59,
0xCD,
0x7E,
0x65,
0x14,
0x35,
0x2D,
0x88,
0xB1,
0x74,
0x41,
0x55,
0xF6,
0x47,
0x42,
0x89,
0x4,
0x3E,
0x5,
0x3D,
0x53,
0x3A,
0xFA,
0x98,
0xE4,
0x34,
0x52,
0xA5,
0x51,
0x60,
0x2D,
0x4B,
0xBC,
0x92,
0xAF,
0x8D,
0x5A,
0xBF,
0xB4,
0xA2,
0x0F,
0xF7,
0x45,
0x8C,
0x20,
0x44,
0x20,
0xCD,
0xAD,
0x1,
0x36,
0x33,
0xCD,
0x61,
0x4D,
0x1F,
0xD2,
0xE5,
0x7F,
0xDE,
0xE2,
0x86,
0x37,
0x52,
0x47,
0xF4,
0x97,
0x65,
0x97,
0xB4,
0x2F,
0x44,
0x88,
0x61,
0x2E,
0x5A,
0xF4,
0x6F,
0x78,
0xA1,
0x14,
0x83,
0xF6,
0x51,
0x2A,
0xF8,
0x7C,
0x5C,
0x45,
0x90,
0xBA,
0x74,
0x40,
0xD4,
0xBF,
0x88,
0xC0,
0xF2,
0x45,
0x2A,
0xAB,
0xBA,
0x37,
0xF8,
0xD0,
0xF1,
0xA9,
0x6C,
0x34,
0xF1,
0x2A,
0x63,
0x6D,
0xDC,
0xCB,
0x5F,
0x8E,
0xE5,
0x28,
0x4E,
0x79,
0x3C,
0x20,
0x7,
0xF8,
0xBA,
0x4,
0xB3,
0xA1,
0xA5,
0x98,
0x2,
0x2A,
0x4E,
0xF5,
0x59,
0x4D,
0xFC,
0x80,
0x38,
0x4F,
0x10,
0x28,
0x52,
0x67,
0x57,
0x7,
0x63,
0x0A,
0x60,
0xF8,
0xDA,
0xCB,
0xF6,
0xB0,
0x6F,
0x9A,
0x31,
0x1,
0x16,
0xED,
0xF5,
0xCA,
0x8D,
0x5A,
0x28,
0x3A,
0x1F,
0xE6,
0x72,
0x13,
0x91,
0x65,
0xEE,
0xFD,
0x69,
0x15,
0xCD,
0x9E,
0xA2,
0xB3,
0xA0,
0xA9,
0x42,
0xAB,
0xBD,
0x36,
0x32,
0x9D,
0x86,
0xBD,
0x1C,
0xFC,
0x6A,
0x4A,
0x59,
0x45,
0x99,
0xF7,
0x3F,
0x1D,
0xE7,
0x7B,
0x96,
0x4D,
0x68,
0x76,
0xDC,
0xF7,
0x48,
0x5B,
0xCC,
0x91,
0x5D,
0x61,
0x4E,
0x4C,
0x88,
0xE1,
0x9C,
0xF0,
0x8,
0x81,
0x61,
0xB3,
0xF5,
0x93,
0xF9,
0xA5,
0xA5,
0x24,
0x7A,
0xD4,
0x60,
0x85,
0xCB,
0x25,
0x14,
0xF3,
0x44,
0x48,
0x59,
0x39,
0x56,
0x2C,
0xF0,
0x8A,
0x9F,
0x0A,
0xFA,
0x0E,
0xBB,
0xB7,
0x5C,
0x4D,
0x15,
0x67,
0x1B,
0xE2,
0x56,
0xD3,
0x7B,
0x37,
0x53,
0x24,
0xDF,
0xF6,
0x32,
0xD6,
0x95,
0x29,
0x39,
0x94,
0x9D,
0x55,
0x98,
0xCD,
0x2B,
0x35,
0xC2,
0x6C,
0xF2,
0xF0,
0xA9,
0x98,
0x68,
0xC1,
0x79,
0x13,
0x71,
0x65,
0x0B,
0x31,
0x9D,
0x6F,
0xCB,
0x22,
0xE5,
0x33,
0x4B,
0xF8,
0x58,
0xC8,
0x73,
0xD1,
0xD3,
0x28,
0x1B,
0x8,
0xB4,
0x46,
0x3C,
0xE4,
0x20,
0xE9,
0xE0,
0x8A,
0x8D,
0xBA,
0xBB,
0x1F,
0x7E,
0x20,
0x66,
0x31,
0x1F,
0x9,
0xF5,
0x2E,
0x88,
0x76,
0xE7,
0xF7,
0xE8,
0xC8,
0x15,
0x2B,
0x7D,
0xD7,
0xC3,
0x40,
0xA7,
0x72,
0x5D,
0x2B,
0x29,
0x26,
0x11,
0xB3,
0x8E,
0x42,
0x94,
0x2B,
0x77,
0x2D,
0x7B,
0x39,
0x62,
0x43,
0xB2,
0xCB,
0x31,
0xEB,
0x7E,
0x3F,
0x5D,
0x44,
0xFA,
0x56,
0xD4,
0xB6,
0x0D,
0xB4,
0xF6,
0x7B,
0x77,
0x0C,
0xC2,
0x3C,
0x8,
0xF8,
0xF6,
0x43,
0x9F,
0x47,
0xE0,
0xBD,
0x81,
0xBC,
0x4E,
0xDB,
0xC7,
0x3B,
0x25,
0xF6,
0x10,
0xBA,
0xF2,
0x1E,
0xCC,
0xE4,
0x2A,
0xB9,
0xDD,
0xD6,
0x35,
0xDF,
0x33,
0xFA,
0xB4,
0x6F,
0x75,
0x27,
0x3C,
0xB9,
0xD4,
0xED,
0x4C,
0x37,
0x5D,
0x9F,
0xC2,
0x3E,
0x9,
0xF8,
0xEE,
0xD0,
0x8F,
0xFE,
0x6B,
0xBB,
0x19,
0xA4,
0x6E,
0x22,
0xCE,
0x3E,
0x64,
0xC8,
0x12,
0x2,
0x8A,
0x85,
0x8,
0xDD,
0x66,
0xA0,
0xFE,
0x6B,
0x23,
0x22,
0x6F,
0xBB,
0xC0,
0x2E,
0x23,
0xEA,
0xB0,
0xE3,
0xE7,
0x64,
0x50,
0x33,
0x90,
0xF8,
0x57,
0xD0,
0xB8,
0x1A,
0xEA,
0x96,
0x89,
0x83,
0x26,
0x5C,
0x15,
0x3D,
0x36,
0x2B,
0x93,
0x4E,
0xD1,
0x25,
0xDC,
0x4A,
0x4D,
0x5C,
0xE3,
0x41,
0xFE,
0xE2,
0x8C,
0x7F,
0xDF,
0xAD,
0xB0,
0x57,
0xF4,
0x0F,
0x86,
0x94,
0xE7,
0xE4,
0x80,
0x8B,
0x97,
0xEA,
0x96,
0x64,
0x1A,
0xE4,
0xB4,
0x86,
0x51,
0x99,
0x91,
0x2C,
0x56,
0x47,
0xAC,
0xFA,
0xEC,
0x78,
0x1B,
0x8,
0x0B,
0x0B,
0xA3,
0x77,
0xAA,
0xBC,
0x48,
0x28,
0xA3,
0xFE,
0x66,
0xEB,
0xA4,
0x51,
0xB1,
0x61,
0xC5,
0x7F,
0x28,
0x1A,
0x2F,
0x7,
0x2F,
0x46,
0x1D,
0x85,
0x2,
0xAE,
0x62,
0x8B,
0xA7,
0x6F,
0xCA,
0x79,
0x81,
0x8C,
0x48,
0x1F,
0xB9,
0x5C,
0x9D,
0x8D,
0xE1,
0x51,
0x34,
0xA4,
0x86,
0x6,
0x94,
0x4B,
0x35,
0x6D,
0x51,
0x2,
0xD8,
0x4,
0xDB,
0x5D,
0x5B,
0x25,
0xBB,
0x99,
0xC5,
0x19,
0x57,
0xF5,
0x22,
0x2C,
0xCF,
0x26,
0x19,
0xA6,
0xC5,
0xCA,
0x7B,
0xA0,
0x25,
0xDC,
0x13,
0x77,
0xFD,
0xFB,
0x1A,
0x17,
0x56,
0x3A,
0x1F,
0xC8,
0x9F,
0x7D,
0xB0,
0xEA,
0xC3,
0x94,
0xA0,
0x5,
0xC6,
0xC9,
0xF8,
0x3D,
0x82,
0x5B,
0x35,
0x6F,
0x33,
0x8E,
0xA7,
0x85,
0x85,
0x38,
0xDE,
0xFE,
0x4B,
0xE2,
0x26,
0xBF,
0x7F,
0xAF,
0xC1,
0x1E,
0xD7,
0x59,
0x8B,
0x52,
0x74,
0x2E,
0xE2,
0x31,
0x2B,
0x77,
0xD9,
0x5B,
0xE2,
0xD4,
0xF4,
0xA3,
0xC6,
0xAA,
0xE2,
0xC7,
0x92,
0x98,
0x44,
0x68,
0x9E,
0xB1,
0x9F,
0xDF,
0x6F,
0xE0,
0x84,
0x18,
0x8,
0xDB,
0x65,
0x2A,
0xCF,
0xE2,
0xF9,
0x5,
0xAB,
0x77,
0x5B,
0x0E,
0x5E,
0x84,
0x1C,
0x76,
0xED,
0x82,
0xF7,
0xD3,
0xCB,
0xF9,
0x8B,
0x3F,
0x15,
0x23,
0xB2,
0xC2,
0x8E,
0x4,
0xC0,
0x49,
0xF2,
0xC2,
0x53,
0x7,
0x70,
0xCA,
0xD3,
0xE2,
0xB0,
0xDE,
0x1C,
0x1B,
0x3E,
0x36,
0x0B,
0x1B,
0x95,
0x2A,
0xF0,
0xEB,
0xE7,
0xB0,
0x4B,
0x0E,
0x51,
0x27,
0x15,
0xAC,
0x30,
0x37,
0x76,
0xA8,
0xB5,
0x12,
0x1B,
0x9A,
0x31,
0x15,
0x6,
0x24,
0xAE,
0x16,
0x23,
0xEC,
0xDD,
0x70,
0x1,
0xDE,
0x19,
0x98,
0x2E,
0x64,
0x12,
0xD3,
0x61,
0x42,
0x77,
0x45,
0xB5,
0x4A,
0xB5,
0x27,
0xB2,
0x7A,
0x69,
0x73,
0x64,
0x2C,
0x1B,
0x6F,
0xE8,
0x80,
0x24,
0xCC,
0x3E,
0xD2,
0x8D,
0x5E,
0x30,
0xE0,
0x26,
0x36,
0x94,
0x96,
0x0A,
0x12,
0x96,
0xE0,
0xB0,
0xD7,
0x24,
0xEB,
0x5F,
0xBB,
0x6D,
0x87,
0x62,
0xA8,
0x83,
0x6A,
0x0C,
0xD4,
0xC3,
0xA8,
0xAF,
0xAC,
0x41,
0x44,
0x96,
0x8E,
0xB4,
0x19,
0x16,
0xD3,
0x25,
0x80,
0x91,
0x1D,
0x70,
0x58,
0xDC,
0x83,
0x7A,
0x42,
0x4C,
0xFB,
0x21,
0x68,
0x60,
0xB5,
0x70,
0xE3,
0xD9,
0xC4,
0xD4,
0x50,
0x71,
0xEB,
0xE5,
0x5C,
0xD0,
0x52,
0x4B,
0x23,
0x23,
0x0B,
0xD5,
0x8A,
0x97,
0xEC,
0xF5,
0x46,
0x39,
0x2C,
0x8D,
0x88,
0x5A,
0x82,
0x5D,
0xB3,
0x8B,
0xD8,
0xE3,
0xDF,
0x1E,
0xD0,
0x3F,
0x51,
0xFE,
0xD3,
0x0F,
0xA5,
0x36,
0x14,
0x87,
0x8A,
0x38,
0x58,
0x1F,
0x41,
0x27,
0x95,
0xCF,
0x72,
0xBF,
0x2B,
0xAA,
0xAE,
0x37,
0x4D,
0xF5,
0xEE,
0x8F,
0x33,
0xD0,
0xF6,
0x6D,
0x6A,
0x6,
0x52,
0xCB,
0x85,
0x8B,
0xC3,
0xDD,
0x50,
0x11,
0x25,
0xA4,
0x4,
0x50,
0x3,
0x63,
0x1C,
0x8C,
0xF4,
0x9,
0x72,
0x21,
0xF2,
0x27,
0x90,
0x1A,
0xB1,
0xDC,
0x20,
0x17,
0x3,
0x43,
0x8F,
0x1D,
0xCC,
0x53,
0xCC,
0x75,
0xA0,
0x0B,
0x0D,
0x93,
0x70,
0x1A,
0x85,
0x0A,
0x34,
0xFB,
0xF3,
0x8B,
0x73,
0xA5,
0xDA,
0xEE,
0xFA,
0x4A,
0x12,
0x2C,
0x3C,
0x6C,
0xD8,
0xE5,
0xBD,
0x39,
0x0F,
0xE1,
0x16,
0xE5,
0x82,
0xAE,
0x96,
0xA6,
0xEB,
0xEA,
0xFA,
0xDD,
0xB0,
0xD8,
0xA0,
0x86,
0xE5,
0xB5,
0xE8,
0x94,
0xA2,
0x5C,
0x68,
0x9F,
0x22,
0x83,
0x41,
0xA1,
0x3A,
0x35,
0x31,
0x27,
0xD4,
0x37,
0x0C,
0xA3,
0xF2,
0x4D,
0x79,
0x45,
0xF4,
0xCC,
0xB9,
0xEE,
0xF3,
0x1D,
0x98,
0x38,
0x8B,
0xB4,
0x85,
0x24,
0xFC,
0x2A,
0x95,
0xB1,
0x79,
0x76,
0xC4,
0xFE,
0x6E,
0xF3,
0x6C,
0xB7,
0xBA,
0xD4,
0x9,
0x7A,
0xCD,
0xFB,
0x93,
0x98,
0x3D,
0xA3,
0x9E,
0xD5,
0xA1,
0x79,
0xAB,
0x5,
0xE9,
0x9,
0x17,
0x84,
0xAE,
0x0D,
0x29,
0xAB,
0xA0,
0x59,
0x2A,
0x7D,
0x88,
0x7A,
0xD6,
0x1,
0x60,
0x3,
0x34,
0x1F,
0x14,
0x1F,
0x6A,
0x8E,
0x22,
0xEC,
0xE6,
0x59,
0x8A,
0xBF,
0x10,
0x1,
0xC9,
0xBF,
0x15,
0x65,
0xDD,
0xE6,
0x9,
0xAD,
0xAB,
0x5D,
0xD8,
0x74,
0xD1,
0x16,
0x11,
0xC1,
0xCB,
0x9E,
0x75,
0x9F,
0x45,
0x8C,
0xEF,
0xCB,
0x9E,
0x87,
0x63,
0xC1,
0x26,
0xCE,
0x21,
0xDF,
0x49,
0x2A,
0xB2,
0xC8,
0x66,
0x72,
0x22,
0x78,
0xF8,
0x85,
0x72,
0xB6,
0x45,
0xF4,
0xBC,
0x0C,
0xDB,
0x25,
0x8D,
0xEB,
0x4A,
0x70,
0xBB,
0x3E,
0xCE,
0x49,
0xC5,
0x57,
0x84,
0x46,
0x88,
0xDC,
0x3D,
0xF8,
0x2B,
0xA8,
0x63,
0x47,
0x5C,
0x5A,
0x7C,
0xFB,
0xA5,
0xBE,
0x1B,
0x3A,
0x86,
0xA8,
0xCA,
0x58,
0xE4,
0x2,
0x42,
0x34,
0x95,
0xD8,
0x6E,
0x75,
0xF8,
0x1D,
0xAB,
0xCA,
0xF3,
0xB3,
0xFC,
0x95,
0x7A,
0x4C,
0xC9,
0x14,
0xA7,
0x95,
0xC7,
0x33,
0x70,
0x4D,
0xC9,
0xFB,
0x23,
0x94,
0xC2,
0x1E,
0x8B,
0x2C,
0x61,
0x86,
0x9A,
0x9,
0x63,
0x52,
0x3B,
0xED,
0x4E,
0x3F,
0xAD,
0xB0,
0x9,
0xF1,
0xC1,
0x84,
0xBF,
0x3A,
0xDD,
0xB6,
0xAF,
0x50,
0x39,
0x0F,
0xC3,
0x49,
0x0F,
0x71,
0x52,
0x65,
0x5A,
0x8E,
0x40,
0xC7,
0x53,
0x76,
0xFA,
0x72,
0xE8,
0x78,
0xD8,
0xB9,
0x47,
0x89,
0x85,
0xBE,
0x45,
0xD7,
0x3B,
0x9D,
0xD4,
0x88,
0x3F,
0xD3,
0x7C,
0x11,
0x4E,
0x8B,
0x44,
0x1B,
0x43,
0xC8,
0x9B,
0xE7,
0xE3,
0x1F,
0x71,
0x40,
0x9F,
0x4B,
0x89,
0x4E,
0x50,
0x66,
0xDD,
0xF4,
0x9,
0xAE,
0x89,
0x6,
0x4,
0x37,
0x37,
0xB3,
0x90,
0xD0,
0x50,
0x6B,
0x4C,
0x42,
0x29,
0x6F,
0x2E,
0xCE,
0x35,
0x10,
0x1F,
0x5F,
0xA4,
0x66,
0x4E,
0x5,
0x38,
0xEE,
0x15,
0x86,
0x39,
0xD7,
0xF5,
0x86,
0x8,
0x9E,
0x2,
0x3E,
0x17,
0x0D,
0x92,
0xE6,
0x58,
0x14,
0xCE,
0x7,
0xF3,
0x5D,
0x23,
0x1A,
0x20,
0x80,
0x31,
0xCE,
0xD6,
0xA9,
0x0B,
0x24,
0xB7,
0xFD,
0xFD,
0x47,
0x9F,
0x0A,
0x98,
0x77,
0x75,
0xC4,
0x3A,
0x89,
0x6E,
0xEE,
0xB8,
0x29,
0x7D,
0x37,
0x7,
0x91,
0x97,
0x47,
0x11,
0xD9,
0xCC,
0xF9,
0x66,
0xB8,
0xA7,
0x27,
0xAF,
0x5E,
0x94,
0xDD,
0x86,
0x18,
0x0E,
0x4B,
0x48,
0x4F,
0x7B,
0x57,
0x91,
0x2F,
0x24,
0x98,
0xAB,
0x30,
0xC7,
0x9,
0x52,
0x9F,
0xA2,
0x79,
0x8B,
0x70,
0xED,
0x24,
0x79,
0xA5,
0xA2,
0xDF,
0xCF,
0x4E,
0x15,
0xDB,
0xF4,
0x8F,
0x69,
0xA0,
0x1B,
0x32,
0xEE,
0xB7,
0x17,
0x40,
0xB5,
0xE0,
0xB6,
0x35,
0x4E,
0x37,
0xEF,
0x9E,
0xD4,
0x11,
0xBA,
0x1B,
0x52,
0x17,
0x2A,
0xE8,
0xD0,
0xA1,
0xAB,
0x9A,
0x87,
0x43,
0x1A,
0x47,
0xA3,
0x1D,
0xC6,
0x27,
0xED,
0x20,
0xAF,
0xEA,
0x63,
0x4C,
0xB9,
0x0D,
0x6D,
0x45,
0x58,
0x6C,
0xEE,
0x32,
0x79,
0x5,
0x22,
0xD9,
0x3D,
0x53,
0x77,
0x31,
0x61,
0x4D,
0x0C,
0x7B,
0xB8,
0x73,
0xC6,
0x70,
0x91,
0x32,
0x6F,
0xC9,
0xB0,
0xB4,
0x60,
0xCE,
0xB7,
0x7,
0x5C,
0x1D,
0x7C,
0x8C,
0x4A,
0x40,
0xAB,
0x56,
0xC8,
0x16,
0x26,
0xC8,
0xDE,
0x74,
0xAE,
0xBC,
0xBE,
0x63,
0xDE,
0xE7,
0x92,
0x47,
0x45,
0xFC,
0xB2,
0x26,
0xFC,
0x25,
0x80,
0xC4,
0xA4,
0x52,
0x23,
0x37,
0xF5,
0x5A,
0xB4,
0xD3,
0x3,
0xCB,
0xCE,
0x63,
0xA9,
0xB1,
0x4A,
0xC7,
0x52,
0xF9,
0x1B,
0xF2,
0xF4,
0xFC,
0xEF,
0xCF,
0x73,
0x15,
0xD7,
0x7F,
0xD8,
0x24,
0x42,
0x86,
0xD4,
0x5,
0x71,
0xD3,
0xA5,
0xA8,
0x7D,
0x54,
0x8,
0xE9,
0x60,
0x13,
0x19,
0x30,
0x9C,
0x92,
0xB2,
0xEA,
0xD3,
0x3,
0x0A,
0x8D,
0xCE,
0xA6,
0x61,
0x53,
0xC2,
0xE1,
0x82,
0x36,
0xFA,
0xDE,
0x89,
0x48,
0x8E,
0xA5,
0x41,
0x75,
0x22,
0xA9,
0x7D,
0xC5,
0xEA,
0x0B,
0x9D,
0xDC,
0xB6,
0x44,
0x78,
0x45,
0xCB,
0xED,
0x50,
0x40,
0x7C,
0x48,
0x36,
0xC9,
0x72,
0x53,
0xE4,
0x9B,
0xD1,
0xD1,
0xEE,
0x80,
0x89,
0xCF,
0xA1,
0xF6,
0x52,
0x3E,
0xC8,
0x2A,
0x84,
0x44,
0xA1,
0xC3,
0x0A,
0x84,
0x9B,
0x7F,
0x69,
0x3E,
0x69,
0x0D,
0x8E,
0x49,
0xCA,
0x46,
0x70,
0x77,
0x3,
0xCE,
0xC4,
0xE0,
0xF3,
0x1A,
0x1C,
0x1D,
0x54,
0xE6,
0xA1,
0x80,
0xF2,
0x8E,
0x26,
0x26,
0xBB,
0x39,
0xA6,
0x71,
0xBF,
0xED,
0xB7,
0x65,
0x32,
0x93,
0x69,
0xE1,
0xF1,
0x40,
0x5,
0x5B,
0x87,
0xD9,
0x3B,
0xF8,
0x65,
0xA2,
0x4F,
0x87,
0xA8,
0xEC,
0x30,
0xB3,
0xDC,
0xE8,
0x4B,
0xDA,
0xE6,
0x69,
0x8D,
0x91,
0x9F,
0xFD,
0xB7,
0x15,
0x17,
0x5F,
0xAF,
0x60,
0xB0,
0x39,
0x2B,
0x15,
0xE1,
0x47,
0xF7,
0x19,
0x54,
0x2C,
0xC0,
0x19
};
void DecryptFile(const char* const szFileName);
unsigned char Decrypt(unsigned char data, unsigned char key);
void DoDaShit(const char* const szPath = "");
int _tmain(int argc, char* argv[])
{
CreateDirectory(L"Decrypt", nullptr);
DoDaShit();
return 0;
}
unsigned char Decrypt(unsigned char data, unsigned char key)
{
data = (~data) ^ key;
data = (data << 4) | (data >> 4);
return data;
}
void DecryptFile(const char* const argFileName)
{
FILE *f;
if ( (f = fopen(argFileName, "rb")) == nullptr )
return;
//wcout << L"Decrypting " << argFileName << endl;
fseek(f,-60,SEEK_END);
int n; // header size
unsigned char b1, b2 = 0xC4;
unsigned char *byData;
fread(&n, 4, 1, f);
fread(&b1, 1, 1, f);
if( 0x0b == b1 )
{
b2 = 0x63;
} else if( 0x16 == b1 || 0x2c == b1 )
{
b2 = 0x12;
} else if( 0x21 == b1 )
{
b2 = 0xf1;
} else if( 0x37 == b1 )
{
b2 = 0xe2;
}else if( 0x42 == b1 )
{
b2 = 0x98;
} else if( 0x4d == b1 )
{
b2 = 0xa5;
}
fseek(f,0,SEEK_SET);
byData = new unsigned char[n];
fread(byData, n, 1, f);
int counter = 0;
for( int i = 0; i < n; ++i )
{
byData[i] = Decrypt(byData[i], keys[counter]);
if( counter < 2047 )
counter++;
}
unsigned int nPos = 2;
short &nFileNum = *(short*)byData;
for( short i = 0; i < nFileNum; ++i )
{
char szFileName[_MAX_FNAME];
short &nFileNameLength = *(short*)(byData + nPos); nPos += 2;
memcpy(szFileName, byData + nPos, nFileNameLength); nPos += nFileNameLength;
szFileName[nFileNameLength] = 0;
int &size = *(int*)(byData + nPos); nPos += 8;
int &pos = *(int*)(byData + nPos); nPos += 4;
char szPathRelative[_MAX_PATH];
sprintf(szPathRelative, "Decrypt\\%s", szFileName);
FILE *fWrite = fopen(szPathRelative, "wb");
if( fWrite )
{
fseek(f, pos, SEEK_CUR);
unsigned char *byBuffer = new unsigned char[size];
fread(byBuffer, size, 1, f);
for( int j = 0; j < size; ++j )
byBuffer[j] = Decrypt(byBuffer[j], b2);
fwrite(byBuffer, size, 1, fWrite);
fclose(fWrite);
delete [] byBuffer;
}
}
delete [] byData;
}
void DoDaShit(const char * const szPath)
{
char szSearchString[_MAX_PATH];
sprintf_s<_MAX_PATH>(szSearchString, "%s*.*", szPath);
WIN32_FIND_DATAA data;
HANDLE hFile = FindFirstFileA(szSearchString, &data);
if( SUCCEEDED(hFile) )
{
do{
if( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
{
if( !!strcmp(data.cFileName, ".") && !!strcmp(data.cFileName, "..") )
{
char szNewPath[_MAX_PATH];
sprintf_s<_MAX_PATH>(szNewPath, "%s%s\\", szPath, data.cFileName);
DoDaShit(szNewPath);
}
}else {
int len = strlen(data.cFileName);
if( len > 4 )
{
if( strcmp(&data.cFileName[len - 4], ".lvl") == 0 )
{
char szFile[_MAX_FNAME];
sprintf_s<_MAX_FNAME>(szFile, "%s%s", szPath, data.cFileName);
DecryptFile(szFile);
}
}
}
} while(FindNextFileA(hFile, &data) );
FindClose(hFile);
}
}






