// File: /workspace/github_cpp_makefile_star2_O3/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, 0x1c(%rsp)
movq %rdi, %r14
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movl $0x10, %edx
callq 0x5670
leaq 0x1f75a(%rip), %rsi     # 0x3b7a5
movl $0x9, %edx
movq %r15, %rdi
callq 0x53b0
leaq 0x1f741(%rip), %rsi     # 0x3b7a0
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
cmpb $0x0, 0x1c(%rsp)
je 0x1c651
leaq 0x1f72f(%rip), %rsi     # 0x3b7af
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f72d(%rip), %rsi     # 0x3b7c3
leaq 0x20(%rsp), %rdi
movl $0x12, %edx
callq 0x53b0
leaq 0x1f72a(%rip), %rsi     # 0x3b7d6
leaq 0x20(%rsp), %rdi
movl $0x12, %edx
callq 0x53b0
leaq 0x1f727(%rip), %rsi     # 0x3b7e9
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f725(%rip), %rsi     # 0x3b7fd
leaq 0x20(%rsp), %rdi
movl $0x15, %edx
callq 0x53b0
leaq 0x1f71a(%rip), %rsi     # 0x3b808
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
callq 0x53b0
leaq 0x1f70f(%rip), %rsi     # 0x3b813
leaq 0x20(%rsp), %rdi
movl $0xb, %edx
callq 0x53b0
leaq 0x1f705(%rip), %rsi     # 0x3b81f
leaq 0x20(%rsp), %rdi
movl $0xb, %edx
callq 0x53b0
leaq 0x1f6fb(%rip), %rsi     # 0x3b82b
leaq 0x20(%rsp), %rdi
movl $0x11, %edx
callq 0x53b0
leaq 0x1f6f7(%rip), %rsi     # 0x3b83d
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f6fb(%rip), %rsi     # 0x3b857
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f6ff(%rip), %rsi     # 0x3b871
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f703(%rip), %rsi     # 0x3b88b
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f707(%rip), %rsi     # 0x3b8a5
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f70b(%rip), %rsi     # 0x3b8bf
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f70f(%rip), %rsi     # 0x3b8d9
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f713(%rip), %rsi     # 0x3b8f3
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f717(%rip), %rsi     # 0x3b90d
leaq 0x20(%rsp), %rdi
movl $0x19, %edx
callq 0x53b0
leaq 0x1f71b(%rip), %rsi     # 0x3b927
leaq 0x20(%rsp), %rdi
movl $0xb, %edx
callq 0x53b0
leaq 0x1f711(%rip), %rsi     # 0x3b933
leaq 0x20(%rsp), %rdi
movl $0xc, %edx
callq 0x53b0
leaq 0x1f708(%rip), %rsi     # 0x3b940
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f701(%rip), %rsi     # 0x3b94f
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f6fb(%rip), %rsi     # 0x3b95f
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f6f5(%rip), %rsi     # 0x3b96f
leaq 0x20(%rsp), %rdi
movl $0x7, %edx
callq 0x53b0
leaq 0x1f6e7(%rip), %rsi     # 0x3b977
leaq 0x20(%rsp), %rdi
movl $0x8, %edx
callq 0x53b0
leaq 0x1f6da(%rip), %rsi     # 0x3b980
leaq 0x20(%rsp), %rdi
movl $0x8, %edx
callq 0x53b0
leaq 0x1f6cd(%rip), %rsi     # 0x3b989
leaq 0x20(%rsp), %rdi
movl $0x8, %edx
callq 0x53b0
leaq 0x1f6c0(%rip), %rsi     # 0x3b992
leaq 0x20(%rsp), %rdi
movl $0x8, %edx
callq 0x53b0
leaq 0x1f6b3(%rip), %rsi     # 0x3b99b
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
callq 0x53b0
leaq 0x1f6a8(%rip), %rsi     # 0x3b9a6
leaq 0x20(%rsp), %rdi
movl $0xa, %edx
callq 0x53b0
leaq 0x1f69d(%rip), %rsi     # 0x3b9b1
leaq 0x20(%rsp), %rdi
movl $0xc, %edx
callq 0x53b0
leaq 0x1f694(%rip), %rsi     # 0x3b9be
leaq 0x20(%rsp), %rdi
movl $0xc, %edx
callq 0x53b0
leaq 0x1f68b(%rip), %rsi     # 0x3b9cb
leaq 0x20(%rsp), %rdi
movl $0xc, %edx
callq 0x53b0
leaq 0x1f682(%rip), %rsi     # 0x3b9d8
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f67b(%rip), %rsi     # 0x3b9e7
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f674(%rip), %rsi     # 0x3b9f6
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f66d(%rip), %rsi     # 0x3ba05
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f667(%rip), %rsi     # 0x3ba15
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f661(%rip), %rsi     # 0x3ba25
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f65b(%rip), %rsi     # 0x3ba35
leaq 0x20(%rsp), %rdi
movl $0x11, %edx
callq 0x53b0
leaq 0x1f657(%rip), %rsi     # 0x3ba47
leaq 0x20(%rsp), %rdi
movl $0x11, %edx
callq 0x53b0
leaq 0x1f653(%rip), %rsi     # 0x3ba59
leaq 0x20(%rsp), %rdi
movl $0x11, %edx
callq 0x53b0
leaq 0x1f64f(%rip), %rsi     # 0x3ba6b
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f648(%rip), %rsi     # 0x3ba7a
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f641(%rip), %rsi     # 0x3ba89
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f63a(%rip), %rsi     # 0x3ba98
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f635(%rip), %rsi     # 0x3baa9
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f630(%rip), %rsi     # 0x3baba
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f62b(%rip), %rsi     # 0x3bacb
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f624(%rip), %rsi     # 0x3bada
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f61d(%rip), %rsi     # 0x3bae9
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f616(%rip), %rsi     # 0x3baf8
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f610(%rip), %rsi     # 0x3bb08
leaq 0x20(%rsp), %rdi
movl $0x16, %edx
callq 0x53b0
leaq 0x1f611(%rip), %rsi     # 0x3bb1f
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f609(%rip), %rsi     # 0x3bb2d
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f601(%rip), %rsi     # 0x3bb3b
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f5f9(%rip), %rsi     # 0x3bb49
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f5f2(%rip), %rsi     # 0x3bb58
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f5eb(%rip), %rsi     # 0x3bb67
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f5e4(%rip), %rsi     # 0x3bb76
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f5dc(%rip), %rsi     # 0x3bb84
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f5d4(%rip), %rsi     # 0x3bb92
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f5cc(%rip), %rsi     # 0x3bba0
leaq 0x20(%rsp), %rdi
movl $0xc, %edx
callq 0x53b0
leaq 0x1f5c3(%rip), %rsi     # 0x3bbad
leaq 0x20(%rsp), %rdi
movl $0xc, %edx
callq 0x53b0
leaq 0x1f5ba(%rip), %rsi     # 0x3bbba
leaq 0x20(%rsp), %rdi
movl $0xc, %edx
callq 0x53b0
leaq 0x1f5b1(%rip), %rsi     # 0x3bbc7
leaq 0x20(%rsp), %rdi
movl $0xb, %edx
callq 0x53b0
leaq 0x1f5a7(%rip), %rsi     # 0x3bbd3
leaq 0x20(%rsp), %rdi
movl $0xb, %edx
callq 0x53b0
leaq 0x1f59d(%rip), %rsi     # 0x3bbdf
leaq 0x20(%rsp), %rdi
movl $0xb, %edx
callq 0x53b0
leaq 0x1f593(%rip), %rsi     # 0x3bbeb
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f58d(%rip), %rsi     # 0x3bbfb
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f588(%rip), %rsi     # 0x3bc0c
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f580(%rip), %rsi     # 0x3bc1a
leaq 0x20(%rsp), %r15
movl $0xe, %edx
movq %r15, %rdi
callq 0x53b0
cmpb $0x0, 0x1c(%rsp)
je 0x1c98d
leaq 0x1f56b(%rip), %rsi     # 0x3bc29
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f565(%rip), %rsi     # 0x3bc39
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f55f(%rip), %rsi     # 0x3bc49
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f559(%rip), %rsi     # 0x3bc59
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f551(%rip), %rsi     # 0x3bc67
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f549(%rip), %rsi     # 0x3bc75
leaq 0x20(%rsp), %rdi
movl $0xd, %edx
callq 0x53b0
leaq 0x1f541(%rip), %rsi     # 0x3bc83
leaq 0x20(%rsp), %rdi
movl $0x11, %edx
callq 0x53b0
leaq 0x1f53d(%rip), %rsi     # 0x3bc95
leaq 0x20(%rsp), %rdi
movl $0x11, %edx
callq 0x53b0
leaq 0x1f539(%rip), %rsi     # 0x3bca7
leaq 0x20(%rsp), %rdi
movl $0x11, %edx
callq 0x53b0
leaq 0x1f535(%rip), %rsi     # 0x3bcb9
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f530(%rip), %rsi     # 0x3bcca
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f52b(%rip), %rsi     # 0x3bcdb
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f526(%rip), %rsi     # 0x3bcec
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f524(%rip), %rsi     # 0x3bd00
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f522(%rip), %rsi     # 0x3bd14
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f520(%rip), %rsi     # 0x3bd28
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f51e(%rip), %rsi     # 0x3bd3c
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f51c(%rip), %rsi     # 0x3bd50
leaq 0x20(%rsp), %rdi
movl $0x13, %edx
callq 0x53b0
leaq 0x1f51a(%rip), %rsi     # 0x3bd64
leaq 0x20(%rsp), %rdi
movl $0x12, %edx
callq 0x53b0
leaq 0x1f517(%rip), %rsi     # 0x3bd77
leaq 0x20(%rsp), %rdi
movl $0x12, %edx
callq 0x53b0
leaq 0x1f514(%rip), %rsi     # 0x3bd8a
leaq 0x20(%rsp), %rdi
movl $0x12, %edx
callq 0x53b0
leaq 0x1f511(%rip), %rsi     # 0x3bd9d
leaq 0x20(%rsp), %rdi
movl $0x7, %edx
callq 0x53b0
leaq 0x1f503(%rip), %rsi     # 0x3bda5
leaq 0x20(%rsp), %rdi
movl $0x7, %edx
callq 0x53b0
leaq 0x1f4f5(%rip), %rsi     # 0x3bdad
leaq 0x20(%rsp), %rdi
movl $0x7, %edx
callq 0x53b0
leaq 0x1f4e7(%rip), %rsi     # 0x3bdb5
leaq 0x20(%rsp), %rdi
movl $0x7, %edx
callq 0x53b0
leaq 0x1f4d9(%rip), %rsi     # 0x3bdbd
leaq 0x20(%rsp), %rdi
movl $0xe, %edx
callq 0x53b0
leaq 0x1f4d2(%rip), %rsi     # 0x3bdcc
leaq 0x20(%rsp), %rdi
movl $0xf, %edx
callq 0x53b0
leaq 0x1f4cc(%rip), %rsi     # 0x3bddc
leaq 0x20(%rsp), %rdi
movl $0xb, %edx
callq 0x53b0
leaq 0x1ee7f(%rip), %rsi     # 0x3b7a5
leaq 0x20(%rsp), %rdi
movl $0x9, %edx
callq 0x53b0
leaq 0x1f4ac(%rip), %rsi     # 0x3bde8
leaq 0x20(%rsp), %rdi
movl $0x10, %edx
callq 0x53b0
leaq 0x1f4a7(%rip), %rsi     # 0x3bdf9
leaq 0x20(%rsp), %rdi
movl $0x16, %edx
callq 0x53b0
leaq 0x1f4a8(%rip), %rsi     # 0x3be10
leaq 0x20(%rsp), %rdi
movl $0x17, %edx
callq 0x53b0
leaq 0x1f4aa(%rip), %rsi     # 0x3be28
leaq 0x20(%rsp), %rdi
movl $0x15, %edx
callq 0x53b0
movq 0x20(%rsp), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movl $0xfffffefb, %ecx       # imm = 0xFFFFFEFB
andl 0x38(%rsp,%rax), %ecx
orl $0x4, %ecx
movl %ecx, 0x38(%rsp,%rax)
movq 0x28(%r14), %rax
cmpq 0x20(%r14), %rax
je 0x1e31c
movq $0x0, 0x10(%rsp)
leaq 0x1ee2b(%rip), %rbp     # 0x3b81d
xorl %r13d, %r13d
movq $0x0, 0x8(%rsp)
xorl %r12d, %r12d
xorl %ebx, %ebx
movq $0x0, 0x220(%rsp)
movq 0x1b0(%r14), %rax
movsd 0x40(%rax,%r13), %xmm0
leaq 0x248(%rsp), %rdi
callq 0x18044
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x8(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x20(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
cmpb $0x0, 0x1c(%rsp)
je 0x1da1e
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x28(%rsp,%rax)
movsd 0x258(%rsp), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x28(%rsp,%rax)
movsd 0x250(%rsp), %xmm0
divsd 0x1e00f(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x28(%rsp,%rax)
movsd 0x248(%rsp), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x28(%rsp,%rax)
movsd 0x260(%rsp), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0xc0(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0xd8(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x28(%rsp,%rax)
movq (%r14), %rax
movq 0xf0(%r14), %rcx
movsd (%rcx,%rbx), %xmm0
divsd 0x1f8(%rax), %xmm0
mulsd 0x1eb84(%rip), %xmm0    # 0x3b790
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x28(%rsp,%rax)
movq (%r14), %rax
movq 0x108(%r14), %rcx
movsd (%rcx,%rbx), %xmm0
divsd 0x1f8(%rax), %xmm0
mulsd 0x1eb3b(%rip), %xmm0    # 0x3b790
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x28(%rsp,%rax)
movq 0xf0(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq 0x108(%r14), %rax
subsd (%rax,%rbx), %xmm0
movq (%r14), %rax
divsd 0x1f8(%rax), %xmm0
mulsd 0x1eae6(%rip), %xmm0    # 0x3b790
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd (%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x18(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x30(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x8(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x20(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x38(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x10(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x28(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x120(%r14), %rax
movsd 0x40(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x38(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x50(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x68(%r14), %rax
movq 0x220(%rsp), %rdx
movl %edx, %ecx
shrl $0x6, %ecx
movq (%rax,%rcx,8), %rax
xorl %esi, %esi
btq %rdx, %rax
setb %sil
movq %r15, %rdi
callq 0x5570
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x90(%r14), %rax
movsd (%rax,%rbx), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0xa8(%r14), %rax
movsd (%rax,%rbx), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x138(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x150(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x168(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x180(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x198(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x288(%r14), %rax
movsd (%rax,%rbx), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2a0(%r14), %rax
movsd (%rax,%rbx), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x18(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x20(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x28(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd (%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x8(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x10(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x30(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x38(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x210(%r14), %rax
movsd 0x40(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x18(%rax,%r12,2), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x20(%rax,%r12,2), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x28(%rax,%r12,2), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x18(%rax,%r12,2), %xmm0
divsd 0x1e381(%rip), %xmm0    # 0x3b798
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x20(%rax,%r12,2), %xmm0
divsd 0x1e341(%rip), %xmm0    # 0x3b798
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x28(%rax,%r12,2), %xmm0
divsd 0x1e301(%rip), %xmm0    # 0x3b798
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd (%rax,%r12,2), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x8(%rax,%r12,2), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1f8(%r14), %rax
movsd 0x10(%rax,%r12,2), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x48(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x50(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x58(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x60(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1e0(%r14), %rax
movsd (%rax,%rbx), %xmm0
divsd 0x1d494(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x30(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x38(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x40(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x18(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x20(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x28(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd (%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x8(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1c8(%r14), %rax
movq 0x10(%rsp), %rcx
movsd 0x10(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x18(%rax,%r13), %xmm0
divsd 0x1d239(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x20(%rax,%r13), %xmm0
divsd 0x1d1f9(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x28(%rax,%r13), %xmm0
divsd 0x1d1b9(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd (%rax,%r13), %xmm0
divsd 0x1d17a(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x8(%rax,%r13), %xmm0
divsd 0x1d13a(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0xa, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x10(%rax,%r13), %xmm0
divsd 0x1d0fa(%rip), %xmm0    # 0x3ab00
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x30(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x38(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rax
movsd 0x40(%rax,%r13), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rdi
leaq (%rdi,%r13), %rsi
addq $0x30, %rsi
addq $0x30, %rdi
callq 0x1876c
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
cmpb $0x0, 0x1c(%rsp)
je 0x1e2b3
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x18(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x20(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x28(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x30(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x38(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x40(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x48(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x50(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x58(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x60(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x68(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x70(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd (%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x8(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x2b8(%r14), %rax
movq 0x8(%rsp), %rcx
movsd 0x10(%rax,%rcx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x270(%r14), %rax
movsd (%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x270(%r14), %rax
movsd 0x8(%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x270(%r14), %rax
movsd 0x10(%rax,%r12), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x258(%r14), %rax
movsd (%rax,%r12), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x258(%r14), %rax
movsd 0x8(%rax,%r12), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x258(%r14), %rax
movsd 0x10(%rax,%r12), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x20(%rax,%rbx,8), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x28(%rax,%rbx,8), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x30(%rax,%rbx,8), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x38(%rax,%rbx,8), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x228(%r14), %rax
movsd (%rax,%rbx,8), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x8(%rax,%rbx,8), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x228(%r14), %rax
movsd 0x10(%rax,%rbx,8), %xmm0
callq 0x735d
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movq 0x20(%r14), %rax
movsd (%rax,%rbx), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x1b0(%r14), %rsi
addq %r13, %rsi
movq 0x1c8(%r14), %rdx
addq 0x10(%rsp), %rdx
leaq 0x228(%rsp), %rdi
callq 0x261a4
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x28(%rsp,%rax)
movsd 0x228(%rsp), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movsd 0x230(%rsp), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movsd 0x238(%rsp), %xmm0
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x8, 0x28(%rsp,%rax)
movq 0x1b0(%r14), %rdi
addq $0x30, %rdi
leaq 0x230(%rsp), %rsi
callq 0x1876c
movq %r15, %rdi
callq 0x5530
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53b0
movq 0x20(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r15, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
movq 0x220(%rsp), %rdx
incq %rdx
sarq $0x3, %rax
addq $0x8, %rbx
addq $0x18, %r12
addq $0x78, 0x8(%rsp)
addq $0x48, %r13
addq $0x68, 0x10(%rsp)
movq %rdx, 0x220(%rsp)
cmpq %rdx, %rax
ja 0x1ca0f
leaq 0x20(%rsp), %rdi
callq 0x54b0
leaq 0x28(%rsp), %rdi
movq 0x2ac76(%rip), %rax     # 0x48fa8
movq (%rax), %rcx
movq 0x18(%rax), %rax
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x20(%rsp,%rcx)
callq 0x52f0
leaq 0x118(%rsp), %rdi
callq 0x5130
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1e376
jmp 0x1e376
jmp 0x1e376
jmp 0x1e376
jmp 0x1e376
jmp 0x1e376
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x54f0
movq %rbx, %rdi
callq 0x55e0
nop