// File: /workspace/github_cpp_makefile_star2_O2/sus304[P]ForRocket/src/rocket/flight_data_recorder.cpp
// Function: forrocket::FlightDataRecorder::DumpCsv(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool)
void forrocket::FlightDataRecorder::DumpCsv(const std::string file_name, bool full_dump) {
    std::ofstream ofs(file_name, std::ios::out);

    ofs << "Time [s],";
    ofs << "Burn Time [s],";
    if (full_dump) {
        ofs << "AirDensity [kg/m3],";
        ofs << "AirPressure [kPa],";
        ofs << "AirTemprature [K],";
        ofs << "SpeedOfSound [m/s],";
        ofs << "Propellant Mass [kg],";
        ofs << "Mass [kg],";
        ofs << "X-C.G. [%],";
        ofs << "X-C.P. [%],";
        ofs << "StaticMargin [%],";
        ofs << "xx_InertiaTensor [kg-m2],";
        ofs << "xy_InertiaTensor [kg-m2],";
        ofs << "xz_InertiaTensor [kg-m2],";
        ofs << "yx_InertiaTensor [kg-m2],";
        ofs << "yy_InertiaTensor [kg-m2],";
        ofs << "yz_InertiaTensor [kg-m2],";
        ofs << "zx_InertiaTensor [kg-m2],";
        ofs << "zy_InertiaTensor [kg-m2],";
        ofs << "zz_InertiaTensor [kg-m2],";
        ofs << "Thrust [N],";
        ofs << "Mdot [kg/s],";
        ofs << "Burning [0/1],";
        ofs << "y-Gimbal [deg],";
        ofs << "z-Gimbal [deg],";
        ofs << "CA [-],";
        ofs << "CNa [-],";
        ofs << "Cld [-],";
        ofs << "Clp [-],";
        ofs << "Cmq [-],";
        ofs << "AoA [deg],";
        ofs << "AoS [deg],";
        ofs << "Fx-aero [N],";
        ofs << "Fy-aero [N],";
        ofs << "Fz-aero [N],";
        ofs << "Fx-thrust [N],";
        ofs << "Fy-thrust [N],";
        ofs << "Fz-thrust [N],";
        ofs << "Fx-gravity [N],";
        ofs << "Fy-gravity [N],";
        ofs << "Fz-gravity [N],";
        ofs << "Accx-body [m/s2],";
        ofs << "Accy-body [m/s2],";
        ofs << "Accz-body [m/s2],";
        ofs << "Gccx-body [G],";
        ofs << "Gccy-body [G],";
        ofs << "Gccz-body [G],";
        ofs << "Accx-ECI [m/s2],";
        ofs << "Accy-ECI [m/s2],";
        ofs << "Accz-ECI [m/s2],";
        ofs << "Vx-body [m/s],";
        ofs << "Vy-body [m/s],";
        ofs << "Vz-body [m/s],";
        ofs << "MachNumber [-],";
        ofs << "DynamicPressure [kPa],";
        ofs << "Vx-NED [m/s],";
        ofs << "Vy-NED [m/s],";
        ofs << "Vz-NED [m/s],";
        ofs << "Vx-ECEF [m/s],";
        ofs << "Vy-ECEF [m/s],";
        ofs << "Vz-ECEF [m/s],";
        ofs << "Vx-ECI [m/s],";
        ofs << "Vy-ECI [m/s],";
        ofs << "Vz-ECI [m/s],";
        ofs << "X-ECEF [km],";
        ofs << "Y-ECEF [km],";
        ofs << "Z-ECEF [km],";
        ofs << "X-ECI [km],";
        ofs << "Y-ECI [km],";
        ofs << "Z-ECI [km],";
    }
    ofs << "Latitude [deg],";
    ofs << "Longitude [deg],";
    ofs << "Altitude [m],";
    ofs << "Downrange [m],";
    if (full_dump) {
        ofs << "Mx-thrust [Nm],";
        ofs << "My-thrust [Nm],";
        ofs << "Mz-thrust [Nm],";
        ofs << "Mx-aero [Nm],";
        ofs << "My-aero [Nm],";
        ofs << "Mz-aero [Nm],";
        ofs << "Mx-aerodump [Nm],";
        ofs << "My-aerodump [Nm],";
        ofs << "Mz-aerodump [Nm],";
        ofs << "Mx-jetdump [Nm],";
        ofs << "My-jetdump [Nm],";
        ofs << "Mz-jetdump [Nm],";
        ofs << "Mx-gyroeffect [Nm],";
        ofs << "My-gyroeffect [Nm],";
        ofs << "Mz-gyroeffect [Nm],";
        ofs << "AngleAccx [rad/s2],";
        ofs << "AngleAccy [rad/s2],";
        ofs << "AngleAccz [rad/s2],";
        ofs << "AngleVelx [deg/s],";
        ofs << "AngleVely [deg/s],";
        ofs << "AngleVelz [deg/s],";
        ofs << "q1 [-],";
        ofs << "q2 [-],";
        ofs << "q3 [-],";
        ofs << "q4 [-],";
        ofs << "Azimuth [deg],";
        ofs << "Elvation [deg],";
        ofs << "Roll [deg],";
    }
    // pitch
    // yaw
    // nutation
    if (full_dump) {
        ofs << "Time [s],";
        ofs << "Time of IIP [s],";
        ofs << "Latitude of IIP [deg],";
        ofs << "Longitude of IIP [deg],";
        ofs << "Downrange of IIP [m],";
    }

    ofs << std::endl;
    
    double g0 = gravity(0.0);
    ofs << std::fixed;
    for (int i=0; i < countup_burn_time.size(); ++i) {
        double t = countup_burn_time[i];
        double alt = position[i].LLH(2);
        EnvironmentAir air(alt);


        ofs << std::setprecision(4) << countup_time[i] << ",";
        ofs << std::setprecision(4) << countup_burn_time[i] << ",";
        if (full_dump) {
            ofs << std::setprecision(6) << air.density << ",";
            ofs << std::setprecision(6) << air.pressure / 1e3 << ",";  // [kPa]
            ofs << std::setprecision(6) << air.temprature << ",";  // [K]
            ofs << std::setprecision(6) << air.speed_of_sound << ",";
            ofs << std::setprecision(8) << mass_prop[i] << ",";
            ofs << std::setprecision(8) << mass[i] << ",";
            ofs << std::setprecision(2) << length_CG[i] / p_rocket->length * 100.0 << ",";  // [%]
            ofs << std::setprecision(2) << length_CP[i] / p_rocket->length * 100.0 << ",";  // [%]
            ofs << std::setprecision(2) << (length_CG[i] - length_CP[i]) / p_rocket->length * 100.0 << ",";  // Fst [%]
            ofs << std::setprecision(8) << inertia_tensor[i](0, 0) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](0, 1) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](0, 2) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](1, 0) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](1, 1) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](1, 2) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](2, 0) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](2, 1) << ",";
            ofs << std::setprecision(8) << inertia_tensor[i](2, 2) << ",";
            ofs << std::setprecision(8) << thrust[i] << ",";
            ofs << std::setprecision(8) << mdot_prop[i] << ",";
            ofs << burning[i] << ",";
            ofs << std::setprecision(8) << rad2deg(gimbal_angle_y_axis[i]) << ",";  // [deg]
            ofs << std::setprecision(8) << rad2deg(gimbal_angle_z_axis[i]) << ",";  // [deg]
            ofs << std::setprecision(4) << CA[i] << ",";
            ofs << std::setprecision(4) << CNa[i] << ",";
            ofs << std::setprecision(4) << Cld[i] << ",";
            ofs << std::setprecision(4) << Clp[i] << ",";
            ofs << std::setprecision(4) << Cmq[i] << ",";
            ofs << std::setprecision(8) << rad2deg(angle_of_attack[i]) << ",";  // [deg]
            ofs << std::setprecision(8) << rad2deg(sideslip_angle[i]) << ",";  // [deg]
            ofs << std::setprecision(8) << force[i].aero(0) << ",";
            ofs << std::setprecision(8) << force[i].aero(1) << ",";
            ofs << std::setprecision(8) << force[i].aero(2) << ",";
            ofs << std::setprecision(8) << force[i].thrust(0) << ",";
            ofs << std::setprecision(8) << force[i].thrust(1) << ",";
            ofs << std::setprecision(8) << force[i].thrust(2) << ",";
            ofs << std::setprecision(8) << force[i].gravity(0) << ",";
            ofs << std::setprecision(8) << force[i].gravity(1) << ",";
            ofs << std::setprecision(8) << force[i].gravity(2) << ",";
            ofs << std::setprecision(8) << acceleration[i].body(0) << ",";  // [m/s2]
            ofs << std::setprecision(8) << acceleration[i].body(1) << ",";  // [m/s2]
            ofs << std::setprecision(8) << acceleration[i].body(2) << ",";  // [m/s2]
            ofs << std::setprecision(8) << acceleration[i].body(0) / g0 << ",";  // [G]
            ofs << std::setprecision(8) << acceleration[i].body(1) / g0 << ",";  // [G]
            ofs << std::setprecision(8) << acceleration[i].body(2) / g0 << ",";  // [G]
            ofs << std::setprecision(8) << acceleration[i].ECI(0) << ",";
            ofs << std::setprecision(8) << acceleration[i].ECI(1) << ",";
            ofs << std::setprecision(8) << acceleration[i].ECI(2) << ",";
            ofs << std::setprecision(8) << velocity[i].air_body(0) << ",";
            ofs << std::setprecision(8) << velocity[i].air_body(1) << ",";
            ofs << std::setprecision(8) << velocity[i].air_body(2) << ",";
            ofs << std::setprecision(8) << velocity[i].mach_number << ",";
            ofs << std::setprecision(8) << dynamic_pressure[i] / 1e3 << ",";  // [kPa]
            ofs << std::setprecision(8) << velocity[i].NED(0) << ",";
            ofs << std::setprecision(8) << velocity[i].NED(1) << ",";
            ofs << std::setprecision(8) << velocity[i].NED(2) << ",";
            ofs << std::setprecision(8) << velocity[i].ECEF(0) << ",";
            ofs << std::setprecision(8) << velocity[i].ECEF(1) << ",";
            ofs << std::setprecision(8) << velocity[i].ECEF(2) << ",";
            ofs << std::setprecision(8) << velocity[i].ECI(0) << ",";
            ofs << std::setprecision(8) << velocity[i].ECI(1) << ",";
            ofs << std::setprecision(8) << velocity[i].ECI(2) << ",";
            ofs << std::setprecision(10) << position[i].ECEF(0) / 1e3 << ",";  // [km]
            ofs << std::setprecision(10) << position[i].ECEF(1) / 1e3 << ",";  // [km]
            ofs << std::setprecision(10) << position[i].ECEF(2) / 1e3 << ",";  // [km]
            ofs << std::setprecision(10) << position[i].ECI(0) / 1e3 << ",";  // [km]
            ofs << std::setprecision(10) << position[i].ECI(1) / 1e3 << ",";  // [km]
            ofs << std::setprecision(10) << position[i].ECI(2) / 1e3 << ",";  // [km]
        }
        ofs << std::setprecision(8) << position[i].LLH(0) << ",";
        ofs << std::setprecision(8) << position[i].LLH(1) << ",";
        ofs << std::setprecision(8) << position[i].LLH(2) << ",";
        ofs << std::setprecision(8) << vdownrange(position[0].LLH, position[i].LLH).first << ",";
        if (full_dump) {
            ofs << std::setprecision(8) << moment[i].thrust(0) << ",";
            ofs << std::setprecision(8) << moment[i].thrust(1) << ",";
            ofs << std::setprecision(8) << moment[i].thrust(2) << ",";
            ofs << std::setprecision(8) << moment[i].aero_force(0) << ",";
            ofs << std::setprecision(8) << moment[i].aero_force(1) << ",";
            ofs << std::setprecision(8) << moment[i].aero_force(2) << ",";
            ofs << std::setprecision(8) << moment[i].aero_dumping(0) << ",";
            ofs << std::setprecision(8) << moment[i].aero_dumping(1) << ",";
            ofs << std::setprecision(8) << moment[i].aero_dumping(2) << ",";
            ofs << std::setprecision(8) << moment[i].jet_dumping(0) << ",";
            ofs << std::setprecision(8) << moment[i].jet_dumping(1) << ",";
            ofs << std::setprecision(8) << moment[i].jet_dumping(2) << ",";
            ofs << std::setprecision(8) << moment[i].gyro(0) << ",";
            ofs << std::setprecision(8) << moment[i].gyro(1) << ",";
            ofs << std::setprecision(8) << moment[i].gyro(2) << ",";
            ofs << std::setprecision(8) << angular_acceleration[i](0) << ",";  // [rad/s2]
            ofs << std::setprecision(8) << angular_acceleration[i](1) << ",";  // [rad/s2]
            ofs << std::setprecision(8) << angular_acceleration[i](2) << ",";  // [rad/s2]
            ofs << std::setprecision(8) << rad2deg(angular_velocity[i](0)) << ",";  // [deg/s]
            ofs << std::setprecision(8) << rad2deg(angular_velocity[i](1)) << ",";  // [deg/s]
            ofs << std::setprecision(8) << rad2deg(angular_velocity[i](2)) << ",";  // [deg/s]
            ofs << std::setprecision(8) << attitude[i].quaternion(0) << ",";
            ofs << std::setprecision(8) << attitude[i].quaternion(1) << ",";
            ofs << std::setprecision(8) << attitude[i].quaternion(2) << ",";
            ofs << std::setprecision(8) << attitude[i].quaternion(3) << ",";
            ofs << std::setprecision(8) << rad2deg(attitude[i].euler_angle(0)) << ",";  // [deg]
            ofs << std::setprecision(8) << rad2deg(attitude[i].euler_angle(1)) << ",";  // [deg]
            ofs << std::setprecision(8) << rad2deg(attitude[i].euler_angle(2)) << ",";  // [deg]
        }
        // pitch = omega
        // pitch
        // yaw
        // nutation
        // flight path angle
        // 軌道情報

        if (full_dump) {
            ofs << std::setprecision(4) << countup_burn_time[i] << ",";
            auto iip = IIP(position[i].ECI, velocity[i].ECI);
            ofs << std::setprecision(4) << iip.first << ",";  // [s]
            ofs << std::setprecision(8) << iip.second(0) << ",";  // [deg]
            ofs << std::setprecision(8) << iip.second(1) << ",";  // [deg]
            ofs << std::setprecision(8) << vdownrange(position[0].LLH, iip.second).first << ",";
        }

        ofs << std::endl;
    }
    ofs.close();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
movl %edx, 0x14(%rsp)
movq %rdi, %r14
leaq 0x18(%rsp), %r15
pushq $0x10
popq %rdx
movq %r15, %rdi
callq 0x5640
leaq 0x1c09a(%rip), %rsi     # 0x33475
movq %r15, %rdi
callq 0x5320
leaq 0x1c086(%rip), %rsi     # 0x33470
leaq 0x18(%rsp), %rdi
callq 0x5320
cmpb $0x0, 0x14(%rsp)
je 0x17883
leaq 0x1c079(%rip), %rsi     # 0x3347f
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c07c(%rip), %rsi     # 0x33493
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c07e(%rip), %rsi     # 0x334a6
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c080(%rip), %rsi     # 0x334b9
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c083(%rip), %rsi     # 0x334cd
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c07d(%rip), %rsi     # 0x334d8
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c077(%rip), %rsi     # 0x334e3
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c072(%rip), %rsi     # 0x334ef
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06d(%rip), %rsi     # 0x334fb
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06e(%rip), %rsi     # 0x3350d
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c077(%rip), %rsi     # 0x33527
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c080(%rip), %rsi     # 0x33541
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c089(%rip), %rsi     # 0x3355b
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c092(%rip), %rsi     # 0x33575
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c09b(%rip), %rsi     # 0x3358f
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0a4(%rip), %rsi     # 0x335a9
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0ad(%rip), %rsi     # 0x335c3
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0b6(%rip), %rsi     # 0x335dd
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0bf(%rip), %rsi     # 0x335f7
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0ba(%rip), %rsi     # 0x33603
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0b6(%rip), %rsi     # 0x33610
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0b4(%rip), %rsi     # 0x3361f
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0b3(%rip), %rsi     # 0x3362f
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0b2(%rip), %rsi     # 0x3363f
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0a9(%rip), %rsi     # 0x33647
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c0a1(%rip), %rsi     # 0x33650
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c099(%rip), %rsi     # 0x33659
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c091(%rip), %rsi     # 0x33662
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c089(%rip), %rsi     # 0x3366b
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c083(%rip), %rsi     # 0x33676
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c07d(%rip), %rsi     # 0x33681
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c079(%rip), %rsi     # 0x3368e
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c075(%rip), %rsi     # 0x3369b
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c071(%rip), %rsi     # 0x336a8
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06f(%rip), %rsi     # 0x336b7
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06d(%rip), %rsi     # 0x336c6
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06b(%rip), %rsi     # 0x336d5
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06a(%rip), %rsi     # 0x336e5
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c069(%rip), %rsi     # 0x336f5
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c068(%rip), %rsi     # 0x33705
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c069(%rip), %rsi     # 0x33717
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06a(%rip), %rsi     # 0x33729
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c06b(%rip), %rsi     # 0x3373b
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c069(%rip), %rsi     # 0x3374a
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c067(%rip), %rsi     # 0x33759
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c065(%rip), %rsi     # 0x33768
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c065(%rip), %rsi     # 0x33779
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c065(%rip), %rsi     # 0x3378a
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c065(%rip), %rsi     # 0x3379b
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c063(%rip), %rsi     # 0x337aa
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c061(%rip), %rsi     # 0x337b9
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c05f(%rip), %rsi     # 0x337c8
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c05e(%rip), %rsi     # 0x337d8
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c064(%rip), %rsi     # 0x337ef
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c061(%rip), %rsi     # 0x337fd
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c05e(%rip), %rsi     # 0x3380b
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c05b(%rip), %rsi     # 0x33819
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c059(%rip), %rsi     # 0x33828
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c057(%rip), %rsi     # 0x33837
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c055(%rip), %rsi     # 0x33846
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c052(%rip), %rsi     # 0x33854
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c04f(%rip), %rsi     # 0x33862
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c04c(%rip), %rsi     # 0x33870
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c048(%rip), %rsi     # 0x3387d
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c044(%rip), %rsi     # 0x3388a
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c040(%rip), %rsi     # 0x33897
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c03b(%rip), %rsi     # 0x338a3
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c036(%rip), %rsi     # 0x338af
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c031(%rip), %rsi     # 0x338bb
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c030(%rip), %rsi     # 0x338cb
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c030(%rip), %rsi     # 0x338dc
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c02d(%rip), %rsi     # 0x338ea
leaq 0x18(%rsp), %rdi
callq 0x5320
cmpb $0x0, 0x14(%rsp)
je 0x17b03
leaq 0x1c020(%rip), %rsi     # 0x338f9
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c01f(%rip), %rsi     # 0x33909
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c01e(%rip), %rsi     # 0x33919
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c01d(%rip), %rsi     # 0x33929
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c01a(%rip), %rsi     # 0x33937
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c017(%rip), %rsi     # 0x33945
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c014(%rip), %rsi     # 0x33953
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c015(%rip), %rsi     # 0x33965
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c016(%rip), %rsi     # 0x33977
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c017(%rip), %rsi     # 0x33989
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c017(%rip), %rsi     # 0x3399a
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c017(%rip), %rsi     # 0x339ab
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c017(%rip), %rsi     # 0x339bc
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c01a(%rip), %rsi     # 0x339d0
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c01d(%rip), %rsi     # 0x339e4
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c020(%rip), %rsi     # 0x339f8
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c023(%rip), %rsi     # 0x33a0c
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c026(%rip), %rsi     # 0x33a20
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c029(%rip), %rsi     # 0x33a34
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c02b(%rip), %rsi     # 0x33a47
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c02d(%rip), %rsi     # 0x33a5a
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c02f(%rip), %rsi     # 0x33a6d
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c026(%rip), %rsi     # 0x33a75
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c01d(%rip), %rsi     # 0x33a7d
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c014(%rip), %rsi     # 0x33a85
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c00b(%rip), %rsi     # 0x33a8d
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c009(%rip), %rsi     # 0x33a9c
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1c008(%rip), %rsi     # 0x33aac
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1b9c0(%rip), %rsi     # 0x33475
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1bff2(%rip), %rsi     # 0x33ab8
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1bff2(%rip), %rsi     # 0x33ac9
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1bff8(%rip), %rsi     # 0x33ae0
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x1bfff(%rip), %rsi     # 0x33af8
leaq 0x18(%rsp), %rdi
callq 0x5320
leaq 0x18(%rsp), %rdi
callq 0x51a0
leaq 0x18(%rsp), %r15
movq (%r15), %rax
movq -0x18(%rax), %rax
movl $0xfffffefb, %ecx       # imm = 0xFFFFFEFB
andl 0x30(%rsp,%rax), %ecx
orl $0x4, %ecx
movl %ecx, 0x30(%rsp,%rax)
leaq 0x68(%r14), %rax
movq %rax, 0x220(%rsp)
movq $0x0, (%rsp)
leaq 0x1b9a9(%rip), %r13     # 0x334ed
movq $0x0, 0x8(%rsp)
xorl %ebp, %ebp
xorl %ebx, %ebx
xorl %r12d, %r12d
xorl %ecx, %ecx
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x3, %rax
movq %rcx, 0x218(%rsp)
cmpq %rcx, %rax
jbe 0x19210
movq 0x1b0(%r14), %rax
movsd 0x40(%rax,%rbx), %xmm0
leaq 0x248(%rsp), %rdi
callq 0x13b30
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x8(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x20(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
cmpb $0x0, 0x14(%rsp)
je 0x18a15
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x20(%rsp,%rax)
movsd 0x258(%rsp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x20(%rsp,%rax)
movsd 0x250(%rsp), %xmm0
divsd 0x1a5d9(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x20(%rsp,%rax)
movsd 0x248(%rsp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x20(%rsp,%rax)
movsd 0x260(%rsp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0xc0(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0xd8(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x20(%rsp,%rax)
movq (%r14), %rax
movq 0xf0(%r14), %rcx
movsd (%rcx,%r12), %xmm0
divsd 0x1f8(%rax), %xmm0
mulsd 0x1b714(%rip), %xmm0    # 0x33460
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x20(%rsp,%rax)
movq (%r14), %rax
movq 0x108(%r14), %rcx
movsd (%rcx,%r12), %xmm0
divsd 0x1f8(%rax), %xmm0
mulsd 0x1b6cf(%rip), %xmm0    # 0x33460
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x20(%rsp,%rax)
movq 0xf0(%r14), %rax
movsd (%rax,%r12), %xmm0
movq 0x108(%r14), %rax
subsd (%rax,%r12), %xmm0
movq (%r14), %rax
divsd 0x1f8(%rax), %xmm0
mulsd 0x1b67d(%rip), %xmm0    # 0x33460
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x18(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x30(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x8(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x20(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x38(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x10(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x28(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x40(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x38(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x50(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x220(%rsp), %rdi
movq 0x218(%rsp), %rsi
callq 0x19c5c
xorl %esi, %esi
testq %rdx, (%rax)
setne %sil
movq %r15, %rdi
callq 0x5540
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x90(%r14), %rax
movsd (%rax,%r12), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0xa8(%r14), %rax
movsd (%rax,%r12), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x138(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x150(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x168(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x180(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x198(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x288(%r14), %rax
movsd (%rax,%r12), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2a0(%r14), %rax
movsd (%rax,%r12), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x18(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x20(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x28(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x8(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x10(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x30(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x38(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x40(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x18(%rax,%rbp,2), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x20(%rax,%rbp,2), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x28(%rax,%rbp,2), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x18(%rax,%rbp,2), %xmm0
divsd 0x1afce(%rip), %xmm0    # 0x33468
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x20(%rax,%rbp,2), %xmm0
divsd 0x1af94(%rip), %xmm0    # 0x33468
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x28(%rax,%rbp,2), %xmm0
divsd 0x1af5a(%rip), %xmm0    # 0x33468
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd (%rax,%rbp,2), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x8(%rax,%rbp,2), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x10(%rax,%rbp,2), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x48(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x50(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x58(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x60(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1e0(%r14), %rax
movsd (%rax,%r12), %xmm0
divsd 0x19b67(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x30(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x38(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x40(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x18(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x20(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x28(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd (%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x8(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x10(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x18(%rax,%rbx), %xmm0
divsd 0x1993f(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x20(%rax,%rbx), %xmm0
divsd 0x19905(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x28(%rax,%rbx), %xmm0
divsd 0x198cb(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd (%rax,%rbx), %xmm0
divsd 0x19892(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x8(%rax,%rbx), %xmm0
divsd 0x19858(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x10(%rax,%rbx), %xmm0
divsd 0x1981e(%rip), %xmm0    # 0x32220
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x30(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x38(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x40(%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rdi
leaq (%rdi,%rbx), %rsi
addq $0x30, %rsi
addq $0x30, %rdi
callq 0x13f74
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
cmpb $0x0, 0x14(%rsp)
je 0x191e1
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x18(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x20(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x28(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x30(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x38(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x40(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x48(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x50(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x58(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x60(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x68(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x70(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd (%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x8(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq (%rsp), %rcx
movsd 0x10(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x270(%r14), %rax
movsd (%rax,%rbp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x270(%r14), %rax
movsd 0x8(%rax,%rbp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x270(%r14), %rax
movsd 0x10(%rax,%rbp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x258(%r14), %rax
movsd (%rax,%rbp), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x258(%r14), %rax
movsd 0x8(%rax,%rbp), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x258(%r14), %rax
movsd 0x10(%rax,%rbp), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x20(%rax,%r12,8), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x28(%rax,%r12,8), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x30(%rax,%r12,8), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x38(%rax,%r12,8), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x228(%r14), %rax
movsd (%rax,%r12,8), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x8(%rax,%r12,8), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x10(%rax,%r12,8), %xmm0
callq 0x5a7d
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movq 0x20(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x1b0(%r14), %rsi
addq %rbx, %rsi
movq 0x1c8(%r14), %rdx
addq 0x8(%rsp), %rdx
leaq 0x228(%rsp), %rdi
callq 0x212a0
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
movsd 0x228(%rsp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movsd 0x230(%rsp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movsd 0x238(%rsp), %xmm0
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq 0x18(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x20(%rsp,%rax)
movq 0x1b0(%r14), %rdi
addq $0x30, %rdi
leaq 0x230(%rsp), %rsi
callq 0x13f74
movq %r15, %rdi
callq 0x5500
movq %rax, %rdi
movq %r13, %rsi
callq 0x5320
movq %r15, %rdi
callq 0x51a0
movq 0x218(%rsp), %rcx
incq %rcx
addq $0x8, %r12
addq $0x48, %rbx
addq $0x18, %rbp
addq $0x68, 0x8(%rsp)
addq $0x78, (%rsp)
jmp 0x17b56
leaq 0x18(%rsp), %rdi
callq 0x5480
leaq 0x18(%rsp), %rdi
callq 0x54b0
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x19242
jmp 0x19242
jmp 0x19242
jmp 0x19242
jmp 0x19242
jmp 0x19242
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x54b0
movq %rbx, %rdi
callq 0x55b0
nop