// File: /workspace/github_cpp_makefile_star2_O2/istellartech[P]OpenTsiolkovsky/src/rocket.hpp
// Function: RocketStage::deep_copy(RocketStage const&)
void deep_copy(const RocketStage& obj){
        name = obj.name;
        calc_start_time = obj.calc_start_time;
        calc_end_time = obj.calc_end_time;
        calc_step_time = obj.calc_step_time;
        variation_ratio_of_air_density = obj.variation_ratio_of_air_density;
        mass_init = obj.mass_init;
        ballistic_coef = obj.ballistic_coef;
        air_density_file_exist = obj.air_density_file_exist;
        air_density_file_name = obj.air_density_file_name;
        air_density_mat = obj.air_density_mat;
        wind_file_exist = obj.wind_file_exist;
        wind_file_name = obj.wind_file_name;
        wind_const = obj.wind_const;
        wind_mat = obj.wind_mat;
        wind_mat_uv = obj.wind_mat_uv;
        launch_pos_LLH = obj.launch_pos_LLH;
        launch_pos_ECEF = obj.launch_pos_ECEF;
        launch_vel_NED = obj.launch_vel_NED;
        launch_vel_ECEF = obj.launch_vel_ECEF;
        posLLH_init = obj.posLLH_init;
        vel_NED_init = obj.vel_NED_init;
        posECI_init = obj.posECI_init;
        velECI_init = obj.velECI_init;
        
        is_powered = obj.is_powered;
        is_separated = obj.is_separated;
        power_flight_mode = obj.power_flight_mode;
        free_flight_mode = obj.free_flight_mode;

        num_stage = obj.num_stage;
        
        Isp_file_exist = obj.Isp_file_exist;
        Isp_file_name = obj.Isp_file_name;
        Isp_mat = obj.Isp_mat;
        Isp_coeff = obj.Isp_coeff;
        Isp_const = obj.Isp_const;
        thrust_file_exist = obj.thrust_file_exist;
        thrust_file_name = obj.thrust_file_name;
        thrust_mat = obj.thrust_mat;
        thrust_coeff = obj.thrust_coeff;
        thrust_const = obj.thrust_const;
        burn_start_time = obj.burn_start_time;
        burn_end_time = obj.burn_end_time;
        burn_time = obj.burn_time;
        forced_cutoff_time = obj.forced_cutoff_time;
        throat_diameter = obj.throat_diameter;
        throat_area = obj.throat_area;
        nozzle_expansion_ratio = obj.nozzle_expansion_ratio;
        // nozzle_exhaust_pressure = obj.nozzle_exhaust_pressure;
        
        body_diameter = obj.body_diameter;
        body_area = obj.body_area;
        CN_const = obj.CN_const;
        CN_file_exist = obj.CN_file_exist;
        CN_file_name = obj.CN_file_name;
        CN_mat = obj.CN_mat;
        CN_multiplier = obj.CN_multiplier;
        //CLa_const = obj.CLa_const;
        //CLa_file_exist = obj.CLa_file_exist;
        //CLa_file_name = obj.CLa_file_name;
        //CLa_mat = obj.CLa_mat;
        CA_const = obj.CA_const;
        CA_file_exist = obj.CA_file_exist;
        CA_file_name = obj.CA_file_name;
        CA_mat = obj.CA_mat;
        CA_multiplier = obj.CA_multiplier;
        
        attitude_file_exist = obj.attitude_file_exist;
        attitude_file_name = obj.attitude_file_name;
        attitude_mat = obj.attitude_mat;
        attitude_azimuth_const_deg = obj.attitude_azimuth_const_deg;
        attitude_elevation_const_deg = obj.attitude_elevation_const_deg;
        attitude_roll_const_deg = obj.attitude_roll_const_deg;
        /*
        attitude_azimuth_offset = obj.attitude_azimuth_offset;
        attitude_elevation_offset = obj.attitude_elevation_offset;
        attitude_roll_offset = obj.attitude_roll_offset;
        */
        quat_offset_NAVI2BODY = obj.quat_offset_NAVI2BODY;
        gyro_bias = obj.gyro_bias;
        
        dump_exist = obj.dump_exist;
        dump_separation_time = obj.dump_separation_time;
        dump_mass = obj.dump_mass;
        dump_ballistic_coef = obj.dump_ballistic_coef;
        vel_dump_additional_NEDframe = obj.vel_dump_additional_NEDframe;
        
        is_consider_neutrality = obj.is_consider_neutrality;
        CGXt_file_name = obj.CGXt_file_name;
        CGXt_mat       = obj.CGXt_mat;
        Xcg_offset     = obj.Xcg_offset;
        Ycg_offset     = obj.Ycg_offset;
        Zcg_offset     = obj.Zcg_offset;
        CP_file_name   = obj.CP_file_name;
        Xcp_mat        = obj.Xcp_mat;
        Xcp_offset     = obj.Xcp_offset;
        Ycp_offset     = obj.Ycp_offset;
        Zcp_offset     = obj.Zcp_offset;
        Xt_offset     = obj.Xt_offset;
        Yt_offset     = obj.Yt_offset;
        Zt_offset     = obj.Zt_offset;

        following_stage_exist = obj.following_stage_exist;
        previous_stage_separation_time = obj.previous_stage_separation_time;
        later_stage_separation_time = obj.later_stage_separation_time;
        g0 = obj.g0;
        thrust = obj.thrust;
        thrust_momentum = obj.thrust_momentum;
        thrust_SL = obj.thrust_SL;
        thrust_vac = obj.thrust_vac;
        Isp = obj.Isp;
        Isp_vac = obj.Isp_vac;
        m_dot = obj.m_dot;
        nozzle_exhaust_area = obj.nozzle_exhaust_area;
        CA = obj.CA;
        CN_pitch = obj.CN_pitch;
        CN_yaw = obj.CN_yaw;
        axial = obj.axial;
        air_density = obj.air_density;
        vel_AIR_BODYframe_abs = obj.vel_AIR_BODYframe_abs;
        vel_AIR_NEDframe_abs = obj.vel_AIR_NEDframe_abs;
        dynamic_pressure = obj.dynamic_pressure;
        force_axial = obj.force_axial;
        force_normal_pitch = obj.force_normal_pitch;
        force_normal_yaw = obj.force_normal_yaw;
        air = obj.air;
        wind_speed = obj.wind_speed;
        wind_direction = obj.wind_direction;
        azimuth = obj.azimuth;
        elevation = obj.elevation;
        roll = obj.roll;
        azimuth_target = obj.azimuth_target;
        elevation_target = obj.elevation_target;
        roll_target = obj.roll_target;
        mach_number = obj.mach_number;
        kinematic_energy = obj.kinematic_energy;
        
        gimbal_angle_pitch = obj.gimbal_angle_pitch;
        gimbal_angle_yaw = obj.gimbal_angle_yaw;
        
        pos_CG = obj.pos_CG;
        pos_CP_pitch = obj.pos_CP_pitch;
        pos_CP_yaw = obj.pos_CP_yaw;
        pos_Controller = obj.pos_Controller;
        
        loss_gravity = obj.loss_gravity;
        loss_aerodynamics = obj.loss_aerodynamics;
        loss_thrust = obj.loss_thrust;
        loss_control = obj.loss_control;
        loss_total = obj.loss_total;
        
        posLLH_ = obj.posLLH_;
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movl $0x210, %edi            # imm = 0x210
addq %rdi, %rsi
addq %r14, %rdi
callq 0x5210
movups 0x258(%rbx), %xmm0
movups %xmm0, 0x258(%r14)
movups 0x268(%rbx), %xmm0
movups %xmm0, 0x268(%r14)
movaps 0x280(%rbx), %xmm0
movaps %xmm0, 0x280(%r14)
movb 0x290(%rbx), %al
movb %al, 0x290(%r14)
movl $0x298, %edi            # imm = 0x298
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x2b8, %edi            # imm = 0x2B8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movb 0x2d0(%rbx), %al
movb %al, 0x2d0(%r14)
movl $0x2d8, %edi            # imm = 0x2D8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x2f8, %edi            # imm = 0x2F8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x310, %edi            # imm = 0x310
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movl $0x328, %edi            # imm = 0x328
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movl $0x340, %edi            # imm = 0x340
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x358, %edi            # imm = 0x358
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x370, %edi            # imm = 0x370
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x388, %edi            # imm = 0x388
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x3a0, %edi            # imm = 0x3A0
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x3b8, %edi            # imm = 0x3B8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x3d0, %edi            # imm = 0x3D0
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movl $0x3e8, %edi            # imm = 0x3E8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movb 0x254(%rbx), %al
movb %al, 0x254(%r14)
movb 0x255(%rbx), %al
movb %al, 0x255(%r14)
movq 0x278(%rbx), %rax
movq %rax, 0x278(%r14)
movl 0x250(%rbx), %eax
movl %eax, 0x250(%r14)
movb 0x430(%rbx), %al
movb %al, 0x430(%r14)
movl $0x438, %edi            # imm = 0x438
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x458, %edi            # imm = 0x458
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movaps 0x470(%rbx), %xmm0
movaps %xmm0, 0x470(%r14)
movb 0x480(%rbx), %al
movb %al, 0x480(%r14)
movl $0x488, %edi            # imm = 0x488
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x4a8, %edi            # imm = 0x4A8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movaps 0x4c0(%rbx), %xmm0
movaps %xmm0, 0x4c0(%r14)
movaps 0x4d0(%rbx), %xmm0
movaps %xmm0, 0x4d0(%r14)
movaps 0x4e0(%rbx), %xmm0
movaps %xmm0, 0x4e0(%r14)
movaps 0x4f0(%rbx), %xmm0
movaps %xmm0, 0x4f0(%r14)
movaps 0x500(%rbx), %xmm0
movaps %xmm0, 0x500(%r14)
movaps 0x510(%rbx), %xmm0
movaps %xmm0, 0x510(%r14)
movb 0x520(%rbx), %al
movb %al, 0x520(%r14)
movl $0x528, %edi            # imm = 0x528
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x550, %edi            # imm = 0x550
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movsd 0x548(%rbx), %xmm0
movsd %xmm0, 0x548(%r14)
movsd 0x568(%rbx), %xmm0
movsd %xmm0, 0x568(%r14)
movb 0x570(%rbx), %al
movb %al, 0x570(%r14)
movl $0x578, %edi            # imm = 0x578
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x598, %edi            # imm = 0x598
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movsd 0x5b0(%rbx), %xmm0
movsd %xmm0, 0x5b0(%r14)
movb 0x5b8(%rbx), %al
movb %al, 0x5b8(%r14)
movl $0x5c0, %edi            # imm = 0x5C0
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x5e0, %edi            # imm = 0x5E0
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movups 0x5f8(%rbx), %xmm0
movups %xmm0, 0x5f8(%r14)
movsd 0x608(%rbx), %xmm0
movsd %xmm0, 0x608(%r14)
movl $0x610, %edi            # imm = 0x610
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x12a3a
movl $0x630, %edi            # imm = 0x630
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movb 0x648(%rbx), %al
movb %al, 0x648(%r14)
movaps 0x650(%rbx), %xmm0
movaps %xmm0, 0x650(%r14)
movsd 0x660(%rbx), %xmm0
movsd %xmm0, 0x660(%r14)
movl $0x668, %edi            # imm = 0x668
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x129c6
movb 0x680(%rbx), %al
movb %al, 0x680(%r14)
movl $0x688, %edi            # imm = 0x688
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x710, %edi            # imm = 0x710
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movups 0x6c8(%rbx), %xmm0
movups %xmm0, 0x6c8(%r14)
movsd 0x6d8(%rbx), %xmm0
movsd %xmm0, 0x6d8(%r14)
movl $0x6a8, %edi            # imm = 0x6A8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x5210
movl $0x728, %edi            # imm = 0x728
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
callq 0x6628
movaps 0x6e0(%rbx), %xmm0
movaps %xmm0, 0x6e0(%r14)
movaps 0x6f0(%rbx), %xmm0
movaps %xmm0, 0x6f0(%r14)
movaps 0x700(%rbx), %xmm0
movaps %xmm0, 0x700(%r14)
movb 0x740(%rbx), %al
movb %al, 0x740(%r14)
movups 0x748(%rbx), %xmm0
movups %xmm0, 0x748(%r14)
movups 0x758(%rbx), %xmm0
movups %xmm0, 0x758(%r14)
movups 0x768(%rbx), %xmm0
movups %xmm0, 0x768(%r14)
movups 0x778(%rbx), %xmm0
movups %xmm0, 0x778(%r14)
movups 0x788(%rbx), %xmm0
movups %xmm0, 0x788(%r14)
movups 0x798(%rbx), %xmm0
movups %xmm0, 0x798(%r14)
movups 0x7a8(%rbx), %xmm0
movups %xmm0, 0x7a8(%r14)
movups 0x7b8(%rbx), %xmm0
movups %xmm0, 0x7b8(%r14)
movups 0x7c8(%rbx), %xmm0
movups %xmm0, 0x7c8(%r14)
movups 0x7d8(%rbx), %xmm0
movups %xmm0, 0x7d8(%r14)
movups 0x7e8(%rbx), %xmm0
movups %xmm0, 0x7e8(%r14)
movl $0x7f8, %edi            # imm = 0x7F8
leaq (%rbx,%rdi), %rsi
addq %r14, %rdi
movl $0x120, %edx            # imm = 0x120
callq 0x52f0
movups 0x918(%rbx), %xmm0
movups %xmm0, 0x918(%r14)
movups 0x928(%rbx), %xmm0
movups %xmm0, 0x928(%r14)
movups 0x938(%rbx), %xmm0
movups %xmm0, 0x938(%r14)
movups 0x948(%rbx), %xmm0
movups %xmm0, 0x948(%r14)
movups 0x958(%rbx), %xmm0
movups %xmm0, 0x958(%r14)
movups 0x968(%rbx), %xmm0
movups %xmm0, 0x968(%r14)
movups 0x978(%rbx), %xmm0
movups %xmm0, 0x978(%r14)
movups 0x988(%rbx), %xmm0
movups %xmm0, 0x988(%r14)
movups 0x998(%rbx), %xmm0
movups %xmm0, 0x998(%r14)
movups 0x9a8(%rbx), %xmm0
movups %xmm0, 0x9a8(%r14)
movsd 0x9b8(%rbx), %xmm0
movsd %xmm0, 0x9b8(%r14)
movl $0xa80, %eax            # imm = 0xA80
addq %rax, %rbx
addq %rax, %r14
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x129c6