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 ); }