void menu(long param_1,int param_2)
{
int iVar1;
long lVar2;
undefined8 *puVar3;
long in_FS_OFFSET;
uint local_1d4;
wchar_t local_1c8 [16];
undefined8 local_188;
undefined8 local_180;
undefined8 local_178;
undefined8 local_170;
undefined8 local_168;
undefined8 local_160;
undefined4 local_158;
undefined4 uStack_154;
undefined4 local_150;
undefined4 uStack_14c;
undefined4 local_148;
undefined4 uStack_144;
undefined4 local_140;
undefined4 uStack_13c;
undefined4 local_138;
undefined4 uStack_134;
undefined4 local_130;
undefined4 uStack_12c;
undefined4 local_128;
undefined4 uStack_124;
undefined4 local_120;
undefined4 uStack_11c;
undefined4 local_118;
undefined4 uStack_114;
undefined4 local_110;
undefined4 uStack_10c;
undefined4 local_108;
undefined4 uStack_104;
undefined4 local_100;
undefined4 uStack_fc;
undefined4 local_f8;
undefined4 uStack_f4;
undefined4 local_f0;
undefined4 uStack_ec;
undefined4 local_e8;
undefined4 uStack_e4;
undefined4 local_e0;
undefined4 uStack_dc;
undefined4 local_d8;
char local_c8 [16];
undefined8 local_b8;
undefined8 local_b0;
undefined8 local_a8;
undefined8 local_a0;
undefined8 local_98;
undefined8 local_90;
undefined8 local_88;
undefined8 local_80;
undefined8 local_78;
undefined8 local_70;
undefined8 local_68;
undefined8 local_60;
undefined8 local_58;
undefined8 local_50;
undefined8 local_48;
undefined8 local_40;
undefined8 local_38;
undefined8 local_30;
undefined8 local_28;
undefined8 local_20;
undefined8 local_10;
local_10 = *(undefined8 *)(in_FS_OFFSET + 0x28);
local_b8 = 0;
local_b0 = 0;
local_a8 = 0;
local_a0 = 0;
do {
while( true ) {
while( true ) {
printf("Which dimension would you like to examine? ");
fgets((char *)&local_b8,0x20,stdin);
lVar2 = strtol((char *)&local_b8,(char **)0x0,10);
iVar1 = (int)lVar2;
if ((-1 < iVar1) && (iVar1 < param_2)) break;
puts("That option was invalid.");
}
puVar3 = (undefined8 *)(param_1 + (long)iVar1 * 0xb4);
local_188 = *puVar3;
local_180 = puVar3[1];
local_178 = puVar3[2];
local_170 = puVar3[3];
local_168 = puVar3[4];
local_160 = puVar3[5];
local_158 = (undefined4)puVar3[6];
uStack_154 = (undefined4)((ulong)puVar3[6] >> 0x20);
local_150 = (undefined4)puVar3[7];
uStack_14c = (undefined4)((ulong)puVar3[7] >> 0x20);
local_148 = (undefined4)puVar3[8];
uStack_144 = (undefined4)((ulong)puVar3[8] >> 0x20);
local_140 = (undefined4)puVar3[9];
uStack_13c = (undefined4)((ulong)puVar3[9] >> 0x20);
local_138 = (undefined4)puVar3[10];
uStack_134 = (undefined4)((ulong)puVar3[10] >> 0x20);
local_130 = (undefined4)puVar3[0xb];
uStack_12c = (undefined4)((ulong)puVar3[0xb] >> 0x20);
local_128 = (undefined4)puVar3[0xc];
uStack_124 = (undefined4)((ulong)puVar3[0xc] >> 0x20);
local_120 = (undefined4)puVar3[0xd];
uStack_11c = (undefined4)((ulong)puVar3[0xd] >> 0x20);
local_118 = (undefined4)puVar3[0xe];
uStack_114 = (undefined4)((ulong)puVar3[0xe] >> 0x20);
local_110 = (undefined4)puVar3[0xf];
uStack_10c = (undefined4)((ulong)puVar3[0xf] >> 0x20);
local_108 = (undefined4)puVar3[0x10];
uStack_104 = (undefined4)((ulong)puVar3[0x10] >> 0x20);
local_100 = (undefined4)puVar3[0x11];
uStack_fc = (undefined4)((ulong)puVar3[0x11] >> 0x20);
local_f8 = (undefined4)puVar3[0x12];
uStack_f4 = (undefined4)((ulong)puVar3[0x12] >> 0x20);
local_f0 = (undefined4)puVar3[0x13];
uStack_ec = (undefined4)((ulong)puVar3[0x13] >> 0x20);
local_e8 = (undefined4)puVar3[0x14];
uStack_e4 = (undefined4)((ulong)puVar3[0x14] >> 0x20);
local_e0 = (undefined4)puVar3[0x15];
uStack_dc = (undefined4)((ulong)puVar3[0x15] >> 0x20);
local_d8 = *(undefined4 *)(puVar3 + 0x16);
if ((int)local_188 != 0) break;
puts((char *)&uStack_154);
}
local_98 = CONCAT44(local_150,uStack_154);
local_90 = CONCAT44(local_148,uStack_14c);
local_88 = CONCAT44(local_140,uStack_144);
local_80 = CONCAT44(local_138,uStack_13c);
local_78 = CONCAT44(local_130,uStack_134);
local_70 = CONCAT44(local_128,uStack_12c);
local_68 = CONCAT44(local_120,uStack_124);
local_60 = CONCAT44(local_118,uStack_11c);
local_58 = CONCAT44(local_110,uStack_114);
local_50 = CONCAT44(local_108,uStack_10c);
local_48 = CONCAT44(local_100,uStack_104);
local_40 = CONCAT44(local_f8,uStack_fc);
local_38 = CONCAT44(local_f0,uStack_f4);
local_30 = CONCAT44(local_e8,uStack_ec);
local_28 = CONCAT44(local_e0,uStack_e4);
local_20 = CONCAT44(local_d8,uStack_dc);
printf("[X] That entry is encrypted - please enter your WIDE decryption key: ");
fgets(local_c8,0x10,stdin);
mbstowcs(local_1c8,local_c8,0x10);
iVar1 = wcscmp(local_1c8,L"sup3rs3cr3tw1d3");
if (iVar1 == 0) {
for (local_1d4 = 0;
(local_1d4 < 0x80 && (*(char *)((long)&local_98 + (long)(int)local_1d4) != '\0'));
local_1d4 = local_1d4 + 1) {
*(byte *)((long)&local_98 + (long)(int)local_1d4) =
*(byte *)((long)&local_98 + (long)(int)local_1d4) ^
(char)(local_1d4 * 0x1b) + (char)((int)(local_1d4 * 0x1b) / 0xff);
}
puts((char *)&local_98);
}
else {
puts("[X] Key was incorrect [X]");
}
} while( true );
}