OverRide/level07/Ressources/source.c

146 lines
3.9 KiB
C

int main(int param_1, char **argv, char **envp)
{
char cVar1;
int iVar2;
uint uVar3;
undefined4 *puVar4;
char *pcVar5;
byte *pbVar6;
int in_GS_OFFSET;
bool bVar7;
bool bVar8;
bool bVar9;
byte bVar10;
char **local_1c8;
char **local_1c4;
undefined4 storage_service_data_array [100];
undefined4 local_2c;
undefined4 local_28;
undefined4 local_24;
undefined4 local_20;
undefined4 local_1c;
undefined4 local_18;
int local_14;
bVar10 = 0;
local_1c4 = param_2;
local_1c8 = param_3;
local_14 = *(int *)(in_GS_OFFSET + 0x14);
local_2c = 0;
local_28 = 0;
local_24 = 0;
local_20 = 0;
local_1c = 0;
local_18 = 0;
puVar4 = storage_service_data_array;
for (int i = 100; i != 0; i--) {
storage_service_data_array[i] = 0;
}
while ( *argv )
{
memset((void *)*argv, 0, strlen(*argv));
++argv;
}
while ( *envp )
{
memset((void *)*envp, 0, strlen(*envp));
++envp;
}
puts(
"----------------------------------------------------"
"Welcome to wil\'s crappy number stora ge service! "
"----------------------------------------------------"
"Commands: "
" store - store a number into the data storage "
" read - read a number from the data storage "
" quit - exit the program "
"----------------------------------------------------"
" wil has reserved some storage :> "
"----------------------------------------------------"
);
do {
printf("Input command: ");
local_2c = 1;
fgets((char *)&local_28,0x14,stdin);
uVar3 = 0xffffffff;
puVar4 = &local_28;
do {
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
cVar1 = *(char *)puVar4;
puVar4 = (undefined4 *)((int)puVar4 + (uint)bVar10 * -2 + 1);
} while (cVar1 != '\0');
uVar3 = ~uVar3;
bVar7 = uVar3 == 1;
bVar9 = uVar3 == 2;
*(undefined *)((int)&local_2c + uVar3 + 2) = 0;
iVar2 = 5;
puVar4 = &local_28;
pbVar6 = (byte *)"store";
do {
if (iVar2 == 0) break;
iVar2 = iVar2 + -1;
bVar7 = *(byte *)puVar4 < *pbVar6;
bVar9 = *(byte *)puVar4 == *pbVar6;
puVar4 = (undefined4 *)((int)puVar4 + (uint)bVar10 * -2 + 1);
pbVar6 = pbVar6 + (uint)bVar10 * -2 + 1;
} while (bVar9);
bVar8 = false;
bVar7 = (!bVar7 && !bVar9) == bVar7;
if (bVar7) {
local_2c = store_number(storage_service_data_array);
}
else {
iVar2 = 4;
puVar4 = &local_28;
pbVar6 = &DAT_08048d61;
do {
if (iVar2 == 0) break;
iVar2 = iVar2 + -1;
bVar8 = *(byte *)puVar4 < *pbVar6;
bVar7 = *(byte *)puVar4 == *pbVar6;
puVar4 = (undefined4 *)((int)puVar4 + (uint)bVar10 * -2 + 1);
pbVar6 = pbVar6 + (uint)bVar10 * -2 + 1;
} while (bVar7);
bVar9 = false;
bVar7 = (!bVar8 && !bVar7) == bVar8;
if (bVar7) {
local_2c = read_number(storage_service_data_array);
}
else {
iVar2 = 4;
puVar4 = &local_28;
pbVar6 = &DAT_08048d66;
do {
if (iVar2 == 0) break;
iVar2 = iVar2 + -1;
bVar9 = *(byte *)puVar4 < *pbVar6;
bVar7 = *(byte *)puVar4 == *pbVar6;
puVar4 = (undefined4 *)((int)puVar4 + (uint)bVar10 * -2 + 1);
pbVar6 = pbVar6 + (uint)bVar10 * -2 + 1;
} while (bVar7);
if ((!bVar9 && !bVar7) == bVar9) {
if (local_14 == *(int *)(in_GS_OFFSET + 0x14)) {
return 0;
}
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
}
}
if (local_2c == 0) {
printf(" Completed %s command successfully\n",&local_28);
}
else {
printf(" Failed to do %s command\n",&local_28);
}
local_28 = 0;
local_24 = 0;
local_20 = 0;
local_1c = 0;
local_18 = 0;
} while( true );
}