Explore
/
Sign In
/
Unknown
Unknown
Fork
Star
Artifacts
function
0x1800098f8:Code_x86_64
decompiled.c
0 lines
|
352.83 KB
_ABI(Microsoft_x86_64) void function_0x1800098f8_Code_x86_64(void) { struct_73 stack; stack.offset_104 = (pointer_or_number64_t) &segment_1.offset_4768 + 24; stack.offset_88 = 18446744069414584320U; stack.offset_80 = 139; if (!segment_3.offset_808) { generic64_t var_0; generic64_t var_1; segment_3.offset_808 = '\001'; var_1 = function_0x18000a1cf_Code_x86_64(); var_0 = function_0x180009dbc_Code_x86_64(undef(generic64_t)); segment_3.offset_816 = (pointer_or_number64_t) &stack + 32 - var_0; segment_3.offset_824 = 0; if ((int64_t) (segment_1.offset_5224 - (number64_t) segment_1.offset_5232) > (int64_t) 7) { generic8_t var_2; generic64_t var_3; generic64_t var_4; generic64_t var_5; generic64_t var_6; generic64_t var_7; generic64_t var_8; struct_68 var_9; var_8 = segment_1.offset_5232; if ((int64_t) (segment_1.offset_5224 - (number64_t) segment_1.offset_5232) < (int64_t) 12) { var_7 = var_8; if (!*(generic32_t *) var_7) { var_7 = var_8; if (!*(generic32_t *) (var_8 + 4)) { if (*(generic32_t *) (var_8 + 8) != 1) { function_0x180009d58_Code_x86_64((generic64_t) " Unknown pseudo relocation protocol version %d.\n", *(generic32_t *) (var_8 + 8), undef(generic64_t), undef(generic64_t), var_9); } if (var_8 + 12 < segment_1.offset_5224) { var_4 = lshift(var_8 + 12 - segment_1.offset_5224, 4294967240); var_3 = lshift(((var_8 + 12) ^ segment_1.offset_5224) & ((var_8 + 12) ^ (var_8 + 12 - segment_1.offset_5224)), 4294967244); if (!(llvm_fshl_i32(*(generic8_t *) (var_8 + 20), *(generic8_t *) (var_8 + 20) - 8, 29) < 8)) { function_0x180009d58_Code_x86_64((generic64_t) " Unknown pseudo relocation bit size %d.\n", *(generic8_t *) (var_8 + 20), llvm_fshl_i32(*(generic8_t *) (var_8 + 20), *(generic8_t *) (var_8 + 20) - 8, 29), undef(generic64_t), var_9); } revng_abort("A longjmp was taken"); } } else { if (var_7 < segment_1.offset_5224) { var_5 = 0; var_6 = var_7; do { *(generic32_t *) &stack.offset_52 = *(generic32_t *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))) + *(generic32_t *) var_6; function_0x180009bc7_Code_x86_64((struct_109 *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))), &stack.offset_52.offset_0, 4); var_6 = var_6 + 8; var_2 = var_7 + 8 + (var_5 << 3) < segment_1.offset_5224; var_5 = var_5 + 1; } while (var_2); } } } else { if (var_7 < segment_1.offset_5224) { var_5 = 0; var_6 = var_7; do { *(generic32_t *) &stack.offset_52 = *(generic32_t *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))) + *(generic32_t *) var_6; function_0x180009bc7_Code_x86_64((struct_109 *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))), &stack.offset_52.offset_0, 4); var_6 = var_6 + 8; var_2 = var_7 + 8 + (var_5 << 3) < segment_1.offset_5224; var_5 = var_5 + 1; } while (var_2); } } } else { var_7 = segment_1.offset_5232; if (!segment_1.offset_5232->offset_0) { var_7 = segment_1.offset_5232; if (!segment_1.offset_5232->offset_4) { generic64_t var_10; var_10 = !segment_1.offset_5232->offset_8 ? (generic64_t) &segment_1.offset_5232->offset_12 : (generic64_t) segment_1.offset_5232; var_8 = var_10; var_7 = var_8; if (!*(generic32_t *) var_7) { var_7 = var_8; if (!*(generic32_t *) (var_8 + 4)) { if (*(generic32_t *) (var_8 + 8) != 1) { function_0x180009d58_Code_x86_64((generic64_t) " Unknown pseudo relocation protocol version %d.\n", *(generic32_t *) (var_8 + 8), undef(generic64_t), undef(generic64_t), var_9); } if (var_8 + 12 < segment_1.offset_5224) { var_4 = lshift(var_8 + 12 - segment_1.offset_5224, 4294967240); var_3 = lshift(((var_8 + 12) ^ segment_1.offset_5224) & ((var_8 + 12) ^ (var_8 + 12 - segment_1.offset_5224)), 4294967244); if (!(llvm_fshl_i32(*(generic8_t *) (var_8 + 20), *(generic8_t *) (var_8 + 20) - 8, 29) < 8)) { function_0x180009d58_Code_x86_64((generic64_t) " Unknown pseudo relocation bit size %d.\n", *(generic8_t *) (var_8 + 20), llvm_fshl_i32(*(generic8_t *) (var_8 + 20), *(generic8_t *) (var_8 + 20) - 8, 29), undef(generic64_t), var_9); } revng_abort("A longjmp was taken"); } } else { if (var_7 < segment_1.offset_5224) { var_5 = 0; var_6 = var_7; do { *(generic32_t *) &stack.offset_52 = *(generic32_t *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))) + *(generic32_t *) var_6; function_0x180009bc7_Code_x86_64((struct_109 *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))), &stack.offset_52.offset_0, 4); var_6 = var_6 + 8; var_2 = var_7 + 8 + (var_5 << 3) < segment_1.offset_5224; var_5 = var_5 + 1; } while (var_2); } } } else { if (var_7 < segment_1.offset_5224) { var_5 = 0; var_6 = var_7; do { *(generic32_t *) &stack.offset_52 = *(generic32_t *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))) + *(generic32_t *) var_6; function_0x180009bc7_Code_x86_64((struct_109 *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))), &stack.offset_52.offset_0, 4); var_6 = var_6 + 8; var_2 = var_7 + 8 + (var_5 << 3) < segment_1.offset_5224; var_5 = var_5 + 1; } while (var_2); } } } else { if (var_7 < segment_1.offset_5224) { var_5 = 0; var_6 = var_7; do { *(generic32_t *) &stack.offset_52 = *(generic32_t *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))) + *(generic32_t *) var_6; function_0x180009bc7_Code_x86_64((struct_109 *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))), &stack.offset_52.offset_0, 4); var_6 = var_6 + 8; var_2 = var_7 + 8 + (var_5 << 3) < segment_1.offset_5224; var_5 = var_5 + 1; } while (var_2); } } } else { if (var_7 < segment_1.offset_5224) { var_5 = 0; var_6 = var_7; do { *(generic32_t *) &stack.offset_52 = *(generic32_t *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))) + *(generic32_t *) var_6; function_0x180009bc7_Code_x86_64((struct_109 *) (*(generic64_t *) "" + *(generic32_t *) (var_7 + 4 + (var_5 << 3))), &stack.offset_52.offset_0, 4); var_6 = var_6 + 8; var_2 = var_7 + 8 + (var_5 << 3) < segment_1.offset_5224; var_5 = var_5 + 1; } while (var_2); } } } generic8_t var_11; generic64_t var_12; var_12 = lshift(segment_3.offset_824, 4294967272); var_11 = !segment_3.offset_824 ? '@' : '\000'; if (!(var_11 | ((number8_t) var_12 & 0x80))) { generic64_t var_13; generic64_t var_14; generic64_t var_15; struct_104 *var_16; var_16 = segment_3.offset_816; var_13 = segment_3.offset_824; var_14 = 0; var_15 = 16; generic8_t var_17; generic64_t var_18; do { generic64_t var_19; var_18 = var_13; var_19 = var_16; if (*(generic32_t *) (var_15 + var_19 - 16)) { ((rawfunction_40 *) segment_1.offset_10648)(*(generic64_t *) (var_15 + var_19 - 8), *(generic64_t *) (var_15 + var_19), (pointer_or_number64_t) &stack + 40); var_19 = segment_3.offset_816; var_18 = segment_3.offset_824; } var_17 = (int64_t) (var_14 + 1) < (int64_t) ((int64_t) ((number64_t) var_18 << 32) >> 32); var_15 = var_15 + 40; var_14 = var_14 + 1; } while (var_17); } } } }
Loading...