// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x16b8, %rsp           # imm = 0x16B8
cmpl $0x1, %edi
jg 0x36ee
movq 0xb92f(%rip), %rbx      # 0xefd8
leaq 0x79a0(%rip), %rsi      # 0xb050
movl $0x2d, %edx
movq %rbx, %rdi
callq 0x32e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31c0
movl $0x1, %ebx
jmp 0x6767
movq %rsi, %rbx
leaq 0x218(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0xba0(%rsp), %rdi
callq 0x32b0
movq 0x8(%rbx), %rsi
leaq 0x658(%rsp), %rdi
leaq 0x14b0(%rsp), %rdx
callq 0x6e2a
leaq 0x14b0(%rsp), %rdi
leaq 0x658(%rsp), %rsi
movl $0x4, %edx
callq 0x33e0
leaq 0xba0(%rsp), %rdi
leaq 0x14b0(%rsp), %rsi
leaq 0x218(%rsp), %rdx
xorl %ecx, %ecx
callq 0x34a0
testb %al, %al
je 0x3d76
leaq 0x7937(%rip), %rsi      # 0xb0a5
leaq 0x218(%rsp), %rdi
callq 0x30c0
leaq 0x410(%rsp), %rdi
movq %rax, %rsi
callq 0x33b0
leaq 0x3d8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7a71(%rip), %rsi      # 0xb20f
leaq 0x7a75(%rip), %rdx      # 0xb21a
leaq 0x3c8(%rsp), %rdi
callq 0x756e
leaq 0x768(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x33b0
leaq 0x3c8(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x6e67
movb %al, 0xf(%rsp)
leaq 0x768(%rsp), %rdi
callq 0x3120
movq 0x3c8(%rsp), %rdi
cmpq %r14, %rdi
je 0x380a
movq 0x3d8(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x3b8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7890(%rip), %rsi      # 0xb0ad
leaq 0x7897(%rip), %rdx      # 0xb0bb
leaq 0x3a8(%rsp), %rdi
callq 0x756e
leaq 0x740(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x33b0
leaq 0x3a8(%rsp), %rdi
leaq 0x740(%rsp), %rsi
callq 0x6e67
movb %al, 0xe(%rsp)
leaq 0x740(%rsp), %rdi
callq 0x3120
movq 0x3a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3889
movq 0x3b8(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x398(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7820(%rip), %rsi      # 0xb0bc
leaq 0x782b(%rip), %rdx      # 0xb0ce
leaq 0x388(%rsp), %rdi
callq 0x756e
leaq 0x718(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x33b0
leaq 0x388(%rsp), %rdi
leaq 0x718(%rsp), %rsi
callq 0x6e67
movb %al, 0xd(%rsp)
leaq 0x718(%rsp), %rdi
callq 0x3120
movq 0x388(%rsp), %rdi
cmpq %r14, %rdi
je 0x3908
movq 0x398(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x378(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x77b4(%rip), %rsi      # 0xb0cf
leaq 0x77bb(%rip), %rdx      # 0xb0dd
leaq 0x368(%rsp), %rdi
callq 0x756e
leaq 0x6f0(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x33b0
leaq 0x368(%rsp), %rdi
leaq 0x6f0(%rsp), %rsi
callq 0x6e67
movb %al, 0xc(%rsp)
leaq 0x6f0(%rsp), %rdi
callq 0x3120
movq 0x368(%rsp), %rdi
cmpq %r14, %rdi
je 0x3987
movq 0x378(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x358(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7894(%rip), %rsi      # 0xb22e
leaq 0x7892(%rip), %rdx      # 0xb233
leaq 0x348(%rsp), %rdi
callq 0x756e
leaq 0x6c8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x33b0
leaq 0x348(%rsp), %rdi
leaq 0x6c8(%rsp), %rsi
callq 0x6e67
movb %al, 0xb(%rsp)
leaq 0x6c8(%rsp), %rdi
callq 0x3120
movq 0x348(%rsp), %rdi
cmpq %r14, %rdi
je 0x3a06
movq 0x358(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x76d1(%rip), %rsi      # 0xb0de
leaq 0x218(%rsp), %rdi
callq 0x30c0
leaq 0x638(%rsp), %rdi
movq %rax, %rsi
callq 0x3480
leaq 0x7674(%rip), %rsi      # 0xb0a5
leaq 0x438(%rsp), %rdi
callq 0x3420
leaq 0x76a0(%rip), %rdx      # 0xb0e5
leaq 0x790(%rsp), %rdi
leaq 0x218(%rsp), %rsi
leaq 0x438(%rsp), %rcx
callq 0x3160
leaq 0x180(%rsp), %rdi
leaq 0x790(%rsp), %rsi
callq 0x3480
leaq 0x790(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
callq 0x3120
leaq 0x7654(%rip), %rsi      # 0xb0ec
leaq 0x218(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x3dc6
leaq 0x7638(%rip), %rsi      # 0xb0ec
leaq 0x218(%rsp), %rdi
callq 0x30c0
movq %rax, %rdi
callq 0x3130
movl %eax, 0x6c(%rsp)
leaq 0x438(%rsp), %rdi
movl $0x32, %esi
callq 0x3180
leaq 0x763f(%rip), %rdx      # 0xb125
leaq 0x790(%rsp), %rdi
leaq 0x218(%rsp), %rsi
leaq 0x438(%rsp), %rcx
callq 0x3160
leaq 0x790(%rsp), %rdi
callq 0x3130
movl %eax, 0xe8(%rsp)
leaq 0x790(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
movl $0xa, %esi
callq 0x3180
leaq 0x75e1(%rip), %rdx      # 0xb12b
leaq 0x790(%rsp), %rdi
leaq 0x218(%rsp), %rsi
leaq 0x438(%rsp), %rcx
callq 0x3160
leaq 0x790(%rsp), %rdi
callq 0x3130
movl %eax, 0xd4(%rsp)
leaq 0x790(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
movl $0x4277dc9, %esi        # imm = 0x4277DC9
callq 0x3180
leaq 0x758a(%rip), %rdx      # 0xb138
leaq 0x790(%rsp), %rdi
leaq 0x218(%rsp), %rsi
leaq 0x438(%rsp), %rcx
callq 0x3160
leaq 0x790(%rsp), %rdi
callq 0x3130
leaq 0x790(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
movsd 0x7406(%rip), %xmm0     # 0xb008
callq 0x3350
leaq 0x752f(%rip), %rdx      # 0xb13d
leaq 0x790(%rsp), %rdi
leaq 0x218(%rsp), %rsi
leaq 0x438(%rsp), %rcx
callq 0x3160
leaq 0x790(%rsp), %rdi
callq 0x31d0
movsd %xmm0, 0xb8(%rsp)
leaq 0x790(%rsp), %rdi
callq 0x3120
leaq 0x438(%rsp), %rdi
callq 0x3120
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0x208(%rsp)
movq $0x3, 0xf0(%rsp)
movl $0x18, %edi
callq 0x3290
movq %rax, 0xf8(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq $0x0, 0x10(%rax)
leaq 0x3e8(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0x748f(%rip), %rsi      # 0xb140
leaq 0x218(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x3e16
leaq 0x7473(%rip), %rsi      # 0xb140
leaq 0x218(%rsp), %rdi
callq 0x30c0
leaq 0x3e8(%rsp), %rdi
movq %rax, %rsi
callq 0x3330
leaq 0x3e8(%rsp), %rdi
callq 0x3400
cmpl $0x3, %eax
jne 0x4158
leaq 0x3e8(%rsp), %rdi
xorl %esi, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movq 0xf8(%rsp), %rax
movsd %xmm0, (%rax)
leaq 0x3e8(%rsp), %rdi
movl $0x1, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movq 0xf8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x3e8(%rsp), %rdi
movl $0x2, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movq 0xf8(%rsp), %rax
movsd %xmm0, 0x10(%rax)
jmp 0x3e94
movq 0xb25b(%rip), %rbx      # 0xefd8
leaq 0x72fa(%rip), %rsi      # 0xb07e
movl $0x26, %edx
movq %rbx, %rdi
callq 0x32e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0xb229(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x66d0
movq 0xb20b(%rip), %rbx      # 0xefd8
leaq 0x731a(%rip), %rsi      # 0xb0ee
movl $0x36, %edx
movq %rbx, %rdi
callq 0x32e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0xb1d9(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x6681
xorpd %xmm0, %xmm0
movapd %xmm0, 0x790(%rsp)
movq $0x0, 0x7a0(%rsp)
movq 0xf8(%rsp), %rdi
cmpq $0x3, 0xf0(%rsp)
jne 0x3e50
movupd %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
jmp 0x3e94
testq %rdi, %rdi
je 0x3e5a
callq 0x3270
movq $0x3, 0xf0(%rsp)
movl $0x18, %edi
callq 0x3290
movq %rax, 0xf8(%rsp)
movq 0xf0(%rsp), %rdx
shlq $0x3, %rdx
leaq 0x790(%rsp), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x6a0(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0x72cf(%rip), %rsi      # 0xb179
leaq 0x218(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x3f31
leaq 0x72b7(%rip), %rsi      # 0xb179
leaq 0x218(%rsp), %rdi
callq 0x30c0
leaq 0x6a0(%rsp), %rdi
movq %rax, %rsi
callq 0x3330
leaq 0x6a0(%rsp), %rdi
callq 0x3400
cmpl $0x2, %eax
jne 0x41a8
leaq 0x6a0(%rsp), %rdi
xorl %esi, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movsd %xmm0, 0x178(%rsp)
leaq 0x6a0(%rsp), %rdi
movl $0x1, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
jmp 0x3f4b
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x178(%rsp)
movsd 0x70c5(%rip), %xmm0     # 0xb010
movsd %xmm0, 0x200(%rsp)
leaq 0x678(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0x7249(%rip), %rsi      # 0xb1b3
leaq 0x218(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x4002
leaq 0x722d(%rip), %rsi      # 0xb1b3
leaq 0x218(%rsp), %rdi
callq 0x30c0
leaq 0x678(%rsp), %rdi
movq %rax, %rsi
callq 0x3330
leaq 0x678(%rsp), %rdi
callq 0x3400
cmpl $0x2, %eax
jne 0x6624
leaq 0x678(%rsp), %rdi
xorl %esi, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x3130
movl %eax, 0xc4(%rsp)
leaq 0x678(%rsp), %rdi
movl $0x1, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x3130
movl 0xc4(%rsp), %ecx
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
jmp 0x401a
movl $0x10, 0xc4(%rsp)
movl $0x10, %eax
movsd 0x6ffe(%rip), %xmm0     # 0xb018
movl %eax, 0xec(%rsp)
movsd 0x178(%rsp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x170(%rsp)
movsd 0x200(%rsp), %xmm0
movl %eax, %eax
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
xorl %eax, %eax
movq %rax, 0x160(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x150(%rsp)
movq %rax, 0x2f0(%rsp)
movapd %xmm0, 0x2e0(%rsp)
movq %rax, 0x140(%rsp)
movapd %xmm0, 0x130(%rsp)
movq %rax, 0x2d0(%rsp)
movapd %xmm0, 0x2c0(%rsp)
movq %rax, 0x1b0(%rsp)
movapd %xmm0, 0x1a0(%rsp)
movq %rax, 0x1e0(%rsp)
movapd %xmm0, 0x1d0(%rsp)
movq %rax, 0x120(%rsp)
movapd %xmm0, 0x110(%rsp)
leaq 0x790(%rsp), %rdi
leaq 0x638(%rsp), %rsi
movl $0x8, %edx
callq 0x33e0
movq 0x790(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x7b0(%rsp,%rax)
je 0x41f8
movq 0xaec9(%rip), %rbx      # 0xefd8
leaq 0x70d2(%rip), %rsi      # 0xb1e8
movl $0x1d, %edx
movq %rbx, %rdi
callq 0x32e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0xae97(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x657a
movq 0xae79(%rip), %rbx      # 0xefd8
leaq 0x6fe1(%rip), %rsi      # 0xb147
movl $0x31, %edx
movq %rbx, %rdi
callq 0x32e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0xae47(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x6667
movq 0xae29(%rip), %rbx      # 0xefd8
leaq 0x6fce(%rip), %rsi      # 0xb184
movl $0x2e, %edx
movq %rbx, %rdi
callq 0x32e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0xadf7(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x665a
cmpl $0x0, 0x6c(%rsp)
je 0x44f3
xorl %r12d, %r12d
leaq 0x1f8(%rsp), %r14
leaq 0x214(%rsp), %r15
leaq 0x438(%rsp), %r13
leaq 0x2e0(%rsp), %rbp
leaq 0x9a0(%rsp), %rbx
leaq 0x790(%rsp), %rdi
leaq 0x340(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
leaq 0x338(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
leaq 0x330(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
leaq 0x328(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
leaq 0x320(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
movq %r14, %rsi
callq 0x3190
movq %rax, %rdi
movq %r15, %rsi
callq 0x3450
movsd 0x178(%rsp), %xmm0
mulsd 0x200(%rsp), %xmm0
mulsd 0x1f8(%rsp), %xmm0
movl 0x6c(%rsp), %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x1f0(%rsp)
movsd 0x340(%rsp), %xmm0
movsd %xmm0, 0xb8(%rsp)
movsd 0x338(%rsp), %xmm0
movsd %xmm0, 0xc8(%rsp)
movq $0x2, 0x438(%rsp)
movl $0x10, %edi
callq 0x3290
movq %rax, 0x440(%rsp)
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, (%rax)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movsd 0x330(%rsp), %xmm0
movsd %xmm0, 0xb8(%rsp)
movsd 0x328(%rsp), %xmm0
movsd %xmm0, 0xc8(%rsp)
movsd 0x320(%rsp), %xmm0
movsd %xmm0, 0x168(%rsp)
movq $0x3, 0x9a0(%rsp)
movl $0x18, %edi
callq 0x3290
movq %rax, 0x9a8(%rsp)
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, (%rax)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movsd 0x168(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
leaq 0x150(%rsp), %rdi
movq %r13, %rsi
callq 0x6ef8
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x6ef8
movq 0x1a8(%rsp), %rsi
cmpq 0x1b0(%rsp), %rsi
je 0x43ec
movsd 0x1f8(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x1a8(%rsp)
jmp 0x43fc
leaq 0x1a0(%rsp), %rdi
movq %r14, %rdx
callq 0x77ec
movq 0x2c8(%rsp), %rsi
cmpq 0x2d0(%rsp), %rsi
je 0x4429
movsd 0x1f0(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x2c8(%rsp)
jmp 0x4447
leaq 0x2c0(%rsp), %rdi
leaq 0x1f0(%rsp), %rdx
callq 0x77ec
movsd 0x1f0(%rsp), %xmm0
divsd 0x1f8(%rsp), %xmm0
movsd %xmm0, 0xcb0(%rsp)
movq 0x1d8(%rsp), %rsi
cmpq 0x1e0(%rsp), %rsi
je 0x447d
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x1d8(%rsp)
jmp 0x4492
leaq 0x1d0(%rsp), %rdi
leaq 0xcb0(%rsp), %rdx
callq 0x792c
movq 0x118(%rsp), %rsi
cmpq 0x120(%rsp), %rsi
je 0x44bb
movl 0x214(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x118(%rsp)
jmp 0x44cb
leaq 0x110(%rsp), %rdi
movq %r15, %rdx
callq 0x7a0c
movq 0x9a8(%rsp), %rdi
callq 0x3270
movq 0x440(%rsp), %rdi
callq 0x3270
incl %r12d
cmpl 0x6c(%rsp), %r12d
jb 0x422e
leaq 0x448(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6d00(%rip), %rsi      # 0xb206
leaq 0x6d00(%rip), %rdx      # 0xb20d
leaq 0x438(%rsp), %rdi
callq 0x756e
leaq 0x1b8(%rsp), %rdi
leaq 0x438(%rsp), %rsi
leaq 0x9a0(%rsp), %rcx
movl $0x1, %edx
callq 0x6f56
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x4561
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xf(%rsp)
je 0x45c8
leaq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6c8c(%rip), %rsi      # 0xb20e
leaq 0x6c91(%rip), %rdx      # 0xb21a
callq 0x756e
leaq 0x1b8(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x7c9a
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x45c8
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xe(%rsp)
je 0x462f
leaq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6c32(%rip), %rsi      # 0xb21b
leaq 0x6c32(%rip), %rdx      # 0xb222
callq 0x756e
leaq 0x1b8(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x7c9a
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x462f
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xd(%rsp)
je 0x4696
leaq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6bd3(%rip), %rsi      # 0xb223
leaq 0x6bd0(%rip), %rdx      # 0xb227
callq 0x756e
leaq 0x1b8(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x7c9a
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x4696
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xc(%rsp)
je 0x46fd
leaq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6b71(%rip), %rsi      # 0xb228
leaq 0x6b6e(%rip), %rdx      # 0xb22c
callq 0x756e
leaq 0x1b8(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x7c9a
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x46fd
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xb(%rsp)
je 0x4764
leaq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6b0f(%rip), %rsi      # 0xb22d
leaq 0x6b0e(%rip), %rdx      # 0xb233
callq 0x756e
leaq 0x1b8(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x7c9a
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x4764
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x1c0(%rsp), %rax
cmpq 0x1b8(%rsp), %rax
je 0x4894
movl $0x1, %ebp
leaq 0x9b0(%rsp), %r13
xorl %r12d, %r12d
leaq 0x6aa3(%rip), %rbx      # 0xb234
leaq 0x9a0(%rsp), %r14
leaq 0x180(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x6f9e
movq 0x1b8(%rsp), %rax
shlq $0x5, %r12
movq (%rax,%r12), %rsi
movq 0x8(%rax,%r12), %rdx
movq %r14, %rdi
callq 0x3090
leaq 0x448(%rsp), %rsi
movq %rsi, 0x438(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4800
movq %rdx, 0x438(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x448(%rsp)
jmp 0x4808
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x440(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x438(%rsp), %rdi
callq 0x3240
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x4855
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x9a0(%rsp), %rdi
cmpq %r13, %rdi
je 0x4872
movq 0x9b0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x1c0(%rsp), %rax
subq 0x1b8(%rsp), %rax
movl %ebp, %r12d
sarq $0x5, %rax
incl %ebp
cmpq %r12, %rax
ja 0x47a1
movq 0xa73d(%rip), %rbx      # 0xefd8
leaq 0x699c(%rip), %rsi      # 0xb23e
movl $0x15, %edx
movq %rbx, %rdi
callq 0x32e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0xa70b(%rip), %rdi      # 0xefd8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
leaq 0x438(%rsp), %rdi
callq 0x3440
leaq 0x9a0(%rsp), %rdi
callq 0x3440
leaq 0xcb0(%rsp), %rdi
callq 0x3440
leaq 0x12b0(%rsp), %rdi
callq 0x3440
leaq 0x10b0(%rsp), %rdi
callq 0x3440
leaq 0xeb0(%rsp), %rdi
callq 0x3440
xorpd %xmm0, %xmm0
movapd %xmm0, 0x2a0(%rsp)
xorl %eax, %eax
movq %rax, 0x2b0(%rsp)
movq %rax, 0x290(%rsp)
movapd %xmm0, 0x280(%rsp)
movq %rax, 0x270(%rsp)
movapd %xmm0, 0x260(%rsp)
movq %rax, 0x250(%rsp)
movapd %xmm0, 0x240(%rsp)
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
addq %rsi, %rdx
leaq 0x40(%rsp), %rdi
callq 0x74d8
leaq 0x68b5(%rip), %rsi      # 0xb254
leaq 0x40(%rsp), %rdi
callq 0x34b0
leaq 0x438(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x49dc
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpl $0x0, 0xe8(%rsp)
je 0x63c4
movl 0xd4(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x308(%rsp)
movb 0xf(%rsp), %cl
movl %ecx, %eax
movb 0xe(%rsp), %dl
orb %dl, %al
movb 0xd(%rsp), %sil
movl %esi, %r8d
movb 0xc(%rsp), %dil
orb %dil, %r8b
orb %al, %r8b
movb 0xb(%rsp), %al
orb %al, %r8b
xorb $0x1, %r8b
movb %r8b, 0xb6(%rsp)
xorb $0x1, %cl
movb %cl, 0xf(%rsp)
xorb $0x1, %dl
movb %dl, 0xe(%rsp)
xorb $0x1, %sil
movb %sil, 0xd(%rsp)
xorb $0x1, %dil
movb %dil, 0xc(%rsp)
xorb $0x1, %al
movb %al, 0xb(%rsp)
movl 0xe8(%rsp), %eax
movq %rax, 0x300(%rsp)
xorl %ebx, %ebx
callq 0x31a0
movq %rax, 0x310(%rsp)
movl %ebx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x308(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x10(%rsp), %r15
movq %r15, %rsi
callq 0x8526
movsd %xmm0, 0xd8(%rsp)
movq %r15, %rdi
leaq 0x150(%rsp), %rsi
leaq 0x2c0(%rsp), %rdx
leaq 0x170(%rsp), %r13
movq %r13, %rcx
leaq 0xe0(%rsp), %r8
leaq 0xc4(%rsp), %rbp
movq %rbp, %r9
leaq 0x6c(%rsp), %rax
pushq %rax
leaq 0xf4(%rsp), %r12
pushq %r12
callq 0x863f
addq $0x10, %rsp
movq 0x2b0(%rsp), %rax
movaps 0x10(%rsp), %xmm0
movq 0x20(%rsp), %rcx
movq %rcx, 0x2b0(%rsp)
movaps 0x2a0(%rsp), %xmm1
movaps %xmm0, 0x2a0(%rsp)
movaps %xmm1, 0x40(%rsp)
movq %rax, 0x50(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x7026
movq %r15, %rdi
callq 0x7026
movq %r15, %rdi
leaq 0x2a0(%rsp), %rsi
movq %r13, %rdx
leaq 0xe0(%rsp), %rcx
movq %rbp, %r8
movq %r12, %r9
callq 0x8941
movq 0x290(%rsp), %rax
movaps 0x10(%rsp), %xmm0
movq 0x20(%rsp), %rcx
movq %rcx, 0x290(%rsp)
movaps 0x280(%rsp), %xmm1
movaps %xmm0, 0x280(%rsp)
movaps %xmm1, 0x40(%rsp)
movq %rax, 0x50(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
movq %r14, %rdi
callq 0x7026
movq %r15, %rdi
callq 0x7026
movq %r15, %rdi
leaq 0x280(%rsp), %rsi
movq %r13, %rdx
leaq 0xe0(%rsp), %rcx
movq %rbp, %r8
movq %r12, %r9
callq 0x903d
movq 0x250(%rsp), %rax
movaps 0x10(%rsp), %xmm0
movq 0x20(%rsp), %rcx
movq %rcx, 0x250(%rsp)
movaps 0x240(%rsp), %xmm1
movaps %xmm0, 0x240(%rsp)
movaps %xmm1, 0x40(%rsp)
movq %rax, 0x50(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
movq %r14, %rdi
callq 0x706e
movq %r15, %rdi
callq 0x706e
subq $0x8, %rsp
movq %r15, %rdi
leaq 0x248(%rsp), %rsi
leaq 0x158(%rsp), %rdx
leaq 0x118(%rsp), %rcx
movq %r13, %r8
leaq 0xe8(%rsp), %r9
leaq 0x74(%rsp), %rax
pushq %rax
pushq %r12
pushq %rbp
callq 0x93c8
addq $0x20, %rsp
movq 0x270(%rsp), %rax
movapd 0x10(%rsp), %xmm0
movq 0x20(%rsp), %rcx
movq %rcx, 0x270(%rsp)
movapd 0x260(%rsp), %xmm1
movapd %xmm0, 0x260(%rsp)
movapd %xmm1, 0x40(%rsp)
movq %rax, 0x50(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
movq %r14, %rdi
callq 0x7026
movq %r15, %rdi
callq 0x7026
testq %rbx, %rbx
jne 0x4d32
movabsq $-0x4010000000000000, %rax # imm = 0xBFF0000000000000
movq %rax, 0x40(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x2e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
leaq 0x110(%rsp), %rcx
leaq 0x260(%rsp), %r8
leaq 0xf0(%rsp), %r9
leaq 0x6c(%rsp), %rax
pushq %rax
leaq 0x210(%rsp), %rax
pushq %rax
callq 0xa1ab
addq $0x10, %rsp
movq %rbx, 0x108(%rsp)
leaq 0x150(%rsp), %rdi
leaq 0x2e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
leaq 0x110(%rsp), %rcx
leaq 0x260(%rsp), %r8
leaq 0xf0(%rsp), %r9
leaq 0x6c(%rsp), %rax
pushq %rax
leaq 0x210(%rsp), %rax
pushq %rax
leaq 0x210(%rsp), %rax
pushq %rax
leaq 0x190(%rsp), %rax
pushq %rax
callq 0xa050
addq $0x20, %rsp
leaq 0x130(%rsp), %rdi
leaq 0x2e0(%rsp), %rsi
callq 0x70b6
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x40(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
leaq 0x110(%rsp), %rcx
leaq 0x260(%rsp), %r8
leaq 0xf0(%rsp), %r9
leaq 0x6c(%rsp), %rax
pushq %rax
leaq 0x210(%rsp), %rax
pushq %rax
callq 0xa1ab
addq $0x10, %rsp
movsd 0xd8(%rsp), %xmm0
ucomisd 0x6222(%rip), %xmm0     # 0xb030
setp %al
setne %cl
orb %al, %cl
orb 0xb6(%rsp), %cl
jne 0x4e8a
movl $0x15, %edx
movq 0xa1ad(%rip), %rdi      # 0xefd8
leaq 0x6435(%rip), %rsi      # 0xb267
callq 0x32e0
movq 0xa19a(%rip), %rdi      # 0xefd8
movq 0x108(%rsp), %rsi
callq 0x31b0
movq %rax, %r13
movl $0x3, %edx
movq %rax, %rdi
leaq 0x63f3(%rip), %rsi      # 0xb250
callq 0x32e0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31c0
movsd 0xd8(%rsp), %xmm0
ucomisd 0x6195(%rip), %xmm0     # 0xb030
setp %al
setne %cl
orb %al, %cl
orb 0xf(%rsp), %cl
movb %cl, 0x3f(%rsp)
movq 0x108(%rsp), %rbx
jne 0x512d
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x74d8
movq %r14, %rdi
leaq 0x638d(%rip), %rsi      # 0xb27d
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x4f44
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x4f3d
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x4f42
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x4f44
movl %ecx, %edx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x4f07
addl $-0x3, %eax
jmp 0x4f44
addl $-0x2, %eax
jmp 0x4f44
decl %eax
movl %eax, %esi
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x90(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movl %ebx, %edx
callq 0x725c
movq 0x70(%rsp), %rcx
movl $0xf, %edi
leaq 0x80(%rsp), %rax
cmpq %rax, %rcx
je 0x4f9a
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %r8
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x4fd7
movl $0xf, %edi
leaq 0xa0(%rsp), %r9
cmpq %r9, %rsi
je 0x4fd2
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x4fe3
leaq 0x70(%rsp), %rdi
callq 0x3090
jmp 0x4ff4
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32d0
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x5019
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5021
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x10(%rsp), %rdi
leaq 0x6246(%rip), %rsi      # 0xb290
callq 0x34b0
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5077
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x507f
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x9a0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x50ca
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x50e6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x510b
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x512d
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xd8(%rsp), %xmm0
ucomisd 0x5ef2(%rip), %xmm0     # 0xb030
setp %al
setne %cl
orb %al, %cl
orb 0xe(%rsp), %cl
movb %cl, 0x168(%rsp)
jne 0x53cb
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x74d8
movq %r14, %rdi
leaq 0x6108(%rip), %rsi      # 0xb296
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x51e2
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x51db
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x51e0
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x51e2
movl %ecx, %edx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x51a5
addl $-0x3, %eax
jmp 0x51e2
addl $-0x2, %eax
jmp 0x51e2
decl %eax
movl %eax, %esi
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x90(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movl %ebx, %edx
callq 0x725c
movq 0x70(%rsp), %rcx
movl $0xf, %edi
leaq 0x80(%rsp), %rax
cmpq %rax, %rcx
je 0x5238
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %r8
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x5275
movl $0xf, %edi
leaq 0xa0(%rsp), %r9
cmpq %r9, %rsi
je 0x5270
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x5281
leaq 0x70(%rsp), %rdi
callq 0x3090
jmp 0x5292
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32d0
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x52b7
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x52bf
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x10(%rsp), %rdi
leaq 0x5fa8(%rip), %rsi      # 0xb290
callq 0x34b0
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5315
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x531d
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xcb0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x5368
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5384
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x53a9
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x53cb
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xd8(%rsp), %xmm0
ucomisd 0x5c54(%rip), %xmm0     # 0xb030
setp %al
setne %cl
orb %al, %cl
orb 0xd(%rsp), %cl
movb %cl, 0xd4(%rsp)
jne 0x5669
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x74d8
movq %r14, %rdi
leaq 0x5e78(%rip), %rsi      # 0xb2a4
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x5480
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x5479
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x547e
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x5480
movl %ecx, %edx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x5443
addl $-0x3, %eax
jmp 0x5480
addl $-0x2, %eax
jmp 0x5480
decl %eax
movl %eax, %esi
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x90(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movl %ebx, %edx
callq 0x725c
movq 0x70(%rsp), %rcx
movl $0xf, %edi
leaq 0x80(%rsp), %rax
cmpq %rax, %rcx
je 0x54d6
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %r8
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x5513
movl $0xf, %edi
leaq 0xa0(%rsp), %r9
cmpq %r9, %rsi
je 0x550e
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x551f
leaq 0x70(%rsp), %rdi
callq 0x3090
jmp 0x5530
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32d0
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x5555
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x555d
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x10(%rsp), %rdi
leaq 0x5d0a(%rip), %rsi      # 0xb290
callq 0x34b0
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x55b3
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x55bb
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x12b0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x5606
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5622
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x5647
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5669
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xd8(%rsp), %xmm0
ucomisd 0x59b6(%rip), %xmm0     # 0xb030
setp %al
setne %r15b
orb %al, %r15b
orb 0xc(%rsp), %r15b
jne 0x5903
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x74d8
movq %r14, %rdi
leaq 0x5be9(%rip), %rsi      # 0xb2af
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x571a
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x5713
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x5718
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x571a
movl %ecx, %edx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x56dd
addl $-0x3, %eax
jmp 0x571a
addl $-0x2, %eax
jmp 0x571a
decl %eax
movl %eax, %esi
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x90(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movl %ebx, %edx
callq 0x725c
movq 0x70(%rsp), %rcx
movl $0xf, %edi
leaq 0x80(%rsp), %rax
cmpq %rax, %rcx
je 0x5770
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %r8
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x57ad
movl $0xf, %edi
leaq 0xa0(%rsp), %r9
cmpq %r9, %rsi
je 0x57a8
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x57b9
leaq 0x70(%rsp), %rdi
callq 0x3090
jmp 0x57ca
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32d0
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x57ef
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x57f7
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x10(%rsp), %rdi
leaq 0x5a70(%rip), %rsi      # 0xb290
callq 0x34b0
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x584d
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x5855
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x10b0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x58a0
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x58bc
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x58e1
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5903
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xd8(%rsp), %xmm0
ucomisd 0x571c(%rip), %xmm0     # 0xb030
setp %al
setne %cl
orb %al, %cl
orb 0xb(%rsp), %cl
movb %cl, 0xb7(%rsp)
jne 0x5ba4
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x74d8
movq %r14, %rdi
leaq 0x5956(%rip), %rsi      # 0xb2ba
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x59b8
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x59b1
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x59b6
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x59b8
movl %ecx, %edx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x597b
addl $-0x3, %eax
jmp 0x59b8
addl $-0x2, %eax
jmp 0x59b8
decl %eax
movl %eax, %esi
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x90(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movl %ebx, %edx
callq 0x725c
movq 0x70(%rsp), %rcx
movl $0xf, %edi
leaq 0x80(%rsp), %rax
cmpq %rax, %rcx
je 0x5a0e
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %r8
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
leaq 0x10(%rsp), %rbx
jbe 0x5a50
movl $0xf, %edi
leaq 0xa0(%rsp), %r9
cmpq %r9, %rsi
je 0x5a4b
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x5a5c
leaq 0x70(%rsp), %rdi
callq 0x3090
jmp 0x5a6d
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32d0
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x5a92
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5a9a
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq %rbx, %rdi
leaq 0x57cf(%rip), %rsi      # 0xb290
callq 0x34b0
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5aee
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x5af6
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xeb0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x5b41
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5b5d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x5b82
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5ba4
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32a0
xorpd %xmm0, %xmm0
movsd %xmm0, 0xb8(%rsp)
cmpl $0x0, 0x6c(%rsp)
movsd %xmm0, 0x100(%rsp)
je 0x5ef3
movsd %xmm0, 0x100(%rsp)
xorl %ebp, %ebp
xorl %r13d, %r13d
leaq 0xeb0(%rsp), %r14
leaq 0x9a0(%rsp), %r12
movq 0x110(%rsp), %rax
movq 0x118(%rsp), %rdx
subq %rax, %rdx
sarq $0x2, %rdx
cmpq %r13, %rdx
jbe 0x677b
cmpl $0x0, (%rax,%r13,4)
je 0x5e39
cmpb $0x0, 0x3f(%rsp)
jne 0x5d81
movq 0x150(%rsp), %rax
movq 0x158(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x8(%rax,%rbp), %rax
movsd (%rax), %xmm0
movq %r12, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5671(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x150(%rsp), %rax
movq 0x158(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x8(%rax,%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5628(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x130(%rsp), %rax
movq 0x138(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x8(%rax,%rbp), %rax
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x55e0(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x130(%rsp), %rax
movq 0x138(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x8(%rax,%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5597(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x130(%rsp), %rax
movq 0x138(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x8(%rax,%rbp), %rax
movsd 0x10(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x554b(%rip), %rsi      # 0xb2c7
callq 0x32e0
movq 0x1d0(%rsp), %rax
movq 0x1d8(%rsp), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x130(%rsp), %rdi
movq 0x138(%rsp), %rdx
subq %rdi, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movsd (%rax,%r13,8), %xmm0
movsd %xmm0, 0xc8(%rsp)
addq %rbp, %rdi
callq 0x84da
movsd %xmm0, 0x318(%rsp)
movq 0x130(%rsp), %rdi
movq 0x138(%rsp), %rdx
subq %rdi, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
addq %rbp, %rdi
callq 0x84da
movsd 0x318(%rsp), %xmm2
movsd 0xc8(%rsp), %xmm1
mulsd %xmm2, %xmm1
mulsd %xmm0, %xmm1
movsd 0x100(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x100(%rsp)
movq 0x150(%rsp), %rax
movq 0x158(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x8(%rax,%rbp), %rax
movsd (%rax), %xmm0
movq %r14, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5451(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x150(%rsp), %rax
movq 0x158(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x677b
movq 0x8(%rax,%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5405(%rip), %rsi      # 0xb2c7
callq 0x32e0
incq %r13
addq $0x10, %rbp
cmpl 0x6c(%rsp), %r13d
jb 0x5be3
movsd 0x100(%rsp), %xmm0
mulsd 0x5136(%rip), %xmm0     # 0xb020
movsd %xmm0, 0x100(%rsp)
movl 0xc4(%rsp), %ecx
testl %ecx, %ecx
je 0x6205
xorpd %xmm0, %xmm0
movsd %xmm0, 0xb8(%rsp)
movl 0xec(%rsp), %eax
xorl %r13d, %r13d
testl %eax, %eax
je 0x61db
movl %r13d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0xc8(%rsp)
movl $0x1, %ebp
xorl %r14d, %r14d
cmpb $0x0, 0x168(%rsp)
jne 0x6023
movsd 0x170(%rsp), %xmm0
mulsd 0xc8(%rsp), %xmm0
leaq 0xcb0(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5351(%rip), %rsi      # 0xb2cd
callq 0x32e0
movl %r14d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xe0(%rsp), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x531e(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x240(%rsp), %rax
leaq (,%r13,2), %r12
addq %r13, %r12
movq (%rax,%r12,8), %rax
movq (%rax,%rbp,8), %rax
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x52e0(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x240(%rsp), %rax
movq (%rax,%r12,8), %rax
movq (%rax,%rbp,8), %rax
movsd 0x8(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x52a9(%rip), %rsi      # 0xb2c7
callq 0x32e0
cmpb $0x0, 0xd4(%rsp)
jne 0x60d0
movsd 0x170(%rsp), %xmm0
mulsd 0xc8(%rsp), %xmm0
leaq 0x12b0(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x526b(%rip), %rsi      # 0xb2cd
callq 0x32e0
movl %r14d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xe0(%rsp), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5238(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x280(%rsp), %rax
movq %r13, %rcx
shlq $0x4, %rcx
movq 0x8(%rax,%rcx), %rax
movsd (%rax,%r14,8), %xmm0
movq %rbx, %rdi
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x51fc(%rip), %rsi      # 0xb2c7
callq 0x32e0
testb %r15b, %r15b
jne 0x6178
movsd 0x170(%rsp), %xmm0
mulsd 0xc8(%rsp), %xmm0
leaq 0x10b0(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x51c3(%rip), %rsi      # 0xb2cd
callq 0x32e0
movl %r14d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xe0(%rsp), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5190(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq 0x2a0(%rsp), %rax
movq %r13, %rcx
shlq $0x4, %rcx
movq 0x8(%rax,%rcx), %rax
movsd (%rax,%r14,8), %xmm0
movq %rbx, %rdi
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5154(%rip), %rsi      # 0xb2c7
callq 0x32e0
movq 0x2a0(%rsp), %rax
movq %r13, %rcx
shlq $0x4, %rcx
movq 0x8(%rax,%rcx), %rax
movsd (%rax,%r14,8), %xmm0
movq 0x280(%rsp), %rax
movq 0x8(%rax,%rcx), %rax
mulsd (%rax,%r14,8), %xmm0
movsd 0xb8(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0xb8(%rsp)
incq %r14
movl 0xec(%rsp), %eax
addq $0x2, %rbp
cmpq %rax, %r14
jb 0x5f3d
movl 0xc4(%rsp), %ecx
jmp 0x61dd
xorl %eax, %eax
incq %r13
movl %ecx, %edx
cmpq %rdx, %r13
jb 0x5f19
movsd 0xb8(%rsp), %xmm0
mulsd 0x4e24(%rip), %xmm0     # 0xb020
movsd %xmm0, 0xb8(%rsp)
leaq 0x438(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0x31b0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x50a1(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq %rbx, %rdi
movsd 0x100(%rsp), %xmm0
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5079(%rip), %rsi      # 0xb2cd
callq 0x32e0
movq %rbx, %rdi
movsd 0xb8(%rsp), %xmm0
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x504e(%rip), %rsi      # 0xb2c7
callq 0x32e0
cmpb $0x0, 0x3f(%rsp)
jne 0x6292
leaq 0x9a0(%rsp), %rdi
callq 0x3340
cmpb $0x0, 0x168(%rsp)
jne 0x62a9
leaq 0xcb0(%rsp), %rdi
callq 0x3340
cmpb $0x0, 0xd4(%rsp)
jne 0x62c0
leaq 0x12b0(%rsp), %rdi
callq 0x3340
testb %r15b, %r15b
jne 0x62d2
leaq 0x10b0(%rsp), %rdi
callq 0x3340
cmpb $0x0, 0xb7(%rsp)
jne 0x62e9
leaq 0xeb0(%rsp), %rdi
callq 0x3340
callq 0x31a0
subq 0x310(%rsp), %rax
movsd 0xd8(%rsp), %xmm0
ucomisd 0x4d29(%rip), %xmm0     # 0xb030
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
divsd 0x4d11(%rip), %xmm0     # 0xb028
movsd %xmm0, 0xb8(%rsp)
jne 0x6328
jnp 0x63ab
movl $0x5, %edx
movq 0x8ca4(%rip), %rdi      # 0xefd8
leaq 0x4f8e(%rip), %rsi      # 0xb2c9
callq 0x32e0
movl 0xe8(%rsp), %eax
subl 0x108(%rsp), %eax
cvtsi2sd %rax, %xmm1
movsd 0xb8(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x8c71(%rip), %rdi      # 0xefd8
callq 0x33d0
movq %rax, %r13
movl $0xb, %edx
movq %rax, %rdi
leaq 0x4f51(%rip), %rsi      # 0xb2cf
callq 0x32e0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31c0
movq 0x108(%rsp), %rbx
incq %rbx
cmpq 0x300(%rsp), %rbx
jne 0x4a6b
leaq 0x438(%rsp), %rbx
movq %rbx, %rdi
callq 0x3340
movq 0x8bfd(%rip), %r14      # 0xefd8
leaq 0x4ef9(%rip), %rsi      # 0xb2db
movl $0x14, %edx
movq %r14, %rdi
callq 0x32e0
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0x8bcb(%rip), %rdi      # 0xefd8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
leaq 0x240(%rsp), %rdi
callq 0x706e
leaq 0x260(%rsp), %rdi
callq 0x7026
leaq 0x280(%rsp), %rdi
callq 0x7026
leaq 0x2a0(%rsp), %rdi
callq 0x7026
movq 0x8b7b(%rip), %rax      # 0xefd0
movq (%rax), %r14
movq 0x18(%rax), %r15
leaq 0xeb8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0xeb0(%rsp,%rax)
callq 0x3220
movl $0xf8, %r12d
leaq 0xeb0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x10b8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x10b0(%rsp,%rax)
callq 0x3220
leaq 0x10b0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x12b8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x12b0(%rsp,%rax)
callq 0x3220
leaq 0x12b0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0xcb8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0xcb0(%rsp,%rax)
callq 0x3220
leaq 0xcb0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x9a8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x9a0(%rsp,%rax)
callq 0x3220
leaq 0x9a0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x440(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x438(%rsp,%rax)
callq 0x3220
addq %r12, %rbx
movq %rbx, %rdi
callq 0x30a0
leaq 0x1b8(%rsp), %rdi
callq 0x71ac
xorl %ebx, %ebx
leaq 0x790(%rsp), %rdi
callq 0x3060
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x65a4
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x65c1
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x65de
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x2c0(%rsp), %rdi
testq %rdi, %rdi
je 0x65fb
movq 0x2d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
leaq 0x130(%rsp), %rdi
callq 0x7026
leaq 0x2e0(%rsp), %rdi
callq 0x7026
leaq 0x150(%rsp), %rdi
callq 0x7026
jmp 0x664d
movq 0x89ad(%rip), %rdi      # 0xefd8
leaq 0x4b8b(%rip), %rsi      # 0xb1bd
movl $0x2a, %edx
callq 0x32e0
movl $0x1, %ebx
movq 0x8990(%rip), %rdi      # 0xefd8
callq 0x3110
leaq 0x678(%rsp), %rdi
callq 0x3120
leaq 0x6a0(%rsp), %rdi
callq 0x3120
leaq 0x3e8(%rsp), %rdi
callq 0x3120
movq 0xf8(%rsp), %rdi
callq 0x3270
leaq 0x190(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x66a2
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x648(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x66c3
movq 0x648(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x410(%rsp), %rdi
callq 0x3120
leaq 0x14b0(%rsp), %rdi
callq 0x3060
leaq 0x668(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x66fe
movq 0x668(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xc98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x671f
movq 0xc98(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xc50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6740
movq 0xc50(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xbf0(%rsp), %rdi
callq 0x72ca
leaq 0xba0(%rsp), %rdi
callq 0x7480
leaq 0x218(%rsp), %rdi
callq 0x3120
movl %ebx, %eax
addq $0x16b8, %rsp           # imm = 0x16B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4be3(%rip), %rdi      # 0xb365
movq %r13, %rsi
xorl %eax, %eax
callq 0x3380
jmp 0x67a8
jmp 0x6b53
jmp 0x67a8
jmp 0x6b53
jmp 0x67a8
jmp 0x6b53
jmp 0x67a8
jmp 0x6b53
movq %rax, %rbx
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x6ca2
movq 0x448(%rsp), %rsi
jmp 0x6b9c
jmp 0x6b53
jmp 0x67d8
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x6c20
movq 0x50(%rsp), %rsi
jmp 0x69c7
jmp 0x6c1d
movq %rax, %rbx
jmp 0x6c61
movq %rax, %rbx
jmp 0x6c6e
movq %rax, %rbx
jmp 0x6c7b
movq %rax, %rbx
jmp 0x6c88
movq %rax, %rbx
jmp 0x6c95
jmp 0x6b53
movq %rax, %rbx
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x6caf
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
jmp 0x6caf
jmp 0x6c0f
jmp 0x6bd3
movq %rax, %rbx
jmp 0x6cbc
jmp 0x6ba9
jmp 0x6b53
jmp 0x6c1d
jmp 0x6bd3
movq %rax, %rbx
jmp 0x6d7e
jmp 0x6bdb
jmp 0x68a0
jmp 0x68b2
jmp 0x6bdb
jmp 0x68a0
jmp 0x68b2
jmp 0x6bdb
movq %rax, %rbx
leaq 0x790(%rsp), %rdi
callq 0x3120
jmp 0x68d1
movq %rax, %rbx
jmp 0x68d1
jmp 0x6bdb
movq %rax, %rbx
leaq 0x790(%rsp), %rdi
callq 0x3120
jmp 0x68d1
movq %rax, %rbx
leaq 0x438(%rsp), %rdi
callq 0x3120
jmp 0x6d8b
jmp 0x6bdb
jmp 0x6c1d
jmp 0x6c0f
jmp 0x6be3
jmp 0x693f
jmp 0x692c
jmp 0x6933
jmp 0x6933
jmp 0x6933
jmp 0x6933
jmp 0x6c1d
jmp 0x6949
jmp 0x693f
jmp 0x692c
jmp 0x693f
jmp 0x692c
jmp 0x6933
jmp 0x6933
jmp 0x6c1d
jmp 0x6949
jmp 0x6933
jmp 0x6c1d
jmp 0x6949
jmp 0x693f
jmp 0x692c
jmp 0x6933
movq %rax, %rbx
jmp 0x6984
jmp 0x6933
movq %rax, %rbx
jmp 0x69a9
jmp 0x6c1d
jmp 0x6949
movq %rax, %rbx
jmp 0x6968
jmp 0x6c1d
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x6968
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x6984
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x69a9
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x6c20
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32a0
jmp 0x6c20
movq %rax, %rbx
leaq 0x790(%rsp), %rdi
callq 0x3120
jmp 0x69e9
movq %rax, %rbx
leaq 0x438(%rsp), %rdi
callq 0x3120
jmp 0x6dac
movq %rax, %rbx
jmp 0x6dac
movq %rax, %rbx
leaq 0x6c8(%rsp), %rdi
callq 0x3120
jmp 0x6a18
movq %rax, %rbx
movq 0x348(%rsp), %rdi
cmpq %r14, %rdi
je 0x6dcd
movq 0x358(%rsp), %rsi
jmp 0x6dc5
jmp 0x6bb1
movq %rax, %rbx
leaq 0x6f0(%rsp), %rdi
callq 0x3120
jmp 0x6a50
movq %rax, %rbx
movq 0x368(%rsp), %rdi
cmpq %r14, %rdi
je 0x6dcd
movq 0x378(%rsp), %rsi
jmp 0x6dc5
jmp 0x6bb1
movq %rax, %rbx
leaq 0x718(%rsp), %rdi
callq 0x3120
jmp 0x6a88
movq %rax, %rbx
movq 0x388(%rsp), %rdi
cmpq %r14, %rdi
je 0x6dcd
movq 0x398(%rsp), %rsi
jmp 0x6dc5
jmp 0x6bb1
movq %rax, %rbx
leaq 0x740(%rsp), %rdi
callq 0x3120
jmp 0x6ac0
movq %rax, %rbx
movq 0x3a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6dcd
movq 0x3b8(%rsp), %rsi
jmp 0x6dc5
jmp 0x6bb1
movq %rax, %rbx
leaq 0x768(%rsp), %rdi
callq 0x3120
jmp 0x6af8
movq %rax, %rbx
movq 0x3c8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6dcd
movq 0x3d8(%rsp), %rsi
jmp 0x6dc5
jmp 0x6bb1
movq %rax, %rbx
jmp 0x6d57
jmp 0x6c1d
jmp 0x6c1d
jmp 0x6c1d
jmp 0x6c1d
jmp 0x6c1d
jmp 0x6c1d
movq %rax, %rbx
jmp 0x6bf3
jmp 0x6c0f
movq %rax, %rbx
jmp 0x6b83
movq %rax, %rbx
jmp 0x6ca2
movq %rax, %rbx
movq 0x438(%rsp), %rdi
leaq 0x448(%rsp), %rax
cmpq %rax, %rdi
je 0x6b83
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x9a0(%rsp), %rdi
cmpq %r13, %rdi
je 0x6ca2
movq 0x9b0(%rsp), %rsi
incq %rsi
callq 0x32a0
jmp 0x6ca2
movq %rax, %rbx
jmp 0x6d64
movq %rax, %rbx
jmp 0x6dcd
jmp 0x6c07
movq %rax, %rbx
jmp 0x6de7
movq %rax, %rbx
jmp 0x6e08
movq %rax, %rbx
jmp 0x6e15
movq %rax, %rbx
jmp 0x6d71
movq %rax, %rbx
jmp 0x6d8b
movq %rax, %rbx
movq 0x9a8(%rsp), %rdi
callq 0x3270
movq 0x440(%rsp), %rdi
callq 0x3270
jmp 0x6caf
jmp 0x6c1d
movq %rax, %rbx
jmp 0x6dda
movq %rax, %rbx
jmp 0x6caf
jmp 0x6c1d
jmp 0x6c1d
jmp 0x6c1d
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0x706e
leaq 0x260(%rsp), %rdi
callq 0x7026
leaq 0x280(%rsp), %rdi
callq 0x7026
leaq 0x2a0(%rsp), %rdi
callq 0x7026
leaq 0xeb0(%rsp), %rdi
callq 0x3370
leaq 0x10b0(%rsp), %rdi
callq 0x3370
leaq 0x12b0(%rsp), %rdi
callq 0x3370
leaq 0xcb0(%rsp), %rdi
callq 0x3370
leaq 0x9a0(%rsp), %rdi
callq 0x3370
leaq 0x438(%rsp), %rdi
callq 0x3370
leaq 0x1b8(%rsp), %rdi
callq 0x71ac
leaq 0x790(%rsp), %rdi
callq 0x3060
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x6cd9
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x6cf6
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x6d13
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x2c0(%rsp), %rdi
testq %rdi, %rdi
je 0x6d30
movq 0x2d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
leaq 0x130(%rsp), %rdi
callq 0x7026
leaq 0x2e0(%rsp), %rdi
callq 0x7026
leaq 0x150(%rsp), %rdi
callq 0x7026
leaq 0x678(%rsp), %rdi
callq 0x3120
leaq 0x6a0(%rsp), %rdi
callq 0x3120
leaq 0x3e8(%rsp), %rdi
callq 0x3120
movq 0xf8(%rsp), %rdi
callq 0x3270
leaq 0x190(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6dac
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x648(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6dcd
movq 0x648(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x410(%rsp), %rdi
callq 0x3120
leaq 0x14b0(%rsp), %rdi
callq 0x3060
leaq 0x668(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e08
movq 0x668(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xba0(%rsp), %rdi
callq 0x720a
leaq 0x218(%rsp), %rdi
callq 0x3120
movq %rbx, %rdi
callq 0x3460