Explore
/
Sign In
/
Unknown
Unknown
Fork
Star
Artifacts
function
0x140001e50:Code_x86_64
decompiled.c
0 lines
|
923.67 KB
_ABI(raw_x86_64) void function_0x140001e50_Code_x86_64(struct_334 *register_rcx _REG(rcx_x86_64), generic64_t register_rdx _REG(rdx_x86_64), generic64_t register_r8 _REG(r8_x86_64), struct_174 stack_arguments _STACK) { uint64_t loop_state_var; stack_arguments.offset_16 = (number32_t) register_r8; stack_arguments.offset_8 = register_rdx; stack_arguments.offset_0 = register_rcx; register_rcx->offset_12.member_1.offset_4 = register_rcx->offset_12.member_1.offset_4 + ((number32_t) register_r8 << 3); if ((number32_t) register_r8 << 3 > ~register_rcx->offset_12.member_1.offset_4) { register_rcx->offset_20 = register_rcx->offset_20 + 1; } struct_224 *var_0; generic64_t var_1; generic64_t var_2; generic32_t var_3; generic64_t var_4; generic64_t var_5; struct_173 var_6; register_rcx->offset_20 = register_rcx->offset_20 + ((uint32_t) (number32_t) register_r8 >> 29); if (!(register_rcx->offset_12.member_1.offset_4 & 0x1F8)) { var_0 = ®ister_rcx->offset_24; var_1 = register_r8; var_2 = (register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F; var_3 = (number32_t) register_r8; var_4 = register_rcx; var_5 = register_rdx; } else { if (((register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F) - 65 < (number32_t) register_r8 - (64 - ((register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F))) { struct_230 *var_7; generic64_t var_8; generic64_t var_9; var_7 = function_0x140004280_Code_x86_64((generic64_t) register_rcx, register_rdx, register_r8, (register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F); var_8 = NULL; var_9 = (register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F; if (*(generic64_t *) &var_7->offset_24->offset_32 != var_7->offset_24->offset_40) { generic64_t var_10; generic64_t var_11; var_10 = (register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F; var_11 = *(generic64_t *) &var_7->offset_24->offset_32; while (true) { generic64_t var_12; var_12 = var_10; if (*(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136)) { var_12 = var_10; if (*(generic32_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136) + 24)) { generic64_t var_13; var_13 = 0; generic8_t var_14; generic64_t var_15; do { generic64_t var_16; var_16 = 0; generic64_t var_17; do { var_17 = var_16; var_16 = var_17 + 1; } while (*(generic8_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) ((var_13 << 2) + (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136) + 32))) + var_17)); var_15 = 4168446072; if (var_17) { generic32_t var_18; generic64_t var_19; var_18 = 4168446072; var_19 = 0; generic64_t var_20; do { var_20 = *(generic64_t *) (var_11 + 32) + *(generic32_t *) ((var_13 << 2) + (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136) + 32))) + var_19; var_19 = var_19 + 1; var_18 = (var_18 ^ (number32_t) *(generic8_t *) var_20) * 16777619; } while (var_19 < var_17); var_15 = var_18; if (var_18 == (pointer_or_number32_t) -298451671) { var_8 = *(generic64_t *) (var_11 + 32) + *(generic32_t *) ((*(generic16_t *) ((var_13 << 1) + (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136) + 36))) << 2) + (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136) + 28))); var_9 = var_18; loop_state_var = 0; break; } } var_14 = (number32_t) var_13 + 1 - *(generic32_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136) + 24) > ~*(generic32_t *) (*(generic64_t *) (var_11 + 32) + *(generic32_t *) (*(generic64_t *) (var_11 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_11 + 32) + 60) + 136) + 24); var_13 = (number32_t) var_13 + 1; } while (var_14); if (!(loop_state_var)) { break; } var_12 = var_15; } } var_11 = *(generic64_t *) var_11; if (var_11 != var_7->offset_24->offset_40) { continue; } ((cabifunction_416 *) NULL)(((register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F) + (pointer_or_number64_t) register_rcx + 24, stack_arguments.offset_8, stack_arguments.offset_16, var_12); return; } } ((cabifunction_417 *) var_8)(((register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F) + (pointer_or_number64_t) register_rcx + 24, stack_arguments.offset_8, stack_arguments.offset_16, var_9); return; } struct_230 *var_21; generic64_t var_22; generic64_t var_23; generic64_t var_24; generic64_t var_25; struct_334 *var_26; var_21 = function_0x140004280_Code_x86_64((generic64_t) register_rcx, register_rdx, register_r8, (register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F); var_25 = register_r8 & 0xFFFFFFFF; var_22 = register_rdx; var_23 = (register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F; var_24 = NULL; var_26 = register_rcx; if (*(generic64_t *) &var_21->offset_24->offset_32 != var_21->offset_24->offset_40) { generic64_t var_27; generic64_t var_28; var_27 = (register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F; var_28 = *(generic64_t *) &var_21->offset_24->offset_32; while (true) { generic64_t var_29; var_29 = var_27; if (*(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136)) { var_29 = var_27; if (*(generic32_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136) + 24)) { generic64_t var_30; var_30 = 0; generic8_t var_31; generic64_t var_32; do { generic64_t var_33; var_33 = 0; generic64_t var_34; do { var_34 = var_33; var_33 = var_34 + 1; } while (*(generic8_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) ((var_30 << 2) + (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136) + 32))) + var_34)); var_32 = 4168446072; if (var_34) { generic32_t var_35; generic64_t var_36; var_35 = 4168446072; var_36 = 0; generic64_t var_37; do { var_37 = *(generic64_t *) (var_28 + 32) + *(generic32_t *) ((var_30 << 2) + (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136) + 32))) + var_36; var_36 = var_36 + 1; var_35 = (var_35 ^ (number32_t) *(generic8_t *) var_37) * 16777619; } while (var_36 < var_34); var_32 = var_35; if (var_35 == (pointer_or_number32_t) -298451671) { var_26 = stack_arguments.offset_0; var_25 = stack_arguments.offset_16; var_22 = stack_arguments.offset_8; var_24 = *(generic64_t *) (var_28 + 32) + *(generic32_t *) ((*(generic16_t *) ((var_30 << 1) + (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136) + 36))) << 2) + (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136) + 28))); var_23 = var_35; loop_state_var = 0; break; } } var_31 = (number32_t) var_30 + 1 - *(generic32_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136) + 24) > ~*(generic32_t *) (*(generic64_t *) (var_28 + 32) + *(generic32_t *) (*(generic64_t *) (var_28 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_28 + 32) + 60) + 136) + 24); var_30 = (number32_t) var_30 + 1; } while (var_31); if (!(loop_state_var)) { break; } var_29 = var_32; } } var_28 = *(generic64_t *) var_28; if (var_28 != var_21->offset_24->offset_40) { continue; } var_26 = stack_arguments.offset_0; var_25 = stack_arguments.offset_16; var_22 = stack_arguments.offset_8; var_23 = var_29; var_24 = NULL; break; } } generic64_t var_38; var_2 = var_23; var_4 = var_26; var_38 = ((rawfunction_80 *) var_24)(((register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F) + (pointer_or_number64_t) register_rcx + 24, var_22, var_2); var_1 = var_38; function_0x140001660_Code_x86_64((struct_334 *) var_4, &((struct_334 *) var_4)->offset_24, var_1, var_2, var_6); var_3 = (number32_t) var_25 - (64 - ((register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F)); stack_arguments.offset_8 = var_22 + (64 - ((register_rcx->offset_12.member_1.offset_4 >> 3) & 0x3F)); stack_arguments.offset_16 = var_3; var_0 = &((struct_334 *) var_4)->offset_24; var_5 = &((struct_334 *) var_4)->offset_24; } generic64_t var_39; generic64_t var_40; generic64_t var_41; generic64_t var_42; var_39 = var_1; var_40 = var_2; var_41 = var_4; var_42 = var_5; if (!(var_3 < 64)) { generic64_t var_43; generic64_t var_44; generic64_t var_45; generic32_t var_46; generic64_t var_47; generic64_t var_48; var_43 = 0; var_44 = var_1; var_45 = var_2; var_46 = var_3; var_47 = var_4; var_48 = var_5; struct_334 *var_49; generic8_t var_50; generic64_t var_51; generic64_t var_52; generic64_t var_53; generic32_t var_54; do { struct_230 *var_55; var_52 = var_45; var_54 = var_46; var_55 = function_0x140004280_Code_x86_64(var_47, var_48, var_44, var_52); var_53 = 0; if (*(generic64_t *) &var_55->offset_24->offset_32 != var_55->offset_24->offset_40) { generic64_t var_56; generic64_t var_57; var_56 = var_45; var_57 = *(generic64_t *) &var_55->offset_24->offset_32; while (true) { generic64_t var_58; var_58 = var_56; if (*(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136)) { var_58 = var_56; if (*(generic32_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136) + 24)) { generic64_t var_59; var_59 = 0; generic8_t var_60; generic64_t var_61; generic32_t var_62; do { generic64_t var_63; var_63 = 0; generic64_t var_64; do { var_64 = var_63; var_63 = var_64 + 1; } while (*(generic8_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) ((var_59 << 2) + (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136) + 32))) + var_64)); var_61 = 4168446072; if (var_64) { generic64_t var_65; var_62 = 4168446072; var_65 = 0; generic64_t var_66; do { var_66 = *(generic64_t *) (var_57 + 32) + *(generic32_t *) ((var_59 << 2) + (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136) + 32))) + var_65; var_65 = var_65 + 1; var_62 = (var_62 ^ (number32_t) *(generic8_t *) var_66) * 16777619; } while (var_65 < var_64); var_61 = var_62; if (var_62 == (pointer_or_number32_t) -298451671) { loop_state_var = 0; break; } } var_60 = (number32_t) var_59 + 1 - *(generic32_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136) + 24) > ~*(generic32_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136) + 24); var_59 = (number32_t) var_59 + 1; } while (var_60); if (!(loop_state_var)) { var_54 = stack_arguments.offset_16; var_53 = *(generic64_t *) (var_57 + 32) + *(generic32_t *) ((*(generic16_t *) ((var_59 << 1) + (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136) + 36))) << 2) + (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + *(generic32_t *) (*(generic64_t *) (var_57 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_57 + 32) + 60) + 136) + 28))); var_52 = var_62; break; } var_58 = var_61; } } var_57 = *(generic64_t *) var_57; if (var_57 != var_55->offset_24->offset_40) { continue; } var_54 = stack_arguments.offset_16; var_52 = var_58; var_53 = 0; break; } } var_51 = ((rawfunction_81 *) var_53)((generic64_t) var_0, stack_arguments.offset_8, var_52); var_44 = var_51; var_49 = stack_arguments.offset_0; var_47 = var_49; function_0x140001660_Code_x86_64((struct_334 *) var_47, var_0, var_44, var_52, var_6); var_46 = var_54 - 64; stack_arguments.offset_8 = stack_arguments.offset_8 + 64; stack_arguments.offset_16 = var_46; var_50 = ~var_43 == 0 - ((uint32_t) var_3 >> 6); var_43 = var_43 + 1; var_48 = var_0; } while (!(var_50)); var_39 = var_51; var_40 = var_52; var_41 = var_49; var_42 = var_0; } struct_230 *var_67; generic64_t var_68; generic64_t var_69; generic64_t var_70; var_69 = var_40; var_67 = function_0x140004280_Code_x86_64(var_41, var_42, var_39, var_69); var_68 = var_0; var_70 = NULL; if (*(generic64_t *) &var_67->offset_24->offset_32 != var_67->offset_24->offset_40) { generic64_t var_71; generic64_t var_72; var_71 = var_40; var_72 = *(generic64_t *) &var_67->offset_24->offset_32; while (true) { generic64_t var_73; var_73 = var_71; if (*(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136)) { var_73 = var_71; if (*(generic32_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136) + 24)) { generic64_t var_74; var_74 = 0; generic8_t var_75; generic64_t var_76; do { generic64_t var_77; var_77 = 0; generic64_t var_78; do { var_78 = var_77; var_77 = var_78 + 1; } while (*(generic8_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) ((var_74 << 2) + (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136) + 32))) + var_78)); var_76 = 4168446072; if (var_78) { generic32_t var_79; generic64_t var_80; var_79 = 4168446072; var_80 = 0; generic64_t var_81; do { var_81 = *(generic64_t *) (var_72 + 32) + *(generic32_t *) ((var_74 << 2) + (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136) + 32))) + var_80; var_80 = var_80 + 1; var_79 = (var_79 ^ (number32_t) *(generic8_t *) var_81) * 16777619; } while (var_80 < var_78); var_76 = var_79; if (var_79 == (pointer_or_number32_t) -298451671) { var_70 = *(generic64_t *) (var_72 + 32) + *(generic32_t *) ((*(generic16_t *) ((var_74 << 1) + (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136) + 36))) << 2) + (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136) + 28))); var_68 = &stack_arguments.offset_0->offset_24; var_69 = var_79; loop_state_var = 0; break; } } var_75 = (number32_t) var_74 + 1 - *(generic32_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136) + 24) > ~*(generic32_t *) (*(generic64_t *) (var_72 + 32) + *(generic32_t *) (*(generic64_t *) (var_72 + 32) + (pointer_or_number64_t) *(generic32_t *) (*(generic64_t *) (var_72 + 32) + 60) + 136) + 24); var_74 = (number32_t) var_74 + 1; } while (var_75); if (!(loop_state_var)) { break; } var_73 = var_76; } } var_72 = *(generic64_t *) var_72; if (var_72 != var_67->offset_24->offset_40) { continue; } var_68 = &stack_arguments.offset_0->offset_24; var_69 = var_73; var_70 = NULL; break; } } ((cabifunction_418 *) var_70)(var_68, stack_arguments.offset_8, stack_arguments.offset_16, var_69); }
Loading...