Explore
/
Sign In
/
Unknown
Unknown
Fork
Star
Artifacts
function
0x4025e0:Code_x86_64
decompiled.c
0 lines
|
528.16 KB
_ABI(raw_x86_64) void function_0x4025e0_Code_x86_64(generic64_t register_rsi _REG(rsi_x86_64), generic64_t register_rdi _REG(rdi_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)) { struct_76 stack; uint64_t loop_state_var; generic8_t var_0; generic64_t var_1; generic64_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; generic64_t var_9; generic64_t var_10; generic64_t var_11; generic64_t var_12; generic64_t var_13; generic64_t var_14; generic64_t var_15; generic64_t var_16; generic64_t var_17; generic64_t var_18; generic64_t var_19; generic64_t var_20; generic64_t var_21; generic64_t var_22; generic64_t var_23; generic64_t var_24; generic64_t var_25; generic64_t var_26; generic64_t var_27; generic64_t var_28; generic64_t var_29; generic64_t var_30; generic64_t var_31; generic64_t var_32; generic64_t var_33; generic64_t var_34; generic64_t var_35; generic64_t var_36; generic64_t var_37; var_34 = segment_3.bss.offset_32; var_1 = lshift(var_34, 4294967272); var_0 = !segment_3.bss.offset_32 ? '@' : '\000'; var_37 = register_rdi & 0xFFFFFFFF; var_35 = register_rsi & 0xFFFFFFFF; if (!(var_0 | ((number8_t) var_1 & 0x80))) { generic64_t var_38; generic64_t var_39; generic64_t var_40; stack.offset_12 = (number32_t) register_rsi; stack.offset_8 = (number32_t) register_rdi; var_40 = &segment_3.bss.offset_64; var_38 = 0; var_39 = 0; generic64_t var_41; while (true) { generic8_t var_42; pointer_or_number64_t var_43; pointer_or_number64_t var_44; pointer_or_number64_t var_45; pointer_or_number64_t var_46; generic64_t var_47; generic64_t var_48; generic64_t var_49; generic64_t var_50; generic64_t var_51; artificial_struct_returned_by_rawfunction_30 var_52; artificial_struct_returned_by_rawfunction_30 var_53; var_50 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + 256 + (number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16) * 8); helper_pshufd_xmm_wrapper(968, 776, 229, *(generic64_t *) var_40, 0, 0, 0, 0, 0, 0, 0, &var_26, &var_27, &var_28, &var_29, &var_30, &var_31, &var_32, &var_33); var_51 = var_26 & 0xFFFFFFFF; if (!(var_26 & 0x80000000)) { var_47 = *(generic64_t *) var_40; var_41 = *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16); if (*(generic8_t *) var_50) { var_48 = 0; var_49 = var_50; while (true) { var_52 = wmove_2((pointer_or_number64_t) &segment_3.data_rel_ro, (var_51 + var_48) & 0xFFFFFFFF, *(generic64_t *) var_40 & 0xFFFFFFFF, *segment_3.got.offset_216, (pointer_or_number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16), undef(generic64_t)); var_46 = var_52.register_rax; var_45 = var_52.register_rdx; if ((var_46 & 0xFFFFFFFF) != 4294967295) { var_53 = waddch_2((pointer_or_number64_t) &segment_3.data_rel_ro, var_45, (number64_t) *(generic8_t *) var_49 & 0xFFFFFFFF, *segment_3.got.offset_216, (pointer_or_number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16), undef(generic64_t)); var_44 = var_53.register_rax; var_43 = var_53.register_rdx; if ((var_44 & 0xFFFFFFFF) != 4294967295) { var_49 = var_49 + 1; var_42 = !*(generic8_t *) (var_50 + 1 + var_48); var_48 = var_48 + 1; if (!(var_42)) { continue; } } } break; } var_41 = *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16); var_47 = *(generic64_t *) var_40; } } else { generic64_t var_54; generic64_t var_55; generic64_t var_56; var_54 = 0; var_55 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + 256 + (number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16) * 8); var_56 = var_26 & 0xFFFFFFFF; generic32_t var_57; generic64_t var_58; while (true) { var_58 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + 256 + (number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16) * 8) + 1 + var_54; if (*(generic8_t *) var_55) { var_55 = var_55 + 1; var_57 = (number32_t) var_56; var_56 = var_57 + 1; var_54 = var_54 + 1; if (var_57 != (pointer_or_number32_t) -1) { continue; } loop_state_var = 1; break; } var_47 = *(generic64_t *) var_40; var_41 = *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16); break; } if (loop_state_var == 1) { var_50 = var_58; var_51 = var_57 + 1; var_47 = *(generic64_t *) var_40; var_41 = *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16); if (*(generic8_t *) var_50) { var_48 = 0; var_49 = var_50; while (true) { var_52 = wmove_2((pointer_or_number64_t) &segment_3.data_rel_ro, (var_51 + var_48) & 0xFFFFFFFF, *(generic64_t *) var_40 & 0xFFFFFFFF, *segment_3.got.offset_216, (pointer_or_number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16), undef(generic64_t)); var_46 = var_52.register_rax; var_45 = var_52.register_rdx; if ((var_46 & 0xFFFFFFFF) != 4294967295) { var_53 = waddch_2((pointer_or_number64_t) &segment_3.data_rel_ro, var_45, (number64_t) *(generic8_t *) var_49 & 0xFFFFFFFF, *segment_3.got.offset_216, (pointer_or_number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16), undef(generic64_t)); var_44 = var_53.register_rax; var_43 = var_53.register_rdx; if ((var_44 & 0xFFFFFFFF) != 4294967295) { var_49 = var_49 + 1; var_42 = !*(generic8_t *) (var_50 + 1 + var_48); var_48 = var_48 + 1; if (!(var_42)) { continue; } } } break; } var_41 = *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16); var_47 = *(generic64_t *) var_40; } } } generic64_t var_59; generic64_t var_60; stack.offset_4 = *(generic32_t *) ((pointer_or_number64_t) &segment_2.rodata.offset_584 + 3768 + var_41 * 4); helper_movl_mm_T0_xmm_wrapper(1032, *(generic32_t *) ((pointer_or_number64_t) &segment_2.rodata.offset_584 + 3768 + var_41 * 4), &var_24, &var_25); helper_movl_mm_T0_xmm_wrapper_1(904, *(generic32_t *) ((pointer_or_number64_t) &segment_2.rodata.offset_584 + 3832 + var_41 * 4), &var_22, &var_23); *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + var_38 * 16) = (number32_t) var_41 + ((int64_t) var_41 < (int64_t) 15); helper_punpckldq_xmm_wrapper(NULL, 904, 1032, var_22, var_24, &var_14, &var_15, &var_16, &var_17, &var_18, &var_19, &var_20, &var_21); var_59 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + (((number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_76 + var_38 * 16) << 4) + (pointer_or_number64_t) ((number32_t) var_41 + ((int64_t) var_41 < (int64_t) 15))) * 8); helper_paddl_xmm_wrapper(NULL, 840, 776, var_47, 0, var_14, var_15, &var_12, &var_13); helper_psubl_xmm_wrapper(NULL, 776, 904, var_47, 0, var_14, var_15, &var_10, &var_11); helper_pshufd_xmm_wrapper_2(1096, 840, 229, var_12, var_13, 0, 0, 0, 0, 0, 0, &var_2, &var_3, &var_4, &var_5, &var_6, &var_7, &var_8, &var_9); *(generic64_t *) var_40 = (var_10 & 0xFFFFFFFF) | (var_12 & 0xFFFFFFFF00000000); var_60 = var_2 & 0xFFFFFFFF; if ((var_2 & 0x80000000)) { generic64_t var_61; generic64_t var_62; generic64_t var_63; var_61 = 0; var_62 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + (((number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_76 + var_38 * 16) << 4) + (pointer_or_number64_t) ((number32_t) var_41 + ((int64_t) var_41 < (int64_t) 15))) * 8); var_63 = var_2 & 0xFFFFFFFF; generic32_t var_64; generic64_t var_65; while (true) { var_65 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + (((number64_t) *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_76 + var_38 * 16) << 4) + (pointer_or_number64_t) ((number32_t) var_41 + ((int64_t) var_41 < (int64_t) 15))) * 8) + 1 + var_61; if (*(generic8_t *) var_62) { var_62 = var_62 + 1; var_64 = (number32_t) var_63; var_63 = var_64 + 1; var_61 = var_61 + 1; if (var_64 != (pointer_or_number32_t) -1) { continue; } break; } loop_state_var = 1; break; } if (loop_state_var == 1) { if (!((int64_t) ((number64_t) (var_39 + 1) << 32) < (int64_t) ((number64_t) segment_3.bss.offset_32 << 32))) { break; } var_40 = var_40 + 16; var_39 = (var_39 + 1) & 0xFFFFFFFF; var_38 = var_38 + 1; continue; } var_59 = var_65; var_60 = var_64 + 1; } if (*(generic8_t *) var_59) { generic64_t var_66; generic64_t var_67; var_66 = 0; var_67 = var_59; while (true) { pointer_or_number64_t var_68; pointer_or_number64_t var_69; artificial_struct_returned_by_rawfunction_30 var_70; var_70 = wmove_2((pointer_or_number64_t) &segment_3.data_rel_ro, (var_60 + var_66) & 0xFFFFFFFF, var_10 & 0xFFFFFFFF, *segment_3.got.offset_216, var_41, undef(generic64_t)); var_69 = var_70.register_rax; var_68 = var_70.register_rdx; if ((var_69 & 0xFFFFFFFF) != 4294967295) { pointer_or_number64_t var_71; pointer_or_number64_t var_72; artificial_struct_returned_by_rawfunction_30 var_73; var_73 = waddch_2((pointer_or_number64_t) &segment_3.data_rel_ro, var_68, (number64_t) *(generic8_t *) var_67 & 0xFFFFFFFF, *segment_3.got.offset_216, var_41, undef(generic64_t)); var_72 = var_73.register_rax; var_71 = var_73.register_rdx; if ((var_72 & 0xFFFFFFFF) != 4294967295) { generic8_t var_74; var_67 = var_67 + 1; var_74 = !*(generic8_t *) (var_59 + 1 + var_66); var_66 = var_66 + 1; if (!(var_74)) { continue; } } } break; } } if (!((int64_t) ((number64_t) (var_39 + 1) << 32) < (int64_t) ((number64_t) segment_3.bss.offset_32 << 32))) { break; } var_40 = var_40 + 16; var_39 = (var_39 + 1) & 0xFFFFFFFF; var_38 = var_38 + 1; } var_37 = stack.offset_8; var_35 = stack.offset_12; var_34 = segment_3.bss.offset_32; var_36 = var_41; } generic64_t var_75; generic64_t var_76; generic64_t var_77; generic64_t var_78; generic64_t var_79; var_79 = var_35; var_78 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + (((((uint64_t) var_34 >> 31) + var_34) & 0x1) - ((uint64_t) var_34 >> 31)) * 128); if (!(var_79 < 2147483648)) { generic64_t var_80; generic64_t var_81; generic64_t var_82; var_80 = 0; var_81 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + (((((uint64_t) var_34 >> 31) + var_34) & 0x1) - ((uint64_t) var_34 >> 31)) * 128); var_82 = var_35; while (true) { generic64_t var_83; var_83 = *(generic64_t *) ((pointer_or_number64_t) &segment_3.data_rel_ro + (((((uint64_t) var_34 >> 31) + var_34) & 0x1) - ((uint64_t) var_34 >> 31)) * 128) + 1 + var_80; if (*(generic8_t *) var_81) { generic32_t var_84; var_81 = var_81 + 1; var_84 = (number32_t) var_82; var_82 = var_84 + 1; var_80 = var_80 + 1; if (var_84 != (pointer_or_number32_t) -1) { continue; } var_78 = var_83; var_79 = var_84 + 1; break; } var_75 = (((uint64_t) var_34 >> 31) + var_34) & 0x1; var_76 = (uint64_t) var_34 >> 31; var_77 = var_34; *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_64 + 4 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = (number32_t) var_35; *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_64 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = (number32_t) var_37; *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = 0; *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_76 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = (number32_t) var_75 - ((number32_t) var_76 & 0x1); segment_3.bss.offset_32 = (number32_t) var_77 + 1; return; } } var_75 = (((uint64_t) var_34 >> 31) + var_34) & 0x1; var_76 = (uint64_t) var_34 >> 31; var_77 = var_34; if (*(generic8_t *) var_78) { generic64_t var_85; generic64_t var_86; var_85 = 0; var_86 = var_78; while (true) { pointer_or_number64_t var_87; pointer_or_number64_t var_88; artificial_struct_returned_by_rawfunction_30 var_89; var_89 = wmove_2((var_79 - var_78) & 0xFFFFFFFF, (var_79 + var_85) & 0xFFFFFFFF, var_37, *segment_3.got.offset_216, var_36, undef(generic64_t)); var_88 = var_89.register_rax; var_87 = var_89.register_rdx; if ((var_88 & 0xFFFFFFFF) != 4294967295) { pointer_or_number64_t var_90; pointer_or_number64_t var_91; artificial_struct_returned_by_rawfunction_30 var_92; var_92 = waddch_2((var_79 - var_78) & 0xFFFFFFFF, var_87, (number64_t) *(generic8_t *) var_86 & 0xFFFFFFFF, *segment_3.got.offset_216, var_36, undef(generic64_t)); var_91 = var_92.register_rax; var_90 = var_92.register_rdx; if ((var_91 & 0xFFFFFFFF) != 4294967295) { generic8_t var_93; var_86 = var_86 + 1; var_93 = !*(generic8_t *) (var_78 + 1 + var_85); var_85 = var_85 + 1; if (!(var_93)) { continue; } } } break; } var_77 = segment_3.bss.offset_32; var_76 = (uint64_t) var_77 >> 31; var_75 = (var_76 + var_77) & 0x1; } *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_64 + 4 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = (number32_t) var_35; *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_64 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = (number32_t) var_37; *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_72 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = 0; *(generic32_t *) ((pointer_or_number64_t) &segment_3.bss.offset_76 + ((int64_t) ((number64_t) var_77 << 32) >> 28) * 1) = (number32_t) var_75 - ((number32_t) var_76 & 0x1); segment_3.bss.offset_32 = (number32_t) var_77 + 1; }
Loading...