undefined8 main(int param_1,undefined8 *param_2)
{
byte bVar1;
char cVar2;
int iVar3;
undefined8 uVar4;
long in_FS_OFFSET;
int i;
int local_ec;
char input [100];
undefined local_84;
char output [104];
long local_10;
local_10 = *(long *)(in_FS_OFFSET + 0x28);
if (param_1 < 2) {
printf("USAGE: %s [KEY]\n",*param_2);
uVar4 = 1;
}
else {
strncpy(input,(char *)param_2[1],100);
local_84 = 0;
i = 0;
while( true ) {
iVar3 = valid_char((int)input[i]);
if (iVar3 == 0) break;
if (i == 0) {
cVar2 = jumble((int)input[0]);
output[0] = cVar2 % '\x10';
}
else {
cVar2 = jumble((int)input[i]);
bVar1 = (byte)((int)cVar2 + (int)output[i + -1] >> 0x1f);
output[i] = ((char)((int)cVar2 + (int)output[i + -1]) + (bVar1 >> 4) & 0xf) - (bVar1 >> 4);
}
i = i + 1;
}
for (local_ec = 0; local_ec < i; local_ec = local_ec + 1) {
output[local_ec] = output[local_ec] + 'a';
}
if (i == 100) {
iVar3 = strncmp(output,
"occdpnkibjefihcgjanhofnhkdfnabmofnopaghhgnjhbkalgpnpdjonblalfciifiimkaoenpeal ibelmkdpbdlcldicplephbo"
,100);
if (iVar3 == 0) {
puts("You got the key, congrats! Now xor it with the flag!");
uVar4 = 0;
goto LAB_001009ea;
}
}
puts("Invalid key!");
uVar4 = 1;
}
LAB_001009ea:
if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
return uVar4;
}