Explore
/
Sign In
/
Unknown
Unknown
Fork
Star
Artifacts
function
main
decompiled.c
0 lines
|
89.23 KB
_ABI(SystemV_x86_64) _Noreturn void main(void) { struct_146 stack; int32_t var_0; int32_t var_1; int32_t var_2; int32_t var_3; int32_t var_4; stack.offset_32 = "\n1) malloc\n2) free\n3) read\n4) write\n*) exit\n> "; stack.offset_16 = "%d"; stack.offset_8 = *(generic64_t *) 40; var_4 = setvbuf_2((FILE_4 *) segment_3.bss.offset_16, (int8_t *) NULL, (int32_t) 2, 0); var_3 = setvbuf_2((FILE_4 *) segment_3.bss.offset_0, (int8_t *) NULL, (int32_t) 2, 0); alarm_2(); var_2 = puts_2((const int8_t *) ((pointer_or_number64_t) &segment_2.rodata.offset_54 + 10)); var_1 = __printf_chk_2((int32_t) 1, (const int8_t *) "\n1) malloc\n2) free\n3) read\n4) write\n*) exit\n> "); var_0 = __isoc99_scanf_2((const int8_t *) "%d"); if ((pointer_or_number32_t) var_0 == 1) { generic64_t var_5; var_5 = 2; while (true) { generic64_t var_6; while (true) { int32_t var_7; var_6 = segment_3.bss.offset_16; var_7 = getc_2((FILE_4 *) var_6); if ((pointer_or_number32_t) var_7 != 10) { int32_t var_8; var_6 = segment_3.bss.offset_16; var_8 = getc_2((FILE_4 *) var_6); if ((pointer_or_number32_t) var_8 != (pointer_or_number32_t) -1) { continue; } } break; } generic64_t var_9; if (stack.offset_4 == 3) { struct_197 var_10; var_10 = do_read(var_6, &stack.offset_4, var_5); var_9 = &var_10; } else { int32_t var_11; generic64_t var_12; generic64_t var_13; var_13 = lshift((uint64_t) (stack.offset_4 - 3), 4294967272); var_12 = lshift((uint64_t) ((stack.offset_4 ^ 0x3) & (stack.offset_4 ^ (stack.offset_4 - 3))), 4294967276); if (!((((uint32_t) (number32_t) var_12 >> 4) ^ (number32_t) var_13) & 0x80)) { if (stack.offset_4 != 4) { var_11 = puts_2((const int8_t *) "bye!"); exit_2((int32_t) 0); } struct_199 var_14; var_14 = do_write(var_6, &stack.offset_4, var_5); var_9 = &var_14; } else { switch ((number32_t) stack.offset_4) { case 1: { struct_193 var_15; var_15 = do_malloc(var_6, &stack.offset_4, var_5); var_9 = &var_15; } break; case 2: { struct_195 var_16; var_16 = do_free(var_6, &stack.offset_4, var_5); var_9 = &var_16; } break; default: { var_11 = puts_2((const int8_t *) "bye!"); exit_2((int32_t) 0); } break; } } } int32_t var_17; int32_t var_18; var_5 = *(generic64_t *) (var_9 + 8); var_18 = __printf_chk_2((int32_t) 1, (const int8_t *) "\n1) malloc\n2) free\n3) read\n4) write\n*) exit\n> "); var_17 = __isoc99_scanf_2((const int8_t *) "%d"); if ((pointer_or_number32_t) var_17 == 1) { continue; } break; } } while (true) { int32_t var_19; var_19 = getc_2((FILE_4 *) segment_3.bss.offset_16); if ((pointer_or_number32_t) var_19 != 10) { int32_t var_20; var_20 = getc_2((FILE_4 *) segment_3.bss.offset_16); if ((pointer_or_number32_t) var_20 != (pointer_or_number32_t) -1) { continue; } } break; } exit_2((int32_t) 1); }
Loading...