一、CrackMe初步印象
本次CrackMe仍来源于吾爱论坛,链接地址为https://download.csdn.net/download/weixin_39768541/10851566,该CM为上篇第8个,作者要求求解出密码,不能采用爆破的方式。效果如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR1EMVR0TyMGVPpHOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zROBlL0cDO2UTMyADMzIjMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
这个CrackMe的密码不是简单讲输入的字符串进行对比,而是对输入的字符串进行变化之后再进行对比判断,所以这次需逆向分析出变化算法,会稍微麻烦点。
二、破解过程
1、确定对比判断函数位置
弹出的对话框是破解的切入点,首先进行字符串搜索,可以大致确定对比判断函数位置:
定位函数:
可以看出,标红位置的EAX寄存器即为判断结果,当EAX为1则表示破解成功,为0则表示破解失败。此处可以采用爆破方式。基于之前关于Windows消息机制的两篇文章,通过RUN跟踪的方式分析,不难找到判断位置:
通过强行改变0X00401037和0X00401041位置的跳转符,不难发现该处对比了三次,且循环次数为EAX值,第一次和第三次EAX=8,第二次EAX=2。每次输入字符串对比时,EDI所指向地址的值均一致,据此可以判定该值即为目标值。下面三个图分别表示三次对比的目标值:
2、确定变换函数
对话框中输入字符串"abcdefgh",首先得到最后变化结果,根据对比判断函数的位置,不难得出字符串"abcdefgh"的变化结果:
得到最后变化结果后,从对比判断函数位置向上逐步分析,可以看出如下结果:
函数sub_4015C1即读取文本框中输入的字符串,并存入EAX寄存器中。继续往下:
函数sub_4015B5读取字符串前两位。注意输入参数。
第一张图为函数sub_4015BB的参数,第二张图为该函数运行结果。可以看到函数sub_4015BB的第二个参数包含输入字符串的前两位(刚好为一个汉字字符长度),返回结果位于EAX寄存中,且EAX寄存器指向的地址包含字符串的运行结果。故此,可以大胆猜测该函数即为变换函数,且每两字节的字符变化为一个结果,共变化三次。通过IDA可以知道该函数共两个参数。
逐步向函数内部分析,可以得到变化的核心函数:
通过IDA分析:
void __cdecl sub_4489C0(int *a1, _DWORD *a2, signed int a3, int a4)
{
const void *v4; // esi
int v5; // ebp
signed int v6; // ecx
_DWORD *v7; // ebx
int v8; // edi
int v9; // edi
int v10; // eax
int v11; // eax
int v12; // [esp+10h] [ebp-110h]
_DWORD *v13; // [esp+14h] [ebp-10Ch]
int v14; // [esp+18h] [ebp-108h]
char v15; // [esp+1Ch] [ebp-104h]
v4 = (const void *)(*a2 + 8);
v14 = a2[3];
v5 = *(_DWORD *)(*a2 + 4);
v6 = 1;
if ( a3 > 2 && a2[8] == -2147482879 && a2[6] == 2 )
v6 = 2;
v7 = 0;
v13 = 0;
v12 = 0;
if ( v5 <= 0 )
goto LABEL_21;
if ( v6 != 1 )
{
sub_4487E0(a2[3], strlen((const char *)a2[3]), &v15);
v7 = malloc(v5);
v13 = v7;
if ( v7 )
{
qmemcpy(v7, v4, v5);
v12 = v5;
sub_4488B0(v7, v5, &v15);
}
goto LABEL_21;
}
if ( !a4 )
{
if ( v5 % 8 )
goto LABEL_21;
v7 = malloc(v5);
v13 = v7;
if ( !v7 )
goto LABEL_21;
qmemcpy(v7, v4, v5);
sub_448CF0((int)v7, v5, v14);
v11 = *v7;
if ( *v7 > 0 && v5 < v11 + 12 && v11 <= v5 - 4 )
{
v10 = sub_448790(v7 + 1, *v7);
goto LABEL_22;
}
LABEL_12:
v10 = sub_448790(v13, 0);
goto LABEL_22;
}
v8 = ((_BYTE)v5 - 4) & 7;
if ( v8 > 0 )
v8 = 8 - v8;
v9 = v8 + v5 + 4;
v12 = v9;
v7 = malloc(v9);
v13 = v7;
if ( !v7 )
goto LABEL_12;
memset(v7, 0, v9);
*v7 = v5;
qmemcpy(v7 + 1, v4, v5);
sub_448CD0((int)v7, v9, v14);
LABEL_21:
v10 = sub_448790(v13, v12);
LABEL_22:
*a1 = v10;
if ( v7 )
sub_44DD9E(v7);
}
其中第1个、第2个参数均为地址指针,观察函数中如下语句:
往上溯源,a2[6]即为0X40116C 处push值,第一次和第三次变化该值为1,第二次为2。
3、求解密码
确定了变化函数以及变化结果,考虑到每次变化输入的字符串仅两字节,因此可以直接采用穷尽的方法。根据IDA静态分析出的代码,编写密码穷尽程序。
// 追码CM爆破.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
unsigned int ss[128 * 16] = {
0x00,0x04,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x04,0x01,0x01
,0x04,0x00,0x01,0x01,0x04,0x04,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00
,0x00,0x04,0x00,0x00,0x00,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x00,0x04,0x00,0x00
,0x04,0x04,0x00,0x01,0x04,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00
,0x04,0x04,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x00
,0x00,0x04,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x04,0x04,0x00,0x01
,0x04,0x00,0x01,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x00,0x01,0x04,0x00,0x01,0x00
,0x00,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x01,0x00,0x00,0x00,0x00,0x01
,0x00,0x00,0x01,0x00,0x04,0x04,0x01,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x01
,0x00,0x04,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00
,0x04,0x00,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x04,0x00,0x00,0x01
,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x04,0x00,0x01,0x04,0x04,0x01,0x00
,0x04,0x04,0x01,0x01,0x04,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x04,0x04,0x00,0x01
,0x04,0x00,0x00,0x01,0x04,0x04,0x00,0x00,0x04,0x04,0x01,0x00,0x00,0x04,0x01,0x01
,0x04,0x04,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0x00
,0x04,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x01,0x01
,0x20,0x80,0x10,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x20,0x80,0x10,0x00
,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x10,0x80,0x20,0x80,0x00,0x80
,0x20,0x00,0x00,0x80,0x20,0x80,0x10,0x80,0x00,0x80,0x10,0x80,0x00,0x00,0x00,0x80
,0x00,0x80,0x00,0x80,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x10,0x80
,0x00,0x80,0x10,0x00,0x20,0x00,0x10,0x00,0x20,0x80,0x00,0x80,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x20,0x80,0x10,0x00,0x00,0x00,0x10,0x80
,0x20,0x00,0x10,0x00,0x20,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x10,0x00
,0x20,0x80,0x00,0x00,0x00,0x80,0x10,0x80,0x00,0x00,0x10,0x80,0x20,0x80,0x00,0x00
,0x00,0x00,0x00,0x00,0x20,0x80,0x10,0x00,0x20,0x00,0x10,0x80,0x00,0x00,0x10,0x00
,0x20,0x80,0x00,0x80,0x00,0x00,0x10,0x80,0x00,0x80,0x10,0x80,0x00,0x80,0x00,0x00
,0x00,0x00,0x10,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x00,0x00,0x20,0x80,0x10,0x80
,0x20,0x80,0x10,0x00,0x20,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80
,0x20,0x80,0x00,0x00,0x00,0x80,0x10,0x80,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x80
,0x20,0x00,0x10,0x00,0x20,0x80,0x00,0x80,0x20,0x00,0x00,0x80,0x20,0x00,0x10,0x00
,0x00,0x80,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x20,0x80,0x00,0x00
,0x00,0x00,0x00,0x80,0x20,0x00,0x10,0x80,0x20,0x80,0x10,0x80,0x00,0x80,0x10,0x00
,0x08,0x02,0x00,0x00,0x00,0x02,0x02,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x08
,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x02,0x02,0x00,0x00,0x02,0x00,0x08
,0x08,0x00,0x02,0x00,0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x00,0x00,0x02,0x00
,0x08,0x02,0x02,0x08,0x08,0x00,0x02,0x00,0x00,0x00,0x02,0x08,0x08,0x02,0x00,0x00
,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x02,0x02,0x08,0x00,0x02,0x00,0x00
,0x00,0x02,0x02,0x00,0x00,0x00,0x02,0x08,0x08,0x00,0x02,0x08,0x08,0x02,0x02,0x00
,0x08,0x02,0x00,0x08,0x00,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x08,0x02,0x00,0x08
,0x08,0x00,0x00,0x00,0x08,0x02,0x02,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x08
,0x00,0x02,0x02,0x08,0x00,0x00,0x00,0x08,0x08,0x00,0x02,0x00,0x08,0x02,0x00,0x00
,0x00,0x00,0x02,0x00,0x00,0x02,0x02,0x08,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x00
,0x00,0x02,0x00,0x00,0x08,0x00,0x02,0x00,0x08,0x02,0x02,0x08,0x00,0x02,0x00,0x08
,0x08,0x00,0x00,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x08
,0x08,0x02,0x00,0x08,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x08,0x08,0x02,0x02,0x08
,0x08,0x00,0x00,0x00,0x08,0x02,0x02,0x00,0x00,0x02,0x02,0x00,0x08,0x00,0x00,0x08
,0x00,0x00,0x02,0x08,0x08,0x02,0x00,0x08,0x08,0x02,0x00,0x00,0x00,0x00,0x02,0x08
,0x08,0x02,0x02,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x02,0x08,0x00,0x02,0x02,0x00
,0x01,0x20,0x80,0x00,0x81,0x20,0x00,0x00,0x81,0x20,0x00,0x00,0x80,0x00,0x00,0x00
,0x80,0x20,0x80,0x00,0x81,0x00,0x80,0x00,0x01,0x00,0x80,0x00,0x01,0x20,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x00,0x00,0x20,0x80,0x00,0x81,0x20,0x80,0x00
,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x01,0x00,0x80,0x00
,0x01,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0x20,0x80,0x00
,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0x20,0x00,0x00,0x80,0x20,0x00,0x00
,0x81,0x00,0x80,0x00,0x01,0x00,0x00,0x00,0x80,0x20,0x00,0x00,0x80,0x00,0x80,0x00
,0x00,0x20,0x00,0x00,0x80,0x20,0x80,0x00,0x81,0x20,0x80,0x00,0x81,0x00,0x00,0x00
,0x80,0x00,0x80,0x00,0x01,0x00,0x80,0x00,0x00,0x20,0x80,0x00,0x81,0x20,0x80,0x00
,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x00
,0x80,0x20,0x00,0x00,0x80,0x00,0x80,0x00,0x81,0x00,0x80,0x00,0x01,0x00,0x00,0x00
,0x01,0x20,0x80,0x00,0x81,0x20,0x00,0x00,0x81,0x20,0x00,0x00,0x80,0x00,0x00,0x00
,0x81,0x20,0x80,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x20,0x00,0x00
,0x01,0x00,0x80,0x00,0x01,0x20,0x00,0x00,0x80,0x20,0x80,0x00,0x81,0x00,0x80,0x00
,0x01,0x20,0x00,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0x20,0x80,0x00
,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x20,0x00,0x00,0x80,0x20,0x80,0x00
,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x02,0x00,0x00,0x08,0x02,0x00,0x01,0x00,0x42
,0x00,0x00,0x08,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x08,0x02
,0x00,0x01,0x08,0x40,0x00,0x00,0x08,0x00,0x00,0x01,0x00,0x02,0x00,0x01,0x08,0x40
,0x00,0x01,0x00,0x42,0x00,0x00,0x08,0x42,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x40
,0x00,0x00,0x00,0x02,0x00,0x00,0x08,0x40,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00
,0x00,0x01,0x00,0x40,0x00,0x01,0x08,0x42,0x00,0x01,0x08,0x42,0x00,0x01,0x00,0x02
,0x00,0x00,0x08,0x42,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42
,0x00,0x01,0x08,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x42,0x00,0x01,0x08,0x00
,0x00,0x00,0x08,0x00,0x00,0x01,0x00,0x42,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02
,0x00,0x00,0x00,0x40,0x00,0x00,0x08,0x02,0x00,0x01,0x00,0x42,0x00,0x01,0x08,0x40
,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x08,0x42,0x00,0x01,0x08,0x02
,0x00,0x01,0x08,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x08,0x42
,0x00,0x01,0x08,0x42,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x42,0x00,0x01,0x08,0x42
,0x00,0x00,0x08,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x42
,0x00,0x01,0x08,0x00,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x40,0x00,0x00,0x08,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x01,0x08,0x02,0x00,0x01,0x00,0x40
,0x10,0x00,0x00,0x20,0x00,0x00,0x40,0x20,0x00,0x40,0x00,0x00,0x10,0x40,0x40,0x20
,0x00,0x00,0x40,0x20,0x10,0x00,0x00,0x00,0x10,0x40,0x40,0x20,0x00,0x00,0x40,0x00
,0x00,0x40,0x00,0x20,0x10,0x40,0x40,0x00,0x00,0x00,0x40,0x00,0x10,0x00,0x00,0x20
,0x10,0x00,0x40,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x20,0x10,0x40,0x00,0x00
,0x00,0x00,0x00,0x00,0x10,0x00,0x40,0x00,0x10,0x40,0x00,0x20,0x00,0x40,0x00,0x00
,0x00,0x40,0x40,0x00,0x10,0x40,0x00,0x20,0x10,0x00,0x00,0x00,0x10,0x00,0x40,0x20
,0x10,0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x10,0x40,0x40,0x00,0x00,0x40,0x40,0x20
,0x10,0x40,0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x20
,0x00,0x40,0x00,0x20,0x10,0x00,0x00,0x00,0x10,0x00,0x40,0x20,0x00,0x40,0x40,0x00
,0x10,0x40,0x40,0x20,0x00,0x00,0x40,0x00,0x10,0x40,0x00,0x00,0x10,0x00,0x00,0x20
,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x20,0x10,0x40,0x00,0x00
,0x10,0x00,0x00,0x20,0x10,0x40,0x40,0x20,0x00,0x40,0x40,0x00,0x00,0x00,0x40,0x20
,0x10,0x40,0x40,0x00,0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x10,0x00,0x40,0x20
,0x10,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x40,0x20,0x10,0x40,0x40,0x00
,0x00,0x40,0x00,0x00,0x10,0x00,0x40,0x00,0x10,0x40,0x00,0x20,0x00,0x00,0x00,0x00
,0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x20,0x10,0x00,0x40,0x00,0x10,0x40,0x00,0x20
,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0x04,0x02,0x08,0x00,0x04,0x00,0x00,0x00,0x00
,0x00,0x08,0x00,0x00,0x02,0x08,0x00,0x04,0x02,0x08,0x20,0x00,0x00,0x08,0x20,0x04
,0x02,0x08,0x20,0x04,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x04
,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x20,0x04,0x02,0x08,0x00,0x00
,0x00,0x08,0x00,0x04,0x02,0x08,0x20,0x00,0x02,0x00,0x20,0x00,0x00,0x08,0x00,0x04
,0x02,0x00,0x00,0x04,0x00,0x00,0x20,0x04,0x00,0x08,0x20,0x04,0x02,0x00,0x20,0x00
,0x00,0x00,0x20,0x04,0x00,0x08,0x00,0x00,0x02,0x08,0x00,0x00,0x02,0x08,0x20,0x04
,0x00,0x08,0x20,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x20,0x00
,0x00,0x00,0x00,0x04,0x00,0x08,0x20,0x00,0x00,0x00,0x20,0x00,0x02,0x08,0x00,0x04
,0x02,0x08,0x00,0x04,0x02,0x00,0x20,0x04,0x02,0x00,0x20,0x04,0x02,0x00,0x00,0x00
,0x02,0x00,0x20,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x04,0x00,0x00,0x20,0x00
,0x00,0x08,0x20,0x04,0x02,0x08,0x00,0x00,0x02,0x08,0x20,0x00,0x00,0x08,0x20,0x04
,0x02,0x08,0x00,0x00,0x02,0x00,0x00,0x04,0x02,0x08,0x20,0x04,0x00,0x00,0x20,0x04
,0x00,0x08,0x20,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x08,0x20,0x04
,0x00,0x00,0x00,0x00,0x02,0x08,0x20,0x00,0x00,0x00,0x20,0x04,0x00,0x08,0x00,0x00
,0x02,0x00,0x00,0x04,0x00,0x08,0x00,0x04,0x00,0x08,0x00,0x00,0x02,0x00,0x20,0x00
,0x40,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x40,0x10,0x04,0x10
,0x00,0x00,0x00,0x10,0x40,0x10,0x00,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x10
,0x40,0x00,0x04,0x00,0x00,0x00,0x04,0x10,0x40,0x10,0x04,0x10,0x00,0x10,0x04,0x00
,0x00,0x10,0x04,0x10,0x40,0x10,0x04,0x00,0x00,0x10,0x00,0x00,0x40,0x00,0x00,0x00
,0x00,0x00,0x04,0x10,0x40,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x40,0x10,0x00,0x00
,0x00,0x10,0x04,0x00,0x40,0x00,0x04,0x00,0x40,0x00,0x04,0x10,0x00,0x10,0x04,0x10
,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x04,0x10
,0x40,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x40,0x10,0x04,0x00,0x00,0x00,0x04,0x00
,0x40,0x10,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x10,0x04,0x10,0x00,0x10,0x00,0x00
,0x40,0x00,0x00,0x00,0x40,0x00,0x04,0x10,0x00,0x10,0x00,0x00,0x40,0x10,0x04,0x00
,0x00,0x10,0x00,0x10,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x10,0x00,0x00,0x04,0x10
,0x40,0x00,0x04,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x00,0x40,0x10,0x00,0x10
,0x00,0x00,0x00,0x00,0x40,0x10,0x04,0x10,0x40,0x00,0x04,0x00,0x40,0x00,0x00,0x10
,0x00,0x00,0x04,0x10,0x00,0x10,0x00,0x10,0x40,0x10,0x00,0x10,0x00,0x00,0x00,0x00
,0x40,0x10,0x04,0x10,0x00,0x10,0x04,0x00,0x00,0x10,0x04,0x00,0x40,0x10,0x00,0x00
,0x40,0x10,0x00,0x00,0x40,0x00,0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x04,0x10
};
unsigned int s2[] = {
0x12,0x0C,0x2E,0x39,0x12,0x37,0x17,0x0F,0x2F,0x26,0x1D,0x2F,0x07,0x23,0x26,0x25
,0x0E,0x0D,0x2D,0x3A,0x31,0x2C,0x1D,0x25,0x35,0x14,0x0D,0x03,0x03,0x32,0x3D,0x1F
,0x04,0x3B,0x37,0x21,0x18,0x2A,0x3B,0x35,0x1D,0x18,0x2F,0x3F,0x0E,0x17,0x21,0x36
,0x02,0x1F,0x3E,0x26,0x2A,0x09,0x09,0x3F,0x31,0x31,0x1F,0x16,0x2F,0x05,0x1F,0x13
,0x36,0x1A,0x3A,0x0E,0x00,0x1D,0x3C,0x36,0x10,0x32,0x36,0x37,0x3B,0x06,0x38,0x03
,0x28,0x3B,0x39,0x35,0x0C,0x35,0x3D,0x2A,0x0F,0x24,0x38,0x33,0x3A,0x05,0x06,0x3F
,0x28,0x25,0x3F,0x1A,0x25,0x19,0x2E,0x2B,0x3B,0x34,0x11,0x3E,0x30,0x22,0x2B,0x0F
,0x2C,0x0E,0x3D,0x38,0x1D,0x1A,0x3A,0x1C,0x1A,0x29,0x0B,0x2D,0x2D,0x20,0x3A,0x2F
};
unsigned int getds2(int n)
{
unsigned int v1, v2, v3, v4;
v1 = s2[n];
v2 = s2[n + 1];
v3 = s2[n + 2];
v4 = s2[n + 3];
unsigned int result = (v4 << 24) | (v3 << 16) | (v2 << 8) | v1;
return result;
}
unsigned int getdword(int start)
{
if (start < 0x487394 || start >= 0x487394 + 128 * 16 - 4)
{
printf("getword error");
return 0xffffffff;
}
else
{
unsigned int v1, v2, v3, v4;
int n = start - 0x487394;
v1 = ss[n];
v2 = ss[n+1];
v3 = ss[n+2];
v4 = ss[n+3];
unsigned int result = (v4 << 24) | (v3 << 16) | (v2 << 8) | v1;
return result;
}
}
bool sub_449C70(int a1[2])
{
int v2; // ecx
int v3; // edx
unsigned int v4; // eax
int v5; // ecx
unsigned int v6; // edx
int v7; // eax
int v8; // ecx
int v9; // eax
unsigned int v10; // edx
int v11; // ecx
int v12; // esi
int v13; // eax
unsigned int v14; // ecx
unsigned int v15; // edx
unsigned int v16; // ecx
unsigned int v17; // edx
unsigned int v18; // ebx
unsigned int v19; // eax
unsigned int v20; // eax
int v21; // eax
unsigned int v22; // ecx
int v23; // eax
unsigned int v24; // ecx
int v25; // edx
int v26; // eax
unsigned int v27; // ecx
int v28; // edx
unsigned int v29; // eax
int v30; // ecx
int v31; // edx
int v32; // ecx
unsigned int v33; // eax
int v34; // edx
int v35; // esi
int *result; // eax
signed int v37; // [esp+10h] [ebp-4h]
v2 = a1[1] & 0xF0F0F0F ^ ((unsigned int)*a1 >> 4) & 0xF0F0F0F;
v3 = v2 ^ a1[1];
v37 = 8;
v4 = 16 * v2 ^ *a1;
v5 = (unsigned __int16)v3 ^ (v4 >> 16);
v6 = v5 ^ v3;
v7 = (v5 << 16) ^ v4;
v8 = v7 & 0x33333333 ^ (v6 >> 2) & 0x33333333;
v9 = v8 ^ v7;
v10 = 4 * v8 ^ v6;
v11 = v9 & 0xFF00FF ^ (v10 >> 8) & 0xFF00FF;
v12 = 0;
v13 = v11 ^ v9;
v14 = 2 * ((v11 << 8) ^ v10) | (((v11 << 8) ^ v10) >> 31);
v15 = (v13 ^ v14) & 0xAAAAAAAA;
v16 = v15 ^ v14;
v17 = 2 * (v15 ^ v13) | ((v15 ^ v13) >> 31);
do
{
v18 = getds2(v12*4);
v19 = getds2(v12*4) ^ ((v16 >> 4) | (v16 << 28));
v12 += 4;
int med = v18 ^ ((v16 >> 4) | (v16 << 28));
v17 ^= getdword(0x487994 + (v19 & 0x3F) * 4 ) | getdword(0x487794 + 4 * (((med) >> 8) & 0x3F) ) | getdword(0x487594 + 4 * ( (v19 >> 16) & 0x3F) ) | getdword( 0x487394 + 4 * ( (v19 >> 24) & 0x3F) )| getdword( 0x487A94 + 4 * ( (v16 ^ getds2(4*(v12 - 3))) & 0x3F) )| getdword( 0x487894 + 4 * ( ((v16 ^ getds2(4*(v12 - 3))) >> 8) & 0x3F) ) | getdword( 0x487694 + 4 * ( ((v16 ^ getds2(4*(v12 - 3))) >> 16) & 0x3F) )| getdword( 0x487494 + 4 * ( ((v16 ^ getds2((v12 - 3)*4)) >> 24) & 0x3F) );
v20 = getds2(4*(v12 - 2)) ^ ((v17 >> 4) | (v17 << 28));
v16 ^= getdword( 0x487994 + 4 * (v20 & 0x3F) ) | getdword(0x487794 + 4 * ( (v20 >> 8) & 0x3F) )| getdword( 0x487594 + 4 * ((v20 >> 16) & 0x3F)) | getdword( 0x487394 + 4 * ( (v20 >> 24) & 0x3F) )| getdword(0x487A94 + 4 * ( (v17 ^ getds2(4*(v12 - 1))) & 0x3F)) | getdword( (0x487894 + 4 * ( ((v17 ^ getds2(4*(v12 - 1))) >> 8) & 0x3F))) | getdword(0x487694 + 4 * ( ((v17 ^ getds2(4*(v12 - 1))) >> 16) & 0x3F) ) | getdword(0x487494 + 4 * ( ((v17 ^ getds2(4*(v12 - 1))) >> 24) & 0x3F) );
--v37;
} while (v37);
v21 = (v16 >> 1) | (v16 << 31);
v22 = (v17 ^ v21) & 0xAAAAAAAA;
v23 = v22 ^ v21;
v24 = ((v22 ^ v17) >> 1) | ((v22 ^ v17) << 31);
v25 = v23 & 0xFF00FF ^ (v24 >> 8) & 0xFF00FF;
v26 = v25 ^ v23;
v27 = (v25 << 8) ^ v24;
v28 = v26 & 0x33333333 ^ (v27 >> 2) & 0x33333333;
v29 = v28 ^ v26;
v30 = 4 * v28 ^ v27;
v31 = (unsigned __int16)v30 ^ (v29 >> 16);
v32 = v31 ^ v30;
v33 = (v31 << 16) ^ v29;
v34 = v32 & 0xF0F0F0F ^ (v33 >> 4) & 0xF0F0F0F;
v35 = v33 ^ 16 * v34;
//result = a1;
*a1 = v35;
a1[1] = v32 ^ v34;
if (a1[0] == 0x4b36c9f0 && a1[1] == 0x29611317)
return true;
else
return false;
}
unsigned __int8 v[128*16] = {
0xD7,0x01,0x53,0xB0,0x16,0xB3,0xA0,0x5E,0x83,0x1C,0xD6,0x71,0x1A,0xEF,0x43,0x8B
,0xDB,0x9C,0x97,0x0D,0xE2,0xCF,0xF5,0x47,0x1D,0xA3,0x7F,0x13,0xDF,0x5D,0x51,0xE3
,0xC5,0xBE,0x90,0xEA,0x77,0x02,0x3B,0x07,0xC3,0x4C,0xF8,0x25,0x6C,0xF3,0xBB,0x15
,0xBD,0x00,0x85,0x26,0x72,0x09,0x7D,0x33,0xC0,0x88,0x9A,0x36,0xAB,0xB8,0x40,0x6A
,0xB6,0xD2,0x3E,0x38,0xA6,0xCE,0xC7,0x4A,0x3D,0x48,0x3C,0x29,0xA4,0x10,0xB9,0xF2
,0x6D,0xC9,0xAD,0x4E,0x54,0x5A,0x28,0x34,0xCB,0x87,0x31,0xFE,0xD5,0x8C,0x66,0xFC
,0x8E,0xA8,0x37,0x84,0x78,0x9D,0x18,0xF1,0x4B,0xFA,0xE9,0xF6,0x98,0x5B,0x80,0x2B
,0x76,0xF9,0x0F,0xEC,0x7C,0x57,0x4F,0xD3,0xAC,0xE4,0xAE,0x44,0xE7,0x99,0x62,0xDD
,0x75,0x8A,0xE1,0xA7,0x81,0x9F,0x30,0x74,0x27,0xB2,0xCD,0x1B,0x24,0xCA,0x6B,0x2F
,0x49,0xAF,0x17,0xB1,0x91,0x11,0xC4,0x9E,0x50,0x55,0x46,0x05,0xB5,0x96,0x04,0x70
,0xE8,0x35,0x52,0x2E,0xA9,0xEE,0x0B,0xB4,0x0A,0x03,0xBA,0x6E,0x86,0x6F,0xDA,0xA2
,0xC1,0x4D,0x93,0x08,0x3A,0x63,0xD8,0x5C,0x69,0x7A,0x82,0x0E,0x45,0x20,0x12,0x58
,0x65,0x41,0x1E,0xFD,0xE5,0xEB,0x2C,0x73,0x79,0x68,0x92,0x2A,0x19,0xC2,0x42,0xFF
,0x8D,0xF4,0xFB,0xD4,0x39,0xD1,0xC6,0xA5,0x2D,0xDC,0xA1,0x94,0x1F,0x22,0x23,0x5F
,0x8F,0xBC,0x7B,0xF7,0x0C,0x21,0x7E,0x95,0x60,0x06,0x59,0xDE,0x56,0x61,0xF0,0x9B
,0xE6,0xCC,0xBF,0xE0,0xC8,0x64,0x3F,0xED,0x89,0xAA,0xD0,0xD9,0x32,0x67,0xB7,0x14
,0x00,0x00,0x40,0x00,0xA6,0x8B,0x44,0x00,0x70,0xF6,0x18,0x00,0x84,0xF6,0x18,0x00
,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6B,0xA2,0x41,0x00,0x70,0xF6,0x18,0x00
,0x03,0x00,0x00,0x00,0x84,0xF6,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0xB6,0x12,0x40,0x00,0x03,0x00,0x00,0x00,0x10,0x30,0x0E,0x02
,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x80,0x35,0xCC,0x46,0x00,0x00,0x00,0x00,0x00
,0x04,0x00,0x00,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x00,0x80
,0xF8,0x2F,0x0E,0x02,0x10,0x30,0x0E,0x02,0xC0,0x99,0x0F,0x02,0x10,0x30,0x0E,0x02
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x2F,0x0E,0x02,0xF8,0xF6,0x18,0x00
,0x30,0xA3,0x41,0x00,0xA8,0xF0,0x2A,0x00,0x70,0x8E,0x49,0x00,0xA8,0xF0,0x2A,0x00
,0x70,0x8E,0x49,0x00,0x01,0x00,0x00,0x00,0x70,0x8E,0x49,0x00,0xFF,0xFF,0xFF,0xFF
,0xFC,0xA8,0x46,0x00,0xFF,0xFF,0xFF,0xFF,0x10,0xF7,0x18,0x00,0xB0,0x10,0x40,0x00
,0xD8,0x07,0x00,0x00,0x89,0xFD,0x40,0x00,0x60,0xF7,0x18,0x00,0xA8,0xF0,0x2A,0x00
,0xA0,0xD6,0x46,0x00,0x98,0xF7,0x18,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x08,0x08,0x1F,0x02,0x7A,0x71,0x63,0x77,0x78,0x10,0x52,0xCE,0x44,0xF9,0x18,0x00
,0xB2,0x82,0x46,0x00,0xFF,0xFF,0xFF,0xFF,0xC9,0x30,0x41,0x00,0xD8,0x07,0x00,0x00
,0x60,0xF7,0x18,0x00,0x00,0x00,0x00,0x00,0x9A,0x30,0x41,0x00,0xD8,0x07,0x00,0x00
,0x60,0xF7,0x18,0x00,0x00,0x00,0x00,0x00,0x03,0x8E,0x40,0x00,0xD8,0x07,0x00,0x00
,0x60,0xF7,0x18,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x52,0x03,0x00,0x01,0x16
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95,0xB4,0x62,0x71,0x00,0x00,0x00,0x00
,0x68,0xF7,0x18,0x00,0x01,0x00,0x00,0x00,0x84,0xF8,0x18,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0xAE,0x11,0x46,0x00,0xA0,0xD6,0x46,0x00,0x11,0xBD,0x00,0x00
,0xC8,0xF7,0x18,0x00,0x3B,0x13,0x46,0x00,0xA8,0xF0,0x2A,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0xD0,0x8D,0x40,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0xF0,0xF7,0x18,0x00,0x58,0xFC,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA8,0xF0,0x2A,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x5A,0x1D,0x52,0xCE,0x0C,0xF8,0x18,0x00,0xE6,0xFB,0x45,0x00
,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x00,0x00,0x00,0x00
,0xA8,0xF0,0x2A,0x00,0x24,0xF8,0x18,0x00,0xC9,0x48,0x46,0x00,0x11,0x01,0x00,0x00
,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x98,0x0F,0x2A,0x00
,0xE8,0xFA,0x45,0x00,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00
,0x00,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x2F,0x34,0x43,0x00,0x00,0x00,0x00,0x00
,0x6E,0x00,0x00,0x00,0x7B,0x35,0x43,0x00,0x04,0x03,0x02,0x00,0x00,0x00,0x00,0x00
,0x98,0x0F,0x2A,0x00,0x6E,0x00,0x00,0x00,0x50,0xF9,0x18,0x00,0x11,0x01,0x00,0x00
,0x91,0x6D,0x63,0x77,0xA4,0xBA,0x49,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x38,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x7C,0xF9,0x18,0x00
,0x1E,0xA6,0x69,0x77,0x70,0x8A,0x29,0xB9,0xFE,0xFF,0xFF,0xFF,0x7E,0x7B,0x41,0x00
,0xB0,0x02,0x19,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x98,0x0F,0x2A,0x00
,0x98,0x0F,0x2A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0xA8,0xF0,0x2A,0x00,0xA8,0xF0,0x2A,0x00,0xA8,0xF0,0x2A,0x00
,0x00,0x00,0x00,0x00,0xEC,0xF8,0x18,0x00,0x4A,0x79,0x64,0x77,0x6D,0x01,0xFF,0xFF
,0x0D,0xF1,0x45,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x98,0x0F,0x2A,0x00
,0x98,0x0F,0x2A,0x00,0x30,0xA2,0x64,0x00,0x15,0xEB,0x45,0x00,0x6D,0x01,0xFF,0xFF
,0x04,0x03,0x02,0x00,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0xA8,0xF0,0x2A,0x00,0x28,0xF9,0x18,0x00,0xD6,0xF0,0x45,0x00,0x15,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00
,0x88,0xF9,0x18,0x00,0x00,0xE1,0x45,0x00,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00
,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC4,0xF9,0x18,0x00
,0xFC,0xA8,0x46,0x00,0xFF,0xFF,0xFF,0xFF,0x70,0xF9,0x18,0x00,0xBF,0xF0,0x45,0x00
,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x6C,0xF9,0x18,0x00
,0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0xF9,0x18,0x00,0x00,0xE1,0x45,0x00
,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x00,0x00,0x00,0x00
,0xB0,0x02,0x19,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x02,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x49,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x77,0x63,0x46,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0xB0,0x02,0x19,0x00,0x30,0xA2,0x64,0x00,0x84,0xF9,0x18,0x00,0x84,0xFA,0x18,0x00
,0x84,0xA8,0x46,0x00,0x00,0x00,0x00,0x00,0xF0,0xF9,0x18,0x00,0x1B,0xE3,0x45,0x00
,0x98,0x0F,0x2A,0x00,0x00,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00
,0x04,0x03,0x02,0x00,0xE7,0xE2,0x45,0x00,0x1C,0xFA,0x18,0x00,0xFA,0x62,0x63,0x77
,0xB0,0x02,0x19,0x00,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00
,0xE7,0xE2,0x45,0x00,0xCD,0xAB,0xBA,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0xE7,0xE2,0x45,0x00,0x94,0xFA,0x18,0x00,0x3A,0x6D,0x63,0x77,0xE7,0xE2,0x45,0x00
,0xB0,0x02,0x19,0x00,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00
,0xBC,0x1D,0x52,0xCE,0x11,0x01,0x00,0x00,0xF0,0x92,0xAB,0x00,0xD1,0xFE,0xFF,0xFF
,0x24,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x30,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE9,0x6C,0x63,0x77
,0x00,0x00,0x00,0x00,0x48,0x41,0xAC,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x38,0xFA,0x18,0x00,0x79,0x96,0x63,0x77,0x2C,0xFC,0x18,0x00
,0x1E,0xA6,0x69,0x77,0x70,0x8A,0x29,0xB9,0x00,0x00,0x00,0x00,0xD8,0xFA,0x18,0x00
,0x5E,0x96,0x63,0x77,0x00,0x00,0x00,0x00,0xE7,0xE2,0x45,0x00,0xB0,0x02,0x19,0x00
,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x18,0x93,0xAB,0x00
,0x01,0x00,0x00,0x00,0xB0,0x02,0x19,0x00,0x11,0x01,0x00,0x00,0x79,0x96,0x63,0x77
,0x20,0x92,0xAB,0x00,0x00,0x00,0x00,0x00,0xB0,0x02,0x19,0x00,0xB0,0x02,0x00,0x00
,0xFC,0xFA,0x18,0x00,0xC5,0x96,0x63,0x77,0xF0,0x92,0xAB,0x00,0x00,0x00,0x00,0x00
,0xE7,0xE2,0x45,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x00,0x00,0x00,0x00
,0x60,0x1C,0x65,0x00,0x1C,0xFB,0x18,0x00,0x01,0x46,0x6A,0x71,0xB0,0x02,0x19,0x00
,0x11,0x01,0x00,0x00,0x6E,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x01,0x00,0x00,0x00
,0x60,0x1C,0x65,0x00,0x38,0xFB,0x18,0x00,0x63,0x46,0x6A,0x71,0x60,0x1C,0x65,0x00
,0x00,0x00,0x00,0x00,0x04,0x03,0x02,0x00,0x60,0x1C,0x65,0x00,0x00,0x01,0x00,0x00
,0x98,0xFB,0x18,0x00,0xED,0x44,0x6A,0x71,0x00,0x2F,0x01,0x54,0x01,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x95,0xB4,0x62,0x71,0x00,0x00,0x00,0x00,0x40,0x37,0x29,0xB9
,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x53,0x79,0x64,0x77,0x04,0x04,0x06,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0xFB,0x18,0x00,0x12,0x0F,0x3F,0x10
,0x01,0x00,0x00,0x00,0x14,0xFC,0x18,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x00,0x00
,0x04,0x03,0x02,0x00,0x49,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x32,0x11,0x52,0xCE
,0xC4,0xFB,0x18,0x00,0xFA,0x62,0x63,0x77,0x04,0x03,0x02,0x00,0x02,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x49,0x00,0x15,0x00,0x95,0xB4,0x62,0x71,0xCD,0xAB,0xBA,0xDC
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95,0xB4,0x62,0x71,0x3C,0xFC,0x18,0x00
,0x3A,0x6D,0x63,0x77,0x95,0xB4,0x62,0x71,0x04,0x03,0x02,0x00,0x02,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x49,0x00,0x15,0x00,0x14,0x1B,0x52,0xCE,0x02,0x02,0x00,0x00
,0x95,0xB4,0x62,0x71,0x30,0xA2,0x64,0x00,0x24,0x00,0x00,0x00,0x01,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF
,0xFF,0xFF,0xFF,0xFF,0xE9,0x6C,0x63,0x77,0x00,0x00,0x00,0x00,0xA4,0xBA,0x49,0x00
,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFB,0x18,0x00
,0x00,0x00,0x00,0x00,0x24,0xFD,0x18,0x00,0x1E,0xA6,0x69,0x77,0x70,0x8A,0x29,0xB9
,0x00,0x00,0x00,0x00,0x74,0xFC,0x18,0x00,0x27,0x0D,0x64,0x77,0x00,0x00,0x00,0x00
,0x95,0xB4,0x62,0x71,0x04,0x03,0x02,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00
,0x49,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA8,0xF0,0x2A,0x00
,0xA8,0xF0,0x2A,0x00,0xA8,0xF0,0x2A,0x00,0x00,0x00,0x00,0x00,0x94,0xFC,0x18,0x00
,0x4A,0x79,0x64,0x77,0x6D,0x01,0xFF,0xFF,0x04,0x03,0x02,0x00,0x02,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x49,0x00,0x15,0x00,0x01,0x00,0x00,0x00,0xB4,0xFC,0x18,0x00
,0x15,0xEB,0x45,0x00,0x6D,0x01,0xFF,0xFF,0x04,0x03,0x02,0x00,0x02,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x49,0x00,0x15,0x00,0xA8,0xF0,0x2A,0x00,0xD0,0xFC,0x18,0x00
,0xD6,0xF0,0x45,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x00,0x15,0x00
,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xFD,0x18,0x00,0x00,0xE1,0x45,0x00
,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x00,0x15,0x00,0x00,0x00,0x00,0x00
,0x04,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x77,0x63,0x46,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x04,0x03,0x02,0x00,0x30,0xA2,0x64,0x00,0xE4,0xFC,0x18,0x00,0xE4,0xFD,0x18,0x00
,0x84,0xA8,0x46,0x00,0x00,0x00,0x00,0x00,0x50,0xFD,0x18,0x00,0x1B,0xE3,0x45,0x00
,0xA8,0xF0,0x2A,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00
};
bool sub_4488B0(unsigned __int8 a1[2])
{
int a2 = 2;
unsigned __int8 * v3; // esi
int v4; // ebx
unsigned __int8 result; // al
unsigned __int8 v6; // cl
unsigned __int8 v7; // di
unsigned __int8 v8; // bp
unsigned __int8 *v9; // ST20_4
unsigned __int8 *v10; // ST1C_4
unsigned __int8 v11; // [esp+8h] [ebp-Ch]
unsigned __int8 v12; // [esp+20h] [ebp+Ch]
unsigned __int8 v13; // [esp+20h] [ebp+Ch]
unsigned __int8 v15[128 * 16];
memcpy(v15,v, 128 * 16);
v4 = 0;
result = v15[256];
v6 = v15[257];
v12 = v15[256] ;
if (a2 <= 0)
{
v15[256]= result;
v15[257] = v6;
}
else
{
v7 = v12;
v8 = v6;
do
{
v13 = v7 + 1;
v7 = v13;
v9 = (v13 + v15);
v11 = v8 + *v9;
v8 = v11;
v10 = (unsigned __int8 *)(v15 + v11);
//sub_448890(v9, v10);
unsigned __int8 med;
med = *v9;
*v9 = *v10;
*v10 = med;
*(v4++ + a1) ^= *((((unsigned __int8)*v9 + *v10) & 0xFF) + v15);
} while (v4 < a2);
//result = v11;
v15[256] = v13;
v15[257] = v11;
}
if (a1[0] == 0x92 && a1[1] == 0x7f)
{
//printf("结果:%X %X\n", a1[0], a1[0]);
//getchar();
return true;
}
else
return false;
}
unsigned int s3[] = {
0x1B,0x23,0x18,0x00,0x09,0x19,0x01,0x2A,0x19,0x1E,0x00,0x3A,0x38,0x13,0x05,0x02
,0x20,0x1E,0x18,0x00,0x2E,0x1D,0x28,0x18,0x32,0x01,0x02,0x30,0x3E,0x07,0x32,0x01
,0x23,0x2B,0x29,0x2D,0x35,0x13,0x00,0x08,0x2B,0x28,0x08,0x00,0x33,0x3C,0x02,0x27
,0x3C,0x05,0x15,0x0A,0x17,0x38,0x14,0x01,0x17,0x27,0x01,0x11,0x14,0x30,0x09,0x04
,0x0B,0x35,0x07,0x13,0x26,0x13,0x30,0x00,0x2B,0x1D,0x00,0x25,0x29,0x0A,0x09,0x2C
,0x31,0x0C,0x0C,0x02,0x1F,0x2B,0x02,0x30,0x16,0x0B,0x22,0x0A,0x32,0x3B,0x0D,0x01
,0x35,0x0B,0x01,0x04,0x23,0x16,0x08,0x12,0x21,0x1B,0x32,0x00,0x16,0x2C,0x30,0x04
,0x17,0x31,0x24,0x35,0x1E,0x1C,0x04,0x02,0x3C,0x31,0x34,0x00,0x18,0x1B,0x26,0x20
};
unsigned int getds3(int n)
{
unsigned int v1, v2, v3, v4;
v1 = s3[n];
v2 = s3[n + 1];
v3 = s3[n + 2];
v4 = s3[n + 3];
unsigned int result = (v4 << 24) | (v3 << 16) | (v2 << 8) | v1;
return result;
}
unsigned int ss_3[281*16] = {
0x00,0x04,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x04,0x01,0x01
,0x04,0x00,0x01,0x01,0x04,0x04,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00
,0x00,0x04,0x00,0x00,0x00,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x00,0x04,0x00,0x00
,0x04,0x04,0x00,0x01,0x04,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00
,0x04,0x04,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x00
,0x00,0x04,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x04,0x04,0x00,0x01
,0x04,0x00,0x01,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x00,0x01,0x04,0x00,0x01,0x00
,0x00,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x01,0x00,0x00,0x00,0x00,0x01
,0x00,0x00,0x01,0x00,0x04,0x04,0x01,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x01
,0x00,0x04,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00
,0x04,0x00,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x04,0x00,0x00,0x01
,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x04,0x00,0x01,0x04,0x04,0x01,0x00
,0x04,0x04,0x01,0x01,0x04,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x04,0x04,0x00,0x01
,0x04,0x00,0x00,0x01,0x04,0x04,0x00,0x00,0x04,0x04,0x01,0x00,0x00,0x04,0x01,0x01
,0x04,0x04,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0x00
,0x04,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x01,0x01
,0x20,0x80,0x10,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x20,0x80,0x10,0x00
,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x10,0x80,0x20,0x80,0x00,0x80
,0x20,0x00,0x00,0x80,0x20,0x80,0x10,0x80,0x00,0x80,0x10,0x80,0x00,0x00,0x00,0x80
,0x00,0x80,0x00,0x80,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x10,0x80
,0x00,0x80,0x10,0x00,0x20,0x00,0x10,0x00,0x20,0x80,0x00,0x80,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x20,0x80,0x10,0x00,0x00,0x00,0x10,0x80
,0x20,0x00,0x10,0x00,0x20,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x10,0x00
,0x20,0x80,0x00,0x00,0x00,0x80,0x10,0x80,0x00,0x00,0x10,0x80,0x20,0x80,0x00,0x00
,0x00,0x00,0x00,0x00,0x20,0x80,0x10,0x00,0x20,0x00,0x10,0x80,0x00,0x00,0x10,0x00
,0x20,0x80,0x00,0x80,0x00,0x00,0x10,0x80,0x00,0x80,0x10,0x80,0x00,0x80,0x00,0x00
,0x00,0x00,0x10,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x00,0x00,0x20,0x80,0x10,0x80
,0x20,0x80,0x10,0x00,0x20,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80
,0x20,0x80,0x00,0x00,0x00,0x80,0x10,0x80,0x00,0x00,0x10,0x00,0x20,0x00,0x00,0x80
,0x20,0x00,0x10,0x00,0x20,0x80,0x00,0x80,0x20,0x00,0x00,0x80,0x20,0x00,0x10,0x00
,0x00,0x80,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x20,0x80,0x00,0x00
,0x00,0x00,0x00,0x80,0x20,0x00,0x10,0x80,0x20,0x80,0x10,0x80,0x00,0x80,0x10,0x00
,0x08,0x02,0x00,0x00,0x00,0x02,0x02,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x08
,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x02,0x02,0x00,0x00,0x02,0x00,0x08
,0x08,0x00,0x02,0x00,0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x00,0x00,0x02,0x00
,0x08,0x02,0x02,0x08,0x08,0x00,0x02,0x00,0x00,0x00,0x02,0x08,0x08,0x02,0x00,0x00
,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x02,0x02,0x08,0x00,0x02,0x00,0x00
,0x00,0x02,0x02,0x00,0x00,0x00,0x02,0x08,0x08,0x00,0x02,0x08,0x08,0x02,0x02,0x00
,0x08,0x02,0x00,0x08,0x00,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x08,0x02,0x00,0x08
,0x08,0x00,0x00,0x00,0x08,0x02,0x02,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x08
,0x00,0x02,0x02,0x08,0x00,0x00,0x00,0x08,0x08,0x00,0x02,0x00,0x08,0x02,0x00,0x00
,0x00,0x00,0x02,0x00,0x00,0x02,0x02,0x08,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x00
,0x00,0x02,0x00,0x00,0x08,0x00,0x02,0x00,0x08,0x02,0x02,0x08,0x00,0x02,0x00,0x08
,0x08,0x00,0x00,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x08
,0x08,0x02,0x00,0x08,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x08,0x08,0x02,0x02,0x08
,0x08,0x00,0x00,0x00,0x08,0x02,0x02,0x00,0x00,0x02,0x02,0x00,0x08,0x00,0x00,0x08
,0x00,0x00,0x02,0x08,0x08,0x02,0x00,0x08,0x08,0x02,0x00,0x00,0x00,0x00,0x02,0x08
,0x08,0x02,0x02,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x02,0x08,0x00,0x02,0x02,0x00
,0x01,0x20,0x80,0x00,0x81,0x20,0x00,0x00,0x81,0x20,0x00,0x00,0x80,0x00,0x00,0x00
,0x80,0x20,0x80,0x00,0x81,0x00,0x80,0x00,0x01,0x00,0x80,0x00,0x01,0x20,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x00,0x00,0x20,0x80,0x00,0x81,0x20,0x80,0x00
,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x01,0x00,0x80,0x00
,0x01,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0x20,0x80,0x00
,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0x20,0x00,0x00,0x80,0x20,0x00,0x00
,0x81,0x00,0x80,0x00,0x01,0x00,0x00,0x00,0x80,0x20,0x00,0x00,0x80,0x00,0x80,0x00
,0x00,0x20,0x00,0x00,0x80,0x20,0x80,0x00,0x81,0x20,0x80,0x00,0x81,0x00,0x00,0x00
,0x80,0x00,0x80,0x00,0x01,0x00,0x80,0x00,0x00,0x20,0x80,0x00,0x81,0x20,0x80,0x00
,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x00
,0x80,0x20,0x00,0x00,0x80,0x00,0x80,0x00,0x81,0x00,0x80,0x00,0x01,0x00,0x00,0x00
,0x01,0x20,0x80,0x00,0x81,0x20,0x00,0x00,0x81,0x20,0x00,0x00,0x80,0x00,0x00,0x00
,0x81,0x20,0x80,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x20,0x00,0x00
,0x01,0x00,0x80,0x00,0x01,0x20,0x00,0x00,0x80,0x20,0x80,0x00,0x81,0x00,0x80,0x00
,0x01,0x20,0x00,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0x20,0x80,0x00
,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x20,0x00,0x00,0x80,0x20,0x80,0x00
,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x02,0x00,0x00,0x08,0x02,0x00,0x01,0x00,0x42
,0x00,0x00,0x08,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x08,0x02
,0x00,0x01,0x08,0x40,0x00,0x00,0x08,0x00,0x00,0x01,0x00,0x02,0x00,0x01,0x08,0x40
,0x00,0x01,0x00,0x42,0x00,0x00,0x08,0x42,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x40
,0x00,0x00,0x00,0x02,0x00,0x00,0x08,0x40,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00
,0x00,0x01,0x00,0x40,0x00,0x01,0x08,0x42,0x00,0x01,0x08,0x42,0x00,0x01,0x00,0x02
,0x00,0x00,0x08,0x42,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42
,0x00,0x01,0x08,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x42,0x00,0x01,0x08,0x00
,0x00,0x00,0x08,0x00,0x00,0x01,0x00,0x42,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02
,0x00,0x00,0x00,0x40,0x00,0x00,0x08,0x02,0x00,0x01,0x00,0x42,0x00,0x01,0x08,0x40
,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x08,0x42,0x00,0x01,0x08,0x02
,0x00,0x01,0x08,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x08,0x42
,0x00,0x01,0x08,0x42,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x42,0x00,0x01,0x08,0x42
,0x00,0x00,0x08,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x42
,0x00,0x01,0x08,0x00,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x40,0x00,0x00,0x08,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x01,0x08,0x02,0x00,0x01,0x00,0x40
,0x10,0x00,0x00,0x20,0x00,0x00,0x40,0x20,0x00,0x40,0x00,0x00,0x10,0x40,0x40,0x20
,0x00,0x00,0x40,0x20,0x10,0x00,0x00,0x00,0x10,0x40,0x40,0x20,0x00,0x00,0x40,0x00
,0x00,0x40,0x00,0x20,0x10,0x40,0x40,0x00,0x00,0x00,0x40,0x00,0x10,0x00,0x00,0x20
,0x10,0x00,0x40,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x20,0x10,0x40,0x00,0x00
,0x00,0x00,0x00,0x00,0x10,0x00,0x40,0x00,0x10,0x40,0x00,0x20,0x00,0x40,0x00,0x00
,0x00,0x40,0x40,0x00,0x10,0x40,0x00,0x20,0x10,0x00,0x00,0x00,0x10,0x00,0x40,0x20
,0x10,0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x10,0x40,0x40,0x00,0x00,0x40,0x40,0x20
,0x10,0x40,0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x20
,0x00,0x40,0x00,0x20,0x10,0x00,0x00,0x00,0x10,0x00,0x40,0x20,0x00,0x40,0x40,0x00
,0x10,0x40,0x40,0x20,0x00,0x00,0x40,0x00,0x10,0x40,0x00,0x00,0x10,0x00,0x00,0x20
,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x20,0x10,0x40,0x00,0x00
,0x10,0x00,0x00,0x20,0x10,0x40,0x40,0x20,0x00,0x40,0x40,0x00,0x00,0x00,0x40,0x20
,0x10,0x40,0x40,0x00,0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x10,0x00,0x40,0x20
,0x10,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x40,0x20,0x10,0x40,0x40,0x00
,0x00,0x40,0x00,0x00,0x10,0x00,0x40,0x00,0x10,0x40,0x00,0x20,0x00,0x00,0x00,0x00
,0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x20,0x10,0x00,0x40,0x00,0x10,0x40,0x00,0x20
,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0x04,0x02,0x08,0x00,0x04,0x00,0x00,0x00,0x00
,0x00,0x08,0x00,0x00,0x02,0x08,0x00,0x04,0x02,0x08,0x20,0x00,0x00,0x08,0x20,0x04
,0x02,0x08,0x20,0x04,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x04
,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x20,0x04,0x02,0x08,0x00,0x00
,0x00,0x08,0x00,0x04,0x02,0x08,0x20,0x00,0x02,0x00,0x20,0x00,0x00,0x08,0x00,0x04
,0x02,0x00,0x00,0x04,0x00,0x00,0x20,0x04,0x00,0x08,0x20,0x04,0x02,0x00,0x20,0x00
,0x00,0x00,0x20,0x04,0x00,0x08,0x00,0x00,0x02,0x08,0x00,0x00,0x02,0x08,0x20,0x04
,0x00,0x08,0x20,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x20,0x00
,0x00,0x00,0x00,0x04,0x00,0x08,0x20,0x00,0x00,0x00,0x20,0x00,0x02,0x08,0x00,0x04
,0x02,0x08,0x00,0x04,0x02,0x00,0x20,0x04,0x02,0x00,0x20,0x04,0x02,0x00,0x00,0x00
,0x02,0x00,0x20,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x04,0x00,0x00,0x20,0x00
,0x00,0x08,0x20,0x04,0x02,0x08,0x00,0x00,0x02,0x08,0x20,0x00,0x00,0x08,0x20,0x04
,0x02,0x08,0x00,0x00,0x02,0x00,0x00,0x04,0x02,0x08,0x20,0x04,0x00,0x00,0x20,0x04
,0x00,0x08,0x20,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x08,0x20,0x04
,0x00,0x00,0x00,0x00,0x02,0x08,0x20,0x00,0x00,0x00,0x20,0x04,0x00,0x08,0x00,0x00
,0x02,0x00,0x00,0x04,0x00,0x08,0x00,0x04,0x00,0x08,0x00,0x00,0x02,0x00,0x20,0x00
,0x40,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x40,0x10,0x04,0x10
,0x00,0x00,0x00,0x10,0x40,0x10,0x00,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x10
,0x40,0x00,0x04,0x00,0x00,0x00,0x04,0x10,0x40,0x10,0x04,0x10,0x00,0x10,0x04,0x00
,0x00,0x10,0x04,0x10,0x40,0x10,0x04,0x00,0x00,0x10,0x00,0x00,0x40,0x00,0x00,0x00
,0x00,0x00,0x04,0x10,0x40,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x40,0x10,0x00,0x00
,0x00,0x10,0x04,0x00,0x40,0x00,0x04,0x00,0x40,0x00,0x04,0x10,0x00,0x10,0x04,0x10
,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x04,0x10
,0x40,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x40,0x10,0x04,0x00,0x00,0x00,0x04,0x00
,0x40,0x10,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x10,0x04,0x10,0x00,0x10,0x00,0x00
,0x40,0x00,0x00,0x00,0x40,0x00,0x04,0x10,0x00,0x10,0x00,0x00,0x40,0x10,0x04,0x00
,0x00,0x10,0x00,0x10,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x10,0x00,0x00,0x04,0x10
,0x40,0x00,0x04,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x00,0x40,0x10,0x00,0x10
,0x00,0x00,0x00,0x00,0x40,0x10,0x04,0x10,0x40,0x00,0x04,0x00,0x40,0x00,0x00,0x10
,0x00,0x00,0x04,0x10,0x00,0x10,0x00,0x10,0x40,0x10,0x00,0x10,0x00,0x00,0x00,0x00
,0x40,0x10,0x04,0x10,0x00,0x10,0x04,0x00,0x00,0x10,0x04,0x00,0x40,0x10,0x00,0x00
,0x40,0x10,0x00,0x00,0x40,0x00,0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x04,0x10
,0x2C,0x7C,0x48,0x00,0x20,0x7C,0x48,0x00,0x84,0x9C,0x49,0x00,0x14,0x7C,0x48,0x00
,0x04,0x7C,0x48,0x00,0xF8,0x7B,0x48,0x00,0xE4,0x7B,0x48,0x00,0xD4,0x7B,0x48,0x00
,0xBC,0x7B,0x48,0x00,0x84,0x9C,0x49,0x00,0x69,0x6E,0x63,0x6F,0x6D,0x70,0x61,0x74
,0x69,0x62,0x6C,0x65,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x00,0x00,0x00,0x00
,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x65,0x72,0x72,0x6F,0x72,0x00,0x00,0x00,0x00
,0x69,0x6E,0x73,0x75,0x66,0x66,0x69,0x63,0x69,0x65,0x6E,0x74,0x20,0x6D,0x65,0x6D
,0x6F,0x72,0x79,0x00,0x64,0x61,0x74,0x61,0x20,0x65,0x72,0x72,0x6F,0x72,0x00,0x00
,0x73,0x74,0x72,0x65,0x61,0x6D,0x20,0x65,0x72,0x72,0x6F,0x72,0x00,0x00,0x00,0x00
,0x66,0x69,0x6C,0x65,0x20,0x65,0x72,0x72,0x6F,0x72,0x00,0x00,0x73,0x74,0x72,0x65
,0x61,0x6D,0x20,0x65,0x6E,0x64,0x00,0x00,0x6E,0x65,0x65,0x64,0x20,0x64,0x69,0x63
,0x74,0x69,0x6F,0x6E,0x61,0x72,0x79,0x00,0x00,0x00,0x00,0x00,0xF0,0x0A,0x47,0x00
,0xA4,0x09,0x47,0x00,0x01,0x01,0x00,0x00,0x1E,0x01,0x00,0x00,0x0F,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x70,0x0F,0x47,0x00,0x18,0x0A,0x47,0x00,0x00,0x00,0x00,0x00
,0x1E,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x90,0x0A,0x47,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x07,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x60,0x07,0x00,0x00
,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x10,0x00,0x00,0x00,0x54,0x08,0x00,0x00,0x73,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x1F,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x30,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xC0,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x0A,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x20,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xA0,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x40,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xE0,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x06,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x58,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x18,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x90,0x00,0x00,0x00,0x53,0x07,0x00,0x00
,0x3B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x38,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xD0,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x11,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x68,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x28,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xB0,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x88,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x48,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xF0,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x04,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x54,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x14,0x00,0x00,0x00,0x55,0x08,0x00,0x00,0xE3,0x00,0x00,0x00,0x53,0x07,0x00,0x00
,0x2B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x74,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x34,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xC8,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x0D,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x24,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xA8,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x04,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x84,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x44,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xE8,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x5C,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x1C,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x98,0x00,0x00,0x00,0x54,0x07,0x00,0x00
,0x53,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x3C,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xD8,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x17,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x6C,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x2C,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xB8,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x0C,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x8C,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x4C,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xF8,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x52,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x12,0x00,0x00,0x00,0x55,0x08,0x00,0x00,0xA3,0x00,0x00,0x00,0x53,0x07,0x00,0x00
,0x23,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x72,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x32,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xC4,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x0B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x62,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x22,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xA4,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x02,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x82,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x42,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xE4,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x07,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x5A,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x1A,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x94,0x00,0x00,0x00,0x54,0x07,0x00,0x00
,0x43,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x7A,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x3A,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xD4,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x13,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x6A,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x2A,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xB4,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x0A,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x8A,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x4A,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xF4,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x05,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x56,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x16,0x00,0x00,0x00,0xC0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x07,0x00,0x00
,0x33,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x76,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x36,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xCC,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x0F,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x66,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x26,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xAC,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x06,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x86,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x46,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xEC,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x09,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x5E,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x1E,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x9C,0x00,0x00,0x00,0x54,0x07,0x00,0x00
,0x63,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x3E,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xDC,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x1B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x6E,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x2E,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xBC,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x0E,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x8E,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x4E,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xFC,0x00,0x00,0x00,0x60,0x07,0x00,0x00
,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x51,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x11,0x00,0x00,0x00,0x55,0x08,0x00,0x00,0x83,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x1F,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x71,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x31,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xC2,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x0A,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x61,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x21,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xA2,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x81,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x41,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xE2,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x06,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x59,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x19,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x92,0x00,0x00,0x00,0x53,0x07,0x00,0x00
,0x3B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x79,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x39,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xD2,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x11,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x69,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x29,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xB2,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x09,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x89,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x49,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xF2,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x04,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x55,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x15,0x00,0x00,0x00,0x50,0x08,0x00,0x00,0x02,0x01,0x00,0x00,0x53,0x07,0x00,0x00
,0x2B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x75,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x35,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xCA,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x0D,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x65,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x25,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xAA,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x05,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x85,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x45,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xEA,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x5D,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x1D,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x9A,0x00,0x00,0x00,0x54,0x07,0x00,0x00
,0x53,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x7D,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x3D,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xDA,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x17,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x6D,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x2D,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xBA,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x0D,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x8D,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x4D,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xFA,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x53,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x13,0x00,0x00,0x00,0x55,0x08,0x00,0x00,0xC3,0x00,0x00,0x00,0x53,0x07,0x00,0x00
,0x23,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x73,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x33,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xC6,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x0B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x63,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x23,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xA6,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x43,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xE6,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x07,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x5B,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x1B,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x96,0x00,0x00,0x00,0x54,0x07,0x00,0x00
,0x43,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x7B,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x3B,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xD6,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x13,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x6B,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x2B,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xB6,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x0B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x8B,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x4B,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xF6,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x05,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x57,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x17,0x00,0x00,0x00,0xC0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x07,0x00,0x00
,0x33,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x37,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xCE,0x00,0x00,0x00,0x51,0x07,0x00,0x00
,0x0F,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x67,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x27,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xAE,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x07,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x87,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x47,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xEE,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x09,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x1F,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x9E,0x00,0x00,0x00,0x54,0x07,0x00,0x00
,0x63,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x3F,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xDE,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x1B,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x6F,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x2F,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xBE,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x0F,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x8F,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x4F,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xFE,0x00,0x00,0x00,0x60,0x07,0x00,0x00
,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x10,0x00,0x00,0x00,0x54,0x08,0x00,0x00,0x73,0x00,0x00,0x00,0x52,0x07,0x00,0x00
,0x1F,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x30,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xC1,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x0A,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x20,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xA1,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x08,0x00,0x00
,0x40,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0xE1,0x00,0x00,0x00,0x50,0x07,0x00,0x00
,0x06,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x58,0x00,0x00,0x00,0x00,0x08,0x00,0x00
};
unsigned int getdword_3(int start)
{
if (start < 0x487394 || start >= 0x487394 + 281 * 16 - 4)
{
printf("getword error");
return 0xffffffff;
}
else
{
unsigned int v1, v2, v3, v4;
int n = start - 0x487394;
v1 = ss_3[n];
v2 = ss_3[n + 1];
v3 = ss_3[n + 2];
v4 = ss_3[n + 3];
unsigned int result = (v4 << 24) | (v3 << 16) | (v2 << 8) | v1;
return result;
}
}
bool sub_449C70_3(int a1[2])
{
int v2; // ecx
int v3; // edx
unsigned int v4; // eax
int v5; // ecx
unsigned int v6; // edx
int v7; // eax
int v8; // ecx
int v9; // eax
unsigned int v10; // edx
int v11; // ecx
int v12; // esi
int v13; // eax
unsigned int v14; // ecx
unsigned int v15; // edx
unsigned int v16; // ecx
unsigned int v17; // edx
unsigned int v18; // ebx
unsigned int v19; // eax
unsigned int v20; // eax
int v21; // eax
unsigned int v22; // ecx
int v23; // eax
unsigned int v24; // ecx
int v25; // edx
int v26; // eax
unsigned int v27; // ecx
int v28; // edx
unsigned int v29; // eax
int v30; // ecx
int v31; // edx
int v32; // ecx
unsigned int v33; // eax
int v34; // edx
int v35; // esi
int *result; // eax
signed int v37; // [esp+10h] [ebp-4h]
v2 = a1[1] & 0xF0F0F0F ^ ((unsigned int)*a1 >> 4) & 0xF0F0F0F;
v3 = v2 ^ a1[1];
v37 = 8;
v4 = 16 * v2 ^ *a1;
v5 = (unsigned __int16)v3 ^ (v4 >> 16);
v6 = v5 ^ v3;
v7 = (v5 << 16) ^ v4;
v8 = v7 & 0x33333333 ^ (v6 >> 2) & 0x33333333;
v9 = v8 ^ v7;
v10 = 4 * v8 ^ v6;
v11 = v9 & 0xFF00FF ^ (v10 >> 8) & 0xFF00FF;
v12 = 0;
v13 = v11 ^ v9;
v14 = 2 * ((v11 << 8) ^ v10) | (((v11 << 8) ^ v10) >> 31);
v15 = (v13 ^ v14) & 0xAAAAAAAA;
v16 = v15 ^ v14;
v17 = 2 * (v15 ^ v13) | ((v15 ^ v13) >> 31);
do
{
v18 = getds3(v12 * 4);
v19 = getds3(v12 * 4) ^ ((v16 >> 4) | (v16 << 28));
v12 += 4;
int med = v18 ^ ((v16 >> 4) | (v16 << 28));
v17 ^= getdword_3(0x487994 + (v19 & 0x3F) * 4) | getdword_3(0x487794 + 4 * (((med) >> 8) & 0x3F)) | getdword_3(0x487594 + 4 * ((v19 >> 16) & 0x3F)) | getdword_3(0x487394 + 4 * ((v19 >> 24) & 0x3F)) | getdword_3(0x487A94 + 4 * ((v16 ^ getds3(4 * (v12 - 3))) & 0x3F)) | getdword_3(0x487894 + 4 * (((v16 ^ getds3(4 * (v12 - 3))) >> 8) & 0x3F)) | getdword_3(0x487694 + 4 * (((v16 ^ getds3(4 * (v12 - 3))) >> 16) & 0x3F)) | getdword_3(0x487494 + 4 * (((v16 ^ getds3((v12 - 3) * 4)) >> 24) & 0x3F));
v20 = getds3(4 * (v12 - 2)) ^ ((v17 >> 4) | (v17 << 28));
v16 ^= getdword_3(0x487994 + 4 * (v20 & 0x3F)) | getdword_3(0x487794 + 4 * ((v20 >> 8) & 0x3F)) | getdword_3(0x487594 + 4 * ((v20 >> 16) & 0x3F)) | getdword_3(0x487394 + 4 * ((v20 >> 24) & 0x3F)) | getdword_3(0x487A94 + 4 * ((v17 ^ getds3(4 * (v12 - 1))) & 0x3F)) | getdword_3((0x487894 + 4 * (((v17 ^ getds3(4 * (v12 - 1))) >> 8) & 0x3F))) | getdword_3(0x487694 + 4 * (((v17 ^ getds3(4 * (v12 - 1))) >> 16) & 0x3F)) | getdword_3(0x487494 + 4 * (((v17 ^ getds3(4 * (v12 - 1))) >> 24) & 0x3F));
--v37;
} while (v37);
v21 = (v16 >> 1) | (v16 << 31);
v22 = (v17 ^ v21) & 0xAAAAAAAA;
v23 = v22 ^ v21;
v24 = ((v22 ^ v17) >> 1) | ((v22 ^ v17) << 31);
v25 = v23 & 0xFF00FF ^ (v24 >> 8) & 0xFF00FF;
v26 = v25 ^ v23;
v27 = (v25 << 8) ^ v24;
v28 = v26 & 0x33333333 ^ (v27 >> 2) & 0x33333333;
v29 = v28 ^ v26;
v30 = 4 * v28 ^ v27;
v31 = (unsigned __int16)v30 ^ (v29 >> 16);
v32 = v31 ^ v30;
v33 = (v31 << 16) ^ v29;
v34 = v32 & 0xF0F0F0F ^ (v33 >> 4) & 0xF0F0F0F;
v35 = v33 ^ 16 * v34;
//result = a1;
*a1 = v35;
a1[1] = v32 ^ v34;
if (a1[0] == 0x6fd599b0 && a1[1] == 0x6559e3cb)
return true;
else
return false;
}
int main()
{
//int a1[2] = {0x2000000,0xc0db0000};
//sub_449C70(a1);
/* 爆破第一位密码*/
/*
int a1[2];
unsigned int i = 0;
for (i = 0; i <= 0xffff;i++)
{
printf("i=%x\n",i);
a1[0] = 0x2000000;
a1[1] = i << 16;
if(sub_449C70(a1))
{
printf("结果:%X\n", i >> 16);
getchar();
}
}
*/
/* 爆破第二位密码*/
//unsigned __int8 a2[2] = { 0xc1,0xcb };
//sub_4488B0(a2);
//unsigned int i ,j;
//unsigned __int8 a2[2];
//for (i = 0; i <= 0xff; i++)
//{
// //printf("%x ",i);
// for (j = 0; j < 0xff; j++)
// {
// unsigned __int8 a2[2];
// a2[0] = i;
// a2[1] = j;
// //printf("%x %x\n", i,j);
// if (sub_4488B0(a2))
// {
// printf("结果:%X %X\n", i, j);
// getchar();
// }
// }
//}
//
//int a3[2] = {0x2000000,0xc2f00000};
//sub_449C70_3(a3);
/* 爆破第一位密码*/
int a3[2];
unsigned int i = 0;
for (i = 0; i <= 0xffff;i++)
{
//printf("i=%x\n",i);
a3[0] = 0x2000000;
a3[1] = i << 16;
if(sub_449C70_3(a3))
{
printf("i=%x\n", i);
printf("结果:%X\n", i >> 16);
getchar();
}
}
return 0;
}
通过程序穷尽可以得出三次变化的输入字符串分别为0Xc0db、0xc1cb、0xc2f0,即为汉字的“累了吗”