// File: /workspace/github_cpp_makefile_star2_O3/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, %r14
movq %rdi, %rbx
movl $0x210, %edi            # imm = 0x210
addq %rdi, %rsi
addq %rbx, %rdi
callq 0x5220
movups 0x258(%r14), %xmm0
movups %xmm0, 0x258(%rbx)
movups 0x268(%r14), %xmm0
movups %xmm0, 0x268(%rbx)
movaps 0x280(%r14), %xmm0
movaps %xmm0, 0x280(%rbx)
movb 0x290(%r14), %al
movb %al, 0x290(%rbx)
movl $0x298, %edi            # imm = 0x298
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x2b8, %edi            # imm = 0x2B8
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movb 0x2d0(%r14), %al
movb %al, 0x2d0(%rbx)
movl $0x2d8, %edi            # imm = 0x2D8
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movsd 0x2f8(%r14), %xmm0
movsd %xmm0, 0x2f8(%rbx)
movsd 0x300(%r14), %xmm0
movsd %xmm0, 0x300(%rbx)
movsd 0x308(%r14), %xmm0
movsd %xmm0, 0x308(%rbx)
movl $0x310, %edi            # imm = 0x310
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movl $0x328, %edi            # imm = 0x328
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movsd 0x340(%r14), %xmm0
movsd %xmm0, 0x340(%rbx)
movsd 0x348(%r14), %xmm0
movsd %xmm0, 0x348(%rbx)
movsd 0x350(%r14), %xmm0
movsd %xmm0, 0x350(%rbx)
movsd 0x358(%r14), %xmm0
movsd %xmm0, 0x358(%rbx)
movsd 0x360(%r14), %xmm0
movsd %xmm0, 0x360(%rbx)
movsd 0x368(%r14), %xmm0
movsd %xmm0, 0x368(%rbx)
movsd 0x370(%r14), %xmm0
movsd %xmm0, 0x370(%rbx)
movsd 0x378(%r14), %xmm0
movsd %xmm0, 0x378(%rbx)
movsd 0x380(%r14), %xmm0
movsd %xmm0, 0x380(%rbx)
movsd 0x388(%r14), %xmm0
movsd %xmm0, 0x388(%rbx)
movsd 0x390(%r14), %xmm0
movsd %xmm0, 0x390(%rbx)
movsd 0x398(%r14), %xmm0
movsd %xmm0, 0x398(%rbx)
movsd 0x3a0(%r14), %xmm0
movsd %xmm0, 0x3a0(%rbx)
movsd 0x3a8(%r14), %xmm0
movsd %xmm0, 0x3a8(%rbx)
movsd 0x3b0(%r14), %xmm0
movsd %xmm0, 0x3b0(%rbx)
movsd 0x3b8(%r14), %xmm0
movsd %xmm0, 0x3b8(%rbx)
movsd 0x3c0(%r14), %xmm0
movsd %xmm0, 0x3c0(%rbx)
movsd 0x3c8(%r14), %xmm0
movsd %xmm0, 0x3c8(%rbx)
movsd 0x3d0(%r14), %xmm0
movsd %xmm0, 0x3d0(%rbx)
movsd 0x3d8(%r14), %xmm0
movsd %xmm0, 0x3d8(%rbx)
movsd 0x3e0(%r14), %xmm0
movsd %xmm0, 0x3e0(%rbx)
movsd 0x3e8(%r14), %xmm0
movsd %xmm0, 0x3e8(%rbx)
movsd 0x3f0(%r14), %xmm0
movsd %xmm0, 0x3f0(%rbx)
movsd 0x3f8(%r14), %xmm0
movsd %xmm0, 0x3f8(%rbx)
movb 0x254(%r14), %al
movb %al, 0x254(%rbx)
movb 0x255(%r14), %al
movb %al, 0x255(%rbx)
movq 0x278(%r14), %rax
movq %rax, 0x278(%rbx)
movl 0x250(%r14), %eax
movl %eax, 0x250(%rbx)
movb 0x430(%r14), %al
movb %al, 0x430(%rbx)
movl $0x438, %edi            # imm = 0x438
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x458, %edi            # imm = 0x458
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movaps 0x470(%r14), %xmm0
movaps %xmm0, 0x470(%rbx)
movb 0x480(%r14), %al
movb %al, 0x480(%rbx)
movl $0x488, %edi            # imm = 0x488
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x4a8, %edi            # imm = 0x4A8
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movaps 0x4c0(%r14), %xmm0
movaps %xmm0, 0x4c0(%rbx)
movaps 0x4d0(%r14), %xmm0
movaps %xmm0, 0x4d0(%rbx)
movaps 0x4e0(%r14), %xmm0
movaps %xmm0, 0x4e0(%rbx)
movaps 0x4f0(%r14), %xmm0
movaps %xmm0, 0x4f0(%rbx)
movaps 0x500(%r14), %xmm0
movaps %xmm0, 0x500(%rbx)
movaps 0x510(%r14), %xmm0
movaps %xmm0, 0x510(%rbx)
movb 0x520(%r14), %al
movb %al, 0x520(%rbx)
movl $0x528, %edi            # imm = 0x528
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x550, %edi            # imm = 0x550
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movsd 0x548(%r14), %xmm0
movsd %xmm0, 0x548(%rbx)
movsd 0x568(%r14), %xmm0
movsd %xmm0, 0x568(%rbx)
movb 0x570(%r14), %al
movb %al, 0x570(%rbx)
movl $0x578, %edi            # imm = 0x578
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x598, %edi            # imm = 0x598
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movsd 0x5b0(%r14), %xmm0
movsd %xmm0, 0x5b0(%rbx)
movb 0x5b8(%r14), %al
movb %al, 0x5b8(%rbx)
movl $0x5c0, %edi            # imm = 0x5C0
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x5e0, %edi            # imm = 0x5E0
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movups 0x5f8(%r14), %xmm0
movups %xmm0, 0x5f8(%rbx)
movsd 0x608(%r14), %xmm0
movsd %xmm0, 0x608(%rbx)
movaps 0x610(%r14), %xmm0
movaps %xmm0, 0x610(%rbx)
movaps 0x620(%r14), %xmm0
movaps %xmm0, 0x620(%rbx)
movsd 0x630(%r14), %xmm0
movsd %xmm0, 0x630(%rbx)
movsd 0x638(%r14), %xmm0
movsd %xmm0, 0x638(%rbx)
movsd 0x640(%r14), %xmm0
movsd %xmm0, 0x640(%rbx)
movb 0x648(%r14), %al
movb %al, 0x648(%rbx)
movaps 0x650(%r14), %xmm0
movaps %xmm0, 0x650(%rbx)
movsd 0x660(%r14), %xmm0
movsd %xmm0, 0x660(%rbx)
movsd 0x668(%r14), %xmm0
movsd %xmm0, 0x668(%rbx)
movsd 0x670(%r14), %xmm0
movsd %xmm0, 0x670(%rbx)
movsd 0x678(%r14), %xmm0
movsd %xmm0, 0x678(%rbx)
movb 0x680(%r14), %al
movb %al, 0x680(%rbx)
movl $0x688, %edi            # imm = 0x688
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x710, %edi            # imm = 0x710
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movups 0x6c8(%r14), %xmm0
movups %xmm0, 0x6c8(%rbx)
movsd 0x6d8(%r14), %xmm0
movsd %xmm0, 0x6d8(%rbx)
movl $0x6a8, %edi            # imm = 0x6A8
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x5220
movl $0x728, %edi            # imm = 0x728
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
callq 0x6a4e
movaps 0x6e0(%r14), %xmm0
movaps %xmm0, 0x6e0(%rbx)
movaps 0x6f0(%r14), %xmm0
movaps %xmm0, 0x6f0(%rbx)
movaps 0x700(%r14), %xmm0
movaps %xmm0, 0x700(%rbx)
movb 0x740(%r14), %al
movb %al, 0x740(%rbx)
movups 0x748(%r14), %xmm0
movups %xmm0, 0x748(%rbx)
movups 0x758(%r14), %xmm0
movups %xmm0, 0x758(%rbx)
movups 0x768(%r14), %xmm0
movups %xmm0, 0x768(%rbx)
movups 0x778(%r14), %xmm0
movups %xmm0, 0x778(%rbx)
movups 0x788(%r14), %xmm0
movups %xmm0, 0x788(%rbx)
movups 0x798(%r14), %xmm0
movups %xmm0, 0x798(%rbx)
movups 0x7a8(%r14), %xmm0
movups %xmm0, 0x7a8(%rbx)
movups 0x7b8(%r14), %xmm0
movups %xmm0, 0x7b8(%rbx)
movups 0x7c8(%r14), %xmm0
movups %xmm0, 0x7c8(%rbx)
movups 0x7d8(%r14), %xmm0
movups %xmm0, 0x7d8(%rbx)
movups 0x7e8(%r14), %xmm0
movups %xmm0, 0x7e8(%rbx)
movl $0x7f8, %edi            # imm = 0x7F8
leaq (%r14,%rdi), %rsi
addq %rbx, %rdi
movl $0x120, %edx            # imm = 0x120
callq 0x52f0
movups 0x918(%r14), %xmm0
movups %xmm0, 0x918(%rbx)
movups 0x928(%r14), %xmm0
movups %xmm0, 0x928(%rbx)
movups 0x938(%r14), %xmm0
movups %xmm0, 0x938(%rbx)
movups 0x948(%r14), %xmm0
movups %xmm0, 0x948(%rbx)
movups 0x958(%r14), %xmm0
movups %xmm0, 0x958(%rbx)
movups 0x968(%r14), %xmm0
movups %xmm0, 0x968(%rbx)
movups 0x978(%r14), %xmm0
movups %xmm0, 0x978(%rbx)
movups 0x988(%r14), %xmm0
movups %xmm0, 0x988(%rbx)
movups 0x998(%r14), %xmm0
movups %xmm0, 0x998(%rbx)
movups 0x9a8(%r14), %xmm0
movups %xmm0, 0x9a8(%rbx)
movsd 0x9b8(%r14), %xmm0
movsd %xmm0, 0x9b8(%rbx)
movsd 0xa80(%r14), %xmm0
movsd %xmm0, 0xa80(%rbx)
movsd 0xa88(%r14), %xmm0
movsd %xmm0, 0xa88(%rbx)
movsd 0xa90(%r14), %xmm0
movsd %xmm0, 0xa90(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq