Explore
/
Sign In
/
Unknown
Unknown
Fork
Star
Artifacts
binary
binary_decompiled.c
0 lines
|
476.67 KB
#include "types-and-globals.h" #include "helpers.h" _ABI(SystemV_x86_64) void function_0x401000_Code_x86_64(void) { if (segment_3.got.offset_24) { ((cabifunction_292 *) segment_3.got.offset_24)(); } } _ABI(SystemV_x86_64) int32_t *__errno_location_2(void) { int32_t *var_0; var_0 = __errno_location(); return var_0; } _ABI(SystemV_x86_64) _Noreturn void function_0x401046_Code_x86_64(void) { struct_207 stack; stack.offset_8 = 1; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(raw_x86_64) artificial_struct_returned_by_rawfunction_30 pam_end_2(pointer_or_number64_t register_rcx _REG(rcx_x86_64), pointer_or_number64_t register_rdx _REG(rdx_x86_64), pointer_or_number64_t register_rsi _REG(rsi_x86_64), pointer_or_number64_t register_rdi _REG(rdi_x86_64), pointer_or_number64_t register_r8 _REG(r8_x86_64), pointer_or_number64_t register_r9 _REG(r9_x86_64)) { pointer_or_number64_t var_0; pointer_or_number64_t var_1; artificial_struct_returned_by_rawfunction_30 var_2; var_2 = pam_end(register_rcx, register_rdx, register_rsi, register_rdi, register_r8, register_r9); var_1 = var_2.register_rax; var_0 = var_2.register_rdx; return (artificial_struct_returned_by_rawfunction_30) { var_1, var_0 }; } _ABI(SystemV_x86_64) _Noreturn void function_0x401066_Code_x86_64(void) { struct_208 stack; stack.offset_8 = 3; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) int8_t *strerror_2(int32_t errnum) { int8_t *var_0; var_0 = strerror(errnum); return var_0; } _ABI(SystemV_x86_64) _Noreturn void function_0x401086_Code_x86_64(void) { struct_209 stack; stack.offset_8 = 5; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) size_t strlen_2(const int8_t *argument_0) { size_t var_0; var_0 = strlen(argument_0); return var_0; } _ABI(SystemV_x86_64) int8_t *strncpy_2(typedef_153 __dest, typedef_154 __src, size_t __len) { int8_t *var_0; var_0 = strncpy(__dest, __src, __len); return var_0; } _ABI(SystemV_x86_64) _Noreturn void function_0x4010b6_Code_x86_64(void) { struct_210 stack; stack.offset_8 = 8; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) int32_t __snprintf_chk_2(int8_t *s, size_t maxlen, int32_t flag, size_t slen, const int8_t *format) { int32_t var_0; var_0 = __snprintf_chk(s, maxlen, flag, slen, format); return var_0; } _ABI(SystemV_x86_64) void *calloc_2(size_t n, size_t elem_size) { void *var_0; var_0 = calloc(n, elem_size); return var_0; } _ABI(SystemV_x86_64) int32_t __vsnprintf_chk_2(int8_t *s, size_t maxlen, int32_t flag, size_t slen, const int8_t *format, __va_list_tag *ap) { int32_t var_0; var_0 = __vsnprintf_chk(s, maxlen, flag, slen, format, ap); return var_0; } _ABI(raw_x86_64) artificial_struct_returned_by_rawfunction_30 pam_start_2(pointer_or_number64_t register_rcx _REG(rcx_x86_64), pointer_or_number64_t register_rdx _REG(rdx_x86_64), pointer_or_number64_t register_rsi _REG(rsi_x86_64), pointer_or_number64_t register_rdi _REG(rdi_x86_64), pointer_or_number64_t register_r8 _REG(r8_x86_64), pointer_or_number64_t register_r9 _REG(r9_x86_64)) { pointer_or_number64_t var_0; pointer_or_number64_t var_1; artificial_struct_returned_by_rawfunction_30 var_2; var_2 = pam_start(register_rcx, register_rdx, register_rsi, register_rdi, register_r8, register_r9); var_1 = var_2.register_rax; var_0 = var_2.register_rdx; return (artificial_struct_returned_by_rawfunction_30) { var_1, var_0 }; } _ABI(SystemV_x86_64) _Noreturn void function_0x401106_Code_x86_64(void) { struct_211 stack; stack.offset_8 = 13; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) _Noreturn void function_0x401116_Code_x86_64(void) { struct_212 stack; stack.offset_8 = 14; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) _Noreturn void function_0x401126_Code_x86_64(void) { struct_213 stack; stack.offset_8 = 15; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(raw_x86_64) artificial_struct_returned_by_rawfunction_30 pam_authenticate_2(pointer_or_number64_t register_rcx _REG(rcx_x86_64), pointer_or_number64_t register_rdx _REG(rdx_x86_64), pointer_or_number64_t register_rsi _REG(rsi_x86_64), pointer_or_number64_t register_rdi _REG(rdi_x86_64), pointer_or_number64_t register_r8 _REG(r8_x86_64), pointer_or_number64_t register_r9 _REG(r9_x86_64)) { pointer_or_number64_t var_0; pointer_or_number64_t var_1; artificial_struct_returned_by_rawfunction_30 var_2; var_2 = pam_authenticate(register_rcx, register_rdx, register_rsi, register_rdi, register_r8, register_r9); var_1 = var_2.register_rax; var_0 = var_2.register_rdx; return (artificial_struct_returned_by_rawfunction_30) { var_1, var_0 }; } _ABI(SystemV_x86_64) int32_t fputs_2(const int8_t *str, FILE_4 *fp) { int32_t var_0; var_0 = fputs(str, fp); return var_0; } _ABI(SystemV_x86_64) int32_t fflush_2(FILE_4 *fp) { int32_t var_0; var_0 = fflush(fp); return var_0; } _ABI(SystemV_x86_64) void free_2(void *mem) { free(mem); } _ABI(SystemV_x86_64) _Noreturn void exit_2(int32_t status) { exit(status); } _ABI(SystemV_x86_64) int8_t *getenv_2(const int8_t *name) { int8_t *var_0; var_0 = getenv(name); return var_0; } _ABI(SystemV_x86_64) int32_t fputc_2(int32_t c, FILE_4 *fp) { int32_t var_0; var_0 = fputc(c, fp); return var_0; } _ABI(SystemV_x86_64) _Noreturn void function_0x4011a6_Code_x86_64(void) { struct_214 stack; stack.offset_8 = 23; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) _Noreturn void function_0x4011b6_Code_x86_64(void) { struct_215 stack; stack.offset_8 = 24; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) void *malloc_2(size_t bytes) { void *var_0; var_0 = malloc(bytes); return var_0; } _ABI(SystemV_x86_64) int32_t unsetenv_2(const int8_t *name) { int32_t var_0; var_0 = unsetenv(name); return var_0; } _ABI(SystemV_x86_64) _Noreturn void function_0x4011e6_Code_x86_64(void) { struct_216 stack; stack.offset_8 = 27; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) _Noreturn void function_0x4011f6_Code_x86_64(void) { struct_217 stack; stack.offset_8 = 28; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) void *realloc_2(void *oldmem, size_t bytes) { void *var_0; var_0 = realloc(oldmem, bytes); return var_0; } _ABI(SystemV_x86_64) int32_t __fprintf_chk_2(FILE_4 *fp, int32_t flag, const int8_t *format) { int32_t var_0; var_0 = __fprintf_chk(fp, flag, format); return var_0; } _ABI(SystemV_x86_64) _Noreturn void function_0x401226_Code_x86_64(void) { struct_218 stack; stack.offset_8 = 31; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) int8_t *__xpg_basename_2(int8_t *argument_0) { int8_t *var_0; var_0 = __xpg_basename(argument_0); return var_0; } _ABI(SystemV_x86_64) _Noreturn void function_0x401246_Code_x86_64(void) { struct_219 stack; stack.offset_8 = 33; stack.offset_0 = segment_3.got_plt.offset_8; revng_abort("A longjmp was taken"); } _ABI(SystemV_x86_64) _Noreturn void function_0x401250_Code_x86_64(void) { struct_220 stack; generic64_t var_0; pointer_or_number64_t var_1; pointer_or_number64_t var_2; generic64_t var_3; uint8_t *var_4; artificial_struct_returned_by_rawfunction_30 var_5; stack.offset_8 = 0; stack.offset_16 = function_0x4016a0_Code_x86_64; var_3 = function_0x401540_Code_x86_64(); stack.offset_24 = var_3; var_5 = pam_start_2((pointer_or_number64_t) &stack.offset_8, (pointer_or_number64_t) &stack.offset_16, (pointer_or_number64_t) "root", (pointer_or_number64_t) "common-auth", undef_generic64_t(), undef_generic64_t()); var_2 = var_5.register_rax; var_1 = var_5.register_rdx; var_4 = "Unable to start PAM service\n"; if ((var_2 & 0xFFFFFFFF)) { var_0 = function_0x401e90_Code_x86_64((generic64_t) &stack.offset_8, (generic64_t) var_4, 0, 0, undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t()); exit_2((int32_t) 1); } pointer_or_number64_t var_6; pointer_or_number64_t var_7; pointer_or_number64_t var_8; pointer_or_number64_t var_9; artificial_struct_returned_by_rawfunction_30 var_10; artificial_struct_returned_by_rawfunction_30 var_11; var_10 = pam_authenticate_2((pointer_or_number64_t) &stack.offset_8, (pointer_or_number64_t) "Unable to start PAM service\n", 1, stack.offset_8, undef_generic64_t(), undef_generic64_t()); var_9 = var_10.register_rax; var_8 = var_10.register_rdx; var_11 = pam_end_2((pointer_or_number64_t) &stack.offset_8, var_8, var_9 & 0xFFFFFFFF, stack.offset_8, undef_generic64_t(), undef_generic64_t()); var_7 = var_11.register_rax; var_6 = var_11.register_rdx; if (!(var_7 & 0xFFFFFFFF)) { int32_t var_12; var_12 = __fprintf_chk_2((FILE_4 *) segment_3.bss.stdout, (int32_t) 1, (const int8_t *) "%d"); exit_2((int32_t) 0); } stack.offset_8 = 0; var_4 = "Failed to release authenticator\n"; var_0 = function_0x401e90_Code_x86_64((generic64_t) &stack.offset_8, (generic64_t) var_4, 0, 0, undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t()); exit_2((int32_t) 1); } _ABI(SystemV_x86_64) _Noreturn void function_0x401300_Code_x86_64(generic64_t argument_0, generic64_t argument_1, struct_238 *argument_2) { int32_t var_0; var_0 = __libc_start_main((cabifunction_101 *) function_0x401250_Code_x86_64, (int32_t) (number32_t) *(generic64_t *) revng_undefined_local_sp(), (int8_t **) (revng_undefined_local_sp() + 8), (cabifunction_101 *) NULL, (cabifunction_100 *) NULL, (cabifunction_100 *) argument_2, (void *) revng_undefined_local_sp()); // The previous function call does not return } _ABI(SystemV_x86_64) void function_0x401340_Code_x86_64(void) { } _ABI(SystemV_x86_64) void function_0x4013b0_Code_x86_64(void) { if (!segment_3.bss.offset_8) { function_0x401340_Code_x86_64(); segment_3.bss.offset_8 = '\001'; } } _ABI(SystemV_x86_64) void function_0x4013e0_Code_x86_64(void) { } _ABI(SystemV_x86_64) generic64_t function_0x401540_Code_x86_64(void) { if (!segment_3.bss.offset_32) { int8_t *var_0; var_0 = getenv_2((const int8_t *) "PSA_PASSWORD"); if (var_0) { int8_t *var_1; var_1 = strncpy_2((typedef_153) &segment_3.bss.offset_32, var_0, 4096); } int32_t var_2; var_2 = unsetenv_2((const int8_t *) "PSA_PASSWORD"); } return (generic64_t) &segment_3.bss.offset_32; } _ABI(SystemV_x86_64) generic64_t function_0x4016a0_Code_x86_64(generic64_t argument_0, generic32_t **argument_1, generic64_t argument_2, generic64_t argument_3) { struct_224 stack; void *var_0; generic64_t var_1; generic64_t var_2; stack.offset_64 = (pointer_or_number64_t) &segment_2.rodata.offset_216 + 116; stack.offset_8 = argument_2; stack.offset_16 = argument_3; var_0 = calloc_2((int64_t) ((number64_t) argument_0 << 32) >> 32, 16); if (!var_0) { generic64_t var_3; var_3 = function_0x401e90_Code_x86_64(argument_3, (generic64_t) "PAM memory allocation error", 0, 0, undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t(), undef_generic64_t()); var_1 = 0; var_2 = 19; } else { generic8_t var_4; generic64_t var_5; var_5 = lshift(argument_0 & 0xFFFFFFFF, 4294967272); var_4 = !(argument_0 & 0xFFFFFFFF) ? '@' : '\000'; var_1 = var_0; var_2 = 0; if (!(var_4 | ((number8_t) var_5 & 0x80))) { if (!(**argument_1 > 7)) { revng_abort("A longjmp was taken"); } free_2(var_0); var_1 = 0; var_2 = 19; } } *stack.offset_8 = var_1; return var_2; } _ABI(SystemV_x86_64) generic64_t function_0x401b60_Code_x86_64(generic64_t argument_0, generic64_t argument_1, generic64_t argument_2) { int32_t var_0; int32_t var_1; size_t var_2; int32_t var_3; union_240 *var_4; if (!segment_3.bss.offset_16416) { var_3 = fputs_2((const int8_t *) argument_0, (FILE_4 *) *(generic64_t *) segment_3.got.offset_16); var_2 = strlen_2((const int8_t *) argument_0); if (*(generic8_t *) (var_2 + argument_0 - 1) != '\n') { var_1 = fputc_2((int32_t) 10, (FILE_4 *) *(generic64_t *) segment_3.got.offset_16); } var_0 = fflush_2((FILE_4 *) *(generic64_t *) segment_3.got.offset_16); var_4 = segment_3.got.offset_0; } else { int8_t *var_5; var_5 = __xpg_basename_2((int8_t *) segment_3.bss.offset_16416); if (!var_5) { var_3 = fputs_2((const int8_t *) argument_0, (FILE_4 *) *(generic64_t *) segment_3.got.offset_16); var_2 = strlen_2((const int8_t *) argument_0); if (*(generic8_t *) (var_2 + argument_0 - 1) != '\n') { var_1 = fputc_2((int32_t) 10, (FILE_4 *) *(generic64_t *) segment_3.got.offset_16); } var_0 = fflush_2((FILE_4 *) *(generic64_t *) segment_3.got.offset_16); var_4 = segment_3.got.offset_0; } else { size_t var_6; int32_t var_7; int32_t var_8; var_8 = __fprintf_chk_2((FILE_4 *) *(generic64_t *) segment_3.got.offset_16, (int32_t) 1, (const int8_t *) "%s: "); var_7 = fputs_2((const int8_t *) argument_0, (FILE_4 *) *(generic64_t *) segment_3.got.offset_16); var_6 = strlen_2((const int8_t *) argument_0); if (*(generic8_t *) (var_6 + argument_0 - 1) != '\n') { int32_t var_9; var_9 = fputc_2((int32_t) 10, (FILE_4 *) *(generic64_t *) segment_3.got.offset_16); } int32_t var_10; int32_t var_11; var_11 = fflush_2((FILE_4 *) *(generic64_t *) segment_3.got.offset_16); var_4 = segment_3.got.offset_0; var_10 = __fprintf_chk_2((FILE_4 *) *(generic64_t *) var_4, (int32_t) 1, (const int8_t *) "%s: "); } } size_t var_12; int32_t var_13; var_13 = fputs_2((const int8_t *) argument_0, (FILE_4 *) *(generic64_t *) var_4); var_12 = strlen_2((const int8_t *) argument_0); if (*(generic8_t *) (var_12 + argument_0 - 1) != '\n') { int32_t var_14; var_14 = fputc_2((int32_t) 10, (FILE_4 *) *(generic64_t *) var_4); } int32_t var_15; var_15 = fflush_2((FILE_4 *) *(generic64_t *) var_4); if ((argument_1 & 0xFFFFFFFF)) { exit_2((int32_t) (number32_t) argument_1); } return 0; } _ABI(SystemV_x86_64) generic64_t function_0x401ca0_Code_x86_64(generic64_t argument_0, generic64_t argument_1, generic64_t argument_2, union_237 *argument_3) { struct_226 stack; int8_t *var_0; int32_t *var_1; generic64_t var_2; stack.offset_40 = (number32_t) argument_0; var_1 = __errno_location_2(); *(generic64_t **) &stack.offset_24 = &stack.offset_56; stack.offset_56 = argument_3->member_3; stack.offset_64 = argument_3->member_4.offset_8; stack.offset_72 = argument_3->member_5.offset_16; var_0 = malloc_2(4096); if (!var_0) { generic64_t var_3; var_3 = function_0x401b60_Code_x86_64((generic64_t) "Can't allocate memory for error message", stack.offset_40, argument_1 & 0xFFFFFFFF); var_2 = var_3; } else { int32_t var_4; generic64_t var_5; generic64_t var_6; var_4 = __vsnprintf_chk_2(var_0, 4096, (int32_t) 1, 4096, (const int8_t *) argument_2, (__va_list_tag *) argument_3); var_5 = var_0; var_6 = 4096; if (var_4 > (int32_t) 4095) { int8_t *var_7; stack.offset_44 = (number32_t) ((uint64_t) var_4 + 1); stack.offset_32 = (int64_t) ((number64_t) ((uint64_t) var_4 + 1) << 32) >> 32; var_7 = realloc_2(var_0, (int64_t) ((number64_t) ((uint64_t) var_4 + 1) << 32) >> 32); var_5 = var_0; var_6 = 4096; if (var_7) { int32_t var_8; *(void **) &stack.offset_24 = var_7; var_8 = __vsnprintf_chk_2(var_7, stack.offset_32, (int32_t) 1, (size_t) -1, (const int8_t *) argument_2, (__va_list_tag *) *(generic64_t *) &stack.offset_24); var_5 = *(generic64_t *) &stack.offset_24; var_6 = stack.offset_44; } } generic64_t var_9; generic64_t var_10; var_10 = var_5; *var_1 = *var_1; if (*var_1) { generic64_t var_11; generic64_t var_12; var_11 = (var_6 - (uint64_t) var_4) & 0xFFFFFFFF; var_12 = (uint64_t) var_4; if (var_11) { int32_t var_13; int8_t *var_14; var_14 = strerror_2(*var_1); stack.offset_0 = var_14; var_13 = __snprintf_chk_2((int8_t *) (var_5 + (pointer_or_number64_t) var_4), (int64_t) ((number64_t) (var_6 - (uint64_t) var_4) << 32) >> 32, (int32_t) 1, (size_t) -1, (const int8_t *) "\nSystem error %d: %s"); var_10 = var_5; if ((int64_t) ((number64_t) (var_6 - (uint64_t) var_4) << 32) > (int64_t) ((number64_t) (uint64_t) var_13 << 32)) { var_9 = function_0x401b60_Code_x86_64(var_10, stack.offset_40, argument_1 & 0xFFFFFFFF); var_2 = var_9; free((void *) var_10); return var_2; } var_12 = ((uint64_t) var_4 + 1) & 0xFFFFFFFF; var_11 = 1; } void *var_15; var_15 = realloc_2((void *) var_5, (int64_t) (((number64_t) var_12 << 32) + 4294967296) >> 32); var_10 = var_5; if (var_15) { int32_t var_16; int8_t *var_17; var_17 = strerror_2(*var_1); stack.offset_0 = var_17; var_16 = __snprintf_chk_2((int8_t *) ((pointer_or_number64_t) var_15 + (pointer_or_number64_t) var_4), (int64_t) ((number64_t) var_11 << 32) >> 32, (int32_t) 1, (size_t) -1, (const int8_t *) "\nSystem error %d: %s"); var_10 = var_15; } } var_9 = function_0x401b60_Code_x86_64(var_10, stack.offset_40, argument_1 & 0xFFFFFFFF); var_2 = var_9; free((void *) var_10); } return var_2; } _ABI(raw_x86_64) generic64_t function_0x401e90_Code_x86_64(generic64_t register_rcx _REG(rcx_x86_64), generic64_t register_rdx _REG(rdx_x86_64), generic64_t register_rsi _REG(rsi_x86_64), generic64_t register_rdi _REG(rdi_x86_64), generic64_t register_r8 _REG(r8_x86_64), generic64_t register_r9 _REG(r9_x86_64), generic64_t register_xmm0 _REG(xmm0_x86_64), generic64_t register_xmm1 _REG(xmm1_x86_64), generic64_t register_xmm2 _REG(xmm2_x86_64), generic64_t register_xmm3 _REG(xmm3_x86_64), generic64_t register_xmm4 _REG(xmm4_x86_64), generic64_t register_xmm5 _REG(xmm5_x86_64), generic64_t register_xmm6 _REG(xmm6_x86_64), generic64_t register_xmm7 _REG(xmm7_x86_64)) { struct_222 stack; generic64_t var_0; stack.offset_56 = register_rcx; stack.offset_64 = register_r8; stack.offset_72 = register_r9; stack.offset_8.member_2 = 24; stack.offset_8.member_4.offset_8 = &(&stack)[1].offset_8; stack.offset_8.member_1.offset_4 = 48; stack.offset_8.member_5.offset_16 = (pointer_or_number64_t) &stack.offset_8.member_5.offset_16 + 8; var_0 = function_0x401ca0_Code_x86_64(register_rdi, register_rsi, register_rdx, &stack.offset_8); return var_0; } _ABI(SystemV_x86_64) void function_0x401f1c_Code_x86_64(void) { }
Loading...