int
main()
{
int
opcode[]
=
{
0xA1
,
0xC1
,
0x00
,
0xB1
,
0x77
,
0xC2
,
0x4A
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x01
,
0xB2
,
0x77
,
0xC2
,
0x19
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x02
,
0xB4
,
0x77
,
0xC2
,
0xDD
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x03
,
0xB3
,
0x77
,
0xC2
,
0x0F
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x04
,
0xB2
,
0x77
,
0xC2
,
0x1B
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x05
,
0xB4
,
0x77
,
0xC2
,
0x89
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x06
,
0xB1
,
0x77
,
0xC2
,
0x19
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x07
,
0xB3
,
0x77
,
0xC2
,
0x54
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x08
,
0xB1
,
0x77
,
0xC2
,
0x4F
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x09
,
0xB1
,
0x77
,
0xC2
,
0x4E
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x0A
,
0xB3
,
0x77
,
0xC2
,
0x55
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x0B
,
0xB3
,
0x77
,
0xC2
,
0x56
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x0C
,
0xB4
,
0x77
,
0xC2
,
0x8E
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x0D
,
0xB2
,
0x77
,
0xC2
,
0x49
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x0E
,
0xB3
,
0x77
,
0xC2
,
0x0E
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x0F
,
0xB1
,
0x77
,
0xC2
,
0x4B
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x10
,
0xB3
,
0x77
,
0xC2
,
0x06
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x11
,
0xB3
,
0x77
,
0xC2
,
0x54
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x12
,
0xB2
,
0x77
,
0xC2
,
0x1A
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x13
,
0xB1
,
0x77
,
0xC2
,
0x42
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x14
,
0xB3
,
0x77
,
0xC2
,
0x53
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x15
,
0xB1
,
0x77
,
0xC2
,
0x1F
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x16
,
0xB3
,
0x77
,
0xC2
,
0x52
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x17
,
0xB4
,
0x77
,
0xC2
,
0xDB
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x18
,
0xB1
,
0x77
,
0xC2
,
0x19
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x19
,
0xB4
,
0x77
,
0xC2
,
0xD9
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x1A
,
0xB1
,
0x77
,
0xC2
,
0x19
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x1B
,
0xB3
,
0x77
,
0xC2
,
0x55
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x1C
,
0xB2
,
0x77
,
0xC2
,
0x19
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x1D
,
0xB3
,
0x77
,
0xC2
,
0x00
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x1E
,
0xB1
,
0x77
,
0xC2
,
0x4B
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x1F
,
0xB2
,
0x77
,
0xC2
,
0x1E
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x20
,
0x80
,
0x02
,
0x18
,
0x00
,
0x00
,
0x00
,
0x23
,
0x10
,
0xC1
,
0x21
,
0x80
,
0x02
,
0x10
,
0x00
,
0x00
,
0x00
,
0x23
,
0xF7
,
0xC1
,
0x22
,
0x80
,
0x02
,
0x08
,
0x00
,
0x00
,
0x00
,
0x23
,
0xF7
,
0xC1
,
0x23
,
0xF7
,
0xFE
,
0x80
,
0x02
,
0x05
,
0x00
,
0x00
,
0x00
,
0x22
,
0x77
,
0x10
,
0x80
,
0x02
,
0x07
,
0x00
,
0x00
,
0x00
,
0x23
,
0x80
,
0x02
,
0x23
,
0x77
,
0xF1
,
0x98
,
0x31
,
0x77
,
0x10
,
0x80
,
0x02
,
0x18
,
0x00
,
0x00
,
0x00
,
0x23
,
0x80
,
0x02
,
0x20
,
0xB9
,
0xE4
,
0x35
,
0x31
,
0x77
,
0x10
,
0x80
,
0x02
,
0x12
,
0x00
,
0x00
,
0x00
,
0x22
,
0x77
,
0xA0
,
0xC1
,
0x24
,
0x80
,
0x02
,
0x18
,
0x00
,
0x00
,
0x00
,
0x23
,
0x10
,
0xC1
,
0x25
,
0x80
,
0x02
,
0x10
,
0x00
,
0x00
,
0x00
,
0x23
,
0xF7
,
0xC1
,
0x26
,
0x80
,
0x02
,
0x08
,
0x00
,
0x00
,
0x00
,
0x23
,
0xF7
,
0xC1
,
0x27
,
0xF7
,
0xFE
,
0x32
,
0x20
,
0x43
,
0x33
,
0x77
,
0x80
,
0x02
,
0x11
,
0x00
,
0x00
,
0x00
,
0x22
,
0x35
,
0x37
,
0x38
,
0x77
,
0x80
,
0x02
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x23
,
0x77
,
0x38
,
0x39
,
0x10
,
0x32
,
0x20
,
0x43
,
0x33
,
0x77
,
0x80
,
0x02
,
0x11
,
0x00
,
0x00
,
0x00
,
0x22
,
0x35
,
0x37
,
0x38
,
0x77
,
0x80
,
0x02
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x23
,
0x77
,
0x38
,
0x39
,
0xC7
,
0xC1
,
0x28
,
0x80
,
0x02
,
0x18
,
0x00
,
0x00
,
0x00
,
0x23
,
0x10
,
0xC1
,
0x29
,
0x80
,
0x02
,
0x10
,
0x00
,
0x00
,
0x00
,
0x23
,
0xF7
,
0xC1
,
0x2A
,
0x80
,
0x02
,
0x08
,
0x00
,
0x00
,
0x00
,
0x23
,
0xF7
,
0xC1
,
0x2B
,
0xF7
,
0xFE
,
0x32
,
0x20
,
0x43
,
0x33
,
0x77
,
0x80
,
0x02
,
0x11
,
0x00
,
0x00
,
0x00
,
0x22
,
0x35
,
0x37
,
0x38
,
0x77
,
0x80
,
0x02
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x23
,
0x77
,
0x38
,
0x39
,
0x10
,
0x32
,
0x20
,
0x43
,
0x33
,
0x77
,
0x80
,
0x02
,
0x11
,
0x00
,
0x00
,
0x00
,
0x22
,
0x35
,
0x37
,
0x38
,
0x77
,
0x80
,
0x02
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x23
,
0x77
,
0x38
,
0x39
,
0xC8
,
0x99
};
int
i
=
0
;
while
(
1
)
{
if
( opcode[i]
=
=
0x71
)
{
printf(
"table[6] -= 4\n"
);
printf(
"*table[6] = 0x%x\n"
,opcode[i
+
1
]);
i
+
=
5
;
}
if
( opcode[i]
=
=
0x41
)
{
printf(
"table[1] += table[2]\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x42
)
{
printf(
"table[1] -= table[4];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x43
)
{
printf(
"table[1] *= table[3];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x37
)
{
printf(
"table[1] = table[5];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x38
)
{
printf(
"table[1] ^= table[4];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x39
)
{
printf(
"table[1] ^= table[5];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x35
)
{
printf(
"table[5] = table[1];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xF7
)
{
printf(
"table[9] += table[1];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x44
)
{
printf(
"table[1] /= table[5];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x80
)
{
printf(
"table[2] = 0x%x\n"
,
*
((unsigned
int
*
)(&opcode[i
+
2
])));
i
+
=
6
;
}
if
( opcode[i]
=
=
0x77
)
{
printf(
"table[1] ^= table[9];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x53
)
{
printf(
"(sub_8048580)(*table[3]);\n"
);
i
+
=
2
;
}
if
( opcode[i]
=
=
0x22
)
{
printf(
"table[1] >>= table[2];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x23
)
{
printf(
"table[1] <<= table[2];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x99
)
{
printf(
"out\n"
);
break
;
}
if
( opcode[i]
=
=
0x76
)
{
printf(
"table[3] = *table[6];\n"
);
printf(
"*table[6] = 0;\n"
);
printf(
"table[6] += 4;\n"
);
i
+
=
5
;
}
if
( opcode[i]
=
=
0x54
)
{
printf(
"v6 = table[3];\n"
);
printf(
"*v6 = sub_8048520();\n"
);
i
+
=
2
;
}
if
( opcode[i]
=
=
0x30
)
{
printf(
"table[1] |= table[2];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x31
)
{
printf(
"table[1] &= table[2];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x32
)
{
printf(
"table[3] = 0x%x\n"
,opcode[i
+
1
]) ;
i
+
=
2
;
}
if
( opcode[i]
=
=
9
)
{
printf(
"table[1] = 1877735783;\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x10
)
{
printf(
"table[9] = table[1];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x33
)
{
printf(
"table[4] = table[1]\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x34
)
{
printf(
"table[2] = 0x%x;"
,opcode[i
+
1
]);
i
+
=
2
;
}
if
( opcode[i]
=
=
0xFE
)
{
printf(
"table[1] = table[9];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0x11
)
{
printf(
"(sub_8048510)(&unk_8049340, table[1])\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xA0
)
{
printf(
"if ( table[1] != 1877735783 )\nexit\n\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xA1
)
{
printf(
"read\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xB1
)
{
printf(
"table[9] = xor[0]\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xB2
)
{
printf(
"table[9] = xor[1];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xA4
)
{
printf(
"xor[*(table[8] + 1)] = table[1];\n"
);
i
+
=
4
;
}
if
( opcode[i]
=
=
0xB3
)
{
printf(
"table[9] = xor[2];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xB4
)
{
printf(
"table[9] = xor[3];\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xC1
)
{
printf(
"table[1] = flag[%d];\n"
,opcode[i
+
1
]);
i
+
=
2
;
}
if
( opcode[i]
=
=
0xC7
)
{
printf(
"dword_804B060 != table[1]\n\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xC8
)
{
printf(
"dword_804B064 != table[1]\n\n"
);
+
+
i;
}
if
( opcode[i]
=
=
0xC2
)
{
printf(
"if ( %d != table[1] )\n\n"
,opcode[i
+
1
]);
i
+
=
5
;
}
}
}