Explore
/
Sign In
/
Unknown
Unknown
Fork
Star
Artifacts
binary
binary_decompiled.c
0 lines
|
385.42 KB
#include "types-and-globals.h" #include "helpers.h" _ABI(SystemV_x86_64) void _init(void) { if (segment_3.got.offset_80) { ((cabifunction_97 *) segment_3.got.offset_80)(); } } _ABI(SystemV_x86_64) void __cxa_finalize_2(void *d) { __cxa_finalize(d); } _ABI(SystemV_x86_64) int32_t puts_2(const int8_t *str) { int32_t var_0; var_0 = puts(str); return var_0; } _ABI(SystemV_x86_64) ssize_t write_2(int32_t fd, const void *buf, size_t nbytes) { ssize_t var_0; var_0 = write(fd, buf, nbytes); return var_0; } _ABI(SystemV_x86_64) _Noreturn void __stack_chk_fail_2(void) { __stack_chk_fail(); } _ABI(SystemV_x86_64) ssize_t read_2(int32_t fd, void *buf, size_t nbytes) { ssize_t var_0; var_0 = read(fd, buf, nbytes); return var_0; } _ABI(SystemV_x86_64) float64_t cbrt_2(float64_t x) { float64_t var_0; var_0 = cbrt(x); return var_0; } _ABI(SystemV_x86_64) _Noreturn void _start(generic64_t argument_0, generic64_t argument_1, struct_72 *argument_2) { int32_t var_0; var_0 = __libc_start_main((cabifunction_34 *) main, (int32_t) (number32_t) *(generic64_t *) revng_undefined_local_sp(), (int8_t **) (revng_undefined_local_sp() + 8), (cabifunction_34 *) NULL, (cabifunction_33 *) NULL, (cabifunction_33 *) argument_2, (void *) revng_undefined_local_sp()); // The previous function call does not return } _ABI(SystemV_x86_64) void deregister_tm_clones(void) { } _ABI(SystemV_x86_64) void register_tm_clones(void) { } _ABI(SystemV_x86_64) void __do_global_dtors_aux(void) { if (!segment_3.bss.offset_0) { if (segment_3.got.offset_96) { __cxa_finalize_2((void *) segment_3.data.offset_8); } deregister_tm_clones(); segment_3.bss.offset_0 = '\001'; } } _ABI(SystemV_x86_64) void frame_dummy(void) { } _ABI(SystemV_x86_64) generic64_t ppeuler_3(void) { struct_66 stack; generic64_t var_0; stack.offset_0 = 600851475143; stack.offset_8 = 600851475143; *(generic64_t *) &stack.offset_16 = 2; *(generic64_t *) &stack.offset_24 = 1; var_0 = stack.offset_8; if (!((int64_t) (*(generic64_t *) &stack.offset_16 * *(generic64_t *) &stack.offset_16) > (int64_t) var_0)) { generic64_t var_1; generic64_t var_2; var_1 = *(generic64_t *) &stack.offset_16; var_2 = stack.offset_8; do { generic64_t var_3; generic64_t var_4; if (!(((int64_t) var_2 >> 63) ^ (number64_t) !((int64_t) var_2 > -1))) { var_3 = llvm_abs_i64(var_2, 0) / llvm_abs_i64(var_1, 1); var_4 = llvm_abs_i64(var_2, 0) % llvm_abs_i64(var_1, 1); } else { generic32_t var_5; generic64_t var_6; generic64_t var_7; var_5 = 0; var_6 = llvm_abs_i64(var_2, 0); var_7 = ((int64_t) var_2 >> 63) ^ (number64_t) !((int64_t) var_2 > -1); generic8_t var_8; generic32_t var_9; generic64_t var_10; do { var_9 = var_5; var_8 = (int64_t) var_7 < (int64_t) 0 || llvm_fshl_i64(var_7, var_6, 1) >= llvm_abs_i64(var_1, 1); var_10 = var_8 ? llvm_abs_i64(var_1, 1) : 0; var_7 = llvm_fshl_i64(var_7, var_6, 1) - var_10; var_6 = (var_6 << 1) | var_8; var_5 = var_9 + 1; } while (var_9 < 63); var_3 = var_6; var_4 = var_7; } generic64_t var_11; if ((int64_t) (var_2 ^ var_1) > -1) { var_11 = var_4; if (!((int64_t) var_3 < (int64_t) 0 || (int64_t) var_2 > -1)) { var_11 = 0 - var_4; } } else { var_11 = var_4; if (!(var_3 > (uint64_t) -9223372036854775808U || (int64_t) var_2 > -1)) { var_11 = 0 - var_4; } } if (!var_11) { generic64_t var_12; generic64_t var_13; generic64_t var_14; if (!(((int64_t) var_2 >> 63) ^ (number64_t) !((int64_t) var_2 > -1))) { var_14 = llvm_abs_i64(var_2, 0) / llvm_abs_i64(var_1, 1); if ((int64_t) (var_2 ^ var_1) > -1) { var_12 = var_14; var_13 = var_14; if (!((int64_t) var_14 < (int64_t) 0 || (int64_t) var_2 > -1)) { var_12 = var_13; } } else { var_12 = var_14; if (!(var_14 > (uint64_t) -9223372036854775808U)) { var_13 = 0 - var_14; var_12 = var_13; if (!((int64_t) var_2 > -1)) { var_12 = var_13; } } } } else { var_12 = llvm_abs_i64(var_2, 0); if ((((int64_t) var_2 >> 63) ^ (number64_t) !((int64_t) var_2 > -1)) < llvm_abs_i64(var_1, 1)) { generic32_t var_15; generic64_t var_16; generic64_t var_17; var_15 = 0; var_16 = llvm_abs_i64(var_2, 0); var_17 = ((int64_t) var_2 >> 63) ^ (number64_t) !((int64_t) var_2 > -1); generic8_t var_18; generic32_t var_19; generic64_t var_20; do { var_19 = var_15; var_18 = (int64_t) var_17 < (int64_t) 0 || llvm_fshl_i64(var_17, var_16, 1) >= llvm_abs_i64(var_1, 1); var_20 = var_18 ? llvm_abs_i64(var_1, 1) : 0; var_17 = llvm_fshl_i64(var_17, var_16, 1) - var_20; var_16 = (var_16 << 1) | var_18; var_15 = var_19 + 1; } while (var_19 < 63); var_14 = var_16; if ((int64_t) (var_2 ^ var_1) > -1) { var_12 = var_14; var_13 = var_14; if (!((int64_t) var_14 < (int64_t) 0 || (int64_t) var_2 > -1)) { var_12 = var_13; } } else { var_12 = var_14; if (!(var_14 > (uint64_t) -9223372036854775808U)) { var_13 = 0 - var_14; var_12 = var_13; if (!((int64_t) var_2 > -1)) { var_12 = var_13; } } } } } stack.offset_8 = var_12; *(generic64_t *) &stack.offset_24 = *(generic64_t *) &stack.offset_16; } else { *(generic64_t *) &stack.offset_16 = var_1 + 1; } var_1 = *(generic64_t *) &stack.offset_16; var_2 = stack.offset_8; } while (!((int64_t) (var_1 * var_1) > (int64_t) var_2)); var_0 = stack.offset_8; } if ((int64_t) var_0 > (int64_t) 1) { *(generic64_t *) &stack.offset_24 = var_0; } return *(generic64_t *) &stack.offset_24; } _ABI(SystemV_x86_64) generic64_t factorial(generic64_t argument_0) { struct_67 stack; generic8_t var_0; generic64_t var_1; generic64_t var_2; *(generic64_t *) &stack = 1; var_1 = lshift(argument_0, 4294967240); var_0 = !argument_0 ? '@' : '\000'; if (!(var_0 | ((number8_t) var_1 & 0x80))) { generic64_t var_3; generic64_t var_4; var_3 = 0; var_4 = argument_0; generic8_t var_5; do { *(generic64_t *) &stack = var_4 * *(generic64_t *) &stack; var_4 = var_4 - 1; var_5 = ~var_3 == 0 - argument_0; var_3 = var_3 + 1; } while (!(var_5)); var_2 = *(generic64_t *) &stack; } return var_2; } _ABI(SystemV_x86_64) generic64_t main(void) { struct_68 stack; generic64_t var_0; generic64_t var_1; float64_t var_2; generic64_t var_3; generic8_t var_4; generic8_t var_5; generic64_t var_6; generic64_t var_7; generic64_t var_8; generic64_t var_9; stack.offset_168 = *(generic64_t *) 40; var_3 = ppeuler_3(); stack.offset_16.member_0 = var_3; helper_pxor_xmm_wrapper(NULL, 776, 776, undef(generic64_t), 0, &var_7, &var_8); helper_cvtsq2sd_wrapper(NULL, 776, var_3, '\000', '\000', '\000', '\000', &var_5, &var_6); var_2 = cbrt_2((float64_t) var_6); var_1 = helper_cvttsd2sq_wrapper(NULL, 776, var_5, '\000', var_2, &var_4); stack.offset_16.member_0 = var_1; var_0 = factorial(var_1); stack.offset_16.member_0 = var_0; var_9 = 0; generic64_t var_10; do { var_10 = var_9; if (((stack.offset_16.member_1[var_10] & 0xDF) < 'A' || (stack.offset_16.member_1[var_10] & 0xDF) > 'Z') && (stack.offset_16.member_1[var_10] < '0' || stack.offset_16.member_1[var_10] > '9')) { generic8_t var_11; if ((number8_t) ((uint16_t) (((uint8_t) stack.offset_16.member_1[var_10] >> '\001') * 133) >> 12) * (number8_t) -'>' + stack.offset_16.member_1[var_10] < '\n' || (number8_t) ((uint16_t) (((uint8_t) stack.offset_16.member_1[var_10] >> '\001') * 133) >> 12) * (number8_t) -'>' + stack.offset_16.member_1[var_10] > '#') { generic8_t var_12; var_12 = (number8_t) ((uint16_t) (((uint8_t) stack.offset_16.member_1[var_10] >> '\001') * 133) >> 12) * (number8_t) -'>' + stack.offset_16.member_1[var_10] > '#' && (number8_t) ((uint16_t) (((uint8_t) stack.offset_16.member_1[var_10] >> '\001') * 133) >> 12) * (number8_t) -'>' + stack.offset_16.member_1[var_10] < (uint8_t) -'0' ? (number8_t) ((uint16_t) (((uint8_t) stack.offset_16.member_1[var_10] >> '\001') * 133) >> 12) * (number8_t) -'>' + stack.offset_16.member_1[var_10] + '=' : (number8_t) ((uint16_t) (((uint8_t) stack.offset_16.member_1[var_10] >> '\001') * 133) >> 12) * (number8_t) -'>' + stack.offset_16.member_1[var_10] + '0'; var_11 = var_12; } else { var_11 = (number8_t) ((uint16_t) (((uint8_t) stack.offset_16.member_1[var_10] >> '\001') * 133) >> 12) * (number8_t) -'>' + stack.offset_16.member_1[var_10] + '7'; } stack.offset_16.member_1[var_10] = var_11; } var_9 = var_10 + 1; } while (var_9 != 8); generic64_t var_13; generic32_t var_14; *(generic64_t *) &stack.offset_64 = 1; *(generic64_t *) &stack.offset_72 = 1; *(generic64_t *) &stack.offset_80 = 1; *(generic64_t *) &stack.offset_32[0] = *(generic64_t *) &stack.offset_64; *(generic64_t *) &stack.offset_32[1] = *(generic64_t *) &stack.offset_72; *(generic64_t *) &stack.offset_32[2] = 1; *(generic64_t *) &stack.offset_32[0] = *(generic64_t *) &stack.offset_32[0] * 7526676552943431269; *(generic64_t *) &stack.offset_32[1] = *(generic64_t *) &stack.offset_32[1] * 2338608899872137317; *(generic64_t *) &stack.offset_32[2] = *(generic64_t *) &stack.offset_32[2] * 7237970109966541168; var_13 = 0; var_14 = 0; ssize_t var_15; do { *(generic64_t *) &stack.offset_24 = *(generic64_t *) &stack.offset_32[var_13]; var_15 = write_2((int32_t) 1, &stack.offset_24, 8); var_14 = var_14 + 1; var_13 = var_13 + 1; } while (var_14 != 3); ssize_t var_16; ssize_t var_17; stack.offset_10 = '\n'; var_17 = write_2((int32_t) 1, &stack.offset_10, 1); var_16 = read_2((int32_t) 0, (void *) ((pointer_or_number64_t) &stack.offset_80 + 16), 64); stack.offset_11 = '\001'; stack.offset_12 = 0; if (var_16 > (int64_t) 1 || var_16 < -9223372036854775807) { generic32_t var_18; var_18 = 0; while (true) { if (!(var_18 > 7)) { if (*(generic8_t *) ((pointer_or_number64_t) &stack.offset_80 + 16 + (number64_t) var_18 * 1) != stack.offset_16.member_1[(number64_t) var_18]) { stack.offset_11 = '\000'; } var_18 = stack.offset_12 + 1; stack.offset_12 = var_18; if ((int64_t) ((pointer_or_number64_t) var_16 - 1) > var_18) { continue; } } break; } } stack.offset_11 = stack.offset_11 & ((pointer_or_number64_t) var_16 == 9); if (!stack.offset_11) { int32_t var_19; var_19 = puts_2((const int8_t *) "bad kitty!"); } else { int32_t var_20; var_20 = puts_2((const int8_t *) "good kitty!"); } if (stack.offset_168 != *(generic64_t *) 40) { __stack_chk_fail_2(); } return 0; } _ABI(SystemV_x86_64) void _fini(void) { }
Loading...