uint32_t key = 448431333;
uint32_t key2 = 3848427296;
int encode1(uint32_t flag[2])
{
int key1[4] = {0x494C, 0x6F76, 0x6520, 0x4355};
uint32_t b = (flag[1] * 0x10);
uint32_t a = ((signed)flag[1] / 0x20);
uint32_t c = ((a ^ b) + flag[1]);
uint32_t d = (c ^ (key + key1[key & 3]));// 6f76
flag[0] = d + flag[0];
key += 0x75BCD15;
uint32_t e = (flag[0] * 0x10);
uint32_t f = ((signed)flag[0] / 0x20);
uint32_t g = (e ^ f);
uint32_t h = g + flag[0];
uint32_t i = h ^ (key + key1[((signed)key / 0x800) & 3]);
flag[1] = i + flag[1];
return 0;
}
void decode1(uint32_t flag[2])
{
int key1[4] = {0x494C, 0x6F76, 0x6520, 0x4355};
uint32_t e = (flag[0] * 0x10);
uint32_t f = ((signed)flag[0] / 0x20);
uint32_t g = ( e^f );
uint32_t h = g + flag[0];
uint32_t i = h ^ (key + key1[((signed)key / 0x800) & 3]);
flag[1] = flag[1] - i;
key -= 0x75BCD15;
uint32_t b = (flag[1] * 0x10);
uint32_t a = ((signed)flag[1] / 0x20);
uint32_t c = ((a ^ b) + flag[1]);
uint32_t d = (c ^ (key + key1[key & 3]));// 6f76
flag[0] -= d;
return;
}
int decode2(uint32_t flag[2])
{
key2 -= 0x154CBF7;
uint32_t b1 = (flag[0] * 0x10 + 0x2074);
uint32_t c1 = (key2 + flag[0]);
uint32_t a1 = ((signed)flag[0] / 0x20 + 0x6561);
uint32_t d1 = (c1 ^ a1);
uint32_t e1 = d1 ^ b1;
flag[1] -= e1;
uint32_t b = (flag[1] * 0x10 + 0x5354);
uint32_t c = (key2 + flag[1]);
uint32_t a = ((signed)flag[1] / 0x20 + 0x4f4d);
uint32_t d = (c ^ a);
uint32_t e = d ^ b;
flag[0] -= e;
return 0;
}
int encode2(uint32_t flag[2])
{
key2 += 0x154CBF7;
uint32_t b = (flag[1] * 0x10 + 0x5354);
uint32_t c = (key2 + flag[1]);
uint32_t a = ((signed)flag[1] / 0x20 + 0x4f4d);
uint32_t d = (c ^ a);
uint32_t e = d ^ b;
uint32_t f = e + flag[0];
flag[0] = f;
uint32_t b1 = (flag[0] * 0x10 + 0x2074);
uint32_t c1 = (key2 + flag[0]);
uint32_t a1 = ((signed)flag[0] / 0x20 + 0x6561);
uint32_t d1 = (c1 ^ a1);
uint32_t e1 = d1 ^ b1;
uint32_t f1 = e1 + flag[1];
flag[1] = f1;
return 0;
}
int main()
{
uint32_t flag[10] = { 0xAEE0FAE8, 0xFC3E4101, 0x167CAD92, 0x51EA6CBE, 0x242A0100, 0x01511A1B, 0x514D6694, 0x2F5FBFEB,
0x46D36398, 0x79EEE3F0};
for (int i = 8; i >= 0; i-=2)
{
for (int j = 19; j >= 0; j--)
{
decode2(flag + i);
if (i == 0 && j == 0)
{
flag[0] ^= 0x1010101;
flag[1] ^= 0x2020202;
}
decode1(flag + i);
if (i == 0 && j == 0)
{
flag[0] ^= 0x1010101;
flag[1] ^= 0x2020202;
}
int m = 3;
}
int n = 3;
}
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 4; j++)
printf("%c", *((char *)&flag[i] + j));
}
return 0;
}