// File: /workspace/github_cpp_makefile_star2_O2/istellartech[P]OpenTsiolkovsky/src/rocket.cpp
// Function: RocketStage::RocketStage(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, picojson::value, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, picojson::value>>>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, picojson::value, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, picojson::value>>>)
RocketStage::RocketStage(picojson::object o_each, picojson::object o){
    source_json_object = o;
    picojson::object& o_calc         = o["calculate condition"].get<picojson::object>();
    picojson::object& o_launch       = o["launch"].get<picojson::object>();
    picojson::object& o_wind         = o["wind"].get<picojson::object>();
    
    name = o["name(str)"].get<string>();
    calc_end_time = o_calc["end time[s]"].get<double>();
    calc_step_time = o_calc["time step for output[s]"].get<double>();
    if ( o_calc["variation ratio of air density[%](-100to100, default=0)"].is<picojson::null>()){
        variation_ratio_of_air_density = 0.0;
    } else {
        variation_ratio_of_air_density = o_calc["variation ratio of air density[%](-100to100, default=0)"].get<double>();
    }
    picojson::array& array_pos = o_launch["position LLH[deg,deg,m]"].get<picojson::array>();
    launch_pos_LLH[0] = array_pos[0].get<double>();
    launch_pos_LLH[1] = array_pos[1].get<double>();
    launch_pos_LLH[2] = array_pos[2].get<double>();
    picojson::array& array_vel = o_launch["velocity NED[m/s]"].get<picojson::array>();
    launch_vel_NED[0] = array_vel[0].get<double>();
    launch_vel_NED[1] = array_vel[1].get<double>();
    launch_vel_NED[2] = array_vel[2].get<double>();
    
    air_density_file_exist = o_calc["air density variation file exist?(bool)"].get<bool>();

    if (air_density_file_exist) {
        air_density_file_name = o_calc["air density variation file name(str)"].get<string>();
        air_density_mat = read_csv_vector_2d("./" + air_density_file_name, "altitude[m]", "air density variation[percent]");
    }

    wind_file_exist = o_wind["wind file exist?(bool)"].get<bool>();
    
    if (wind_file_exist) {
        wind_file_name = o_wind["wind file name(str)"].get<string>();
        wind_mat = read_csv_vector_3d("./" + wind_file_name,
                                      "altitude[m]", "wind_speed[m/s]", "direction[deg]");
        wind_mat_uv = MatrixXd::Zero(wind_mat.rows(), 3);
        for(int r = 0; r < wind_mat.rows(); r++){
            wind_mat_uv(r, 0) = wind_mat(r, 0);     // altitude
            double wind_speed = wind_mat(r, 1);
            double wind_direction = wind_mat(r, 2);

            double wind_u = - wind_speed * sin(deg2rad(wind_direction));
            double wind_v = - wind_speed * cos(deg2rad(wind_direction));

            wind_mat_uv(r, 1) = wind_u;
            wind_mat_uv(r, 2) = wind_v;
        }
    } else {
        picojson::array& array_wind_const = o_wind["const wind[m/s,deg]"].get<picojson::array>();
        wind_const[0] = array_wind_const[0].get<double>();
        wind_const[1] = array_wind_const[1].get<double>();
    }

    power_flight_mode = EPower_flight_mode(o_each["power flight mode(int)"].get<double>());
    free_flight_mode = EFree_flight_mode(o_each["free flight mode(int)"].get<double>());
    mass_init = o_each["mass initial[kg]"].get<double>();
    picojson::object& o_thrust   = o_each["thrust"].get<picojson::object>();
    picojson::object& o_aero     = o_each["aero"].get<picojson::object>();
    picojson::object& o_attitude = o_each["attitude"].get<picojson::object>();

    Isp_file_exist = o_thrust["Isp vac file exist?(bool)"].get<bool>();
    if(Isp_file_exist) {
        Isp_file_name = o_thrust["Isp vac file name(str)"].get<string>();
    }else{
        Isp_const = o_thrust["const Isp vac[s]"].get<double>();
    }

    if (! o_thrust["Isp coefficient[-]"].is<picojson::null>() ){
        Isp_coeff = o_thrust["Isp coefficient[-]"].get<double>();
    }else{
        Isp_coeff = 1.0;
    }

    thrust_file_exist = o_thrust["thrust vac file exist?(bool)"].get<bool>();
    if(thrust_file_exist){
        thrust_file_name = o_thrust["thrust vac file name(str)"].get<string>();
    }else{
        thrust_const = o_thrust["const thrust vac[N]"].get<double>();
    }

    if (! o_thrust["thrust coefficient[-]"].is<picojson::null>() ){
        thrust_coeff = o_thrust["thrust coefficient[-]"].get<double>();
    }else{
        thrust_coeff = 1.0;
    }
    burn_start_time = o_thrust["burn start time(time of each stage)[s]"].get<double>();
    burn_end_time = o_thrust["burn end time(time of each stage)[s]"].get<double>();
    if (! o_thrust["forced cutoff time(time of each stage)[s]"].is<picojson::null>() ){
        forced_cutoff_time = o_thrust["forced cutoff time(time of each stage)[s]"].get<double>();
    }else{
        forced_cutoff_time = 1.0e100;  // temporary large number
    }
    throat_diameter = o_thrust["throat diameter[m]"].get<double>();
    nozzle_expansion_ratio = o_thrust["nozzle expansion ratio[-]"].get<double>();
    // nozzle_exhaust_pressure = o_thrust["nozzle exhaust pressure[Pa]"].get<double>();
    body_diameter = o_aero["body diameter[m]"].get<double>();
    CN_file_exist = o_aero["normal coefficient file exist?(bool)"].get<bool>();
    if(CN_file_exist){
        CN_file_name = o_aero["normal coefficient file name(str)"].get<string>();
    }else{
        CN_const = o_aero["const normal coefficient[-]"].get<double>();
    }
    if (! o_aero["normal multiplier[-]"].is<picojson::null>() ){
        CN_multiplier = o_aero["normal multiplier[-]"].get<double>();
    }else{
        CN_multiplier = 1.0;
    }
    CA_file_exist = o_aero["axial coefficient file exist?(bool)"].get<bool>();
    if(CA_file_exist){
        CA_file_name = o_aero["axial coefficient file name(str)"].get<string>();
    }else{
        CA_const = o_aero["const axial coefficient[-]"].get<double>();
    }
    if (! o_aero["axial multiplier[-]"].is<picojson::null>() ){
        CA_multiplier = o_aero["axial multiplier[-]"].get<double>();
    }else{
        CA_multiplier = 1.0;
    }
    ballistic_coef = o_aero["ballistic coefficient(ballistic flight mode)[kg/m2]"].get<double>();
    attitude_file_exist = o_attitude["attitude file exist?(bool)"].get<bool>();
    if(attitude_file_exist){
        attitude_file_name = o_attitude["attitude file name(str)"].get<string>();
    }
    if(!o_attitude["const elevation[deg]"].is<picojson::null>()){
        attitude_elevation_const_deg = o_attitude["const elevation[deg]"].get<double>();
    } else {
        attitude_elevation_const_deg = 0.0;
    }
    if(!o_attitude["const azimuth[deg]"].is<picojson::null>()){
        attitude_azimuth_const_deg = o_attitude["const azimuth[deg]"].get<double>();
    }else if(!o_attitude["const azimth[deg]"].is<picojson::null>()){
        attitude_azimuth_const_deg = o_attitude["const azimth[deg]"].get<double>();
    } else {
        attitude_azimuth_const_deg = 0.0;
    }
    if(!o_attitude["const roll[deg]"].is<picojson::null>()){
        attitude_roll_const_deg = o_attitude["const roll[deg]"].get<double>();
    } else {
        attitude_roll_const_deg = 0.0;
    }

    /*
    if (! o_attitude["elevation offset[deg]"].is<picojson::null>() ){
        attitude_elevation_offset = o_attitude["elevation offset[deg]"].get<double>();
    }else{
        attitude_elevation_offset = 0.0;
    }
    if (! o_attitude["azimuth offset[deg]"].is<picojson::null>() ){
        attitude_azimuth_offset = o_attitude["azimuth offset[deg]"].get<double>();
    }else if (! o_attitude["azimth offset[deg]"].is<picojson::null>() ){
        attitude_azimuth_offset = o_attitude["azimth offset[deg]"].get<double>();
    }else{
        attitude_azimuth_offset = 0.0;
    }
    if (! o_attitude["roll offset[deg]"].is<picojson::null>() ){
        attitude_roll_offset = o_attitude["roll offset[deg]"].get<double>();
    }else{
        attitude_roll_offset = 0.0;
    }
    */
    double navi_yaw_offset = 0.0, navi_pitch_offset = 0.0, navi_roll_offset = 0.0;  // [deg]
    if (! o_attitude["yaw offset[deg]"].is<picojson::null>() ){
        navi_yaw_offset = o_attitude["yaw offset[deg]"].get<double>();
    }
    if (! o_attitude["pitch offset[deg]"].is<picojson::null>() ){
        navi_pitch_offset = o_attitude["pitch offset[deg]"].get<double>();
    }
    if (! o_attitude["roll offset[deg]"].is<picojson::null>() ){
        navi_roll_offset = o_attitude["roll offset[deg]"].get<double>();
    }
    quat_offset_NAVI2BODY = Quaterniond(AngleAxisd(deg2rad(navi_yaw_offset), Vector3d::UnitZ()) *
        AngleAxisd(deg2rad(navi_pitch_offset), Vector3d::UnitY()) *
        AngleAxisd(deg2rad(navi_roll_offset), Vector3d::UnitX()));
    double gyro_bias_x = 0.0, gyro_bias_y = 0.0, gyro_bias_z = 0.0;     // [rad/s]
    if (! o_attitude["gyro bias x[deg/h]"].is<picojson::null>() ){
        gyro_bias_x = deg2rad(o_attitude["gyro bias x[deg/h]"].get<double>()) / 3600.0;
    }
    if (! o_attitude["gyro bias y[deg/h]"].is<picojson::null>() ){
        gyro_bias_y = deg2rad(o_attitude["gyro bias y[deg/h]"].get<double>()) / 3600.0;
    }
    if (! o_attitude["gyro bias z[deg/h]"].is<picojson::null>() ){
        gyro_bias_z = deg2rad(o_attitude["gyro bias z[deg/h]"].get<double>()) / 3600.0;
    }
    gyro_bias << gyro_bias_x, gyro_bias_y, gyro_bias_z;

    try {
        picojson::object& o_dumping  = o_each["dumping product"].get<picojson::object>();
        dump_exist = o_dumping["dumping product exist?(bool)"].get<bool>();
        if (dump_exist){ // if not separation following stage, separation time should be large
            dump_separation_time = o_dumping["dumping product separation time[s]"].get<double>();
        }else{
            dump_separation_time = 1.0e100; // temporary large number
        }
        dump_mass = o_dumping["dumping product mass[kg]"].get<double>();
        dump_ballistic_coef = o_dumping["dumping product ballistic coefficient[kg/m2]"].get<double>();
        picojson::array& array_dump = o_dumping["additional speed at dumping NED[m/s,m/s,m/s]"].get<picojson::array>();
        vel_dump_additional_NEDframe[0] = array_dump[0].get<double>();
        vel_dump_additional_NEDframe[1] = array_dump[1].get<double>();
        vel_dump_additional_NEDframe[2] = array_dump[2].get<double>();
    } catch (...) {
        cout << "dumping product json_object not found" << endl;
    }

    try{
        picojson::object& o_stage    = o_each["stage"].get<picojson::object>();
        following_stage_exist = o_stage["following stage exist?(bool)"].get<bool>();
        if (following_stage_exist){ // if not separation following stage, separation time should be large
            later_stage_separation_time = o_stage["separation time[s]"].get<double>();
        }else{
            later_stage_separation_time = 1.0e100; // temporaly large number
        }
    } catch (...) {
        cout << "stage json_object not found" << endl;
    }

    try{
        picojson::object& o_neutrality = o_each["attitude neutrality(3DoF)"].get<picojson::object>();
        is_consider_neutrality = o_neutrality["considering neutrality?(bool)"].get<bool>();
        CGXt_file_name = o_neutrality["CG, Controller position file(str)"].get<string>();
        CP_file_name   = o_neutrality["CP file(str)"].get<string>();
        if (! o_neutrality["Xcg offset[m]"].is<picojson::null>() ){
            Xcg_offset = o_neutrality["Xcg offset[m]"].get<double>();
        } else {
            Xcg_offset = 0.0;
        }
        if (! o_neutrality["Ycg offset[m]"].is<picojson::null>() ){
            Ycg_offset = o_neutrality["Ycg offset[m]"].get<double>();
        } else {
            Ycg_offset = 0.0;
        }
        if (! o_neutrality["Zcg offset[m]"].is<picojson::null>() ){
            Zcg_offset = o_neutrality["Zcg offset[m]"].get<double>();
        } else {
            Zcg_offset = 0.0;
        }
        if (! o_neutrality["Xcp offset[m]"].is<picojson::null>() ){
            Xcp_offset = o_neutrality["Xcp offset[m]"].get<double>();
        } else {
            Xcp_offset = 0.0;
        }
        if (! o_neutrality["Ycp offset[m]"].is<picojson::null>() ){
            Ycp_offset = o_neutrality["Ycp offset[m]"].get<double>();
        } else {
            Ycp_offset = 0.0;
        }
        if (! o_neutrality["Zcp offset[m]"].is<picojson::null>() ){
            Zcp_offset = o_neutrality["Zcp offset[m]"].get<double>();
        } else {
            Zcp_offset = 0.0;
        }
        if (! o_neutrality["Xt offset[m]"].is<picojson::null>() ){
            Xt_offset = o_neutrality["Xt offset[m]"].get<double>();
        } else {
            Xt_offset = 0.0;
        }
        if (! o_neutrality["Yt offset[m]"].is<picojson::null>() ){
            Yt_offset = o_neutrality["Yt offset[m]"].get<double>();
        } else {
            Yt_offset = 0.0;
        }
        if (! o_neutrality["Zt offset[m]"].is<picojson::null>() ){
            Zt_offset = o_neutrality["Zt offset[m]"].get<double>();
        } else {
            Zt_offset = 0.0;
        }
    } catch (...) {
        cout << "attitude neutrality json_object not found" << endl;
    }

    body_area = body_diameter * body_diameter * pi / 4.0;
    burn_time = burn_end_time - burn_start_time;
    throat_area = throat_diameter * throat_diameter * pi / 4.0;
    nozzle_exhaust_area = throat_area * nozzle_expansion_ratio;

    if ( Isp_file_exist ){
        Isp_mat = read_csv_vector_2d("./" + Isp_file_name, "time[s]", "Isp vac[s]");
    }
    if ( thrust_file_exist ){
        // thrust_mat = read_csv_vector_3d("./" + thrust_file_name,
        //                                 "time[s]", "thrust vac[N]", "nozzle_exhaust_pressure[Pa]");
        thrust_mat = read_csv_vector_2d("./" + thrust_file_name,
                                        "time[s]", "thrust vac[N]");
    }
    if ( CN_file_exist ){
        //CN_mat = read_csv_vector_2d("./" + CN_file_name, "mach[-]", "CN[-]");
        CN_mat = read_csv_vector_15d("./" + CN_file_name);
    }
    if ( CA_file_exist ){
        CA_mat = read_csv_vector_2d("./" + CA_file_name, "mach[-]", "CA[-]");
    }
    if ( attitude_file_exist) {
        try {
            attitude_mat = read_csv_vector_4d("./" + attitude_file_name,
                                              "time[s]", "azimuth[deg]", "elevation[deg]", "roll[deg]");
        } catch (std::exception e) {
            try {
                attitude_mat = read_csv_vector_3d("./" + attitude_file_name,
                                                  "time[s]", "azimuth[deg]", "elevation[deg]");
            } catch (std::exception e) {
                attitude_mat = read_csv_vector_3d("./" + attitude_file_name,
                                                  "time[s]", "azimth[deg]", "elevation[deg]");
            }
        }
    }
    if ( is_consider_neutrality ) {
        CGXt_mat = read_csv_vector_3d("./" + CGXt_file_name,
                                      "time[s]", "CG_pos_STA[m]", "Controller_pos_STA[m]");
        Xcp_mat  = read_csv_vector_15d("./" + CP_file_name);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x608, %rsp            # imm = 0x608
movq %rdx, %r14
movq %rsi, 0x60(%rsp)
movq %rdi, %rbx
leaq 0x26ac7(%rip), %rax     # 0x2e5e8
movq %rax, (%rdi)
leaq 0x8(%rdi), %r13
movq %r13, %rdi
callq 0x5400
leaq 0x220(%rbx), %rax
movq %rax, 0x210(%rbx)
andq $0x0, 0x218(%rbx)
xorl %eax, %eax
movb %al, 0x220(%rbx)
leaq 0x240(%rbx), %rcx
movq %rcx, 0x230(%rbx)
andq $0x0, 0x238(%rbx)
movb %al, 0x240(%rbx)
andl $0x0, 0x250(%rbx)
andw $0x0, 0x254(%rbx)
xorpd %xmm1, %xmm1
movupd %xmm1, 0x258(%rbx)
movsd 0x18263(%rip), %xmm0    # 0x1fdf0
movups %xmm0, 0x268(%rbx)
andq $0x0, 0x288(%rbx)
leaq 0x2a8(%rbx), %rcx
movq %rcx, 0x298(%rbx)
andq $0x0, 0x2a0(%rbx)
leaq 0x210(%rbx), %rcx
movq %rcx, 0x100(%rsp)
movb %al, 0x2a8(%rbx)
movupd %xmm1, 0x2b8(%rbx)
andq $0x0, 0x2c8(%rbx)
leaq 0x2e8(%rbx), %rcx
movq %rcx, 0x2d8(%rbx)
andq $0x0, 0x2e0(%rbx)
leaq 0x298(%rbx), %rcx
movq %rcx, 0xe0(%rsp)
leaq 0x2d8(%rbx), %rcx
movq %rcx, 0xd8(%rsp)
movb %al, 0x2e8(%rbx)
leaq 0x310(%rbx), %rcx
movq %rcx, 0xf8(%rsp)
leaq 0x328(%rbx), %rcx
movq %rcx, 0xb0(%rsp)
movb %al, 0x430(%rbx)
leaq 0x438(%rbx), %rcx
movq %rcx, 0xd0(%rsp)
leaq 0x448(%rbx), %rcx
movapd %xmm1, 0x330(%rbx)
movapd %xmm1, 0x320(%rbx)
movapd %xmm1, 0x310(%rbx)
movq %rcx, 0x438(%rbx)
andq $0x0, 0x440(%rbx)
movb %al, 0x448(%rbx)
movupd %xmm1, 0x458(%rbx)
andq $0x0, 0x468(%rbx)
andq $0x0, 0x478(%rbx)
leaq 0x498(%rbx), %rcx
movq %rcx, 0x488(%rbx)
andq $0x0, 0x490(%rbx)
movb %al, 0x498(%rbx)
andq $0x0, 0x4b8(%rbx)
movupd %xmm1, 0x4a8(%rbx)
andq $0x0, 0x4c8(%rbx)
leaq 0x488(%rbx), %rcx
movq %rcx, 0xc8(%rsp)
leaq 0x528(%rbx), %rcx
movq %rcx, 0xc0(%rsp)
leaq 0x538(%rbx), %rcx
movupd %xmm1, 0x508(%rbx)
andq $0x0, 0x518(%rbx)
movq %rcx, 0x528(%rbx)
andq $0x0, 0x530(%rbx)
movb %al, 0x538(%rbx)
leaq 0x578(%rbx), %rcx
movq %rcx, 0xb8(%rsp)
leaq 0x588(%rbx), %rcx
movapd %xmm1, 0x560(%rbx)
movapd %xmm1, 0x550(%rbx)
movq %rcx, 0x578(%rbx)
andq $0x0, 0x580(%rbx)
movb %al, 0x588(%rbx)
andq $0x0, 0x5a8(%rbx)
movupd %xmm1, 0x598(%rbx)
leaq 0x5c0(%rbx), %rcx
movq %rcx, 0xa8(%rsp)
leaq 0x5d0(%rbx), %rcx
movq %rcx, 0x5c0(%rbx)
andq $0x0, 0x5c8(%rbx)
movb %al, 0x5d0(%rbx)
movapd %xmm1, 0x5e0(%rbx)
andq $0x0, 0x5f0(%rbx)
movb %al, 0x648(%rbx)
movb %al, 0x680(%rbx)
leaq 0x688(%rbx), %rcx
movq %rcx, 0xf0(%rsp)
leaq 0x698(%rbx), %rcx
movapd %xmm1, 0x650(%rbx)
andq $0x0, 0x660(%rbx)
movq %rcx, 0x688(%rbx)
andq $0x0, 0x690(%rbx)
movb %al, 0x698(%rbx)
leaq 0x6a8(%rbx), %rcx
movq %rcx, 0xe8(%rsp)
leaq 0x6b8(%rbx), %rcx
movq %rcx, 0x6a8(%rbx)
andq $0x0, 0x6b0(%rbx)
movb %al, 0x6b8(%rbx)
movb %al, 0x740(%rbx)
movapd %xmm1, 0x730(%rbx)
movapd %xmm1, 0x720(%rbx)
movapd %xmm1, 0x710(%rbx)
xorps %xmm0, %xmm0
movhps 0x17fca(%rip), %xmm0    # xmm0 = xmm0[0,1],mem[0,1]
movups %xmm0, 0x748(%rbx)
movabsq $0x40239d013a92a305, %rax # imm = 0x40239D013A92A305
movq %rax, 0x758(%rbx)
movapd %xmm1, 0x770(%rbx)
movapd %xmm1, 0x760(%rbx)
movapd 0x181a2(%rip), %xmm0    # 0x20000
movapd %xmm0, 0x780(%rbx)
leaq 0x7f8(%rbx), %rdi
xorpd %xmm0, %xmm0
movapd %xmm0, 0x7e0(%rbx)
movapd %xmm0, 0x7d0(%rbx)
movapd %xmm0, 0x7c0(%rbx)
movapd %xmm0, 0x7b0(%rbx)
movapd %xmm0, 0x7a0(%rbx)
movapd %xmm0, 0x790(%rbx)
andq $0x0, 0x7f0(%rbx)
callq 0x634e
andq $0x0, 0x928(%rbx)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x918(%rbx)
movabsq $0x3ff921fb54442d18, %rax # imm = 0x3FF921FB54442D18
movq %rax, 0x930(%rbx)
movupd %xmm0, 0x938(%rbx)
movq %rax, 0x948(%rbx)
andl $0x0, 0xe98(%rbx)
leaq 0xe90(%rbx), %rdi
andq $0x0, 0xea0(%rbx)
leaq 0xe98(%rbx), %rax
andq $0x0, 0x970(%rbx)
movapd %xmm0, 0x950(%rbx)
movapd %xmm0, 0x960(%rbx)
movupd %xmm0, 0x998(%rbx)
movupd %xmm0, 0x9a8(%rbx)
andq $0x0, 0x9b8(%rbx)
movq %rax, 0xea8(%rbx)
movq %rax, 0xeb0(%rbx)
andq $0x0, 0xeb8(%rbx)
movq %rdi, 0x30(%rsp)
movq %r14, %rsi
callq 0x123ea
leaq 0x18289(%rip), %rsi     # 0x201e2
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
movq %rbx, 0x28(%rsp)
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r15
movq %rsp, %rdi
callq 0x56e8
leaq 0x18266(%rip), %rsi     # 0x201f6
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r12
movq %rsp, %rdi
callq 0x56e8
leaq 0x1823b(%rip), %rsi     # 0x201fd
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %rbp
movq %rsp, %rdi
callq 0x56e8
leaq 0x183e4(%rip), %rsi     # 0x203d8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0x100(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
movq %rsp, %rdi
callq 0x56e8
leaq 0x181cf(%rip), %rsi     # 0x20202
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x260(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x181a0(%rip), %rsi     # 0x2020e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x268(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x1817d(%rip), %rsi     # 0x20226
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x810e
leaq 0x1814e(%rip), %rsi     # 0x20226
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x270(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x8116
andq $0x0, 0x270(%rbx)
leaq 0x18141(%rip), %rsi     # 0x2025e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfbd6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
movq (%r14), %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x340(%rbx)
movq (%r14), %rdi
addq $0x10, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x348(%rbx)
movq (%r14), %rdi
addq $0x20, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x350(%rbx)
leaq 0x180e3(%rip), %rsi     # 0x20276
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfbd6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
movq (%r14), %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x370(%rbx)
movq (%r14), %rdi
addq $0x10, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x378(%rbx)
movq (%r14), %rdi
addq $0x20, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x380(%rbx)
leaq 0x1807f(%rip), %rsi     # 0x20288
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x290(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x290(%rbx)
jne 0x8354
leaq 0x18063(%rip), %rsi     # 0x202b0
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
movq %rsp, %rdi
callq 0x56e8
leaq 0x17f28(%rip), %rsi     # 0x201b4
leaq 0x5c8(%rsp), %rdi
movq 0xe0(%rsp), %rdx
callq 0x6cd8
leaq 0x1802d(%rip), %rsi     # 0x202d5
leaq 0x5a8(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
leaq 0x18020(%rip), %rsi     # 0x202e1
leaq 0x588(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x5c8(%rsp), %rsi
leaq 0x5a8(%rsp), %rdx
leaq 0x588(%rsp), %rcx
callq 0x164f5
movq (%rsp), %rax
movq 0x2b8(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x2b8(%rbx)
movapd 0x2c0(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movapd %xmm1, 0x2c0(%rbx)
callq 0x5430
leaq 0x588(%rsp), %rdi
callq 0x56e8
leaq 0x5a8(%rsp), %rdi
callq 0x56e8
leaq 0x5c8(%rsp), %rdi
callq 0x56e8
leaq 0x17fa5(%rip), %rsi     # 0x20300
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %rbp, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x2d0(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x2d0(%rbx)
jne 0x863c
leaq 0x17f78(%rip), %rsi     # 0x20317
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %rbp, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xd8(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
movq %rsp, %rdi
callq 0x56e8
leaq 0x17dd6(%rip), %rsi     # 0x201b4
leaq 0x568(%rsp), %rdi
movq 0xd8(%rsp), %rdx
callq 0x6cd8
leaq 0x17edb(%rip), %rsi     # 0x202d5
leaq 0x548(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
leaq 0x17f18(%rip), %rsi     # 0x2032b
leaq 0x528(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x6c7e
leaq 0x17f0c(%rip), %rsi     # 0x2033b
leaq 0x508(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x568(%rsp), %rsi
leaq 0x548(%rsp), %rdx
leaq 0x528(%rsp), %rcx
leaq 0x508(%rsp), %r8
callq 0x1665e
movq %rsp, %r14
movq (%r14), %rax
movq 0x310(%rbx), %rdi
movq %rdi, (%r14)
movq %rax, 0x310(%rbx)
movupd 0x318(%rbx), %xmm0
movupd 0x8(%r14), %xmm1
movupd %xmm0, 0x8(%r14)
movupd %xmm1, 0x318(%rbx)
callq 0x5430
leaq 0x508(%rsp), %rdi
callq 0x56e8
leaq 0x528(%rsp), %rdi
callq 0x56e8
leaq 0x548(%rsp), %rdi
callq 0x56e8
leaq 0x568(%rsp), %rdi
callq 0x56e8
movq 0x318(%rbx), %rsi
pushq $0x3
popq %rdx
movq %r14, %rdi
callq 0xfc8a
movq %rsp, %rsi
movq 0xb0(%rsp), %rdi
callq 0x12e66
xorl %r14d, %r14d
pushq $0x1
popq %r15
pushq $0x2
popq %r12
cmpq %r14, 0x318(%rbx)
jle 0x869a
movq %r13, %rbp
movq 0xf8(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x6548
movsd (%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0xb0(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x6548
movsd 0x90(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0xf8(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x6548
movsd (%rax), %xmm0
movapd %xmm0, 0x90(%rsp)
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x6548
movsd (%rax), %xmm0
divsd 0x17873(%rip), %xmm0    # 0x1fe00
mulsd 0x17873(%rip), %xmm0    # 0x1fe08
movsd %xmm0, 0x88(%rsp)
callq 0x50e0
movsd %xmm0, 0xa0(%rsp)
movsd 0x88(%rsp), %xmm0
callq 0x5680
movsd %xmm0, 0x88(%rsp)
movq 0xb0(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbp, %r13
callq 0x6548
movapd 0x90(%rsp), %xmm1
xorpd 0x16a23(%rip), %xmm1    # 0x1f010
movapd %xmm1, 0x90(%rsp)
movsd 0xa0(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rax)
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x6548
movapd 0x90(%rsp), %xmm1
movsd 0x88(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rax)
incq %r14
movq 0x28(%rsp), %rbx
jmp 0x8502
leaq 0x17d07(%rip), %rsi     # 0x2034a
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %rbp, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfbd6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
movq (%r14), %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x2f8(%rbx)
movq (%r14), %rdi
addq $0x10, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x300(%rbx)
leaq 0x17cbd(%rip), %rsi     # 0x2035e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
cvttsd2si (%rax), %rax
movl %eax, 0x278(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x17c98(%rip), %rsi     # 0x20375
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
cvttsd2si (%rax), %rax
movl %eax, 0x27c(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x17c72(%rip), %rsi     # 0x2038b
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x280(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x17c46(%rip), %rsi     # 0x2039c
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r15
movq %rsp, %rdi
callq 0x56e8
leaq 0x17c19(%rip), %rsi     # 0x203a3
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
leaq 0x17bea(%rip), %rsi     # 0x203a8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r12
movq %rsp, %rdi
callq 0x56e8
leaq 0x17bbf(%rip), %rsi     # 0x203b1
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x430(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x430(%rbx)
jne 0x8864
leaq 0x17b99(%rip), %rsi     # 0x203cb
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xd0(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
jmp 0x8897
leaq 0x17b77(%rip), %rsi     # 0x203e2
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x478(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x17b4d(%rip), %rsi     # 0x203f3
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
movq %r13, 0x38(%rsp)
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movl (%rax), %r13d
movq %rsp, %rdi
callq 0x56e8
movabsq $0x3ff0000000000000, %rbp # imm = 0x3FF0000000000000
testl %r13d, %r13d
je 0x891a
leaq 0x17b0f(%rip), %rsi     # 0x203f3
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x470(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x8921
movq %rbp, 0x470(%rbx)
leaq 0x17ade(%rip), %rsi     # 0x20406
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x480(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x480(%rbx)
jne 0x899a
leaq 0x17abb(%rip), %rsi     # 0x20423
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xc8(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
jmp 0x89cd
leaq 0x17a9c(%rip), %rsi     # 0x2043d
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x4c8(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x17a75(%rip), %rsi     # 0x20451
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movl (%rax), %r13d
movq %rsp, %rdi
callq 0x56e8
testl %r13d, %r13d
je 0x8a41
leaq 0x17a46(%rip), %rsi     # 0x20451
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x4c0(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x8a48
movq %rbp, 0x4c0(%rbx)
leaq 0x17a18(%rip), %rsi     # 0x20467
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x4d0(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x17a04(%rip), %rsi     # 0x2048e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x4d8(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x179ee(%rip), %rsi     # 0x204b3
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movl (%rax), %r13d
movq %rsp, %rdi
callq 0x56e8
movabsq $0x54b249ad2594c37d, %rax # imm = 0x54B249AD2594C37D
testl %r13d, %r13d
je 0x8b37
movq %rax, %r13
leaq 0x179b2(%rip), %rsi     # 0x204b3
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x4e8(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x8b41
movq %rax, 0x4e8(%rbx)
movq %rax, %r13
leaq 0x17995(%rip), %rsi     # 0x204dd
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x4f0(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x1796d(%rip), %rsi     # 0x204f0
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r15, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x500(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x1794c(%rip), %rsi     # 0x2050a
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
leaq 0x508(%rbx), %rcx
movsd (%rax), %xmm0
movsd %xmm0, (%rcx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x1791f(%rip), %rsi     # 0x2051b
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x520(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x520(%rbx)
jne 0x8c6e
leaq 0x17904(%rip), %rsi     # 0x20540
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xc0(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
jmp 0x8ca1
leaq 0x178ed(%rip), %rsi     # 0x20562
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x518(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x178ce(%rip), %rsi     # 0x2057e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x8d15
leaq 0x1789f(%rip), %rsi     # 0x2057e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x548(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x8d1c
movq %rbp, 0x548(%rbx)
leaq 0x17870(%rip), %rsi     # 0x20593
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x570(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x570(%rbx)
jne 0x8d95
leaq 0x17854(%rip), %rsi     # 0x205b7
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xb8(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
jmp 0x8dc8
leaq 0x1783c(%rip), %rsi     # 0x205d8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x568(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x1781c(%rip), %rsi     # 0x205f3
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x8e3c
leaq 0x177ed(%rip), %rsi     # 0x205f3
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x5b0(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x8e43
movq %rbp, 0x5b0(%rbx)
leaq 0x177bd(%rip), %rsi     # 0x20607
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x288(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x177b6(%rip), %rsi     # 0x2063b
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x5b8(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x5b8(%rbx)
jne 0x8efd
leaq 0x17791(%rip), %rsi     # 0x20656
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xa8(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
movq %rsp, %rdi
callq 0x56e8
leaq 0x1776a(%rip), %rsi     # 0x2066e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x8f69
leaq 0x1773b(%rip), %rsi     # 0x2066e
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x600(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x8f71
andq $0x0, 0x600(%rbx)
leaq 0x1770b(%rip), %rsi     # 0x20683
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x8fc9
leaq 0x176dc(%rip), %rsi     # 0x20683
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
jmp 0x9023
leaq 0x176c6(%rip), %rsi     # 0x20696
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0xa2a8
leaq 0x17693(%rip), %rsi     # 0x20696
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x5f8(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x1766a(%rip), %rsi     # 0x206a8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x90a3
leaq 0x1763b(%rip), %rsi     # 0x206a8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x608(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x90ab
andq $0x0, 0x608(%rbx)
leaq 0x17606(%rip), %rsi     # 0x206b8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x9118
leaq 0x175d7(%rip), %rsi     # 0x206b8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9125
xorpd %xmm0, %xmm0
movsd %xmm0, 0x90(%rsp)
leaq 0x1759c(%rip), %rsi     # 0x206c8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x9192
leaq 0x1756d(%rip), %rsi     # 0x206c8
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x88(%rsp)
movq %rsp, %rdi
callq 0x56e8
jmp 0x919f
xorpd %xmm0, %xmm0
movsd %xmm0, 0x88(%rsp)
leaq 0x17534(%rip), %rsi     # 0x206da
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x920c
leaq 0x17505(%rip), %rsi     # 0x206da
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0xa0(%rsp)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9219
xorpd %xmm0, %xmm0
movsd %xmm0, 0xa0(%rsp)
leaq 0x68(%rsp), %rdi
callq 0xfce2
leaq 0x128(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x130a0
movsd 0x90(%rsp), %xmm0
divsd 0x16bba(%rip), %xmm0    # 0x1fe00
mulsd 0x16bba(%rip), %xmm0    # 0x1fe08
movsd %xmm0, 0x140(%rsp)
leaq 0x148(%rsp), %rdi
callq 0xfd3e
leaq 0x108(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x130a0
movsd 0x88(%rsp), %xmm0
divsd 0x16b76(%rip), %xmm0    # 0x1fe00
mulsd 0x16b76(%rip), %xmm0    # 0x1fe08
leaq 0x108(%rsp), %rdx
movsd %xmm0, 0x18(%rdx)
leaq 0x40(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xfcf4
leaq 0x5e8(%rsp), %rdi
callq 0xfd50
leaq 0x168(%rsp), %rdi
leaq 0x5e8(%rsp), %rsi
callq 0x130a0
movsd 0xa0(%rsp), %xmm0
divsd 0x16b1c(%rip), %xmm0    # 0x1fe00
mulsd 0x16b1c(%rip), %xmm0    # 0x1fe08
leaq 0x168(%rsp), %rdx
movsd %xmm0, 0x18(%rdx)
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
callq 0xfca9
leaq 0x610(%rbx), %rdi
movq %rsp, %rsi
callq 0x12a3a
andq $0x0, 0x40(%rsp)
andq $0x0, 0x128(%rsp)
leaq 0x173c0(%rip), %rsi     # 0x206eb
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x93a9
leaq 0x17391(%rip), %rsi     # 0x206eb
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
divsd 0x16a7a(%rip), %xmm0    # 0x1fe00
mulsd 0x16a7a(%rip), %xmm0    # 0x1fe08
divsd 0x16a7a(%rip), %xmm0    # 0x1fe10
movsd %xmm0, 0x90(%rsp)
movq %rsp, %rdi
callq 0x56e8
jmp 0x93b6
xorpd %xmm0, %xmm0
movsd %xmm0, 0x90(%rsp)
leaq 0x17341(%rip), %rsi     # 0x206fe
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x9436
leaq 0x17312(%rip), %rsi     # 0x206fe
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
divsd 0x169e8(%rip), %xmm0    # 0x1fe00
mulsd 0x169e8(%rip), %xmm0    # 0x1fe08
divsd 0x169e8(%rip), %xmm0    # 0x1fe10
movsd %xmm0, 0x40(%rsp)
movq %rsp, %rdi
callq 0x56e8
leaq 0x172d4(%rip), %rsi     # 0x20711
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movl (%rax), %r14d
movq %rsp, %rdi
callq 0x56e8
testl %r14d, %r14d
je 0x94b9
leaq 0x172a5(%rip), %rsi     # 0x20711
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r12, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
divsd 0x16968(%rip), %xmm0    # 0x1fe00
mulsd 0x16968(%rip), %xmm0    # 0x1fe08
divsd 0x16968(%rip), %xmm0    # 0x1fe10
movsd %xmm0, 0x128(%rsp)
movq %rsp, %rdi
callq 0x56e8
leaq 0x630(%rbx), %rax
movq %rsp, %rdi
movq %rax, (%rdi)
andq $0x0, 0x8(%rdi)
pushq $0x1
popq %rcx
movq %rcx, 0x10(%rdi)
movq %rcx, 0x18(%rdi)
movsd 0x90(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x40(%rsp), %rsi
callq 0xfd60
leaq 0x128(%rsp), %rsi
movq %rax, %rdi
callq 0xfd60
movq %rsp, %rdi
callq 0xfe08
leaq 0x17218(%rip), %rsi     # 0x20724
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
leaq 0x171f4(%rip), %rsi     # 0x20734
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
leaq 0x650(%rbx), %r15
movb (%rax), %al
movb %al, 0x648(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x648(%rbx)
jne 0x95ba
leaq 0x171ca(%rip), %rsi     # 0x20751
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, (%r15)
movq %rsp, %rdi
callq 0x56e8
jmp 0x95bd
movq %r13, (%r15)
leaq 0x171b0(%rip), %rsi     # 0x20774
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x658(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x1718e(%rip), %rsi     # 0x2078d
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x660(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x17180(%rip), %rsi     # 0x207ba
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfbd6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
movq (%r14), %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x668(%rbx)
movq (%r14), %rdi
addq $0x10, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x670(%rbx)
movq (%r14), %rdi
addq $0x20, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x678(%rbx)
leaq 0x16b2c(%rip), %rsi     # 0x201dc
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
leaq 0x17129(%rip), %rsi     # 0x2080d
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x740(%rbx)
movq %rsp, %rdi
callq 0x56e8
cmpb $0x1, 0x740(%rbx)
jne 0x975a
leaq 0x1703d(%rip), %rsi     # 0x20761
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x750(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9761
movq %r13, 0x750(%rbx)
leaq 0x170de(%rip), %rsi     # 0x20846
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xf9b6
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
leaq 0x170c4(%rip), %rsi     # 0x20860
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfc2e
movb (%rax), %al
movb %al, 0x680(%rbx)
movq %rsp, %rdi
callq 0x56e8
leaq 0x170ab(%rip), %rsi     # 0x2087e
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xf0(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
movq %rsp, %rdi
callq 0x56e8
leaq 0x1708e(%rip), %rsi     # 0x208a0
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb22
movq 0xe8(%rsp), %rdi
movq %rax, %rsi
callq 0x5210
movq %rsp, %rdi
callq 0x56e8
leaq 0x1705c(%rip), %rsi     # 0x208ad
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x98b6
leaq 0x1702d(%rip), %rsi     # 0x208ad
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x6c8(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x98be
andq $0x0, 0x6c8(%rbx)
leaq 0x16ff6(%rip), %rsi     # 0x208bb
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x992a
leaq 0x16fc7(%rip), %rsi     # 0x208bb
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x6d0(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9932
andq $0x0, 0x6d0(%rbx)
leaq 0x16f90(%rip), %rsi     # 0x208c9
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x999e
leaq 0x16f61(%rip), %rsi     # 0x208c9
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x6d8(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x99a6
andq $0x0, 0x6d8(%rbx)
leaq 0x16f2a(%rip), %rsi     # 0x208d7
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x9a12
leaq 0x16efb(%rip), %rsi     # 0x208d7
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x6e0(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9a1a
andq $0x0, 0x6e0(%rbx)
leaq 0x16ec4(%rip), %rsi     # 0x208e5
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x9a86
leaq 0x16e95(%rip), %rsi     # 0x208e5
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x6e8(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9a8e
andq $0x0, 0x6e8(%rbx)
leaq 0x16e5e(%rip), %rsi     # 0x208f3
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x9afa
leaq 0x16e2f(%rip), %rsi     # 0x208f3
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x6f0(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9b02
andq $0x0, 0x6f0(%rbx)
leaq 0x16df8(%rip), %rsi     # 0x20901
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x9b6e
leaq 0x16dc9(%rip), %rsi     # 0x20901
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x6f8(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9b76
andq $0x0, 0x6f8(%rbx)
leaq 0x16d91(%rip), %rsi     # 0x2090e
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x9be2
leaq 0x16d62(%rip), %rsi     # 0x2090e
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x700(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9bea
andq $0x0, 0x700(%rbx)
leaq 0x16d2a(%rip), %rsi     # 0x2091b
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movl (%rax), %r15d
movq %rsp, %rdi
callq 0x56e8
testl %r15d, %r15d
je 0x9c56
leaq 0x16cfb(%rip), %rsi     # 0x2091b
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rsi
movq %r14, %rdi
callq 0xfa0e
movq %rax, %rdi
callq 0xfb7a
movsd (%rax), %xmm0
movsd %xmm0, 0x708(%rbx)
movq %rsp, %rdi
callq 0x56e8
jmp 0x9c5e
andq $0x0, 0x708(%rbx)
movsd 0x508(%rbx), %xmm0
mulsd %xmm0, %xmm0
movsd 0x16196(%rip), %xmm1    # 0x1fe08
mulsd %xmm1, %xmm0
movsd 0x1619a(%rip), %xmm2    # 0x1fe18
mulsd %xmm2, %xmm0
movsd %xmm0, 0x510(%rbx)
movsd 0x4d8(%rbx), %xmm0
subsd 0x4d0(%rbx), %xmm0
movsd %xmm0, 0x4e0(%rbx)
movsd 0x4f0(%rbx), %xmm0
mulsd %xmm0, %xmm0
mulsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, 0x4f8(%rbx)
mulsd 0x500(%rbx), %xmm0
movsd %xmm0, 0x798(%rbx)
cmpb $0x1, 0x430(%rbx)
jne 0x9daa
leaq 0x164d2(%rip), %rsi     # 0x201b4
leaq 0x4e8(%rsp), %rdi
movq 0xd0(%rsp), %rdx
callq 0x6cd8
leaq 0x16508(%rip), %rsi     # 0x20206
leaq 0x4c8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
leaq 0x166d1(%rip), %rsi     # 0x203e8
leaq 0x4a8(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x4e8(%rsp), %rsi
leaq 0x4c8(%rsp), %rdx
leaq 0x4a8(%rsp), %rcx
callq 0x164f5
movq (%rsp), %rax
movq 0x458(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x458(%rbx)
movapd 0x460(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movapd %xmm1, 0x460(%rbx)
callq 0x5430
leaq 0x4a8(%rsp), %rdi
callq 0x56e8
leaq 0x4c8(%rsp), %rdi
callq 0x56e8
leaq 0x4e8(%rsp), %rdi
callq 0x56e8
cmpb $0x1, 0x480(%rbx)
jne 0x9e86
leaq 0x163f6(%rip), %rsi     # 0x201b4
leaq 0x488(%rsp), %rdi
movq 0xc8(%rsp), %rdx
callq 0x6cd8
leaq 0x1642c(%rip), %rsi     # 0x20206
leaq 0x468(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
leaq 0x16650(%rip), %rsi     # 0x20443
leaq 0x448(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x488(%rsp), %rsi
leaq 0x468(%rsp), %rdx
leaq 0x448(%rsp), %rcx
callq 0x164f5
movq (%rsp), %rax
movq 0x4a8(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x4a8(%rbx)
movapd 0x4b0(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movapd %xmm1, 0x4b0(%rbx)
callq 0x5430
leaq 0x448(%rsp), %rdi
callq 0x56e8
leaq 0x468(%rsp), %rdi
callq 0x56e8
leaq 0x488(%rsp), %rdi
callq 0x56e8
cmpb $0x1, 0x520(%rbx)
jne 0x9eff
leaq 0x1631e(%rip), %rsi     # 0x201b4
leaq 0x428(%rsp), %rdi
movq 0xc0(%rsp), %rdx
callq 0x6cd8
movq %rsp, %rdi
leaq 0x428(%rsp), %rsi
callq 0x16a7b
movq (%rsp), %rax
movq 0x550(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x550(%rbx)
movupd 0x558(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movupd %xmm1, 0x558(%rbx)
callq 0x5430
leaq 0x428(%rsp), %rdi
callq 0x56e8
cmpb $0x1, 0x570(%rbx)
jne 0x9fdb
leaq 0x162a1(%rip), %rsi     # 0x201b4
leaq 0x408(%rsp), %rdi
movq 0xb8(%rsp), %rdx
callq 0x6cd8
leaq 0x16a23(%rip), %rsi     # 0x20952
leaq 0x3e8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
leaq 0x16a12(%rip), %rsi     # 0x2095a
leaq 0x3c8(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x408(%rsp), %rsi
leaq 0x3e8(%rsp), %rdx
leaq 0x3c8(%rsp), %rcx
callq 0x164f5
movq (%rsp), %rax
movq 0x598(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x598(%rbx)
movapd 0x5a0(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movapd %xmm1, 0x5a0(%rbx)
callq 0x5430
leaq 0x3c8(%rsp), %rdi
callq 0x56e8
leaq 0x3e8(%rsp), %rdi
callq 0x56e8
leaq 0x408(%rsp), %rdi
callq 0x56e8
cmpb $0x1, 0x5b8(%rbx)
jne 0xa119
leaq 0x161c5(%rip), %rsi     # 0x201b4
leaq 0x3a8(%rsp), %rdi
movq 0xa8(%rsp), %rdx
callq 0x6cd8
leaq 0x161fb(%rip), %rsi     # 0x20206
leaq 0x388(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
leaq 0x16665(%rip), %rsi     # 0x20689
leaq 0x368(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x6c7e
leaq 0x16634(%rip), %rsi     # 0x20674
leaq 0x348(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0x6c7e
leaq 0x16652(%rip), %rsi     # 0x206ae
leaq 0x328(%rsp), %rdi
leaq 0x168(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x3a8(%rsp), %rsi
leaq 0x388(%rsp), %rdx
leaq 0x368(%rsp), %rcx
leaq 0x348(%rsp), %r8
leaq 0x328(%rsp), %r9
callq 0x16834
movq (%rsp), %rax
movq 0x5e0(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x5e0(%rbx)
movupd 0x5e8(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movupd %xmm1, 0x5e8(%rbx)
callq 0x5430
leaq 0x328(%rsp), %rdi
callq 0x56e8
leaq 0x348(%rsp), %rdi
callq 0x56e8
leaq 0x368(%rsp), %rdi
callq 0x56e8
leaq 0x388(%rsp), %rdi
callq 0x56e8
leaq 0x3a8(%rsp), %rdi
callq 0x56e8
cmpb $0x1, 0x680(%rbx)
jne 0xa296
leaq 0x16087(%rip), %rsi     # 0x201b4
leaq 0x208(%rsp), %rdi
movq 0xf0(%rsp), %rdx
callq 0x6cd8
leaq 0x160bd(%rip), %rsi     # 0x20206
leaq 0x1e8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x6c7e
leaq 0x167fe(%rip), %rsi     # 0x20960
leaq 0x1c8(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x6c7e
leaq 0x167f0(%rip), %rsi     # 0x2096e
leaq 0x1a8(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x208(%rsp), %rsi
leaq 0x1e8(%rsp), %rdx
leaq 0x1c8(%rsp), %rcx
leaq 0x1a8(%rsp), %r8
callq 0x1665e
movq (%rsp), %rax
movq 0x710(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x710(%rbx)
movupd 0x718(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movupd %xmm1, 0x718(%rbx)
callq 0x5430
leaq 0x1a8(%rsp), %rdi
callq 0x56e8
leaq 0x1c8(%rsp), %rdi
callq 0x56e8
leaq 0x1e8(%rsp), %rdi
callq 0x56e8
leaq 0x208(%rsp), %rdi
callq 0x56e8
leaq 0x15f87(%rip), %rsi     # 0x201b4
leaq 0x188(%rsp), %rdi
movq 0xe8(%rsp), %rdx
callq 0x6cd8
movq %rsp, %rdi
leaq 0x188(%rsp), %rsi
callq 0x16a7b
movq (%rsp), %rax
movq 0x728(%rbx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x728(%rbx)
movapd 0x730(%rbx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movapd %xmm1, 0x730(%rbx)
callq 0x5430
leaq 0x188(%rsp), %rdi
callq 0x56e8
addq $0x608, %rsp            # imm = 0x608
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
andq $0x0, 0x5f8(%rbx)
jmp 0x9037
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
movq %rax, %rbp
leaq 0x188(%rsp), %rdi
jmp 0xabc2
jmp 0xacc9
movq %rdx, %r14
movq %rax, %rbp
leaq 0x328(%rsp), %rdi
callq 0x56e8
jmp 0xa30b
movq %rax, %rbp
leaq 0x1a8(%rsp), %rdi
callq 0x56e8
jmp 0xa31d
movq %rdx, %r14
movq %rax, %rbp
leaq 0x348(%rsp), %rdi
callq 0x56e8
jmp 0xa332
movq %rax, %rbp
leaq 0x1c8(%rsp), %rdi
callq 0x56e8
jmp 0xa344
movq %rdx, %r14
movq %rax, %rbp
leaq 0x368(%rsp), %rdi
callq 0x56e8
jmp 0xa359
movq %rax, %rbp
leaq 0x1e8(%rsp), %rdi
callq 0x56e8
jmp 0xa36b
movq %rdx, %r14
movq %rax, %rbp
leaq 0x388(%rsp), %rdi
callq 0x56e8
jmp 0xa37e
movq %rax, %rbp
leaq 0x208(%rsp), %rdi
jmp 0xabc2
movq %rdx, %r14
movq %rax, %rbp
leaq 0x3a8(%rsp), %rdi
callq 0x56e8
cmpl $0x2, %r14d
jne 0xaccc
movq %rbp, %rdi
callq 0x5460
movq 0x24c04(%rip), %r15     # 0x2efa8
addq $0x10, %r15
movq %r15, 0x68(%rsp)
movq %rbp, %rdi
callq 0x5170
leaq 0x15df8(%rip), %rsi     # 0x201b4
leaq 0x308(%rsp), %rdi
movq 0xa8(%rsp), %rdx
callq 0x6cd8
leaq 0x15e2e(%rip), %rsi     # 0x20206
leaq 0x2e8(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x6c7e
leaq 0x16295(%rip), %rsi     # 0x20689
leaq 0x2c8(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0x6c7e
leaq 0x16264(%rip), %rsi     # 0x20674
leaq 0x2a8(%rsp), %rdi
leaq 0x168(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x308(%rsp), %rsi
leaq 0x2e8(%rsp), %rdx
leaq 0x2c8(%rsp), %rcx
leaq 0x2a8(%rsp), %r8
callq 0x1665e
movq (%rsp), %rax
movq 0x28(%rsp), %rcx
movq 0x5e0(%rcx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x5e0(%rcx)
movupd 0x5e8(%rcx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movupd %xmm1, 0x5e8(%rcx)
callq 0x5430
leaq 0x2a8(%rsp), %rdi
callq 0x56e8
leaq 0x2c8(%rsp), %rdi
callq 0x56e8
leaq 0x2e8(%rsp), %rdi
callq 0x56e8
leaq 0x308(%rsp), %rdi
callq 0x56e8
leaq 0x68(%rsp), %rdi
callq 0x56d0
callq 0x55a0
movq 0x28(%rsp), %rbx
jmp 0xa119
jmp 0xacc9
movq %rdx, %r12
movq %rax, %rbp
leaq 0x2a8(%rsp), %rdi
callq 0x56e8
jmp 0xa4f6
movq %rdx, %r12
movq %rax, %rbp
leaq 0x2c8(%rsp), %rdi
callq 0x56e8
jmp 0xa50b
movq %rdx, %r12
movq %rax, %rbp
leaq 0x2e8(%rsp), %rdi
callq 0x56e8
jmp 0xa520
movq %rdx, %r12
movq %rax, %rbp
leaq 0x308(%rsp), %rdi
callq 0x56e8
cmpl %r14d, %r12d
jne 0xa6cf
movq %rbp, %rdi
callq 0x5460
movq %r15, 0x108(%rsp)
movq %rbp, %rdi
callq 0x5170
leaq 0x15c5f(%rip), %rsi     # 0x201b4
leaq 0x288(%rsp), %rdi
movq 0xa8(%rsp), %rdx
callq 0x6cd8
leaq 0x15c95(%rip), %rsi     # 0x20206
leaq 0x268(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0x6c7e
leaq 0x1610f(%rip), %rsi     # 0x2069c
leaq 0x248(%rsp), %rdi
leaq 0x168(%rsp), %rdx
callq 0x6c7e
leaq 0x160cb(%rip), %rsi     # 0x20674
leaq 0x228(%rsp), %rdi
leaq 0x5e8(%rsp), %rdx
callq 0x6c7e
movq %rsp, %rdi
leaq 0x288(%rsp), %rsi
leaq 0x268(%rsp), %rdx
leaq 0x248(%rsp), %rcx
leaq 0x228(%rsp), %r8
callq 0x1665e
movq (%rsp), %rax
movq 0x28(%rsp), %rcx
movq 0x5e0(%rcx), %rdi
movq %rdi, (%rsp)
movq %rax, 0x5e0(%rcx)
movupd 0x5e8(%rcx), %xmm0
movupd 0x8(%rsp), %xmm1
movupd %xmm0, 0x8(%rsp)
movupd %xmm1, 0x5e8(%rcx)
callq 0x5430
leaq 0x228(%rsp), %rdi
callq 0x56e8
leaq 0x248(%rsp), %rdi
callq 0x56e8
leaq 0x268(%rsp), %rdi
callq 0x56e8
leaq 0x288(%rsp), %rdi
callq 0x56e8
leaq 0x108(%rsp), %rdi
callq 0x56d0
callq 0x55a0
jmp 0xa4bd
movq %rax, %rbp
jmp 0xa6cf
movq %rax, %rbp
leaq 0x228(%rsp), %rdi
callq 0x56e8
jmp 0xa687
movq %rax, %rbp
leaq 0x248(%rsp), %rdi
callq 0x56e8
jmp 0xa699
movq %rax, %rbp
leaq 0x268(%rsp), %rdi
callq 0x56e8
jmp 0xa6ab
movq %rax, %rbp
leaq 0x288(%rsp), %rdi
callq 0x56e8
jmp 0xa6bd
movq %rax, %rbp
leaq 0x108(%rsp), %rdi
callq 0x56d0
callq 0x55a0
leaq 0x68(%rsp), %rdi
callq 0x56d0
callq 0x55a0
jmp 0xaccc
movq %rdx, %r12
movq %rax, %rbp
jmp 0xa52d
movq %rax, %rbp
leaq 0x3c8(%rsp), %rdi
callq 0x56e8
jmp 0xa713
jmp 0xacc9
movq %rdx, %r14
movq %rax, %rbp
jmp 0xa38b
movq %rax, %rbp
leaq 0x3e8(%rsp), %rdi
callq 0x56e8
jmp 0xa725
movq %rax, %rbp
leaq 0x408(%rsp), %rdi
jmp 0xabc2
jmp 0xa96d
jmp 0xac1c
jmp 0xacc9
movq %rax, %rbp
leaq 0x428(%rsp), %rdi
jmp 0xabc2
movq %rax, %rbp
leaq 0x448(%rsp), %rdi
callq 0x56e8
jmp 0xa76b
jmp 0xacc9
movq %rax, %rbp
leaq 0x468(%rsp), %rdi
callq 0x56e8
jmp 0xa77d
movq %rax, %rbp
leaq 0x488(%rsp), %rdi
jmp 0xabc2
movq %rax, %rbp
leaq 0x4a8(%rsp), %rdi
callq 0x56e8
jmp 0xa7a4
jmp 0xacc9
movq %rax, %rbp
leaq 0x4c8(%rsp), %rdi
callq 0x56e8
jmp 0xa7b6
movq %rax, %rbp
leaq 0x4e8(%rsp), %rdi
jmp 0xabc2
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xaa7f
jmp 0xaa7f
movq %rax, %rbp
leaq 0x508(%rsp), %rdi
callq 0x56e8
jmp 0xa80a
movq %rax, %rbp
leaq 0x528(%rsp), %rdi
callq 0x56e8
jmp 0xa81c
movq %rax, %rbp
leaq 0x548(%rsp), %rdi
callq 0x56e8
jmp 0xa82e
movq %rax, %rbp
leaq 0x568(%rsp), %rdi
jmp 0xacc2
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
movq %rax, %rbp
leaq 0x588(%rsp), %rdi
callq 0x56e8
jmp 0xa85f
movq %rax, %rbp
leaq 0x5a8(%rsp), %rdi
callq 0x56e8
jmp 0xa871
movq %rax, %rbp
leaq 0x5c8(%rsp), %rdi
jmp 0xacc2
jmp 0xaa7f
jmp 0xaa7f
jmp 0xa965
jmp 0xa965
jmp 0xa965
jmp 0xa965
jmp 0xa965
jmp 0xa965
jmp 0xa965
jmp 0xa965
jmp 0xa965
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xaa7f
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac5d
jmp 0xa965
jmp 0xac1c
jmp 0xac1c
jmp 0xa965
jmp 0xab3b
jmp 0xac1c
jmp 0xab85
jmp 0xa965
jmp 0xa965
jmp 0xa96d
jmp 0xac1c
movq %rax, %r14
jmp 0xac68
movq %rax, %r14
jmp 0xab46
jmp 0xac1c
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xacc9
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xabbc
jmp 0xacc9
jmp 0xacbc
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xacb2
jmp 0xaa7f
jmp 0xacbc
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xacbc
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
jmp 0xaa7f
movq %rax, %rbp
jmp 0xacd1
jmp 0xacb2
jmp 0xac5d
jmp 0xac5d
jmp 0xac5d
jmp 0xac5d
jmp 0xac5d
jmp 0xac5d
jmp 0xac5d
jmp 0xac5d
jmp 0xac5d
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xacbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xab85
jmp 0xab85
jmp 0xab85
jmp 0xac5d
jmp 0xab3b
jmp 0xab85
jmp 0xac5d
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
movq %r14, %rdi
callq 0x5170
movq 0x2445b(%rip), %rdi     # 0x2efb0
leaq 0x15cce(%rip), %rsi     # 0x2082a
callq 0x5370
movq %rax, %rdi
callq 0x51b0
movq 0x28(%rsp), %rbx
callq 0x55a0
jmp 0x9761
movq %rax, %rbp
callq 0x55a0
jmp 0xaccc
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
jmp 0xac1f
movq %rax, %rbp
movq %rsp, %rdi
callq 0xfe08
jmp 0xaccc
jmp 0xacc9
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
jmp 0xabbc
movq %rax, %rbp
movq %rsp, %rdi
callq 0x56e8
jmp 0xaccc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
jmp 0xacbc
movq %rax, %r14
movq %r14, %rdi
callq 0x5170
movq 0x24382(%rip), %rdi     # 0x2efb0
leaq 0x15bb2(%rip), %rsi     # 0x207e7
callq 0x5370
movq %rax, %rdi
callq 0x51b0
movq 0x28(%rsp), %rbx
callq 0x55a0
jmp 0x96a9
movq %rax, %rbp
callq 0x55a0
jmp 0xaccc
jmp 0xac5d
movq %rax, %r14
movq %rsp, %rdi
callq 0x56e8
movq %r14, %rdi
callq 0x5170
movq 0x24339(%rip), %rdi     # 0x2efb0
leaq 0x15caa(%rip), %rsi     # 0x20928
callq 0x5370
movq %rax, %rdi
callq 0x51b0
movq 0x28(%rsp), %rbx
callq 0x55a0
jmp 0x9c5e
jmp 0xacc9
movq %rax, %rbp
callq 0x55a0
jmp 0xaccc
movq %rax, %rdi
callq 0x659a
jmp 0xacc9
jmp 0xacb2
movq %rax, %rbp
movq 0x30(%rsp), %rdi
jmp 0xacf3
movq %rax, %rbp
movq %rsp, %rdi
callq 0x56e8
jmp 0xacd1
movq %rax, %rbp
movq 0x38(%rsp), %r13
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rbx
jmp 0xacf3
jmp 0xace3
jmp 0xace3
jmp 0xace3
movq 0x30(%rsp), %rdi
movq %rbp, %r13
movq 0x28(%rsp), %rbx
movq %rax, %rbp
leaq 0x230(%rbx), %rax
movq %rax, 0x90(%rsp)
leaq 0x2b8(%rbx), %rax
movq %rax, 0x88(%rsp)
leaq 0x458(%rbx), %rax
movq %rax, 0xa0(%rsp)
leaq 0x4a8(%rbx), %rax
movq %rax, 0x28(%rsp)
leaq 0x550(%rbx), %rax
movq %rax, 0x60(%rsp)
leaq 0x598(%rbx), %r15
leaq 0x5e0(%rbx), %r14
leaq 0x710(%rbx), %r12
addq $0x728, %rbx            # imm = 0x728
callq 0x6f3a
movq %rbx, %rdi
callq 0x6592
movq %r12, %rdi
callq 0x6592
movq 0xe8(%rsp), %rdi
callq 0x56e8
movq 0xf0(%rsp), %rdi
callq 0x56e8
movq %r14, %rdi
callq 0x6592
movq 0xa8(%rsp), %rdi
callq 0x56e8
movq %r15, %rdi
callq 0x6592
movq 0xb8(%rsp), %rdi
callq 0x56e8
movq 0x60(%rsp), %rdi
callq 0x6592
movq 0xc0(%rsp), %rdi
callq 0x56e8
movq 0x28(%rsp), %rdi
callq 0x6592
movq 0xc8(%rsp), %rdi
callq 0x56e8
movq 0xa0(%rsp), %rdi
callq 0x6592
movq 0xd0(%rsp), %rdi
callq 0x56e8
movq 0xb0(%rsp), %rdi
callq 0x6592
movq 0xf8(%rsp), %rdi
callq 0x6592
movq 0xd8(%rsp), %rdi
callq 0x56e8
movq 0x88(%rsp), %rdi
callq 0x6592
movq 0xe0(%rsp), %rdi
callq 0x56e8
movq 0x90(%rsp), %rdi
callq 0x56e8
movq 0x100(%rsp), %rdi
callq 0x56e8
movq %r13, %rdi
callq 0x5100
movq %rbp, %rdi
callq 0x5640