// File: /workspace/github_cpp_makefile_star2_O1/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 $0x16a8, %rsp           # imm = 0x16A8
cmpl $0x1, %edi
jg 0x36ee
movq 0xb92f(%rip), %rbx      # 0xefd8
leaq 0x7990(%rip), %rsi      # 0xb040
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 0x672f
movq %rsi, %rbx
leaq 0x208(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0xb90(%rsp), %rdi
callq 0x32b0
movq 0x8(%rbx), %rsi
leaq 0x648(%rsp), %rdi
leaq 0x14a0(%rsp), %rdx
callq 0x6dec
leaq 0x14a0(%rsp), %rdi
leaq 0x648(%rsp), %rsi
movl $0x4, %edx
callq 0x33e0
leaq 0xb90(%rsp), %rdi
leaq 0x14a0(%rsp), %rsi
leaq 0x208(%rsp), %rdx
xorl %ecx, %ecx
callq 0x34a0
testb %al, %al
je 0x3d76
leaq 0x7927(%rip), %rsi      # 0xb095
leaq 0x208(%rsp), %rdi
callq 0x30c0
leaq 0x400(%rsp), %rdi
movq %rax, %rsi
callq 0x33b0
leaq 0x3c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7a61(%rip), %rsi      # 0xb1ff
leaq 0x7a65(%rip), %rdx      # 0xb20a
leaq 0x3b8(%rsp), %rdi
callq 0x7510
leaq 0x758(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x33b0
leaq 0x3b8(%rsp), %rdi
leaq 0x758(%rsp), %rsi
callq 0x6e29
movb %al, 0xf(%rsp)
leaq 0x758(%rsp), %rdi
callq 0x3120
movq 0x3b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x380a
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x3a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7880(%rip), %rsi      # 0xb09d
leaq 0x7887(%rip), %rdx      # 0xb0ab
leaq 0x398(%rsp), %rdi
callq 0x7510
leaq 0x730(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x33b0
leaq 0x398(%rsp), %rdi
leaq 0x730(%rsp), %rsi
callq 0x6e29
movb %al, 0xe(%rsp)
leaq 0x730(%rsp), %rdi
callq 0x3120
movq 0x398(%rsp), %rdi
cmpq %r14, %rdi
je 0x3889
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x388(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7810(%rip), %rsi      # 0xb0ac
leaq 0x781b(%rip), %rdx      # 0xb0be
leaq 0x378(%rsp), %rdi
callq 0x7510
leaq 0x708(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x33b0
leaq 0x378(%rsp), %rdi
leaq 0x708(%rsp), %rsi
callq 0x6e29
movb %al, 0xd(%rsp)
leaq 0x708(%rsp), %rdi
callq 0x3120
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x3908
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x368(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x77a4(%rip), %rsi      # 0xb0bf
leaq 0x77ab(%rip), %rdx      # 0xb0cd
leaq 0x358(%rsp), %rdi
callq 0x7510
leaq 0x6e0(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x33b0
leaq 0x358(%rsp), %rdi
leaq 0x6e0(%rsp), %rsi
callq 0x6e29
movb %al, 0xc(%rsp)
leaq 0x6e0(%rsp), %rdi
callq 0x3120
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x3987
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x348(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7884(%rip), %rsi      # 0xb21e
leaq 0x7882(%rip), %rdx      # 0xb223
leaq 0x338(%rsp), %rdi
callq 0x7510
leaq 0x6b8(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x33b0
leaq 0x338(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
callq 0x6e29
movb %al, 0xb(%rsp)
leaq 0x6b8(%rsp), %rdi
callq 0x3120
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x3a06
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x76c1(%rip), %rsi      # 0xb0ce
leaq 0x208(%rsp), %rdi
callq 0x30c0
leaq 0x628(%rsp), %rdi
movq %rax, %rsi
callq 0x3480
leaq 0x7664(%rip), %rsi      # 0xb095
leaq 0x428(%rsp), %rdi
callq 0x3420
leaq 0x7690(%rip), %rdx      # 0xb0d5
leaq 0x780(%rsp), %rdi
leaq 0x208(%rsp), %rsi
leaq 0x428(%rsp), %rcx
callq 0x3160
leaq 0x170(%rsp), %rdi
leaq 0x780(%rsp), %rsi
callq 0x3480
leaq 0x780(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
callq 0x3120
leaq 0x7644(%rip), %rsi      # 0xb0dc
leaq 0x208(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x3dc6
leaq 0x7628(%rip), %rsi      # 0xb0dc
leaq 0x208(%rsp), %rdi
callq 0x30c0
movq %rax, %rdi
callq 0x3130
movl %eax, 0x5c(%rsp)
leaq 0x428(%rsp), %rdi
movl $0x32, %esi
callq 0x3180
leaq 0x762f(%rip), %rdx      # 0xb115
leaq 0x780(%rsp), %rdi
leaq 0x208(%rsp), %rsi
leaq 0x428(%rsp), %rcx
callq 0x3160
leaq 0x780(%rsp), %rdi
callq 0x3130
movl %eax, 0xc8(%rsp)
leaq 0x780(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
movl $0xa, %esi
callq 0x3180
leaq 0x75d1(%rip), %rdx      # 0xb11b
leaq 0x780(%rsp), %rdi
leaq 0x208(%rsp), %rsi
leaq 0x428(%rsp), %rcx
callq 0x3160
leaq 0x780(%rsp), %rdi
callq 0x3130
movl %eax, 0xbc(%rsp)
leaq 0x780(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
movl $0x4277dc9, %esi        # imm = 0x4277DC9
callq 0x3180
leaq 0x757a(%rip), %rdx      # 0xb128
leaq 0x780(%rsp), %rdi
leaq 0x208(%rsp), %rsi
leaq 0x428(%rsp), %rcx
callq 0x3160
leaq 0x780(%rsp), %rdi
callq 0x3130
leaq 0x780(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
movsd 0x7406(%rip), %xmm0     # 0xb008
callq 0x3350
leaq 0x751f(%rip), %rdx      # 0xb12d
leaq 0x780(%rsp), %rdi
leaq 0x208(%rsp), %rsi
leaq 0x428(%rsp), %rcx
callq 0x3160
leaq 0x780(%rsp), %rdi
callq 0x31d0
movsd %xmm0, 0xa8(%rsp)
leaq 0x780(%rsp), %rdi
callq 0x3120
leaq 0x428(%rsp), %rdi
callq 0x3120
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x1f8(%rsp)
movq $0x3, 0xd0(%rsp)
movl $0x18, %edi
callq 0x3290
movq %rax, 0xd8(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq $0x0, 0x10(%rax)
leaq 0x3d8(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0x747f(%rip), %rsi      # 0xb130
leaq 0x208(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x3e16
leaq 0x7463(%rip), %rsi      # 0xb130
leaq 0x208(%rsp), %rdi
callq 0x30c0
leaq 0x3d8(%rsp), %rdi
movq %rax, %rsi
callq 0x3330
leaq 0x3d8(%rsp), %rdi
callq 0x3400
cmpl $0x3, %eax
jne 0x4149
leaq 0x3d8(%rsp), %rdi
xorl %esi, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movq 0xd8(%rsp), %rax
movsd %xmm0, (%rax)
leaq 0x3d8(%rsp), %rdi
movl $0x1, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movq 0xd8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x3d8(%rsp), %rdi
movl $0x2, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movq 0xd8(%rsp), %rax
movsd %xmm0, 0x10(%rax)
jmp 0x3e94
movq 0xb25b(%rip), %rbx      # 0xefd8
leaq 0x72ea(%rip), %rsi      # 0xb06e
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 0x6698
movq 0xb20b(%rip), %rbx      # 0xefd8
leaq 0x730a(%rip), %rsi      # 0xb0de
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 0x6649
xorpd %xmm0, %xmm0
movapd %xmm0, 0x780(%rsp)
movq $0x0, 0x790(%rsp)
movq 0xd8(%rsp), %rdi
cmpq $0x3, 0xd0(%rsp)
jne 0x3e50
movupd %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
jmp 0x3e94
testq %rdi, %rdi
je 0x3e5a
callq 0x3270
movq $0x3, 0xd0(%rsp)
movl $0x18, %edi
callq 0x3290
movq %rax, 0xd8(%rsp)
movq 0xd0(%rsp), %rdx
shlq $0x3, %rdx
leaq 0x780(%rsp), %rsi
movq %rax, %rdi
callq 0x3210
leaq 0x690(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0x72bf(%rip), %rsi      # 0xb169
leaq 0x208(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x3f31
leaq 0x72a7(%rip), %rsi      # 0xb169
leaq 0x208(%rsp), %rdi
callq 0x30c0
leaq 0x690(%rsp), %rdi
movq %rax, %rsi
callq 0x3330
leaq 0x690(%rsp), %rdi
callq 0x3400
cmpl $0x2, %eax
jne 0x4199
leaq 0x690(%rsp), %rdi
xorl %esi, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
movsd %xmm0, 0x168(%rsp)
leaq 0x690(%rsp), %rdi
movl $0x1, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x31d0
jmp 0x3f4b
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x168(%rsp)
movsd 0x70c5(%rip), %xmm0     # 0xb010
movsd %xmm0, 0x1f0(%rsp)
leaq 0x668(%rsp), %rdi
xorl %esi, %esi
callq 0x30e0
leaq 0x7239(%rip), %rsi      # 0xb1a3
leaq 0x208(%rsp), %rdi
callq 0x3260
testb %al, %al
je 0x3fef
leaq 0x7221(%rip), %rsi      # 0xb1a3
leaq 0x208(%rsp), %rdi
callq 0x30c0
leaq 0x668(%rsp), %rdi
movq %rax, %rsi
callq 0x3330
leaq 0x668(%rsp), %rdi
callq 0x3400
cmpl $0x2, %eax
jne 0x65ec
leaq 0x668(%rsp), %rdi
xorl %esi, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x3130
movl %eax, 0xa0(%rsp)
leaq 0x668(%rsp), %rdi
movl $0x1, %esi
callq 0x32c0
movq %rax, %rdi
callq 0x3130
jmp 0x3fff
movl $0x10, 0xa0(%rsp)
movl $0x10, %eax
movl %eax, 0xcc(%rsp)
movsd 0x168(%rsp), %xmm0
movl 0xa0(%rsp), %ecx
cvtsi2sd %rcx, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd 0x1f0(%rsp), %xmm0
movl %eax, %eax
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0xf8(%rsp)
xorl %eax, %eax
movq %rax, 0x150(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x140(%rsp)
movq %rax, 0x2e0(%rsp)
movapd %xmm0, 0x2d0(%rsp)
movq %rax, 0x130(%rsp)
movapd %xmm0, 0x120(%rsp)
movq %rax, 0x2c0(%rsp)
movapd %xmm0, 0x2b0(%rsp)
movq %rax, 0x1a0(%rsp)
movapd %xmm0, 0x190(%rsp)
movq %rax, 0x1d0(%rsp)
movapd %xmm0, 0x1c0(%rsp)
movq %rax, 0x110(%rsp)
movapd %xmm0, 0x100(%rsp)
leaq 0x780(%rsp), %rdi
leaq 0x628(%rsp), %rsi
movl $0x8, %edx
callq 0x33e0
movq 0x780(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x7a0(%rsp,%rax)
je 0x41e9
movq 0xaed8(%rip), %rbx      # 0xefd8
leaq 0x70d1(%rip), %rsi      # 0xb1d8
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 0xaea6(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x6542
movq 0xae88(%rip), %rbx      # 0xefd8
leaq 0x6fe0(%rip), %rsi      # 0xb137
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 0xae56(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x662f
movq 0xae38(%rip), %rbx      # 0xefd8
leaq 0x6fcd(%rip), %rsi      # 0xb174
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 0xae06(%rip), %rdi      # 0xefd8
callq 0x3030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x31c0
jmp 0x6622
cmpl $0x0, 0x5c(%rsp)
je 0x44e4
xorl %r12d, %r12d
leaq 0x1e8(%rsp), %r14
leaq 0x204(%rsp), %r15
leaq 0x428(%rsp), %r13
leaq 0x2d0(%rsp), %rbp
leaq 0x990(%rsp), %rbx
leaq 0x780(%rsp), %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
leaq 0x318(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
leaq 0x310(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
movq %r14, %rsi
callq 0x3190
movq %rax, %rdi
movq %r15, %rsi
callq 0x3450
movsd 0x168(%rsp), %xmm0
mulsd 0x1f0(%rsp), %xmm0
mulsd 0x1e8(%rsp), %xmm0
movl 0x5c(%rsp), %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x1e0(%rsp)
movsd 0x330(%rsp), %xmm0
movsd %xmm0, 0xa8(%rsp)
movsd 0x328(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq $0x2, 0x428(%rsp)
movl $0x10, %edi
callq 0x3290
movq %rax, 0x430(%rsp)
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, (%rax)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movsd 0x320(%rsp), %xmm0
movsd %xmm0, 0xa8(%rsp)
movsd 0x318(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movsd 0x310(%rsp), %xmm0
movsd %xmm0, 0x160(%rsp)
movq $0x3, 0x990(%rsp)
movl $0x18, %edi
callq 0x3290
movq %rax, 0x998(%rsp)
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, (%rax)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movsd 0x160(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
leaq 0x140(%rsp), %rdi
movq %r13, %rsi
callq 0x6ec4
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x6ec4
movq 0x198(%rsp), %rsi
cmpq 0x1a0(%rsp), %rsi
je 0x43dd
movsd 0x1e8(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x198(%rsp)
jmp 0x43ed
leaq 0x190(%rsp), %rdi
movq %r14, %rdx
callq 0x7796
movq 0x2b8(%rsp), %rsi
cmpq 0x2c0(%rsp), %rsi
je 0x441a
movsd 0x1e0(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x2b8(%rsp)
jmp 0x442f
leaq 0x2b0(%rsp), %rdi
leaq 0x1e0(%rsp), %rdx
callq 0x7796
movsd 0x1e0(%rsp), %xmm0
divsd 0x1e8(%rsp), %xmm0
movsd %xmm0, 0xca0(%rsp)
movq 0x1c8(%rsp), %rsi
cmpq 0x1d0(%rsp), %rsi
je 0x446e
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x1c8(%rsp)
jmp 0x4483
leaq 0x1c0(%rsp), %rdi
leaq 0xca0(%rsp), %rdx
callq 0x78d6
movq 0x108(%rsp), %rsi
cmpq 0x110(%rsp), %rsi
je 0x44ac
movl 0x204(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x108(%rsp)
jmp 0x44bc
leaq 0x100(%rsp), %rdi
movq %r15, %rdx
callq 0x79b6
movq 0x998(%rsp), %rdi
callq 0x3270
movq 0x430(%rsp), %rdi
callq 0x3270
incl %r12d
cmpl 0x5c(%rsp), %r12d
jb 0x421f
leaq 0x438(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6cff(%rip), %rsi      # 0xb1f6
leaq 0x6cff(%rip), %rdx      # 0xb1fd
leaq 0x428(%rsp), %rdi
callq 0x7510
leaq 0x1a8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
leaq 0x990(%rsp), %rcx
movl $0x1, %edx
callq 0x6f26
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x4552
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xf(%rsp)
je 0x45b9
leaq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6c8b(%rip), %rsi      # 0xb1fe
leaq 0x6c90(%rip), %rdx      # 0xb20a
callq 0x7510
leaq 0x1a8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x7c44
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x45b9
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xe(%rsp)
je 0x4620
leaq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6c31(%rip), %rsi      # 0xb20b
leaq 0x6c31(%rip), %rdx      # 0xb212
callq 0x7510
leaq 0x1a8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x7c44
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x4620
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xd(%rsp)
je 0x4687
leaq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6bd2(%rip), %rsi      # 0xb213
leaq 0x6bcf(%rip), %rdx      # 0xb217
callq 0x7510
leaq 0x1a8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x7c44
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x4687
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xc(%rsp)
je 0x46ee
leaq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6b70(%rip), %rsi      # 0xb218
leaq 0x6b6d(%rip), %rdx      # 0xb21c
callq 0x7510
leaq 0x1a8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x7c44
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x46ee
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpb $0x0, 0xb(%rsp)
je 0x4755
leaq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
movq %rax, (%rdi)
leaq 0x6b0e(%rip), %rsi      # 0xb21d
leaq 0x6b0d(%rip), %rdx      # 0xb223
callq 0x7510
leaq 0x1a8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x7c44
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x4755
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x1b0(%rsp), %rax
cmpq 0x1a8(%rsp), %rax
je 0x4885
movl $0x1, %ebp
leaq 0x9a0(%rsp), %r13
xorl %r12d, %r12d
leaq 0x6aa2(%rip), %rbx      # 0xb224
leaq 0x990(%rsp), %r14
leaq 0x170(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x6f6e
movq 0x1a8(%rsp), %rax
shlq $0x5, %r12
movq (%rax,%r12), %rsi
movq 0x8(%rax,%r12), %rdx
movq %r14, %rdi
callq 0x3090
leaq 0x438(%rsp), %rsi
movq %rsi, 0x428(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x47f1
movq %rdx, 0x428(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x438(%rsp)
jmp 0x47f9
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x430(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x428(%rsp), %rdi
callq 0x3240
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x4846
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x990(%rsp), %rdi
cmpq %r13, %rdi
je 0x4863
movq 0x9a0(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x1b0(%rsp), %rax
subq 0x1a8(%rsp), %rax
movl %ebp, %r12d
sarq $0x5, %rax
incl %ebp
cmpq %r12, %rax
ja 0x4792
movq 0xa74c(%rip), %rbx      # 0xefd8
leaq 0x699b(%rip), %rsi      # 0xb22e
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 0xa71a(%rip), %rdi      # 0xefd8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
leaq 0x428(%rsp), %rdi
callq 0x3440
leaq 0x990(%rsp), %rdi
callq 0x3440
leaq 0xca0(%rsp), %rdi
callq 0x3440
leaq 0x12a0(%rsp), %rdi
callq 0x3440
leaq 0x10a0(%rsp), %rdi
callq 0x3440
leaq 0xea0(%rsp), %rdi
callq 0x3440
xorpd %xmm0, %xmm0
movapd %xmm0, 0x290(%rsp)
xorl %eax, %eax
movq %rax, 0x2a0(%rsp)
movq %rax, 0x280(%rsp)
movapd %xmm0, 0x270(%rsp)
movq %rax, 0x260(%rsp)
movapd %xmm0, 0x250(%rsp)
movq %rax, 0x240(%rsp)
movapd %xmm0, 0x230(%rsp)
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
addq %rsi, %rdx
leaq 0x30(%rsp), %rdi
callq 0x7480
leaq 0x68b4(%rip), %rsi      # 0xb244
leaq 0x30(%rsp), %rdi
callq 0x34b0
leaq 0x428(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x49cd
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32a0
cmpl $0x0, 0xc8(%rsp)
je 0x638c
movl 0xbc(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x2f8(%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, 0xa6(%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 0xc8(%rsp), %eax
movq %rax, 0x2f0(%rsp)
xorl %ebx, %ebx
leaq 0xe8(%rsp), %r14
leaq 0xf8(%rsp), %r12
callq 0x31a0
movq %rax, 0x300(%rsp)
movl %ebx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x2f8(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rsi
callq 0x84e9
movsd %xmm0, 0xc0(%rsp)
movq %r13, %rdi
leaq 0x140(%rsp), %rsi
leaq 0x2b0(%rsp), %rdx
movq %r14, %rcx
movq %r12, %r8
leaq 0xa0(%rsp), %r9
leaq 0x5c(%rsp), %rax
pushq %rax
movq %r14, %rbp
leaq 0xd4(%rsp), %r14
pushq %r14
callq 0x85f5
addq $0x10, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movaps 0x290(%rsp), %xmm0
movq 0x2a0(%rsp), %rax
movups 0x10(%rsp), %xmm1
movaps %xmm1, 0x290(%rsp)
movq 0x20(%rsp), %rcx
movq %rcx, 0x2a0(%rsp)
movaps 0x30(%rsp), %xmm1
movaps %xmm0, 0x30(%rsp)
movq %rax, 0x40(%rsp)
movups %xmm1, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x6ff6
movq %r13, %rdi
callq 0x6ff6
movq %r13, %rdi
leaq 0x290(%rsp), %rsi
movq %rbp, %rdx
movq %r12, %rcx
leaq 0xa0(%rsp), %r8
movq %r14, %r9
callq 0x88f4
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movaps 0x270(%rsp), %xmm0
movq 0x280(%rsp), %rax
movups 0x10(%rsp), %xmm1
movaps %xmm1, 0x270(%rsp)
movq 0x20(%rsp), %rcx
movq %rcx, 0x280(%rsp)
movaps 0x30(%rsp), %xmm1
movaps %xmm0, 0x30(%rsp)
movq %rax, 0x40(%rsp)
movups %xmm1, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
movq %r15, %rdi
callq 0x6ff6
movq %r13, %rdi
callq 0x6ff6
movq %r13, %rdi
leaq 0x270(%rsp), %rsi
movq %rbp, %rdx
movq %r12, %rcx
leaq 0xa0(%rsp), %r8
movq %r14, %r9
callq 0x8fe0
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movaps 0x230(%rsp), %xmm0
movq 0x240(%rsp), %rax
movups 0x10(%rsp), %xmm1
movaps %xmm1, 0x230(%rsp)
movq 0x20(%rsp), %rcx
movq %rcx, 0x240(%rsp)
movaps 0x30(%rsp), %xmm1
movaps %xmm0, 0x30(%rsp)
movq %rax, 0x40(%rsp)
movups %xmm1, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
movq %r15, %rdi
callq 0x7038
movq %r13, %rdi
callq 0x7038
subq $0x8, %rsp
movq %r13, %rdi
leaq 0x238(%rsp), %rsi
leaq 0x148(%rsp), %rdx
leaq 0x108(%rsp), %rcx
movq %rbp, %r8
movq %r12, %r9
leaq 0x64(%rsp), %rax
pushq %rax
pushq %r14
leaq 0xb8(%rsp), %rax
pushq %rax
callq 0x938d
addq $0x20, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movapd 0x250(%rsp), %xmm0
movq 0x260(%rsp), %rax
movups 0x10(%rsp), %xmm1
movaps %xmm1, 0x250(%rsp)
movq 0x20(%rsp), %rcx
movq %rcx, 0x260(%rsp)
movapd 0x30(%rsp), %xmm1
movapd %xmm0, 0x30(%rsp)
movq %rax, 0x40(%rsp)
movupd %xmm1, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
movq %r15, %rdi
callq 0x6ff6
movq %r13, %rdi
callq 0x6ff6
testq %rbx, %rbx
leaq 0xe8(%rsp), %r14
jne 0x4d57
movabsq $-0x4010000000000000, %rax # imm = 0xBFF0000000000000
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
leaq 0x190(%rsp), %rdx
leaq 0x100(%rsp), %rcx
leaq 0x250(%rsp), %r8
leaq 0xd0(%rsp), %r9
leaq 0x5c(%rsp), %rax
pushq %rax
leaq 0x200(%rsp), %rax
pushq %rax
callq 0xa1ae
addq $0x10, %rsp
movq %rbx, 0xf0(%rsp)
leaq 0x140(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
leaq 0x190(%rsp), %rdx
leaq 0x100(%rsp), %rcx
leaq 0x250(%rsp), %r8
leaq 0xd0(%rsp), %r9
leaq 0x5c(%rsp), %rax
pushq %rax
leaq 0x200(%rsp), %rax
pushq %rax
leaq 0x200(%rsp), %rax
pushq %rax
leaq 0x180(%rsp), %rax
pushq %rax
callq 0xa050
addq $0x20, %rsp
leaq 0x120(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x707a
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x120(%rsp), %rsi
leaq 0x190(%rsp), %rdx
leaq 0x100(%rsp), %rcx
leaq 0x250(%rsp), %r8
leaq 0xd0(%rsp), %r9
leaq 0x5c(%rsp), %rax
pushq %rax
leaq 0x200(%rsp), %rax
pushq %rax
callq 0xa1ae
addq $0x10, %rsp
movsd 0xc0(%rsp), %xmm0
ucomisd 0x61f5(%rip), %xmm0     # 0xb028
setp %al
setne %cl
orb %al, %cl
orb 0xa6(%rsp), %cl
jne 0x4eaf
movl $0x15, %edx
movq 0xa188(%rip), %rdi      # 0xefd8
leaq 0x6400(%rip), %rsi      # 0xb257
callq 0x32e0
movq 0xa175(%rip), %rdi      # 0xefd8
movq 0xf0(%rsp), %rsi
callq 0x31b0
movq %rax, %r13
movl $0x3, %edx
movq %rax, %rdi
leaq 0x63be(%rip), %rsi      # 0xb240
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 0xc0(%rsp), %xmm0
ucomisd 0x6168(%rip), %xmm0     # 0xb028
setp %al
setne %cl
orb %al, %cl
orb 0xf(%rsp), %cl
movb %cl, 0x5b(%rsp)
movq 0xf0(%rsp), %rbx
jne 0x513f
leaq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x7480
movq %r15, %rdi
leaq 0x6352(%rip), %rsi      # 0xb26d
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x4f6f
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x4f68
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x4f6d
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x4f6f
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 0x4f32
addl $-0x3, %eax
jmp 0x4f6f
addl $-0x2, %eax
jmp 0x4f6f
decl %eax
movl %eax, %esi
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x60(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x60(%rsp), %rdi
movl 0x68(%rsp), %esi
movl %ebx, %edx
callq 0x721a
movq 0x80(%rsp), %rcx
movl $0xf, %esi
leaq 0x90(%rsp), %rax
cmpq %rax, %rcx
je 0x4fb9
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %r8
movq 0x68(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x4fea
movl $0xf, %esi
leaq 0x70(%rsp), %rdi
cmpq %rdi, 0x60(%rsp)
je 0x4fe5
movq 0x70(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x4ffe
movq 0x60(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x3090
jmp 0x500c
leaq 0x60(%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 0x5031
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5039
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 0x621e(%rip), %rsi      # 0xb280
callq 0x34b0
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x508f
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x5097
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x990(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x50e2
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x50fe
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x511a
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x513f
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xc0(%rsp), %xmm0
ucomisd 0x5ed8(%rip), %xmm0     # 0xb028
setp %al
setne %cl
orb %al, %cl
orb 0xe(%rsp), %cl
movb %cl, 0x160(%rsp)
jne 0x53ca
leaq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x7480
movq %r15, %rdi
leaq 0x60e0(%rip), %rsi      # 0xb286
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x51fa
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x51f3
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x51f8
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x51fa
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 0x51bd
addl $-0x3, %eax
jmp 0x51fa
addl $-0x2, %eax
jmp 0x51fa
decl %eax
movl %eax, %esi
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x60(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x60(%rsp), %rdi
movl 0x68(%rsp), %esi
movl %ebx, %edx
callq 0x721a
movq 0x80(%rsp), %rcx
movl $0xf, %esi
leaq 0x90(%rsp), %rax
cmpq %rax, %rcx
je 0x5244
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %r8
movq 0x68(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x5275
movl $0xf, %esi
leaq 0x70(%rsp), %rdi
cmpq %rdi, 0x60(%rsp)
je 0x5270
movq 0x70(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5289
movq 0x60(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x3090
jmp 0x5297
leaq 0x60(%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 0x52bc
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x52c4
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 0x5f93(%rip), %rsi      # 0xb280
callq 0x34b0
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x531a
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x5322
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xca0(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x536d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5389
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x53a5
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x53ca
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xc0(%rsp), %xmm0
ucomisd 0x5c4d(%rip), %xmm0     # 0xb028
setp %al
setne %cl
orb %al, %cl
orb 0xd(%rsp), %cl
movb %cl, 0xbc(%rsp)
jne 0x5655
leaq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x7480
movq %r15, %rdi
leaq 0x5e63(%rip), %rsi      # 0xb294
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x5485
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x547e
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x5483
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x5485
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 0x5448
addl $-0x3, %eax
jmp 0x5485
addl $-0x2, %eax
jmp 0x5485
decl %eax
movl %eax, %esi
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x60(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x60(%rsp), %rdi
movl 0x68(%rsp), %esi
movl %ebx, %edx
callq 0x721a
movq 0x80(%rsp), %rcx
movl $0xf, %esi
leaq 0x90(%rsp), %rax
cmpq %rax, %rcx
je 0x54cf
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %r8
movq 0x68(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x5500
movl $0xf, %esi
leaq 0x70(%rsp), %rdi
cmpq %rdi, 0x60(%rsp)
je 0x54fb
movq 0x70(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5514
movq 0x60(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x3090
jmp 0x5522
leaq 0x60(%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 0x5547
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x554f
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 0x5d08(%rip), %rsi      # 0xb280
callq 0x34b0
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x55a5
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x55ad
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x12a0(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x55f8
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5614
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x5630
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x5655
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xc0(%rsp), %xmm0
ucomisd 0x59c2(%rip), %xmm0     # 0xb028
setp %al
setne %r15b
orb %al, %r15b
orb 0xc(%rsp), %r15b
jne 0x58dc
leaq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %r12
movq %r12, %rdi
callq 0x7480
movq %r12, %rdi
leaq 0x5be7(%rip), %rsi      # 0xb29f
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x570c
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x5705
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x570a
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x570c
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 0x56cf
addl $-0x3, %eax
jmp 0x570c
addl $-0x2, %eax
jmp 0x570c
decl %eax
movl %eax, %esi
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x60(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x60(%rsp), %rdi
movl 0x68(%rsp), %esi
movl %ebx, %edx
callq 0x721a
movq 0x80(%rsp), %rcx
movl $0xf, %esi
leaq 0x90(%rsp), %rax
cmpq %rax, %rcx
je 0x5756
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %r8
movq 0x68(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x5787
movl $0xf, %esi
leaq 0x70(%rsp), %rdi
cmpq %rdi, 0x60(%rsp)
je 0x5782
movq 0x70(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x579b
movq 0x60(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x3090
jmp 0x57a9
leaq 0x60(%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 0x57ce
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x57d6
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 0x5a81(%rip), %rsi      # 0xb280
callq 0x34b0
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x582c
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x5834
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x10a0(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x587f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x589b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x58b7
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x58dc
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x32a0
movsd 0xc0(%rsp), %xmm0
ucomisd 0x573b(%rip), %xmm0     # 0xb028
setp %al
setne %cl
orb %al, %cl
orb 0xb(%rsp), %cl
movb %cl, 0xa7(%rsp)
jne 0x5b6a
leaq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %r12
movq %r12, %rdi
callq 0x7480
movq %r12, %rdi
leaq 0x5967(%rip), %rsi      # 0xb2aa
callq 0x34b0
movl $0x1, %eax
cmpq $0xa, %rbx
jb 0x5997
movl $0x4, %eax
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x5990
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x5995
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x5997
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 0x595a
addl $-0x3, %eax
jmp 0x5997
addl $-0x2, %eax
jmp 0x5997
decl %eax
movl %eax, %esi
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x60(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
movq 0x60(%rsp), %rdi
movl 0x68(%rsp), %esi
movl %ebx, %edx
callq 0x721a
movq 0x80(%rsp), %rcx
movl $0xf, %esi
leaq 0x90(%rsp), %rax
cmpq %rax, %rcx
je 0x59e1
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %r8
movq 0x68(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq 0x10(%rsp), %rbx
jbe 0x5a17
movl $0xf, %esi
leaq 0x70(%rsp), %rdi
cmpq %rdi, 0x60(%rsp)
je 0x5a12
movq 0x70(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5a2b
movq 0x60(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x3090
jmp 0x5a39
leaq 0x60(%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 0x5a5e
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5a66
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 0x57f3(%rip), %rsi      # 0xb280
callq 0x34b0
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5aba
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x5ac2
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xea0(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x10, %edx
callq 0x3100
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x5b0d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5b29
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x5b45
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x5b6a
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x32a0
xorpd %xmm0, %xmm0
movsd %xmm0, 0xa8(%rsp)
cmpl $0x0, 0x5c(%rsp)
movsd %xmm0, 0xe0(%rsp)
je 0x5eb3
movsd %xmm0, 0xe0(%rsp)
xorl %ebp, %ebp
xorl %r13d, %r13d
movq 0x100(%rsp), %rax
movq 0x108(%rsp), %rdx
subq %rax, %rdx
sarq $0x2, %rdx
cmpq %r13, %rdx
jbe 0x6743
cmpl $0x0, (%rax,%r13,4)
je 0x5df4
cmpb $0x0, 0x5b(%rsp)
jne 0x5d3c
movq 0x140(%rsp), %rax
movq 0x148(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x8(%rax,%rbp), %rax
movsd (%rax), %xmm0
leaq 0x990(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x56a6(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x140(%rsp), %rax
movq 0x148(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x8(%rax,%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x565d(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x120(%rsp), %rax
movq 0x128(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x8(%rax,%rbp), %rax
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5615(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x120(%rsp), %rax
movq 0x128(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x8(%rax,%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x55cc(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x120(%rsp), %rax
movq 0x128(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x8(%rax,%rbp), %rax
movsd 0x10(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5580(%rip), %rsi      # 0xb2b7
callq 0x32e0
movq 0x1c0(%rsp), %rax
movq 0x1c8(%rsp), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x120(%rsp), %rdi
movq 0x128(%rsp), %rdx
subq %rdi, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movsd (%rax,%r13,8), %xmm0
movsd %xmm0, 0xb0(%rsp)
addq %rbp, %rdi
callq 0x849d
movsd %xmm0, 0x308(%rsp)
movq 0x120(%rsp), %rdi
movq 0x128(%rsp), %rdx
subq %rdi, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
addq %rbp, %rdi
callq 0x849d
movsd 0x308(%rsp), %xmm2
movsd 0xb0(%rsp), %xmm1
mulsd %xmm2, %xmm1
mulsd %xmm0, %xmm1
movsd 0xe0(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
movq 0x140(%rsp), %rax
movq 0x148(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x8(%rax,%rbp), %rax
movsd (%rax), %xmm0
leaq 0xea0(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5481(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x140(%rsp), %rax
movq 0x148(%rsp), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
cmpq %r13, %rdx
jbe 0x6743
movq 0x8(%rax,%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %rbx, %rdi
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5435(%rip), %rsi      # 0xb2b7
callq 0x32e0
incq %r13
addq $0x10, %rbp
cmpl 0x5c(%rsp), %r13d
jb 0x5b99
movsd 0xe0(%rsp), %xmm0
mulsd 0x516e(%rip), %xmm0     # 0xb018
movsd %xmm0, 0xe0(%rsp)
cmpl $0x0, 0xa0(%rsp)
je 0x61c5
xorpd %xmm0, %xmm0
movsd %xmm0, 0xa8(%rsp)
xorl %r13d, %r13d
cmpl $0x0, 0xcc(%rsp)
je 0x6190
movl %r13d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0xb0(%rsp)
movl $0x1, %ebp
xorl %r14d, %r14d
cmpb $0x0, 0x160(%rsp)
jne 0x5fe1
movsd 0xe8(%rsp), %xmm0
mulsd 0xb0(%rsp), %xmm0
leaq 0xca0(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5383(%rip), %rsi      # 0xb2bd
callq 0x32e0
movl %r14d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xf8(%rsp), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5350(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x230(%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 0x5312(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x230(%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 0x52db(%rip), %rsi      # 0xb2b7
callq 0x32e0
cmpb $0x0, 0xbc(%rsp)
jne 0x608e
movsd 0xe8(%rsp), %xmm0
mulsd 0xb0(%rsp), %xmm0
leaq 0x12a0(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x529d(%rip), %rsi      # 0xb2bd
callq 0x32e0
movl %r14d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xf8(%rsp), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x526a(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x270(%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 0x522e(%rip), %rsi      # 0xb2b7
callq 0x32e0
testb %r15b, %r15b
jne 0x6136
movsd 0xe8(%rsp), %xmm0
mulsd 0xb0(%rsp), %xmm0
leaq 0x10a0(%rsp), %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x51f5(%rip), %rsi      # 0xb2bd
callq 0x32e0
movl %r14d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0xf8(%rsp), %xmm0
movq %rbx, %rdi
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x51c2(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq 0x290(%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 0x5186(%rip), %rsi      # 0xb2b7
callq 0x32e0
movq 0x290(%rsp), %rax
movq %r13, %rcx
shlq $0x4, %rcx
movq 0x8(%rax,%rcx), %rax
movsd (%rax,%r14,8), %xmm0
movq 0x270(%rsp), %rax
movq 0x8(%rax,%rcx), %rax
mulsd (%rax,%r14,8), %xmm0
movsd 0xa8(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0xa8(%rsp)
incq %r14
movl 0xcc(%rsp), %eax
addq $0x2, %rbp
cmpq %rax, %r14
jb 0x5efb
incq %r13
movl 0xa0(%rsp), %eax
cmpq %rax, %r13
jb 0x5ed1
movsd 0xa8(%rsp), %xmm0
mulsd 0x4e64(%rip), %xmm0     # 0xb018
movsd %xmm0, 0xa8(%rsp)
leaq 0xe8(%rsp), %r14
leaq 0x428(%rsp), %rdi
movq 0xf0(%rsp), %rsi
callq 0x31b0
leaq 0xf8(%rsp), %r12
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x50c9(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq %rbx, %rdi
movsd 0xe0(%rsp), %xmm0
callq 0x33d0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x50a1(%rip), %rsi      # 0xb2bd
callq 0x32e0
movq %rbx, %rdi
movsd 0xa8(%rsp), %xmm0
callq 0x33d0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5076(%rip), %rsi      # 0xb2b7
callq 0x32e0
cmpb $0x0, 0x5b(%rsp)
jne 0x625a
leaq 0x990(%rsp), %rdi
callq 0x3340
cmpb $0x0, 0x160(%rsp)
jne 0x6271
leaq 0xca0(%rsp), %rdi
callq 0x3340
cmpb $0x0, 0xbc(%rsp)
jne 0x6288
leaq 0x12a0(%rsp), %rdi
callq 0x3340
testb %r15b, %r15b
jne 0x629a
leaq 0x10a0(%rsp), %rdi
callq 0x3340
cmpb $0x0, 0xa7(%rsp)
jne 0x62b1
leaq 0xea0(%rsp), %rdi
callq 0x3340
callq 0x31a0
subq 0x300(%rsp), %rax
movsd 0xc0(%rsp), %xmm0
ucomisd 0x4d59(%rip), %xmm0     # 0xb028
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
divsd 0x4d41(%rip), %xmm0     # 0xb020
movsd %xmm0, 0xa8(%rsp)
jne 0x62f0
jnp 0x6373
movl $0x5, %edx
movq 0x8cdc(%rip), %rdi      # 0xefd8
leaq 0x4fb6(%rip), %rsi      # 0xb2b9
callq 0x32e0
movl 0xc8(%rsp), %eax
subl 0xf0(%rsp), %eax
cvtsi2sd %rax, %xmm1
movsd 0xa8(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x8ca9(%rip), %rdi      # 0xefd8
callq 0x33d0
movq %rax, %r13
movl $0xb, %edx
movq %rax, %rdi
leaq 0x4f79(%rip), %rsi      # 0xb2bf
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 0xf0(%rsp), %rbx
incq %rbx
cmpq 0x2f0(%rsp), %rbx
jne 0x4a6c
leaq 0x428(%rsp), %rbx
movq %rbx, %rdi
callq 0x3340
movq 0x8c35(%rip), %r14      # 0xefd8
leaq 0x4f21(%rip), %rsi      # 0xb2cb
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 0x8c03(%rip), %rdi      # 0xefd8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
leaq 0x230(%rsp), %rdi
callq 0x7038
leaq 0x250(%rsp), %rdi
callq 0x6ff6
leaq 0x270(%rsp), %rdi
callq 0x6ff6
leaq 0x290(%rsp), %rdi
callq 0x6ff6
movq 0x8bb3(%rip), %rax      # 0xefd0
movq (%rax), %r14
movq 0x18(%rax), %r15
leaq 0xea8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0xea0(%rsp,%rax)
callq 0x3220
movl $0xf8, %r12d
leaq 0xea0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x10a8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x10a0(%rsp,%rax)
callq 0x3220
leaq 0x10a0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x12a8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x12a0(%rsp,%rax)
callq 0x3220
leaq 0x12a0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0xca8(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0xca0(%rsp,%rax)
callq 0x3220
leaq 0xca0(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x998(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x990(%rsp,%rax)
callq 0x3220
leaq 0x990(%rsp), %rdi
addq %r12, %rdi
callq 0x30a0
leaq 0x430(%rsp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, 0x428(%rsp,%rax)
callq 0x3220
addq %r12, %rbx
movq %rbx, %rdi
callq 0x30a0
leaq 0x1a8(%rsp), %rdi
callq 0x716c
xorl %ebx, %ebx
leaq 0x780(%rsp), %rdi
callq 0x3060
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0x656c
movq 0x110(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x6589
movq 0x1d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0x65a6
movq 0x1a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x2b0(%rsp), %rdi
testq %rdi, %rdi
je 0x65c3
movq 0x2c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
leaq 0x120(%rsp), %rdi
callq 0x6ff6
leaq 0x2d0(%rsp), %rdi
callq 0x6ff6
leaq 0x140(%rsp), %rdi
callq 0x6ff6
jmp 0x6615
movq 0x89e5(%rip), %rdi      # 0xefd8
leaq 0x4bb3(%rip), %rsi      # 0xb1ad
movl $0x2a, %edx
callq 0x32e0
movl $0x1, %ebx
movq 0x89c8(%rip), %rdi      # 0xefd8
callq 0x3110
leaq 0x668(%rsp), %rdi
callq 0x3120
leaq 0x690(%rsp), %rdi
callq 0x3120
leaq 0x3d8(%rsp), %rdi
callq 0x3120
movq 0xd8(%rsp), %rdi
callq 0x3270
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x666a
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x638(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x668b
movq 0x638(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x400(%rsp), %rdi
callq 0x3120
leaq 0x14a0(%rsp), %rdi
callq 0x3060
leaq 0x658(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x66c6
movq 0x658(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xc88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x66e7
movq 0xc88(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xc40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6708
movq 0xc40(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xbe0(%rsp), %rdi
callq 0x7288
leaq 0xb90(%rsp), %rdi
callq 0x7430
leaq 0x208(%rsp), %rdi
callq 0x3120
movl %ebx, %eax
addq $0x16a8, %rsp           # imm = 0x16A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4c0b(%rip), %rdi      # 0xb355
movq %r13, %rsi
xorl %eax, %eax
callq 0x3380
jmp 0x6770
jmp 0x6b15
jmp 0x6770
jmp 0x6b15
jmp 0x6770
jmp 0x6b15
jmp 0x6770
jmp 0x6b15
movq %rax, %rbx
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x6c64
movq 0x438(%rsp), %rsi
jmp 0x6b5e
jmp 0x6b15
jmp 0x67a0
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x6be2
movq 0x40(%rsp), %rsi
jmp 0x6989
jmp 0x6bdf
movq %rax, %rbx
jmp 0x6c23
movq %rax, %rbx
jmp 0x6c30
movq %rax, %rbx
jmp 0x6c3d
movq %rax, %rbx
jmp 0x6c4a
movq %rax, %rbx
jmp 0x6c57
jmp 0x6b15
movq %rax, %rbx
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x6c71
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
jmp 0x6c71
jmp 0x6bd1
jmp 0x6b95
movq %rax, %rbx
jmp 0x6c7e
jmp 0x6b6b
jmp 0x6b15
jmp 0x6bdf
jmp 0x6b95
movq %rax, %rbx
jmp 0x6d40
jmp 0x6b9d
jmp 0x6868
jmp 0x687a
jmp 0x6b9d
jmp 0x6868
jmp 0x687a
jmp 0x6b9d
movq %rax, %rbx
leaq 0x780(%rsp), %rdi
callq 0x3120
jmp 0x6899
movq %rax, %rbx
jmp 0x6899
jmp 0x6b9d
movq %rax, %rbx
leaq 0x780(%rsp), %rdi
callq 0x3120
jmp 0x6899
movq %rax, %rbx
leaq 0x428(%rsp), %rdi
callq 0x3120
jmp 0x6d4d
jmp 0x6b9d
jmp 0x6bdf
jmp 0x6bd1
jmp 0x6ba5
jmp 0x6907
jmp 0x68f4
jmp 0x68fb
jmp 0x68fb
jmp 0x68fb
jmp 0x68fb
jmp 0x6bdf
jmp 0x6911
jmp 0x6907
jmp 0x68f4
jmp 0x6907
jmp 0x68f4
jmp 0x68fb
jmp 0x68fb
jmp 0x6bdf
jmp 0x6911
jmp 0x68fb
jmp 0x6bdf
jmp 0x6911
jmp 0x6907
jmp 0x68f4
jmp 0x68fb
movq %rax, %rbx
jmp 0x694c
jmp 0x68fb
movq %rax, %rbx
jmp 0x6968
jmp 0x6bdf
jmp 0x6911
movq %rax, %rbx
jmp 0x6930
jmp 0x6bdf
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x6930
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x694c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x6968
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x6be2
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x32a0
jmp 0x6be2
movq %rax, %rbx
leaq 0x780(%rsp), %rdi
callq 0x3120
jmp 0x69ab
movq %rax, %rbx
leaq 0x428(%rsp), %rdi
callq 0x3120
jmp 0x6d6e
movq %rax, %rbx
jmp 0x6d6e
movq %rax, %rbx
leaq 0x6b8(%rsp), %rdi
callq 0x3120
jmp 0x69da
movq %rax, %rbx
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d8f
movq 0x348(%rsp), %rsi
jmp 0x6d87
jmp 0x6b73
movq %rax, %rbx
leaq 0x6e0(%rsp), %rdi
callq 0x3120
jmp 0x6a12
movq %rax, %rbx
movq 0x358(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d8f
movq 0x368(%rsp), %rsi
jmp 0x6d87
jmp 0x6b73
movq %rax, %rbx
leaq 0x708(%rsp), %rdi
callq 0x3120
jmp 0x6a4a
movq %rax, %rbx
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d8f
movq 0x388(%rsp), %rsi
jmp 0x6d87
jmp 0x6b73
movq %rax, %rbx
leaq 0x730(%rsp), %rdi
callq 0x3120
jmp 0x6a82
movq %rax, %rbx
movq 0x398(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d8f
movq 0x3a8(%rsp), %rsi
jmp 0x6d87
jmp 0x6b73
movq %rax, %rbx
leaq 0x758(%rsp), %rdi
callq 0x3120
jmp 0x6aba
movq %rax, %rbx
movq 0x3b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6d8f
movq 0x3c8(%rsp), %rsi
jmp 0x6d87
jmp 0x6b73
movq %rax, %rbx
jmp 0x6d19
jmp 0x6bdf
jmp 0x6bdf
jmp 0x6bdf
jmp 0x6bdf
jmp 0x6bdf
jmp 0x6bdf
movq %rax, %rbx
jmp 0x6bb5
jmp 0x6bd1
movq %rax, %rbx
jmp 0x6b45
movq %rax, %rbx
jmp 0x6c64
movq %rax, %rbx
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x6b45
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x32a0
movq 0x990(%rsp), %rdi
cmpq %r13, %rdi
je 0x6c64
movq 0x9a0(%rsp), %rsi
incq %rsi
callq 0x32a0
jmp 0x6c64
movq %rax, %rbx
jmp 0x6d26
movq %rax, %rbx
jmp 0x6d8f
jmp 0x6bc9
movq %rax, %rbx
jmp 0x6da9
movq %rax, %rbx
jmp 0x6dca
movq %rax, %rbx
jmp 0x6dd7
movq %rax, %rbx
jmp 0x6d33
movq %rax, %rbx
jmp 0x6d4d
movq %rax, %rbx
movq 0x998(%rsp), %rdi
callq 0x3270
movq 0x430(%rsp), %rdi
callq 0x3270
jmp 0x6c71
jmp 0x6bdf
movq %rax, %rbx
jmp 0x6d9c
movq %rax, %rbx
jmp 0x6c71
jmp 0x6bdf
jmp 0x6bdf
jmp 0x6bdf
movq %rax, %rbx
leaq 0x230(%rsp), %rdi
callq 0x7038
leaq 0x250(%rsp), %rdi
callq 0x6ff6
leaq 0x270(%rsp), %rdi
callq 0x6ff6
leaq 0x290(%rsp), %rdi
callq 0x6ff6
leaq 0xea0(%rsp), %rdi
callq 0x3370
leaq 0x10a0(%rsp), %rdi
callq 0x3370
leaq 0x12a0(%rsp), %rdi
callq 0x3370
leaq 0xca0(%rsp), %rdi
callq 0x3370
leaq 0x990(%rsp), %rdi
callq 0x3370
leaq 0x428(%rsp), %rdi
callq 0x3370
leaq 0x1a8(%rsp), %rdi
callq 0x716c
leaq 0x780(%rsp), %rdi
callq 0x3060
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0x6c9b
movq 0x110(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x6cb8
movq 0x1d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0x6cd5
movq 0x1a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
movq 0x2b0(%rsp), %rdi
testq %rdi, %rdi
je 0x6cf2
movq 0x2c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32a0
leaq 0x120(%rsp), %rdi
callq 0x6ff6
leaq 0x2d0(%rsp), %rdi
callq 0x6ff6
leaq 0x140(%rsp), %rdi
callq 0x6ff6
leaq 0x668(%rsp), %rdi
callq 0x3120
leaq 0x690(%rsp), %rdi
callq 0x3120
leaq 0x3d8(%rsp), %rdi
callq 0x3120
movq 0xd8(%rsp), %rdi
callq 0x3270
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d6e
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x638(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d8f
movq 0x638(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0x400(%rsp), %rdi
callq 0x3120
leaq 0x14a0(%rsp), %rdi
callq 0x3060
leaq 0x658(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6dca
movq 0x658(%rsp), %rsi
incq %rsi
callq 0x32a0
leaq 0xb90(%rsp), %rdi
callq 0x71c8
leaq 0x208(%rsp), %rdi
callq 0x3120
movq %rbx, %rdi
callq 0x3460