// File: dfrodriguezp[P]PiCM-cpp/main.cc
// Function: main
int main(int argc, char const *argv[])
{
    if (argc < 2)
    {
        std::cout << "ERROR! Please include a parameters JSON file." << std::endl;
        return 1;
    }

    Json::Value root;
    Json::Reader reader;
    std::string jsonfile = argv[1];
    std::ifstream data(jsonfile, std::ifstream::binary);
    if (!reader.parse(data, root, false))
    {
        std::cout << "ERROR! JSON file not found or invalid." << std::endl;
        return 1;
    }

    Json::Value results = root["results"];
    bool writePhaseSpace = isInArray("phase_space", results);
    bool writeEfield = isInArray("electric_field", results);
    bool writePhi = isInArray("electric_potential", results);
    bool writeRho = isInArray("charge_density", results);
    bool writeSpace = isInArray("space", results);

    std::string samplefile = root["sample"].asString();
    std::string outputName = root.get("output", "results").asString();

    Int N;
    if (root.isMember("N"))
        N = root["N"].asUInt();
    else
    {
        std::cout << "ERROR! Number of particles \"N\" not found in JSON file." << std::endl;
        return 1;
    }

    Int steps = root.get("steps", 50).asUInt();
    Int ss_freq = root.get("ss_frequency", 10).asUInt();
    Int seed = root.get("seed", 69696969).asUInt();

    Real dt = root.get("dt", 0.1).asDouble();

    // Real    Lx = root.get("Lx", 1.0).asDouble();
    // Real    Ly = root.get("Ly", 1.0).asDouble();

    std::valarray<Real> B(3);

    Json::Value Bfield;
    if (root.isMember("Bfield"))
    {
        Bfield = root["Bfield"];
        if (Bfield.size() != 3)
        {
            std::cout << "ERROR! Magnetic field must have three components!" << std::endl;
            return 1;
        }
        else
        {
            B[0] = Bfield[0].asDouble();
            B[1] = Bfield[1].asDouble();
            B[2] = Bfield[2].asDouble();
        }
    }
    else
    {
        B = {0.0, 0.0, 0.0};
    }

    Real Lx, Ly;

    Json::Value sysLength;

    if (root.isMember("sys_length"))
    {
        sysLength = root["sys_length"];
        if (sysLength.size() != 2)
        {
            std::cout << "ERROR! System length must have two components!" << std::endl;
            return 1;
        }
        else
        {
            Lx = sysLength[0].asDouble();
            Ly = sysLength[1].asDouble();
        }
    }
    else
    {
        Lx = 1.0;
        Ly = 1.0;
    }

    Int Nx, Ny;

    Json::Value gridSize;
    if (root.isMember("grid_size"))
    {
        gridSize = root["grid_size"];
        if (gridSize.size() != 2)
        {
            std::cout << "ERROR! Grid size must have two components!" << std::endl;
            return 1;
        }
        else
        {
            Nx = gridSize[0].asUInt();
            Ny = gridSize[1].asUInt();
        }
    }
    else
    {
        Nx = 16;
        Ny = 16;
    }

    Real dx = Lx / Real(Nx);
    Real dy = Ly / Real(Ny);
    VecArr positions;
    VecArr velocities;
    VecArr new_velocities;
    std::vector<Real> charges;
    std::vector<Real> QoverM;
    std::vector<Real> masses;
    std::vector<Int> moves;

    std::ifstream sample(samplefile);
    if (!sample.good())
    {
        std::cout << "ERROR! Sample file not found." << std::endl;
        return 1;
    }

    Real x, y, vx, vy, vz, q_m, charge;
    Int move;

    for (Int i = 0; i < N; ++i)
    {
        sample >> x >> y >> vx >> vy >> vz >> q_m >> move;
        charge = (Lx * Ly * q_m) / N;
        std::valarray<Real> pos = {x, y};       // 2D
        std::valarray<Real> vel = {vx, vy, vz}; // 3V
        positions.push_back(pos);
        velocities.push_back(vel);
        QoverM.push_back(q_m);
        charges.push_back(charge);
        masses.push_back(charge / q_m);
        moves.push_back(move);
    }

    std::vector<std::string> folders = {"/energy"};

    if (writePhaseSpace)
        folders.push_back("/phase_space");
    if (writeEfield)
        folders.push_back("/Efield");
    if (writePhi)
        folders.push_back("/phi");
    if (writeRho)
        folders.push_back("/rho");
    if (writeSpace)
        folders.push_back("/space");

    for (Int f = 0; f < folders.size(); ++f)
        std::system(("mkdir -p " + outputName + folders[f]).c_str());

    std::cout << "Simulation running..." << std::endl;
    Real simulationTime;
    Real diff;
    std::ofstream energy;
    std::ofstream phaseSpace;
    std::ofstream electricField;
    std::ofstream electricPotential;
    std::ofstream chargeDensity;
    std::ofstream space;

    VecArr RHO, PHI, EFIELDp;
    VecVecArr EFIELDn;
    Real KE, FE;

    bool writeStep;
    energy.open(outputName + "/energy/energy.dat");

    for (Int step = 0; step < steps; ++step)
    {
        std::clock_t t_0 = std::clock();
        writeStep = mod(Real(step), Real(ss_freq)) == 0;
        RHO = density(positions, charges, dx, dy, Nx, Ny, N);
        PHI = potential(RHO, dx, dy, Nx, Ny);
        EFIELDn = fieldNodes(PHI, dx, dy, Nx, Ny);
        EFIELDp = fieldParticles(EFIELDn, positions, moves, dx, dy, Nx, Ny, N);

        if (step == 0)
            outphase(-1.0, velocities, QoverM, moves, EFIELDp, B, dt, N);

        update(positions, velocities, QoverM, moves, EFIELDp, B, Lx, Ly, dt, N);
        new_velocities = velocities;
        outphase(1.0, new_velocities, QoverM, moves, EFIELDp, B, dt, N);

        if ((writePhaseSpace || writeEfield || writePhi || writeRho || writeSpace) && writeStep)
            std::cout << "Writing data of step " << step << "..." << std::endl;

        if (writePhaseSpace && writeStep)
            phaseSpace.open(outputName + "/phase_space/step_" + std::to_string(step) + "_.dat");

        if (writeEfield && writeStep)
            electricField.open(outputName + "/Efield/step_" + std::to_string(step) + "_.dat");

        if (writePhi && writeStep)
            electricPotential.open(outputName + "/phi/step_" + std::to_string(step) + "_.dat");

        if (writeRho && writeStep)
            chargeDensity.open(outputName + "/rho/step_" + std::to_string(step) + "_.dat");

        if (writeSpace && writeStep)
            space.open(outputName + "/space/step_" + std::to_string(step) + "_.dat");

        KE = 0.0;
        FE = 0.0;

        for (Int p = 0; p < N; ++p)
        {
            if (moves.at(p))
            {
                if (writePhaseSpace && writeStep)
                    phaseSpace << positions.at(p)[0] << " " << positions.at(p)[1] << " " << new_velocities.at(p)[0] << " " << new_velocities.at(p)[1] << " " << new_velocities.at(p)[2] << "\n";
                KE += masses.at(p) * norm(new_velocities.at(p)) * norm(new_velocities.at(p));
            }
            space << positions.at(p)[0] << " " << positions.at(p)[1] << "\n";
        }

        KE *= 0.5;

        for (Int i = 0; i < Nx; ++i)
        {
            for (Int j = 0; j < Ny; ++j)
            {
                if (writeEfield && writeStep)
                    electricField << i * dx << " " << j * dy << " " << EFIELDn[i][j][0] << " " << EFIELDn[i][j][1] << "\n";
                if (writePhi && writeStep)
                    electricPotential << i * dx << " " << j * dy << " " << PHI[i][j] << "\n";
                if (writeRho && writeStep)
                    chargeDensity << i * dx << " " << j * dy << " " << RHO[i][j] << "\n";
                FE += RHO[i][j] * PHI[i][j];
            }
        }

        FE *= 0.5;

        energy << step << " " << KE << " " << FE << "\n";

        if (writePhaseSpace && writeStep)
            phaseSpace.close();
        if (writeEfield && writeStep)
            electricField.close();
        if (writePhi && writeStep)
            electricPotential.close();
        if (writeRho && writeStep)
            chargeDensity.close();
        if (writeSpace && writeStep)
            space.close();

        std::clock_t t_1 = std::clock();
        diff = Real(t_1 - t_0);
        simulationTime = (diff / CLOCKS_PER_SEC);

        if (!writeStep)
            std::cout << "ETR: " << simulationTime * (steps - step) << " seconds..." << std::endl;
    }

    energy.close();

    std::cout << "Simulation finished." << std::endl;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x21c0, %rsp           # imm = 0x21C0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x8(%rbp)
jge 0x37cd
movq 0x18832(%rip), %rdi     # 0x1bfd8
leaq 0x1087b(%rip), %rsi     # 0x14028
callq 0x32f0
movq %rax, %rdi
movq 0x1880c(%rip), %rsi     # 0x1bfc8
callq 0x3320
movl $0x1, -0x4(%rbp)
jmp 0x6db1
leaq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x3100
leaq -0x148(%rbp), %rdi
callq 0x3340
jmp 0x37e6
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x1cd8(%rbp)
leaq -0x179(%rbp), %rdi
movq %rdi, -0x1cd0(%rbp)
callq 0x3540
movq -0x1cd8(%rbp), %rsi
movq -0x1cd0(%rbp), %rdx
leaq -0x178(%rbp), %rdi
callq 0x6dd0
jmp 0x3824
leaq -0x179(%rbp), %rdi
callq 0x3350
leaq -0x388(%rbp), %rdi
leaq -0x178(%rbp), %rsi
movl $0x4, %edx
callq 0x34a0
jmp 0x384a
leaq -0x148(%rbp), %rdi
leaq -0x388(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
callq 0x3580
movb %al, -0x1cd9(%rbp)
jmp 0x386b
movb -0x1cd9(%rbp), %al
testb $0x1, %al
jne 0x392a
jmp 0x387b
movq 0x18756(%rip), %rdi     # 0x1bfd8
leaq 0x107cd(%rip), %rsi     # 0x14056
callq 0x32f0
movq %rax, -0x1ce8(%rbp)
jmp 0x3897
movq -0x1ce8(%rbp), %rdi
movq 0x18723(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x38ac
movl $0x1, -0x4(%rbp)
movl $0x1, -0x38c(%rbp)
jmp 0x6d53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6da6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x179(%rbp), %rdi
callq 0x3350
jmp 0x6d9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6d8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6d82
leaq 0x1074c(%rip), %rsi     # 0x1407d
leaq -0x38(%rbp), %rdi
callq 0x30d0
movq %rax, -0x1cf0(%rbp)
jmp 0x3943
movq -0x1cf0(%rbp), %rsi
leaq -0x3b8(%rbp), %rdi
callq 0x3480
jmp 0x3958
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x1cf8(%rbp)
callq 0x3540
movq -0x1cf8(%rbp), %rdx
leaq 0x1086e(%rip), %rsi     # 0x141e7
leaq -0x3e0(%rbp), %rdi
callq 0x6dd0
jmp 0x3987
leaq -0x410(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x3480
jmp 0x399c
leaq -0x3e0(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0x6e80
movb %al, -0x1cf9(%rbp)
jmp 0x39b7
leaq -0x410(%rbp), %rdi
callq 0x3140
leaq -0x3e0(%rbp), %rdi
callq 0x31d0
leaq -0x3e1(%rbp), %rdi
callq 0x3350
movb -0x1cf9(%rbp), %al
andb $0x1, %al
movb %al, -0x3b9(%rbp)
leaq -0x439(%rbp), %rdi
movq %rdi, -0x1d08(%rbp)
callq 0x3540
movq -0x1d08(%rbp), %rdx
leaq 0x1067b(%rip), %rsi     # 0x14085
leaq -0x438(%rbp), %rdi
callq 0x6dd0
jmp 0x3a18
leaq -0x468(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x3480
jmp 0x3a2d
leaq -0x438(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x6e80
movb %al, -0x1d09(%rbp)
jmp 0x3a48
leaq -0x468(%rbp), %rdi
callq 0x3140
leaq -0x438(%rbp), %rdi
callq 0x31d0
leaq -0x439(%rbp), %rdi
callq 0x3350
movb -0x1d09(%rbp), %al
andb $0x1, %al
movb %al, -0x411(%rbp)
leaq -0x491(%rbp), %rdi
movq %rdi, -0x1d18(%rbp)
callq 0x3540
movq -0x1d18(%rbp), %rdx
leaq 0x105f9(%rip), %rsi     # 0x14094
leaq -0x490(%rbp), %rdi
callq 0x6dd0
jmp 0x3aa9
leaq -0x4c0(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x3480
jmp 0x3abe
leaq -0x490(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x6e80
movb %al, -0x1d19(%rbp)
jmp 0x3ad9
leaq -0x4c0(%rbp), %rdi
callq 0x3140
leaq -0x490(%rbp), %rdi
callq 0x31d0
leaq -0x491(%rbp), %rdi
callq 0x3350
movb -0x1d19(%rbp), %al
andb $0x1, %al
movb %al, -0x469(%rbp)
leaq -0x4e9(%rbp), %rdi
movq %rdi, -0x1d28(%rbp)
callq 0x3540
movq -0x1d28(%rbp), %rdx
leaq 0x1057b(%rip), %rsi     # 0x140a7
leaq -0x4e8(%rbp), %rdi
callq 0x6dd0
jmp 0x3b3a
leaq -0x518(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x3480
jmp 0x3b4f
leaq -0x4e8(%rbp), %rdi
leaq -0x518(%rbp), %rsi
callq 0x6e80
movb %al, -0x1d29(%rbp)
jmp 0x3b6a
leaq -0x518(%rbp), %rdi
callq 0x3140
leaq -0x4e8(%rbp), %rdi
callq 0x31d0
leaq -0x4e9(%rbp), %rdi
callq 0x3350
movb -0x1d29(%rbp), %al
andb $0x1, %al
movb %al, -0x4c1(%rbp)
leaq -0x541(%rbp), %rdi
movq %rdi, -0x1d38(%rbp)
callq 0x3540
movq -0x1d38(%rbp), %rdx
leaq 0x10649(%rip), %rsi     # 0x14206
leaq -0x540(%rbp), %rdi
callq 0x6dd0
jmp 0x3bcb
leaq -0x570(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x3480
jmp 0x3be0
leaq -0x540(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x6e80
movb %al, -0x1d39(%rbp)
jmp 0x3bfb
leaq -0x570(%rbp), %rdi
callq 0x3140
leaq -0x540(%rbp), %rdi
callq 0x31d0
leaq -0x541(%rbp), %rdi
callq 0x3350
movb -0x1d39(%rbp), %al
andb $0x1, %al
movb %al, -0x519(%rbp)
leaq 0x10482(%rip), %rsi     # 0x140b6
leaq -0x38(%rbp), %rdi
callq 0x30d0
movq %rax, -0x1d48(%rbp)
jmp 0x3c46
movq -0x1d48(%rbp), %rsi
leaq -0x590(%rbp), %rdi
callq 0x3560
jmp 0x3c5b
leaq 0x1041b(%rip), %rsi     # 0x1407d
leaq -0x600(%rbp), %rdi
callq 0x34e0
jmp 0x3c70
leaq 0x10446(%rip), %rdx     # 0x140bd
leaq -0x5d8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x600(%rbp), %rcx
callq 0x3190
jmp 0x3c90
leaq -0x5b0(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
callq 0x3560
jmp 0x3ca5
leaq -0x5d8(%rbp), %rdi
callq 0x3140
leaq -0x600(%rbp), %rdi
callq 0x3140
leaq 0x10400(%rip), %rsi     # 0x140c4
leaq -0x38(%rbp), %rdi
callq 0x32c0
movb %al, -0x1d49(%rbp)
jmp 0x3cd5
movb -0x1d49(%rbp), %al
testb $0x1, %al
jne 0x3ce4
jmp 0x3f99
leaq 0x103d9(%rip), %rsi     # 0x140c4
leaq -0x38(%rbp), %rdi
callq 0x30d0
movq %rax, -0x1d58(%rbp)
jmp 0x3cfd
movq -0x1d58(%rbp), %rdi
callq 0x3150
movl %eax, -0x1d5c(%rbp)
jmp 0x3d11
movl -0x1d5c(%rbp), %eax
movl %eax, -0x604(%rbp)
jmp 0x3fe0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3d74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3d68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x410(%rbp), %rdi
callq 0x3140
leaq -0x3e0(%rbp), %rdi
callq 0x31d0
leaq -0x3e1(%rbp), %rdi
callq 0x3350
jmp 0x6d45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3dd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3dcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x468(%rbp), %rdi
callq 0x3140
leaq -0x438(%rbp), %rdi
callq 0x31d0
leaq -0x439(%rbp), %rdi
callq 0x3350
jmp 0x6d45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3e2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x4c0(%rbp), %rdi
callq 0x3140
leaq -0x490(%rbp), %rdi
callq 0x31d0
leaq -0x491(%rbp), %rdi
callq 0x3350
jmp 0x6d45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3e9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3e91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x518(%rbp), %rdi
callq 0x3140
leaq -0x4e8(%rbp), %rdi
callq 0x31d0
leaq -0x4e9(%rbp), %rdi
callq 0x3350
jmp 0x6d45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3f00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3ef4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x570(%rbp), %rdi
callq 0x3140
leaq -0x540(%rbp), %rdi
callq 0x31d0
leaq -0x541(%rbp), %rdi
callq 0x3350
jmp 0x6d45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6d45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6d39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x3f71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x3140
leaq -0x600(%rbp), %rdi
callq 0x3140
jmp 0x6d39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6d2d
movq 0x18038(%rip), %rdi     # 0x1bfd8
leaq 0x1011f(%rip), %rsi     # 0x140c6
callq 0x32f0
movq %rax, -0x1d68(%rbp)
jmp 0x3fb5
movq -0x1d68(%rbp), %rdi
movq 0x18005(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x3fca
movl $0x1, -0x4(%rbp)
movl $0x1, -0x38c(%rbp)
jmp 0x6d07
leaq -0x658(%rbp), %rdi
movl $0x32, %esi
callq 0x31c0
jmp 0x3ff3
leaq 0x10103(%rip), %rdx     # 0x140fd
leaq -0x630(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x658(%rbp), %rcx
callq 0x3190
jmp 0x4013
leaq -0x630(%rbp), %rdi
callq 0x3150
movl %eax, -0x1d6c(%rbp)
jmp 0x4027
leaq -0x630(%rbp), %rdi
callq 0x3140
leaq -0x658(%rbp), %rdi
callq 0x3140
movl -0x1d6c(%rbp), %eax
movl %eax, -0x608(%rbp)
leaq -0x6b0(%rbp), %rdi
movl $0xa, %esi
callq 0x31c0
jmp 0x405e
leaq 0x1009e(%rip), %rdx     # 0x14103
leaq -0x688(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x6b0(%rbp), %rcx
callq 0x3190
jmp 0x407e
leaq -0x688(%rbp), %rdi
callq 0x3150
movl %eax, -0x1d70(%rbp)
jmp 0x4092
leaq -0x688(%rbp), %rdi
callq 0x3140
leaq -0x6b0(%rbp), %rdi
callq 0x3140
movl -0x1d70(%rbp), %eax
movl %eax, -0x65c(%rbp)
leaq -0x708(%rbp), %rdi
movl $0x4277dc9, %esi        # imm = 0x4277DC9
callq 0x31c0
jmp 0x40c9
leaq 0x10040(%rip), %rdx     # 0x14110
leaq -0x6e0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x708(%rbp), %rcx
callq 0x3190
jmp 0x40e9
leaq -0x6e0(%rbp), %rdi
callq 0x3150
movl %eax, -0x1d74(%rbp)
jmp 0x40fd
leaq -0x6e0(%rbp), %rdi
callq 0x3140
leaq -0x708(%rbp), %rdi
callq 0x3140
movl -0x1d74(%rbp), %eax
movl %eax, -0x6b4(%rbp)
leaq -0x760(%rbp), %rdi
movsd 0xfed8(%rip), %xmm0     # 0x14008
callq 0x3410
jmp 0x4137
leaq 0xffd7(%rip), %rdx      # 0x14115
leaq -0x738(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x760(%rbp), %rcx
callq 0x3190
jmp 0x4157
leaq -0x738(%rbp), %rdi
callq 0x3210
movsd %xmm0, -0x1d80(%rbp)
jmp 0x416d
leaq -0x738(%rbp), %rdi
callq 0x3140
leaq -0x760(%rbp), %rdi
callq 0x3140
movsd -0x1d80(%rbp), %xmm0
movsd %xmm0, -0x710(%rbp)
leaq -0x770(%rbp), %rdi
movl $0x3, %esi
callq 0x6f50
jmp 0x41a8
leaq -0x798(%rbp), %rdi
xorl %esi, %esi
callq 0x3100
jmp 0x41b8
leaq 0xff59(%rip), %rsi      # 0x14118
leaq -0x38(%rbp), %rdi
callq 0x32c0
movb %al, -0x1d81(%rbp)
jmp 0x41d0
movb -0x1d81(%rbp), %al
testb $0x1, %al
jne 0x41df
jmp 0x44c6
leaq 0xff32(%rip), %rsi      # 0x14118
leaq -0x38(%rbp), %rdi
callq 0x30d0
movq %rax, -0x1d90(%rbp)
jmp 0x41f8
movq -0x1d90(%rbp), %rsi
leaq -0x798(%rbp), %rdi
callq 0x33f0
jmp 0x420d
leaq -0x798(%rbp), %rdi
callq 0x34c0
movl %eax, -0x1d94(%rbp)
jmp 0x4221
movl -0x1d94(%rbp), %eax
cmpl $0x3, %eax
je 0x43b1
movq 0x17da1(%rip), %rdi     # 0x1bfd8
leaq 0xfee1(%rip), %rsi      # 0x1411f
callq 0x32f0
movq %rax, -0x1da0(%rbp)
jmp 0x424c
movq -0x1da0(%rbp), %rdi
movq 0x17d6e(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x4261
movl $0x1, -0x4(%rbp)
movl $0x1, -0x38c(%rbp)
jmp 0x6cd3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x42a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x3140
leaq -0x658(%rbp), %rdi
callq 0x3140
jmp 0x6d2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x42ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x3140
leaq -0x6b0(%rbp), %rdi
callq 0x3140
jmp 0x6d2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x432f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x6e0(%rbp), %rdi
callq 0x3140
leaq -0x708(%rbp), %rdi
callq 0x3140
jmp 0x6d2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x4372
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x738(%rbp), %rdi
callq 0x3140
leaq -0x760(%rbp), %rdi
callq 0x3140
jmp 0x6d2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6cf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6ced
leaq -0x798(%rbp), %rdi
xorl %esi, %esi
callq 0x3360
movq %rax, -0x1da8(%rbp)
jmp 0x43c8
movq -0x1da8(%rbp), %rdi
callq 0x3210
movsd %xmm0, -0x1db0(%rbp)
jmp 0x43de
xorl %eax, %eax
movl %eax, %esi
leaq -0x770(%rbp), %rdi
callq 0x6fb0
movq %rax, -0x1db8(%rbp)
jmp 0x43f7
movq -0x1db8(%rbp), %rax
movsd -0x1db0(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x798(%rbp), %rdi
movl $0x1, %esi
callq 0x3360
movq %rax, -0x1dc0(%rbp)
jmp 0x4424
movq -0x1dc0(%rbp), %rdi
callq 0x3210
movsd %xmm0, -0x1dc8(%rbp)
jmp 0x443a
leaq -0x770(%rbp), %rdi
movl $0x1, %esi
callq 0x6fb0
movq %rax, -0x1dd0(%rbp)
jmp 0x4454
movq -0x1dd0(%rbp), %rax
movsd -0x1dc8(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x798(%rbp), %rdi
movl $0x2, %esi
callq 0x3360
movq %rax, -0x1dd8(%rbp)
jmp 0x4481
movq -0x1dd8(%rbp), %rdi
callq 0x3210
movsd %xmm0, -0x1de0(%rbp)
jmp 0x4497
leaq -0x770(%rbp), %rdi
movl $0x2, %esi
callq 0x6fb0
movq %rax, -0x1de8(%rbp)
jmp 0x44b1
movq -0x1de8(%rbp), %rax
movsd -0x1de0(%rbp), %xmm0
movsd %xmm0, (%rax)
jmp 0x4524
xorps %xmm0, %xmm0
movaps %xmm0, -0x7c0(%rbp)
movq $0x0, -0x7b0(%rbp)
movaps %xmm0, -0x7c0(%rbp)
movq $0x0, -0x7b0(%rbp)
leaq -0x7c0(%rbp), %rax
movq %rax, -0x7a8(%rbp)
movq $0x3, -0x7a0(%rbp)
movq -0x7a8(%rbp), %rsi
movq -0x7a0(%rbp), %rdx
leaq -0x770(%rbp), %rdi
callq 0x6fe0
jmp 0x4522
jmp 0x4524
leaq -0x7f8(%rbp), %rdi
xorl %esi, %esi
callq 0x3100
jmp 0x4534
leaq 0xfc16(%rip), %rsi      # 0x14151
leaq -0x38(%rbp), %rdi
callq 0x32c0
movb %al, -0x1de9(%rbp)
jmp 0x454c
movb -0x1de9(%rbp), %al
testb $0x1, %al
jne 0x455b
jmp 0x4685
leaq 0xfbef(%rip), %rsi      # 0x14151
leaq -0x38(%rbp), %rdi
callq 0x30d0
movq %rax, -0x1df8(%rbp)
jmp 0x4574
movq -0x1df8(%rbp), %rsi
leaq -0x7f8(%rbp), %rdi
callq 0x33f0
jmp 0x4589
leaq -0x7f8(%rbp), %rdi
callq 0x34c0
movl %eax, -0x1dfc(%rbp)
jmp 0x459d
movl -0x1dfc(%rbp), %eax
cmpl $0x2, %eax
je 0x4606
movq 0x17a29(%rip), %rdi     # 0x1bfd8
leaq 0xfba6(%rip), %rsi      # 0x1415c
callq 0x32f0
movq %rax, -0x1e08(%rbp)
jmp 0x45c4
movq -0x1e08(%rbp), %rdi
movq 0x179f6(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x45d9
movl $0x1, -0x4(%rbp)
movl $0x1, -0x38c(%rbp)
jmp 0x6cb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6cc5
leaq -0x7f8(%rbp), %rdi
xorl %esi, %esi
callq 0x3360
movq %rax, -0x1e10(%rbp)
jmp 0x461d
movq -0x1e10(%rbp), %rdi
callq 0x3210
movsd %xmm0, -0x1e18(%rbp)
jmp 0x4633
movsd -0x1e18(%rbp), %xmm0
movsd %xmm0, -0x7c8(%rbp)
leaq -0x7f8(%rbp), %rdi
movl $0x1, %esi
callq 0x3360
movq %rax, -0x1e20(%rbp)
jmp 0x465d
movq -0x1e20(%rbp), %rdi
callq 0x3210
movsd %xmm0, -0x1e28(%rbp)
jmp 0x4673
movsd -0x1e28(%rbp), %xmm0
movsd %xmm0, -0x7d0(%rbp)
jmp 0x46a5
movsd 0xf983(%rip), %xmm0     # 0x14010
movsd %xmm0, -0x7c8(%rbp)
movsd 0xf973(%rip), %xmm0     # 0x14010
movsd %xmm0, -0x7d0(%rbp)
leaq -0x828(%rbp), %rdi
xorl %esi, %esi
callq 0x3100
jmp 0x46b5
leaq 0xfacf(%rip), %rsi      # 0x1418b
leaq -0x38(%rbp), %rdi
callq 0x32c0
movb %al, -0x1e29(%rbp)
jmp 0x46cd
movb -0x1e29(%rbp), %al
testb $0x1, %al
jne 0x46dc
jmp 0x47fa
leaq 0xfaa8(%rip), %rsi      # 0x1418b
leaq -0x38(%rbp), %rdi
callq 0x30d0
movq %rax, -0x1e38(%rbp)
jmp 0x46f5
movq -0x1e38(%rbp), %rsi
leaq -0x828(%rbp), %rdi
callq 0x33f0
jmp 0x470a
leaq -0x828(%rbp), %rdi
callq 0x34c0
movl %eax, -0x1e3c(%rbp)
jmp 0x471e
movl -0x1e3c(%rbp), %eax
cmpl $0x2, %eax
je 0x4787
movq 0x178a8(%rip), %rdi     # 0x1bfd8
leaq 0xfa5e(%rip), %rsi      # 0x14195
callq 0x32f0
movq %rax, -0x1e48(%rbp)
jmp 0x4745
movq -0x1e48(%rbp), %rdi
movq 0x17875(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x475a
movl $0x1, -0x4(%rbp)
movl $0x1, -0x38c(%rbp)
jmp 0x6c9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6ca9
leaq -0x828(%rbp), %rdi
xorl %esi, %esi
callq 0x3360
movq %rax, -0x1e50(%rbp)
jmp 0x479e
movq -0x1e50(%rbp), %rdi
callq 0x3150
movl %eax, -0x1e54(%rbp)
jmp 0x47b2
movl -0x1e54(%rbp), %eax
movl %eax, -0x7fc(%rbp)
leaq -0x828(%rbp), %rdi
movl $0x1, %esi
callq 0x3360
movq %rax, -0x1e60(%rbp)
jmp 0x47d8
movq -0x1e60(%rbp), %rdi
callq 0x3150
movl %eax, -0x1e64(%rbp)
jmp 0x47ec
movl -0x1e64(%rbp), %eax
movl %eax, -0x800(%rbp)
jmp 0x480e
movl $0x10, -0x7fc(%rbp)
movl $0x10, -0x800(%rbp)
movsd -0x7c8(%rbp), %xmm0
movl -0x7fc(%rbp), %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x830(%rbp)
movsd -0x7d0(%rbp), %xmm0
movl -0x800(%rbp), %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x838(%rbp)
leaq -0x850(%rbp), %rdi
callq 0x70e0
leaq -0x868(%rbp), %rdi
callq 0x70e0
leaq -0x880(%rbp), %rdi
callq 0x70e0
leaq -0x898(%rbp), %rdi
callq 0x7100
leaq -0x8b0(%rbp), %rdi
callq 0x7100
leaq -0x8c8(%rbp), %rdi
callq 0x7100
leaq -0x8e0(%rbp), %rdi
callq 0x7120
leaq -0xae8(%rbp), %rdi
leaq -0x590(%rbp), %rsi
movl $0x8, %edx
callq 0x34a0
jmp 0x48ba
movq -0xae8(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0xae8(%rbp,%rax), %rdi
callq 0x3500
movb %al, -0x1e65(%rbp)
jmp 0x48da
movb -0x1e65(%rbp), %al
testb $0x1, %al
jne 0x495b
jmp 0x48e6
movq 0x176eb(%rip), %rdi     # 0x1bfd8
leaq 0xf8cc(%rip), %rsi      # 0x141c0
callq 0x32f0
movq %rax, -0x1e70(%rbp)
jmp 0x4902
movq -0x1e70(%rbp), %rdi
movq 0x176b8(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x4917
movl $0x1, -0x4(%rbp)
movl $0x1, -0x38c(%rbp)
jmp 0x6bd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6c45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6c39
movl $0x0, -0xb28(%rbp)
movl -0xb28(%rbp), %eax
cmpl -0x604(%rbp), %eax
jae 0x4c2e
leaq -0xae8(%rbp), %rdi
leaq -0xaf0(%rbp), %rsi
callq 0x3260
movq %rax, -0x1e78(%rbp)
jmp 0x4993
movq -0x1e78(%rbp), %rdi
leaq -0xaf8(%rbp), %rsi
callq 0x3260
movq %rax, -0x1e80(%rbp)
jmp 0x49af
movq -0x1e80(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0x3260
movq %rax, -0x1e88(%rbp)
jmp 0x49cb
movq -0x1e88(%rbp), %rdi
leaq -0xb08(%rbp), %rsi
callq 0x3260
movq %rax, -0x1e90(%rbp)
jmp 0x49e7
movq -0x1e90(%rbp), %rdi
leaq -0xb10(%rbp), %rsi
callq 0x3260
movq %rax, -0x1e98(%rbp)
jmp 0x4a03
movq -0x1e98(%rbp), %rdi
leaq -0xb18(%rbp), %rsi
callq 0x3260
movq %rax, -0x1ea0(%rbp)
jmp 0x4a1f
movq -0x1ea0(%rbp), %rdi
leaq -0xb24(%rbp), %rsi
callq 0x3040
jmp 0x4a34
movsd -0x7c8(%rbp), %xmm0
movsd -0x7d0(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd -0xb18(%rbp), %xmm1
mulsd %xmm1, %xmm0
movl -0x604(%rbp), %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xb20(%rbp)
movsd -0xaf0(%rbp), %xmm0
movsd %xmm0, -0xb58(%rbp)
movsd -0xaf8(%rbp), %xmm0
movsd %xmm0, -0xb50(%rbp)
leaq -0xb58(%rbp), %rax
movq %rax, -0xb48(%rbp)
movq $0x2, -0xb40(%rbp)
movq -0xb48(%rbp), %rsi
movq -0xb40(%rbp), %rdx
leaq -0xb38(%rbp), %rdi
callq 0x7140
jmp 0x4ac0
movsd -0xb00(%rbp), %xmm0
movsd %xmm0, -0xb90(%rbp)
movsd -0xb08(%rbp), %xmm0
movsd %xmm0, -0xb88(%rbp)
movsd -0xb10(%rbp), %xmm0
movsd %xmm0, -0xb80(%rbp)
leaq -0xb90(%rbp), %rax
movq %rax, -0xb78(%rbp)
movq $0x3, -0xb70(%rbp)
movq -0xb78(%rbp), %rsi
movq -0xb70(%rbp), %rdx
leaq -0xb68(%rbp), %rdi
callq 0x7140
jmp 0x4b25
leaq -0x850(%rbp), %rdi
leaq -0xb38(%rbp), %rsi
callq 0x71c0
jmp 0x4b3a
leaq -0x868(%rbp), %rdi
leaq -0xb68(%rbp), %rsi
callq 0x71c0
jmp 0x4b4f
leaq -0x8b0(%rbp), %rdi
leaq -0xb18(%rbp), %rsi
callq 0x7230
jmp 0x4b64
leaq -0x898(%rbp), %rdi
leaq -0xb20(%rbp), %rsi
callq 0x7230
jmp 0x4b79
movsd -0xb20(%rbp), %xmm0
movsd -0xb18(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xb98(%rbp)
leaq -0x8c8(%rbp), %rdi
leaq -0xb98(%rbp), %rsi
callq 0x72a0
jmp 0x4baa
leaq -0x8e0(%rbp), %rdi
leaq -0xb24(%rbp), %rsi
callq 0x72d0
jmp 0x4bbf
leaq -0xb68(%rbp), %rdi
callq 0x7340
leaq -0xb38(%rbp), %rdi
callq 0x7340
movl -0xb28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb28(%rbp)
jmp 0x4965
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x4c1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xb68(%rbp), %rdi
callq 0x7340
leaq -0xb38(%rbp), %rdi
callq 0x7340
jmp 0x6c39
movb $0x1, -0xbea(%rbp)
leaq -0xbe0(%rbp), %rax
movq %rax, -0x1eb0(%rbp)
movq %rax, -0xbe8(%rbp)
leaq -0xbe9(%rbp), %rdi
movq %rdi, -0x1ea8(%rbp)
callq 0x3540
movq -0x1eb0(%rbp), %rdi
movq -0x1ea8(%rbp), %rdx
leaq 0xf56c(%rip), %rsi      # 0x141de
callq 0x6dd0
jmp 0x4c79
movb $0x0, -0xbea(%rbp)
leaq -0xbe0(%rbp), %rax
movq %rax, -0xbc0(%rbp)
movq $0x1, -0xbb8(%rbp)
leaq -0xbeb(%rbp), %rdi
movq %rdi, -0x1eb8(%rbp)
callq 0x7390
movq -0x1eb8(%rbp), %rcx
movq -0xbc0(%rbp), %rsi
movq -0xbb8(%rbp), %rdx
leaq -0xbb0(%rbp), %rdi
callq 0x73b0
jmp 0x4ccf
leaq -0xbeb(%rbp), %rdi
callq 0x7430
leaq -0xbe0(%rbp), %rax
movq %rax, -0x1ec8(%rbp)
addq $0x20, %rax
movq %rax, -0x1ec0(%rbp)
movq -0x1ec0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1ed0(%rbp)
callq 0x31d0
movq -0x1ec8(%rbp), %rcx
movq -0x1ed0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1ec0(%rbp)
jne 0x4cf4
leaq -0xbe9(%rbp), %rdi
callq 0x3350
testb $0x1, -0x3b9(%rbp)
je 0x4ec9
leaq -0xc11(%rbp), %rdi
movq %rdi, -0x1ed8(%rbp)
callq 0x3540
movq -0x1ed8(%rbp), %rdx
leaq 0xf487(%rip), %rsi      # 0x141e6
leaq -0xc10(%rbp), %rdi
callq 0x6dd0
jmp 0x4d6d
leaq -0xbb0(%rbp), %rdi
leaq -0xc10(%rbp), %rsi
callq 0x7450
jmp 0x4d82
leaq -0xc10(%rbp), %rdi
callq 0x31d0
leaq -0xc11(%rbp), %rdi
callq 0x3350
jmp 0x4ec9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x4e1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xbeb(%rbp), %rdi
callq 0x7430
leaq -0xbe0(%rbp), %rax
movq %rax, -0x1ee8(%rbp)
addq $0x20, %rax
movq %rax, -0x1ee0(%rbp)
movq -0x1ee0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1ef0(%rbp)
callq 0x31d0
movq -0x1ee8(%rbp), %rcx
movq -0x1ef0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1ee0(%rbp)
jne 0x4dea
jmp 0x4e1d
leaq -0xbe9(%rbp), %rdi
callq 0x3350
testb $0x1, -0xbea(%rbp)
jne 0x4e34
jmp 0x4e81
movq -0xbe8(%rbp), %rax
leaq -0xbe0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1ef8(%rbp)
je 0x4e7f
movq -0x1ef8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1f00(%rbp)
callq 0x31d0
movq -0x1f00(%rbp), %rax
leaq -0xbe0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1ef8(%rbp)
jne 0x4e4e
jmp 0x4e81
jmp 0x6c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x4eb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xc10(%rbp), %rdi
callq 0x31d0
leaq -0xc11(%rbp), %rdi
callq 0x3350
jmp 0x6bc9
testb $0x1, -0x411(%rbp)
je 0x4f77
leaq -0xc39(%rbp), %rdi
movq %rdi, -0x1f08(%rbp)
callq 0x3540
movq -0x1f08(%rbp), %rdx
leaq 0xf2fc(%rip), %rsi      # 0x141f3
leaq -0xc38(%rbp), %rdi
callq 0x6dd0
jmp 0x4f05
leaq -0xbb0(%rbp), %rdi
leaq -0xc38(%rbp), %rsi
callq 0x7450
jmp 0x4f1a
leaq -0xc38(%rbp), %rdi
callq 0x31d0
leaq -0xc39(%rbp), %rdi
callq 0x3350
jmp 0x4f77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x4f66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xc38(%rbp), %rdi
callq 0x31d0
leaq -0xc39(%rbp), %rdi
callq 0x3350
jmp 0x6bc9
testb $0x1, -0x469(%rbp)
je 0x5025
leaq -0xc61(%rbp), %rdi
movq %rdi, -0x1f10(%rbp)
callq 0x3540
movq -0x1f10(%rbp), %rdx
leaq 0xf256(%rip), %rsi      # 0x141fb
leaq -0xc60(%rbp), %rdi
callq 0x6dd0
jmp 0x4fb3
leaq -0xbb0(%rbp), %rdi
leaq -0xc60(%rbp), %rsi
callq 0x7450
jmp 0x4fc8
leaq -0xc60(%rbp), %rdi
callq 0x31d0
leaq -0xc61(%rbp), %rdi
callq 0x3350
jmp 0x5025
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5014
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xc60(%rbp), %rdi
callq 0x31d0
leaq -0xc61(%rbp), %rdi
callq 0x3350
jmp 0x6bc9
testb $0x1, -0x4c1(%rbp)
je 0x50d3
leaq -0xc89(%rbp), %rdi
movq %rdi, -0x1f18(%rbp)
callq 0x3540
movq -0x1f18(%rbp), %rdx
leaq 0xf1ad(%rip), %rsi      # 0x14200
leaq -0xc88(%rbp), %rdi
callq 0x6dd0
jmp 0x5061
leaq -0xbb0(%rbp), %rdi
leaq -0xc88(%rbp), %rsi
callq 0x7450
jmp 0x5076
leaq -0xc88(%rbp), %rdi
callq 0x31d0
leaq -0xc89(%rbp), %rdi
callq 0x3350
jmp 0x50d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x50c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xc88(%rbp), %rdi
callq 0x31d0
leaq -0xc89(%rbp), %rdi
callq 0x3350
jmp 0x6bc9
testb $0x1, -0x519(%rbp)
je 0x5181
leaq -0xcb1(%rbp), %rdi
movq %rdi, -0x1f20(%rbp)
callq 0x3540
movq -0x1f20(%rbp), %rdx
leaq 0xf104(%rip), %rsi      # 0x14205
leaq -0xcb0(%rbp), %rdi
callq 0x6dd0
jmp 0x510f
leaq -0xbb0(%rbp), %rdi
leaq -0xcb0(%rbp), %rsi
callq 0x7450
jmp 0x5124
leaq -0xcb0(%rbp), %rdi
callq 0x31d0
leaq -0xcb1(%rbp), %rdi
callq 0x3350
jmp 0x5181
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xcb0(%rbp), %rdi
callq 0x31d0
leaq -0xcb1(%rbp), %rdi
callq 0x3350
jmp 0x6bc9
movl $0x0, -0xcb8(%rbp)
movl -0xcb8(%rbp), %eax
movq %rax, -0x1f28(%rbp)
leaq -0xbb0(%rbp), %rdi
callq 0x7480
movq %rax, %rcx
movq -0x1f28(%rbp), %rax
cmpq %rcx, %rax
jae 0x529b
leaq 0xf04e(%rip), %rsi      # 0x1420c
leaq -0xcf8(%rbp), %rdi
leaq -0x5b0(%rbp), %rdx
callq 0x74f0
jmp 0x51d3
movl -0xcb8(%rbp), %eax
movl %eax, %esi
leaq -0xbb0(%rbp), %rdi
callq 0x7600
movq %rax, %rdx
leaq -0xcd8(%rbp), %rdi
leaq -0xcf8(%rbp), %rsi
callq 0x74a0
jmp 0x51ff
leaq -0xcd8(%rbp), %rdi
callq 0x30f0
movq %rax, %rdi
callq 0x32a0
jmp 0x5215
leaq -0xcd8(%rbp), %rdi
callq 0x31d0
leaq -0xcf8(%rbp), %rdi
callq 0x31d0
movl -0xcb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xcb8(%rbp)
jmp 0x518b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6bc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x528a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0xcd8(%rbp), %rdi
callq 0x31d0
leaq -0xcf8(%rbp), %rdi
callq 0x31d0
jmp 0x6bc9
movq 0x16d36(%rip), %rdi     # 0x1bfd8
leaq 0xef6d(%rip), %rsi      # 0x14216
callq 0x32f0
movq %rax, -0x1f30(%rbp)
jmp 0x52b7
movq -0x1f30(%rbp), %rdi
movq 0x16d03(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x52cc
leaq -0xf08(%rbp), %rdi
callq 0x3510
jmp 0x52da
leaq -0x1108(%rbp), %rdi
callq 0x3510
jmp 0x52e8
leaq -0x1308(%rbp), %rdi
callq 0x3510
jmp 0x52f6
leaq -0x1508(%rbp), %rdi
callq 0x3510
jmp 0x5304
leaq -0x1708(%rbp), %rdi
callq 0x3510
jmp 0x5312
leaq -0x1908(%rbp), %rdi
callq 0x3510
jmp 0x5320
leaq -0x1920(%rbp), %rdi
callq 0x70e0
leaq -0x1938(%rbp), %rdi
callq 0x70e0
leaq -0x1950(%rbp), %rdi
callq 0x70e0
leaq -0x1968(%rbp), %rdi
callq 0x7620
leaq 0xeed5(%rip), %rdx      # 0x1422c
leaq -0x19a0(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x7640
jmp 0x536c
leaq -0xf08(%rbp), %rdi
leaq -0x19a0(%rbp), %rsi
movl $0x10, %edx
callq 0x3130
jmp 0x5386
leaq -0x19a0(%rbp), %rdi
callq 0x31d0
movl $0x0, -0x19a4(%rbp)
movl -0x19a4(%rbp), %eax
cmpl -0x608(%rbp), %eax
jae 0x6a78
callq 0x31e0
movq %rax, -0x19b0(%rbp)
movl -0x19a4(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x19b8(%rbp)
movl -0x65c(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x19c0(%rbp)
leaq -0x19b8(%rbp), %rdi
leaq -0x19c0(%rbp), %rsi
callq 0xda30
movsd %xmm0, -0x1f38(%rbp)
jmp 0x53fd
movsd -0x1f38(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
setnp %cl
sete %al
andb %cl, %al
movb %al, -0x1979(%rbp)
movq %rsp, %rax
leaq -0x604(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x800(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x19d8(%rbp), %rdi
leaq -0x850(%rbp), %rsi
leaq -0x898(%rbp), %rdx
leaq -0x830(%rbp), %rcx
leaq -0x838(%rbp), %r8
leaq -0x7fc(%rbp), %r9
callq 0xdbc0
jmp 0x5463
leaq -0x1920(%rbp), %rdi
movq %rdi, -0x1f40(%rbp)
leaq -0x19d8(%rbp), %rsi
movq %rsi, -0x1f48(%rbp)
callq 0x76c0
movq -0x1f48(%rbp), %rdi
callq 0x76f0
movq -0x1f40(%rbp), %rsi
leaq -0x19f0(%rbp), %rdi
leaq -0x830(%rbp), %rdx
leaq -0x838(%rbp), %rcx
leaq -0x7fc(%rbp), %r8
leaq -0x800(%rbp), %r9
callq 0xe130
jmp 0x54c1
leaq -0x1938(%rbp), %rdi
movq %rdi, -0x1f50(%rbp)
leaq -0x19f0(%rbp), %rsi
movq %rsi, -0x1f58(%rbp)
callq 0x76c0
movq -0x1f58(%rbp), %rdi
callq 0x76f0
movq -0x1f50(%rbp), %rsi
leaq -0x1a08(%rbp), %rdi
leaq -0x830(%rbp), %rdx
leaq -0x838(%rbp), %rcx
leaq -0x7fc(%rbp), %r8
leaq -0x800(%rbp), %r9
callq 0xf170
jmp 0x551f
leaq -0x1968(%rbp), %rdi
movq %rdi, -0x1f60(%rbp)
leaq -0x1a08(%rbp), %rsi
movq %rsi, -0x1f68(%rbp)
callq 0x7750
movq -0x1f68(%rbp), %rdi
callq 0x7780
movq -0x1f60(%rbp), %rsi
movq %rsp, %rax
leaq -0x604(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq -0x800(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x7fc(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x1a20(%rbp), %rdi
leaq -0x850(%rbp), %rdx
leaq -0x8e0(%rbp), %rcx
leaq -0x830(%rbp), %r8
leaq -0x838(%rbp), %r9
callq 0xf660
jmp 0x55a0
leaq -0x1950(%rbp), %rdi
leaq -0x1a20(%rbp), %rsi
callq 0x76c0
leaq -0x1a20(%rbp), %rdi
callq 0x76f0
cmpl $0x0, -0x19a4(%rbp)
jne 0x56d8
movabsq $-0x4010000000000000, %rax # imm = 0xBFF0000000000000
movq %rax, -0x1a28(%rbp)
movq %rsp, %rax
leaq -0x604(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x710(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x1a28(%rbp), %rdi
leaq -0x868(%rbp), %rsi
leaq -0x8b0(%rbp), %rdx
leaq -0x8e0(%rbp), %rcx
leaq -0x1950(%rbp), %r8
leaq -0x770(%rbp), %r9
callq 0x10500
jmp 0x5626
jmp 0x56d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6bbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6bb1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6ba5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6b99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6b8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x6b51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x19a0(%rbp), %rdi
callq 0x31d0
jmp 0x6b51
movq %rsp, %rax
leaq -0x604(%rbp), %rcx
movq %rcx, 0x18(%rax)
leaq -0x710(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq -0x7d0(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x7c8(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x850(%rbp), %rdi
leaq -0x868(%rbp), %rsi
leaq -0x8b0(%rbp), %rdx
leaq -0x8e0(%rbp), %rcx
leaq -0x1950(%rbp), %r8
leaq -0x770(%rbp), %r9
callq 0x10380
jmp 0x5737
leaq -0x880(%rbp), %rdi
leaq -0x868(%rbp), %rsi
callq 0x77e0
jmp 0x574c
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, -0x1a30(%rbp)
movq %rsp, %rax
leaq -0x604(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x710(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x1a30(%rbp), %rdi
leaq -0x880(%rbp), %rsi
leaq -0x8b0(%rbp), %rdx
leaq -0x8e0(%rbp), %rcx
leaq -0x1950(%rbp), %r8
leaq -0x770(%rbp), %r9
callq 0x10500
jmp 0x57a6
testb $0x1, -0x3b9(%rbp)
jne 0x57d3
testb $0x1, -0x411(%rbp)
jne 0x57d3
testb $0x1, -0x469(%rbp)
jne 0x57d3
testb $0x1, -0x4c1(%rbp)
jne 0x57d3
testb $0x1, -0x519(%rbp)
je 0x5846
testb $0x1, -0x1979(%rbp)
je 0x5846
movq 0x167f5(%rip), %rdi     # 0x1bfd8
leaq 0xea55(%rip), %rsi      # 0x1423f
callq 0x32f0
movq %rax, -0x1f70(%rbp)
jmp 0x57f8
movq -0x1f70(%rbp), %rdi
movl -0x19a4(%rbp), %esi
callq 0x33c0
movq %rax, -0x1f78(%rbp)
jmp 0x5813
movq -0x1f78(%rbp), %rdi
leaq 0xea07(%rip), %rsi      # 0x14228
callq 0x32f0
movq %rax, -0x1f80(%rbp)
jmp 0x582f
movq -0x1f80(%rbp), %rdi
movq 0x1678b(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x5844
jmp 0x5846
testb $0x1, -0x3b9(%rbp)
je 0x599a
testb $0x1, -0x1979(%rbp)
je 0x599a
leaq 0xe9ee(%rip), %rdx      # 0x14255
leaq -0x1a90(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x7640
jmp 0x587c
movl -0x19a4(%rbp), %esi
leaq -0x1ab0(%rbp), %rdi
callq 0x7b50
jmp 0x5890
leaq -0x1a70(%rbp), %rdi
leaq -0x1a90(%rbp), %rsi
leaq -0x1ab0(%rbp), %rdx
callq 0x7a80
jmp 0x58ac
leaq 0xe9b5(%rip), %rdx      # 0x14268
leaq -0x1a50(%rbp), %rdi
leaq -0x1a70(%rbp), %rsi
callq 0x7a30
jmp 0x58c8
leaq -0x1108(%rbp), %rdi
leaq -0x1a50(%rbp), %rsi
movl $0x10, %edx
callq 0x3130
jmp 0x58e2
leaq -0x1a50(%rbp), %rdi
callq 0x31d0
leaq -0x1a70(%rbp), %rdi
callq 0x31d0
leaq -0x1ab0(%rbp), %rdi
callq 0x31d0
leaq -0x1a90(%rbp), %rdi
callq 0x31d0
jmp 0x599a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5989
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x597d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5971
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x1a50(%rbp), %rdi
callq 0x31d0
leaq -0x1a70(%rbp), %rdi
callq 0x31d0
leaq -0x1ab0(%rbp), %rdi
callq 0x31d0
leaq -0x1a90(%rbp), %rdi
callq 0x31d0
jmp 0x6b51
testb $0x1, -0x411(%rbp)
je 0x5aee
testb $0x1, -0x1979(%rbp)
je 0x5aee
leaq 0xe8b3(%rip), %rdx      # 0x1426e
leaq -0x1b10(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x7640
jmp 0x59d0
movl -0x19a4(%rbp), %esi
leaq -0x1b30(%rbp), %rdi
callq 0x7b50
jmp 0x59e4
leaq -0x1af0(%rbp), %rdi
leaq -0x1b10(%rbp), %rsi
leaq -0x1b30(%rbp), %rdx
callq 0x7a80
jmp 0x5a00
leaq 0xe861(%rip), %rdx      # 0x14268
leaq -0x1ad0(%rbp), %rdi
leaq -0x1af0(%rbp), %rsi
callq 0x7a30
jmp 0x5a1c
leaq -0x1308(%rbp), %rdi
leaq -0x1ad0(%rbp), %rsi
movl $0x10, %edx
callq 0x3130
jmp 0x5a36
leaq -0x1ad0(%rbp), %rdi
callq 0x31d0
leaq -0x1af0(%rbp), %rdi
callq 0x31d0
leaq -0x1b30(%rbp), %rdi
callq 0x31d0
leaq -0x1b10(%rbp), %rdi
callq 0x31d0
jmp 0x5aee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5add
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5ad1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5ac5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x1ad0(%rbp), %rdi
callq 0x31d0
leaq -0x1af0(%rbp), %rdi
callq 0x31d0
leaq -0x1b30(%rbp), %rdi
callq 0x31d0
leaq -0x1b10(%rbp), %rdi
callq 0x31d0
jmp 0x6b51
testb $0x1, -0x469(%rbp)
je 0x5c42
testb $0x1, -0x1979(%rbp)
je 0x5c42
leaq 0xe76d(%rip), %rdx      # 0x1427c
leaq -0x1b90(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x7640
jmp 0x5b24
movl -0x19a4(%rbp), %esi
leaq -0x1bb0(%rbp), %rdi
callq 0x7b50
jmp 0x5b38
leaq -0x1b70(%rbp), %rdi
leaq -0x1b90(%rbp), %rsi
leaq -0x1bb0(%rbp), %rdx
callq 0x7a80
jmp 0x5b54
leaq 0xe70d(%rip), %rdx      # 0x14268
leaq -0x1b50(%rbp), %rdi
leaq -0x1b70(%rbp), %rsi
callq 0x7a30
jmp 0x5b70
leaq -0x1508(%rbp), %rdi
leaq -0x1b50(%rbp), %rsi
movl $0x10, %edx
callq 0x3130
jmp 0x5b8a
leaq -0x1b50(%rbp), %rdi
callq 0x31d0
leaq -0x1b70(%rbp), %rdi
callq 0x31d0
leaq -0x1bb0(%rbp), %rdi
callq 0x31d0
leaq -0x1b90(%rbp), %rdi
callq 0x31d0
jmp 0x5c42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5c31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5c25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5c19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x1b50(%rbp), %rdi
callq 0x31d0
leaq -0x1b70(%rbp), %rdi
callq 0x31d0
leaq -0x1bb0(%rbp), %rdi
callq 0x31d0
leaq -0x1b90(%rbp), %rdi
callq 0x31d0
jmp 0x6b51
testb $0x1, -0x4c1(%rbp)
je 0x5d96
testb $0x1, -0x1979(%rbp)
je 0x5d96
leaq 0xe624(%rip), %rdx      # 0x14287
leaq -0x1c10(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x7640
jmp 0x5c78
movl -0x19a4(%rbp), %esi
leaq -0x1c30(%rbp), %rdi
callq 0x7b50
jmp 0x5c8c
leaq -0x1bf0(%rbp), %rdi
leaq -0x1c10(%rbp), %rsi
leaq -0x1c30(%rbp), %rdx
callq 0x7a80
jmp 0x5ca8
leaq 0xe5b9(%rip), %rdx      # 0x14268
leaq -0x1bd0(%rbp), %rdi
leaq -0x1bf0(%rbp), %rsi
callq 0x7a30
jmp 0x5cc4
leaq -0x1708(%rbp), %rdi
leaq -0x1bd0(%rbp), %rsi
movl $0x10, %edx
callq 0x3130
jmp 0x5cde
leaq -0x1bd0(%rbp), %rdi
callq 0x31d0
leaq -0x1bf0(%rbp), %rdi
callq 0x31d0
leaq -0x1c30(%rbp), %rdi
callq 0x31d0
leaq -0x1c10(%rbp), %rdi
callq 0x31d0
jmp 0x5d96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5d85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5d79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5d6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x1bd0(%rbp), %rdi
callq 0x31d0
leaq -0x1bf0(%rbp), %rdi
callq 0x31d0
leaq -0x1c30(%rbp), %rdi
callq 0x31d0
leaq -0x1c10(%rbp), %rdi
callq 0x31d0
jmp 0x6b51
testb $0x1, -0x519(%rbp)
je 0x5eea
testb $0x1, -0x1979(%rbp)
je 0x5eea
leaq 0xe4db(%rip), %rdx      # 0x14292
leaq -0x1c90(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x7640
jmp 0x5dcc
movl -0x19a4(%rbp), %esi
leaq -0x1cb0(%rbp), %rdi
callq 0x7b50
jmp 0x5de0
leaq -0x1c70(%rbp), %rdi
leaq -0x1c90(%rbp), %rsi
leaq -0x1cb0(%rbp), %rdx
callq 0x7a80
jmp 0x5dfc
leaq 0xe465(%rip), %rdx      # 0x14268
leaq -0x1c50(%rbp), %rdi
leaq -0x1c70(%rbp), %rsi
callq 0x7a30
jmp 0x5e18
leaq -0x1908(%rbp), %rdi
leaq -0x1c50(%rbp), %rsi
movl $0x10, %edx
callq 0x3130
jmp 0x5e32
leaq -0x1c50(%rbp), %rdi
callq 0x31d0
leaq -0x1c70(%rbp), %rdi
callq 0x31d0
leaq -0x1cb0(%rbp), %rdi
callq 0x31d0
leaq -0x1c90(%rbp), %rdi
callq 0x31d0
jmp 0x5eea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5ed9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5ecd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
jmp 0x5ec1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x150(%rbp)
movl %eax, -0x154(%rbp)
leaq -0x1c50(%rbp), %rdi
callq 0x31d0
leaq -0x1c70(%rbp), %rdi
callq 0x31d0
leaq -0x1cb0(%rbp), %rdi
callq 0x31d0
leaq -0x1c90(%rbp), %rdi
callq 0x31d0
jmp 0x6b51
xorps %xmm0, %xmm0
movsd %xmm0, -0x1970(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1978(%rbp)
movl $0x0, -0x1cb4(%rbp)
movl -0x1cb4(%rbp), %eax
cmpl -0x604(%rbp), %eax
jae 0x6369
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x8e0(%rbp), %rdi
callq 0x7c30
movq %rax, -0x1f88(%rbp)
jmp 0x5f39
movq -0x1f88(%rbp), %rax
cmpl $0x0, (%rax)
je 0x6275
testb $0x1, -0x3b9(%rbp)
je 0x619b
testb $0x1, -0x1979(%rbp)
je 0x619b
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x850(%rbp), %rdi
callq 0x7c70
movq %rax, -0x1f90(%rbp)
jmp 0x5f80
movq -0x1f90(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x1f98(%rbp)
jmp 0x5f99
movq -0x1f98(%rbp), %rax
movsd (%rax), %xmm0
leaq -0x1108(%rbp), %rdi
callq 0x3590
movq %rax, -0x1fa0(%rbp)
jmp 0x5fb9
movq -0x1fa0(%rbp), %rdi
leaq 0xe2de(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x1fa8(%rbp)
jmp 0x5fd5
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x850(%rbp), %rdi
callq 0x7c70
movq %rax, -0x1fb0(%rbp)
jmp 0x5ff2
movq -0x1fb0(%rbp), %rdi
movl $0x1, %esi
callq 0x6fb0
movq %rax, -0x1fb8(%rbp)
jmp 0x600c
movq -0x1fa8(%rbp), %rdi
movq -0x1fb8(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x1fc0(%rbp)
jmp 0x602c
movq -0x1fc0(%rbp), %rdi
leaq 0xe26b(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x1fc8(%rbp)
jmp 0x6048
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x880(%rbp), %rdi
callq 0x7c70
movq %rax, -0x1fd0(%rbp)
jmp 0x6065
movq -0x1fd0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x1fd8(%rbp)
jmp 0x607e
movq -0x1fc8(%rbp), %rdi
movq -0x1fd8(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x1fe0(%rbp)
jmp 0x609e
movq -0x1fe0(%rbp), %rdi
leaq 0xe1f9(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x1fe8(%rbp)
jmp 0x60ba
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x880(%rbp), %rdi
callq 0x7c70
movq %rax, -0x1ff0(%rbp)
jmp 0x60d7
movq -0x1ff0(%rbp), %rdi
movl $0x1, %esi
callq 0x6fb0
movq %rax, -0x1ff8(%rbp)
jmp 0x60f1
movq -0x1fe8(%rbp), %rdi
movq -0x1ff8(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x2000(%rbp)
jmp 0x6111
movq -0x2000(%rbp), %rdi
leaq 0xe186(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x2008(%rbp)
jmp 0x612d
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x880(%rbp), %rdi
callq 0x7c70
movq %rax, -0x2010(%rbp)
jmp 0x614a
movq -0x2010(%rbp), %rdi
movl $0x2, %esi
callq 0x6fb0
movq %rax, -0x2018(%rbp)
jmp 0x6164
movq -0x2008(%rbp), %rdi
movq -0x2018(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x2020(%rbp)
jmp 0x6184
movq -0x2020(%rbp), %rdi
leaq 0xe10d(%rip), %rsi      # 0x1429f
callq 0x32f0
jmp 0x6199
jmp 0x619b
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x8c8(%rbp), %rdi
callq 0x7cb0
movq %rax, -0x2028(%rbp)
jmp 0x61b8
movq -0x2028(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x2038(%rbp)
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x880(%rbp), %rdi
callq 0x7c70
movq %rax, -0x2030(%rbp)
jmp 0x61e8
movq -0x2030(%rbp), %rdi
callq 0xd9f0
movsd %xmm0, -0x2040(%rbp)
jmp 0x61fe
movsd -0x2040(%rbp), %xmm1
movsd -0x2038(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x2050(%rbp)
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x880(%rbp), %rdi
callq 0x7c70
movq %rax, -0x2048(%rbp)
jmp 0x6237
movq -0x2048(%rbp), %rdi
callq 0xd9f0
movsd %xmm0, -0x2058(%rbp)
jmp 0x624d
movsd -0x2058(%rbp), %xmm2
movsd -0x2050(%rbp), %xmm0
movsd -0x1970(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1970(%rbp)
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x850(%rbp), %rdi
callq 0x7c70
movq %rax, -0x2060(%rbp)
jmp 0x6292
movq -0x2060(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x2068(%rbp)
jmp 0x62ab
movq -0x2068(%rbp), %rax
movsd (%rax), %xmm0
leaq -0x1908(%rbp), %rdi
callq 0x3590
movq %rax, -0x2070(%rbp)
jmp 0x62cb
movq -0x2070(%rbp), %rdi
leaq 0xdfcc(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x2078(%rbp)
jmp 0x62e7
movl -0x1cb4(%rbp), %eax
movl %eax, %esi
leaq -0x850(%rbp), %rdi
callq 0x7c70
movq %rax, -0x2080(%rbp)
jmp 0x6304
movq -0x2080(%rbp), %rdi
movl $0x1, %esi
callq 0x6fb0
movq %rax, -0x2088(%rbp)
jmp 0x631e
movq -0x2078(%rbp), %rdi
movq -0x2088(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x2090(%rbp)
jmp 0x633e
movq -0x2090(%rbp), %rdi
leaq 0xdf53(%rip), %rsi      # 0x1429f
callq 0x32f0
jmp 0x6353
jmp 0x6355
movl -0x1cb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1cb4(%rbp)
jmp 0x5f0a
movsd 0xdca7(%rip), %xmm0     # 0x14018
mulsd -0x1970(%rbp), %xmm0
movsd %xmm0, -0x1970(%rbp)
movl $0x0, -0x1cb8(%rbp)
movl -0x1cb8(%rbp), %eax
cmpl -0x7fc(%rbp), %eax
jae 0x6827
movl $0x0, -0x1cbc(%rbp)
movl -0x1cbc(%rbp), %eax
cmpl -0x800(%rbp), %eax
jae 0x6811
testb $0x1, -0x411(%rbp)
je 0x6549
testb $0x1, -0x1979(%rbp)
je 0x6549
movl -0x1cb8(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd -0x830(%rbp), %xmm1
mulsd %xmm1, %xmm0
leaq -0x1308(%rbp), %rdi
callq 0x3590
movq %rax, -0x2098(%rbp)
jmp 0x63ff
movq -0x2098(%rbp), %rdi
leaq 0xde98(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x20a0(%rbp)
jmp 0x641b
movq -0x20a0(%rbp), %rdi
movl -0x1cbc(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd -0x838(%rbp), %xmm1
mulsd %xmm1, %xmm0
callq 0x3590
movq %rax, -0x20a8(%rbp)
jmp 0x6447
movq -0x20a8(%rbp), %rdi
leaq 0xde50(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x20b0(%rbp)
jmp 0x6463
movl -0x1cb8(%rbp), %eax
movl %eax, %esi
leaq -0x1968(%rbp), %rdi
callq 0x7cf0
movq %rax, %rdi
movl -0x1cbc(%rbp), %eax
movl %eax, %esi
callq 0x7d10
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x20b8(%rbp)
jmp 0x649c
movq -0x20b0(%rbp), %rdi
movq -0x20b8(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x20c0(%rbp)
jmp 0x64bc
movq -0x20c0(%rbp), %rdi
leaq 0xdddb(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x20c8(%rbp)
jmp 0x64d8
movl -0x1cb8(%rbp), %eax
movl %eax, %esi
leaq -0x1968(%rbp), %rdi
callq 0x7cf0
movq %rax, %rdi
movl -0x1cbc(%rbp), %eax
movl %eax, %esi
callq 0x7d10
movq %rax, %rdi
movl $0x1, %esi
callq 0x6fb0
movq %rax, -0x20d0(%rbp)
jmp 0x6512
movq -0x20c8(%rbp), %rdi
movq -0x20d0(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x20d8(%rbp)
jmp 0x6532
movq -0x20d8(%rbp), %rdi
leaq 0xdd5f(%rip), %rsi      # 0x1429f
callq 0x32f0
jmp 0x6547
jmp 0x6549
testb $0x1, -0x469(%rbp)
je 0x6657
testb $0x1, -0x1979(%rbp)
je 0x6657
movl -0x1cb8(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd -0x830(%rbp), %xmm1
mulsd %xmm1, %xmm0
leaq -0x1508(%rbp), %rdi
callq 0x3590
movq %rax, -0x20e0(%rbp)
jmp 0x658f
movq -0x20e0(%rbp), %rdi
leaq 0xdd08(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x20e8(%rbp)
jmp 0x65ab
movq -0x20e8(%rbp), %rdi
movl -0x1cbc(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd -0x838(%rbp), %xmm1
mulsd %xmm1, %xmm0
callq 0x3590
movq %rax, -0x20f0(%rbp)
jmp 0x65d7
movq -0x20f0(%rbp), %rdi
leaq 0xdcc0(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x20f8(%rbp)
jmp 0x65f3
movl -0x1cb8(%rbp), %eax
movl %eax, %esi
leaq -0x1938(%rbp), %rdi
callq 0x7d10
movq %rax, %rdi
movl -0x1cbc(%rbp), %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x2100(%rbp)
jmp 0x6620
movq -0x20f8(%rbp), %rdi
movq -0x2100(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x2108(%rbp)
jmp 0x6640
movq -0x2108(%rbp), %rdi
leaq 0xdc51(%rip), %rsi      # 0x1429f
callq 0x32f0
jmp 0x6655
jmp 0x6657
testb $0x1, -0x4c1(%rbp)
je 0x6765
testb $0x1, -0x1979(%rbp)
je 0x6765
movl -0x1cb8(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd -0x830(%rbp), %xmm1
mulsd %xmm1, %xmm0
leaq -0x1708(%rbp), %rdi
callq 0x3590
movq %rax, -0x2110(%rbp)
jmp 0x669d
movq -0x2110(%rbp), %rdi
leaq 0xdbfa(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x2118(%rbp)
jmp 0x66b9
movq -0x2118(%rbp), %rdi
movl -0x1cbc(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd -0x838(%rbp), %xmm1
mulsd %xmm1, %xmm0
callq 0x3590
movq %rax, -0x2120(%rbp)
jmp 0x66e5
movq -0x2120(%rbp), %rdi
leaq 0xdbb2(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x2128(%rbp)
jmp 0x6701
movl -0x1cb8(%rbp), %eax
movl %eax, %esi
leaq -0x1920(%rbp), %rdi
callq 0x7d10
movq %rax, %rdi
movl -0x1cbc(%rbp), %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x2130(%rbp)
jmp 0x672e
movq -0x2128(%rbp), %rdi
movq -0x2130(%rbp), %rax
movsd (%rax), %xmm0
callq 0x3590
movq %rax, -0x2138(%rbp)
jmp 0x674e
movq -0x2138(%rbp), %rdi
leaq 0xdb43(%rip), %rsi      # 0x1429f
callq 0x32f0
jmp 0x6763
jmp 0x6765
movl -0x1cb8(%rbp), %eax
movl %eax, %esi
leaq -0x1920(%rbp), %rdi
callq 0x7d10
movq %rax, %rdi
movl -0x1cbc(%rbp), %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x2140(%rbp)
jmp 0x6792
movq -0x2140(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x2150(%rbp)
movl -0x1cb8(%rbp), %eax
movl %eax, %esi
leaq -0x1938(%rbp), %rdi
callq 0x7d10
movq %rax, %rdi
movl -0x1cbc(%rbp), %eax
movl %eax, %esi
callq 0x6fb0
movq %rax, -0x2148(%rbp)
jmp 0x67d2
movsd -0x2150(%rbp), %xmm0
movq -0x2148(%rbp), %rax
movsd (%rax), %xmm2
movsd -0x1978(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1978(%rbp)
movl -0x1cbc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1cbc(%rbp)
jmp 0x63a7
jmp 0x6813
movl -0x1cb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1cb8(%rbp)
jmp 0x638b
movsd -0x1978(%rbp), %xmm0
movsd 0xd7e1(%rip), %xmm1     # 0x14018
mulsd %xmm1, %xmm0
movsd %xmm0, -0x1978(%rbp)
movl -0x19a4(%rbp), %esi
leaq -0xf08(%rbp), %rdi
callq 0x33c0
movq %rax, -0x2158(%rbp)
jmp 0x685e
movq -0x2158(%rbp), %rdi
leaq 0xda39(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x2160(%rbp)
jmp 0x687a
movq -0x2160(%rbp), %rdi
movsd -0x1970(%rbp), %xmm0
callq 0x3590
movq %rax, -0x2168(%rbp)
jmp 0x6897
movq -0x2168(%rbp), %rdi
leaq 0xda00(%rip), %rsi      # 0x142a5
callq 0x32f0
movq %rax, -0x2170(%rbp)
jmp 0x68b3
movq -0x2170(%rbp), %rdi
movsd -0x1978(%rbp), %xmm0
callq 0x3590
movq %rax, -0x2178(%rbp)
jmp 0x68d0
movq -0x2178(%rbp), %rdi
leaq 0xd9c1(%rip), %rsi      # 0x1429f
callq 0x32f0
jmp 0x68e5
testb $0x1, -0x3b9(%rbp)
je 0x6907
testb $0x1, -0x1979(%rbp)
je 0x6907
leaq -0x1108(%rbp), %rdi
callq 0x3400
jmp 0x6905
jmp 0x6907
testb $0x1, -0x411(%rbp)
je 0x6929
testb $0x1, -0x1979(%rbp)
je 0x6929
leaq -0x1308(%rbp), %rdi
callq 0x3400
jmp 0x6927
jmp 0x6929
testb $0x1, -0x469(%rbp)
je 0x694b
testb $0x1, -0x1979(%rbp)
je 0x694b
leaq -0x1508(%rbp), %rdi
callq 0x3400
jmp 0x6949
jmp 0x694b
testb $0x1, -0x4c1(%rbp)
je 0x696d
testb $0x1, -0x1979(%rbp)
je 0x696d
leaq -0x1708(%rbp), %rdi
callq 0x3400
jmp 0x696b
jmp 0x696d
testb $0x1, -0x519(%rbp)
je 0x698f
testb $0x1, -0x1979(%rbp)
je 0x698f
leaq -0x1908(%rbp), %rdi
callq 0x3400
jmp 0x698d
jmp 0x698f
callq 0x31e0
movq %rax, -0x1cc8(%rbp)
movq -0x1cc8(%rbp), %rax
subq -0x19b0(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0xd08(%rbp)
movsd -0xd08(%rbp), %xmm0
movsd 0xd65a(%rip), %xmm1     # 0x14020
divsd %xmm1, %xmm0
movsd %xmm0, -0xd00(%rbp)
testb $0x1, -0x1979(%rbp)
jne 0x6a62
movq 0x155f2(%rip), %rdi     # 0x1bfd8
leaq 0xd8b4(%rip), %rsi      # 0x142a1
callq 0x32f0
movq %rax, -0x2180(%rbp)
jmp 0x69fb
movq -0x2180(%rbp), %rdi
movsd -0xd00(%rbp), %xmm0
movl -0x608(%rbp), %eax
movl -0x19a4(%rbp), %ecx
subl %ecx, %eax
cvtsi2sd %rax, %xmm1
mulsd %xmm1, %xmm0
callq 0x3590
movq %rax, -0x2188(%rbp)
jmp 0x6a2f
movq -0x2188(%rbp), %rdi
leaq 0xd86a(%rip), %rsi      # 0x142a7
callq 0x32f0
movq %rax, -0x2190(%rbp)
jmp 0x6a4b
movq -0x2190(%rbp), %rdi
movq 0x1556f(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x6a60
jmp 0x6a62
jmp 0x6a64
movl -0x19a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x19a4(%rbp)
jmp 0x539c
leaq -0xf08(%rbp), %rdi
callq 0x3400
jmp 0x6a86
movq 0x1554b(%rip), %rdi     # 0x1bfd8
leaq 0xd81f(%rip), %rsi      # 0x142b3
callq 0x32f0
movq %rax, -0x2198(%rbp)
jmp 0x6aa2
movq -0x2198(%rbp), %rdi
movq 0x15518(%rip), %rsi     # 0x1bfc8
callq 0x3320
jmp 0x6ab7
movl $0x0, -0x4(%rbp)
movl $0x1, -0x38c(%rbp)
leaq -0x1968(%rbp), %rdi
callq 0x7780
leaq -0x1950(%rbp), %rdi
callq 0x76f0
leaq -0x1938(%rbp), %rdi
callq 0x76f0
leaq -0x1920(%rbp), %rdi
callq 0x76f0
leaq -0x1908(%rbp), %rdi
callq 0x3430
leaq -0x1708(%rbp), %rdi
callq 0x3430
leaq -0x1508(%rbp), %rdi
callq 0x3430
leaq -0x1308(%rbp), %rdi
callq 0x3430
leaq -0x1108(%rbp), %rdi
callq 0x3430
leaq -0xf08(%rbp), %rdi
callq 0x3430
leaq -0xbb0(%rbp), %rdi
callq 0x7d30
jmp 0x6bd7
leaq -0x1968(%rbp), %rdi
callq 0x7780
leaq -0x1950(%rbp), %rdi
callq 0x76f0
leaq -0x1938(%rbp), %rdi
callq 0x76f0
leaq -0x1920(%rbp), %rdi
callq 0x76f0
leaq -0x1908(%rbp), %rdi
callq 0x3430
leaq -0x1708(%rbp), %rdi
callq 0x3430
leaq -0x1508(%rbp), %rdi
callq 0x3430
leaq -0x1308(%rbp), %rdi
callq 0x3430
leaq -0x1108(%rbp), %rdi
callq 0x3430
leaq -0xf08(%rbp), %rdi
callq 0x3430
leaq -0xbb0(%rbp), %rdi
callq 0x7d30
jmp 0x6c39
leaq -0xae8(%rbp), %rdi
callq 0x3080
leaq -0x8e0(%rbp), %rdi
callq 0x7d90
leaq -0x8c8(%rbp), %rdi
callq 0x7df0
leaq -0x8b0(%rbp), %rdi
callq 0x7df0
leaq -0x898(%rbp), %rdi
callq 0x7df0
leaq -0x880(%rbp), %rdi
callq 0x76f0
leaq -0x868(%rbp), %rdi
callq 0x76f0
leaq -0x850(%rbp), %rdi
callq 0x76f0
jmp 0x6c9b
leaq -0xae8(%rbp), %rdi
callq 0x3080
leaq -0x8e0(%rbp), %rdi
callq 0x7d90
leaq -0x8c8(%rbp), %rdi
callq 0x7df0
leaq -0x8b0(%rbp), %rdi
callq 0x7df0
leaq -0x898(%rbp), %rdi
callq 0x7df0
leaq -0x880(%rbp), %rdi
callq 0x76f0
leaq -0x868(%rbp), %rdi
callq 0x76f0
leaq -0x850(%rbp), %rdi
callq 0x76f0
jmp 0x6ca9
leaq -0x828(%rbp), %rdi
callq 0x3140
jmp 0x6cb7
leaq -0x828(%rbp), %rdi
callq 0x3140
jmp 0x6cc5
leaq -0x7f8(%rbp), %rdi
callq 0x3140
jmp 0x6cd3
leaq -0x7f8(%rbp), %rdi
callq 0x3140
jmp 0x6ced
leaq -0x798(%rbp), %rdi
callq 0x3140
leaq -0x770(%rbp), %rdi
callq 0x7340
jmp 0x6d07
leaq -0x798(%rbp), %rdi
callq 0x3140
leaq -0x770(%rbp), %rdi
callq 0x7340
jmp 0x6d2d
leaq -0x5b0(%rbp), %rdi
callq 0x31d0
leaq -0x590(%rbp), %rdi
callq 0x31d0
leaq -0x3b8(%rbp), %rdi
callq 0x3140
jmp 0x6d53
leaq -0x5b0(%rbp), %rdi
callq 0x31d0
leaq -0x590(%rbp), %rdi
callq 0x31d0
leaq -0x3b8(%rbp), %rdi
callq 0x3140
jmp 0x6d82
leaq -0x388(%rbp), %rdi
callq 0x3080
leaq -0x178(%rbp), %rdi
callq 0x31d0
leaq -0x148(%rbp), %rdi
callq 0x7e50
leaq -0x38(%rbp), %rdi
callq 0x3140
jmp 0x6db1
leaq -0x388(%rbp), %rdi
callq 0x3080
leaq -0x178(%rbp), %rdi
callq 0x31d0
leaq -0x148(%rbp), %rdi
callq 0x7e50
leaq -0x38(%rbp), %rdi
callq 0x3140
jmp 0x6dbd
movl -0x4(%rbp), %eax
addq $0x21c0, %rsp           # imm = 0x21C0
popq %rbp
retq
movq -0x150(%rbp), %rdi
callq 0x3530
nopl (%rax)