#include <cmath>
#include <fstream>
#include <iomanip>
#include <limits>
#include <stdexcept>
#include <string>
#include <vector>
#include <cfloat>

using namespace std;

namespace param {
const int n_steps = 200000;
const double dt = 60;
const double eps = 1e-3;
const double G = 6.674e-11;
__host__ __device__ double gravity_device_mass(double m0, double t) {
    return m0 + 0.5 * m0 * fabs(sin(t / 6000));
}
const double planet_radius = 1e7;
const double missile_speed = 1e6;
double get_missile_cost(double t) { return 1e5 + 1e3 * t; }
}  // namespace param

__device__ __managed__ int n, planet, asteroid;  // global


void read_input(const char* filename, int& n, int& planet, int& asteroid,
    std::vector<double>& qx, std::vector<double>& qy, std::vector<double>& qz,
    std::vector<double>& vx, std::vector<double>& vy, std::vector<double>& vz,
    std::vector<double>& m, std::vector<std::string>& type) {
    std::ifstream fin(filename);
    fin >> n >> planet >> asteroid;
    qx.resize(n);
    qy.resize(n);
    qz.resize(n);
    vx.resize(n);
    vy.resize(n);
    vz.resize(n);
    m.resize(n);
    type.resize(n);
    for (int i = 0; i < n; i++) {
        fin >> qx[i] >> qy[i] >> qz[i] >> vx[i] >> vy[i] >> vz[i] >> m[i] >> type[i];
    }
}

void write_output(const char* filename, double min_dist, int hit_time_step,
    int gravity_device_id, double missile_cost) {
    std::ofstream fout(filename);
    fout << std::scientific
         << std::setprecision(std::numeric_limits<double>::digits10 + 1) << min_dist
         << '\n'
         << hit_time_step << '\n'
         << gravity_device_id << ' ' << missile_cost << '\n';
}

__global__ void run_step_kernel(int step, double* qx, double* qy, double* qz, double* vx, double* vy, double* vz, double* m, int* type) {
    
    int i = blockDim.x * blockIdx.x + threadIdx.x;
    
    if (i < n) {
        double ax = 0;
        double ay = 0;
        double az = 0;
        
        for (int j = 0; j < n; j++) {
            if (j == i) continue;
            double mj = m[j];
            if (type[j] == 1) {
                mj = param::gravity_device_mass(mj, step * param::dt);
            }
            //__syncthreads();
            
            double dx = qx[j] - qx[i];
            double dy = qy[j] - qy[i];
            double dz = qz[j] - qz[i];
            double dist3 = pow(dx * dx + dy * dy + dz * dz + param::eps * param::eps, 1.5);
            ax += param::G * mj * dx / dist3;
            ay += param::G * mj * dy / dist3;
            az += param::G * mj * dz / dist3;
            //__syncthreads();
        }
        
        //__syncthreads();
        vx[i] += ax * param::dt;
        vy[i] += ay * param::dt;
        vz[i] += az * param::dt;

        qx[i] += vx[i] * param::dt;
        qy[i] += vy[i] * param::dt;
        qz[i] += vz[i] * param::dt;
    }
    

}



double dist(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    return sqrt(dx*dx + dy*dy + dz*dz);
}

double project_x(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    double dist = sqrt(dx*dx + dy*dy + dz*dz);
    double dist_xy = sqrt(dx*dx + dy*dy);
    
    return (dist_xy/dist) * (fabs(x1-x2)/dist_xy);
}

double project_y(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    double dist = sqrt(dx*dx + dy*dy + dz*dz);
    double dist_xy = sqrt(dx*dx + dy*dy);
    
    return (dist_xy/dist) * (fabs(y1-y2)/dist_xy);
}

double project_z(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    double dist = sqrt(dx*dx + dy*dy + dz*dz);
    
    return (fabs(z1-z2)/dist);
}


int main(int argc, char** argv) {
    if (argc != 3) {
        throw std::runtime_error("must supply 2 arguments");
    }
    
    //int n;  // n: n bodies
    std::vector<double> qx, qy, qz, vx, vy, vz, m;
    std::vector<std::string> type;
    vector<int> t_temp;

    auto distance = [&](int i, int j) -> double {
        double dx = qx[i] - qx[j];
        double dy = qy[i] - qy[j];
        double dz = qz[i] - qz[j];
        return sqrt(dx * dx + dy * dy + dz * dz);
    };

    
    // read in
    read_input(argv[1], n, planet, asteroid, qx, qy, qz, vx, vy, vz, m, type);
    
    int t[n];
    for(int i=0; i<n; i++){
        if(type[i] == "device")
            t[i] = 1;
        else
            t[i] = 0;
    }
    
    int threadsPerBlock = 32;
    int blocksPerGrid = (n + threadsPerBlock-1)/threadsPerBlock;
    
    
    
    
    
    
    // convert std::vector to array
    // for P1
    double qx_h1[n], qy_h1[n], qz_h1[n];
    copy(qx.begin(), qx.end(), qx_h1);
    copy(qy.begin(), qy.end(), qy_h1);
    copy(qz.begin(), qz.end(), qz_h1);
    
    double vx_h1[n], vy_h1[n], vz_h1[n];
    copy(vx.begin(), vx.end(), vx_h1);
    copy(vy.begin(), vy.end(), vy_h1);
    copy(vz.begin(), vz.end(), vz_h1);
    
    double m_h1[n];
    copy(m.begin(), m.end(), m_h1);
    
    vector<int> devList;  // device list for P3
    for (int i = 0; i < n; i++) {
        if (t[i] == 1) {
            devList.push_back(i);
            m_h1[i] = 0;    // no device in problem 1
        }
    }
    
    // for P2
    double qx_h2[n], qy_h2[n], qz_h2[n];
    copy(qx.begin(), qx.end(), qx_h2);
    copy(qy.begin(), qy.end(), qy_h2);
    copy(qz.begin(), qz.end(), qz_h2);
    
    double vx_h2[n], vy_h2[n], vz_h2[n];
    copy(vx.begin(), vx.end(), vx_h2);
    copy(vy.begin(), vy.end(), vy_h2);
    copy(vz.begin(), vz.end(), vz_h2);
    
    double m_h2[n];
    copy(m.begin(), m.end(), m_h2);
    
    
    // device's variable
    double *qx_dev1, *qy_dev1, *qz_dev1, *vx_dev1, *vy_dev1, *vz_dev1, *m_dev1;
    int *t_dev1;
    
    double *qx_dev2, *qy_dev2, *qz_dev2, *vx_dev2, *vy_dev2, *vz_dev2, *m_dev2;
    int *t_dev2;
    
    
    // Problem 1 & 2
    double min_dist = std::numeric_limits<double>::infinity();
    int hit_time_step = -2;
    

    cudaSetDevice(0);
    cudaStream_t stream1, stream2;
    cudaStreamCreate(&stream1);
    cudaStreamCreate(&stream2);
    
    cudaMalloc(&qx_dev1, sizeof(double)*n);
    cudaMemcpyAsync(qx_dev1, qx_h1, sizeof(double)*n, cudaMemcpyHostToDevice, stream1);
    cudaMalloc(&qy_dev1, sizeof(double)*n);
    cudaMemcpyAsync(qy_dev1, qy_h1, sizeof(double)*n, cudaMemcpyHostToDevice, stream1);
    cudaMalloc(&qz_dev1, sizeof(double)*n);
    cudaMemcpyAsync(qz_dev1, qz_h1, sizeof(double)*n, cudaMemcpyHostToDevice, stream1);
    
    cudaMalloc(&vx_dev1, sizeof(double)*n);
    cudaMemcpyAsync(vx_dev1, vx_h1, sizeof(double)*n, cudaMemcpyHostToDevice, stream1);
    cudaMalloc(&vy_dev1, sizeof(double)*n);
    cudaMemcpyAsync(vy_dev1, vy_h1, sizeof(double)*n, cudaMemcpyHostToDevice, stream1);
    cudaMalloc(&vz_dev1, sizeof(double)*n);
    cudaMemcpyAsync(vz_dev1, vz_h1, sizeof(double)*n, cudaMemcpyHostToDevice, stream1);
    
    cudaMalloc(&m_dev1, sizeof(double)*n);
    cudaMemcpyAsync(m_dev1, m_h1, sizeof(double)*n, cudaMemcpyHostToDevice, stream1);
    
    cudaMalloc(&t_dev1, sizeof(int)*n);
    cudaMemcpyAsync(t_dev1, t, sizeof(int)*n, cudaMemcpyHostToDevice, stream1);
    
    
    cudaMalloc(&qx_dev2, sizeof(double)*n);
    cudaMemcpyAsync(qx_dev2, qx_h2, sizeof(double)*n, cudaMemcpyHostToDevice, stream2);
    cudaMalloc(&qy_dev2, sizeof(double)*n);
    cudaMemcpyAsync(qy_dev2, qy_h2, sizeof(double)*n, cudaMemcpyHostToDevice, stream2);
    cudaMalloc(&qz_dev2, sizeof(double)*n);
    cudaMemcpyAsync(qz_dev2, qz_h2, sizeof(double)*n, cudaMemcpyHostToDevice, stream2);
    
    cudaMalloc(&vx_dev2, sizeof(double)*n);
    cudaMemcpyAsync(vx_dev2, vx_h2, sizeof(double)*n, cudaMemcpyHostToDevice, stream2);
    cudaMalloc(&vy_dev2, sizeof(double)*n);
    cudaMemcpyAsync(vy_dev2, vy_h2, sizeof(double)*n, cudaMemcpyHostToDevice, stream2);
    cudaMalloc(&vz_dev2, sizeof(double)*n);
    cudaMemcpyAsync(vz_dev2, vz_h2, sizeof(double)*n, cudaMemcpyHostToDevice, stream2);
    
    cudaMalloc(&m_dev2, sizeof(double)*n);
    cudaMemcpyAsync(m_dev2, m_h2, sizeof(double)*n, cudaMemcpyHostToDevice, stream2);
    
    cudaMalloc(&t_dev2, sizeof(int)*n);
    cudaMemcpyAsync(t_dev2, t, sizeof(int)*n, cudaMemcpyHostToDevice, stream2);
    
    
    bool P2 = true;
    
   for (int step = 0; step <= param::n_steps; step++) {
        if (step > 0) {
            //cudaSetDevice(0);
            run_step_kernel<<<blocksPerGrid, threadsPerBlock, 0, stream1>>>(step, qx_dev1, qy_dev1, qz_dev1, vx_dev1, vy_dev1, vz_dev1, m_dev1, t_dev1);
            if(P2)
                run_step_kernel<<<blocksPerGrid, threadsPerBlock, 0, stream2>>>(step, qx_dev2, qy_dev2, qz_dev2, vx_dev2, vy_dev2, vz_dev2, m_dev2, t_dev2);
            //cudaDeviceSynchronize();
        }
       
       cudaMemcpyAsync(qx_h1, qx_dev1, sizeof(double)*n, cudaMemcpyDeviceToHost, stream1);
       cudaMemcpyAsync(qy_h1, qy_dev1, sizeof(double)*n, cudaMemcpyDeviceToHost, stream1);
       cudaMemcpyAsync(qz_h1, qz_dev1, sizeof(double)*n, cudaMemcpyDeviceToHost, stream1);
       
        double dx = qx_h1[planet] - qx_h1[asteroid];
        double dy = qy_h1[planet] - qy_h1[asteroid];
        double dz = qz_h1[planet] - qz_h1[asteroid];
        min_dist = std::min(min_dist, sqrt(dx * dx + dy * dy + dz * dz));
       
       
       if(P2){
           cudaMemcpyAsync(qx_h2, qx_dev2, sizeof(double)*n, cudaMemcpyDeviceToHost, stream2);
           cudaMemcpyAsync(qy_h2, qy_dev2, sizeof(double)*n, cudaMemcpyDeviceToHost, stream2);
           cudaMemcpyAsync(qz_h2, qz_dev2, sizeof(double)*n, cudaMemcpyDeviceToHost, stream2);
           
           double dx = qx_h2[planet] - qx_h2[asteroid];
           double dy = qy_h2[planet] - qy_h2[asteroid];
           double dz = qz_h2[planet] - qz_h2[asteroid];
           if (dx * dx + dy * dy + dz * dz < param::planet_radius * param::planet_radius) {
               hit_time_step = step;
               P2 = false;
           }

       }
       
       
       
    }
    
    cudaFree(qx_dev1);
    cudaFree(qy_dev1);
    cudaFree(qz_dev1);
    cudaFree(vx_dev1);
    cudaFree(vy_dev1);
    cudaFree(vz_dev1);
    cudaFree(m_dev1);
    cudaFree(t_dev1);
    
    cudaFree(qx_dev2);
    cudaFree(qy_dev2);
    cudaFree(qz_dev2);
    cudaFree(vx_dev2);
    cudaFree(vy_dev2);
    cudaFree(vz_dev2);
    cudaFree(m_dev2);
    cudaFree(t_dev2);
    
    cudaStreamDestroy(stream1);
    cudaStreamDestroy(stream2);
    
    

    // Problem 3
    // TODO
    int gravity_device_id = -999;
    double missile_cost = DBL_MAX;

    double *qx_dev3, *qy_dev3, *qz_dev3, *vx_dev3, *vy_dev3, *vz_dev3, *m_dev3;
    int *t_dev3;
        
    cudaSetDevice(1);
        
    
    cudaMalloc(&qx_dev3, sizeof(double)*n);
    cudaMalloc(&qy_dev3, sizeof(double)*n);
    cudaMalloc(&qz_dev3, sizeof(double)*n);
    cudaMalloc(&vx_dev3, sizeof(double)*n);
    cudaMalloc(&vy_dev3, sizeof(double)*n);
    cudaMalloc(&vz_dev3, sizeof(double)*n);
    cudaMalloc(&m_dev3, sizeof(double)*n);
    cudaMalloc(&t_dev3, sizeof(int)*n);
        
    int hitNum = 0;
        
    for(int i=0; i<devList.size(); i++){
            
        read_input(argv[1], n, planet, asteroid, qx, qy, qz, vx, vy, vz, m, type);
            
        double *qx_h3 = &qx[0];
        double *qy_h3 = &qy[0];
        double *qz_h3 = &qz[0];
        double *vx_h3 = &vx[0];
        double *vy_h3 = &vy[0];
        double *vz_h3 = &vz[0];
        double *m_h3 = &m[0];
            
            
        cudaMemcpy(qx_dev3, qx_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
        cudaMemcpy(qy_dev3, qy_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
        cudaMemcpy(qz_dev3, qz_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
            
        cudaMemcpy(vx_dev3, vx_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
        cudaMemcpy(vy_dev3, vy_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
        cudaMemcpy(vz_dev3, vz_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
            
        cudaMemcpy(m_dev3, m_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
        cudaMemcpy(t_dev3, t, sizeof(int)*n, cudaMemcpyHostToDevice);
            
        double qx_m, qy_m, qz_m;  // position of missile
        double travelDist = 0;
            
        qx_m = qx[planet];
        qy_m = qy[planet];
        qz_m = qz[planet];
            
        for (int step = 0; step <= param::n_steps; step++) {
            if (step > 0) {
                run_step_kernel<<<blocksPerGrid, threadsPerBlock>>>(step, qx_dev3, qy_dev3, qz_dev3, vx_dev3, vy_dev3, vz_dev3, m_dev3, t_dev3);
            }
                
            cudaMemcpy(qx_h3, qx_dev3, sizeof(double)*n, cudaMemcpyDeviceToHost);
            cudaMemcpy(qy_h3, qy_dev3, sizeof(double)*n, cudaMemcpyDeviceToHost);
            cudaMemcpy(qz_h3, qz_dev3, sizeof(double)*n, cudaMemcpyDeviceToHost);
            
            qx_m += param::missile_speed * param::dt * project_x(qx_m, qy_m, qz_m, qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]]);
            qy_m += param::missile_speed * param::dt * project_y(qx_m, qy_m, qz_m, qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]]);
            qz_m += param::missile_speed * param::dt * project_z(qx_m, qy_m, qz_m, qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]]);
                
                
            travelDist += param::missile_speed * param::dt;
                
            if(travelDist >= dist(qx_h3[planet], qy_h3[planet], qz_h3[planet], qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]])){
                m_h3[devList[i]] = 0;  // device’s mass becomes zero after it is destroyed
                double c = param::get_missile_cost(step * param::dt);
                if(missile_cost > c){
                    missile_cost = c;
                    gravity_device_id = devList[i];
                }
                cudaMemcpy(m_dev3, m_h3, sizeof(double)*n, cudaMemcpyHostToDevice);
            }
                
            // determine hitting
            double dx = qx_h3[planet] - qx_h3[asteroid];
            double dy = qy_h3[planet] - qy_h3[asteroid];
            double dz = qz_h3[planet] - qz_h3[asteroid];
            if (dx * dx + dy * dy + dz * dz < param::planet_radius * param::planet_radius) {
                hitNum++;
                //printf("%d\n", hitNum);
                break;
            }
            
                
        }
            
    }
        
    if(hitNum == devList.size() || hit_time_step == -2){
        gravity_device_id = -1;
        missile_cost = 0;
    }
        
    cudaFree(qx_dev3);
    cudaFree(qy_dev3);
    cudaFree(qz_dev3);
    cudaFree(vx_dev3);
    cudaFree(vy_dev3);
    cudaFree(vz_dev3);
    cudaFree(m_dev3);
    cudaFree(t_dev3);
        
    

    write_output(argv[2], min_dist, hit_time_step, gravity_device_id, missile_cost);
}

	.file	"tmpxft_002255c6_00000000-6_hw5.cudafe1.cpp"
	.text
#APP

#NO_APP
	.section	.text._ZSt10scientificRSt8ios_base,"axG",@progbits,_ZSt10scientificRSt8ios_base,comdat
	.weak	_ZSt10scientificRSt8ios_base
	.type	_ZSt10scientificRSt8ios_base, @function
_ZSt10scientificRSt8ios_base:
.LFB3286:
	.cfi_startproc
	endbr64
	movl	24(%rdi), %edx
	movq	%rdi, %rax
	andl	$-261, %edx
	orb	$1, %dh
	movl	%edx, 24(%rdi)
	ret
	.cfi_endproc
.LFE3286:
	.size	_ZSt10scientificRSt8ios_base, .-_ZSt10scientificRSt8ios_base
	.text
	.type	_ZL20__nv_init_managed_rtv, @function
_ZL20__nv_init_managed_rtv:
.LFB1:
	.cfi_startproc
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	testb	%al, %al
	jne	.L5
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	_ZL32__nv_fatbinhandle_for_managed_rt(%rip), %rdi
	call	__cudaInitModule@PLT
	movb	%al, _ZL22__nv_inited_managed_rt(%rip)
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
.L5:
	movb	%al, _ZL22__nv_inited_managed_rt(%rip)
	ret
	.cfi_endproc
.LFE1:
	.size	_ZL20__nv_init_managed_rtv, .-_ZL20__nv_init_managed_rtv
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB4410:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE4410:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.type	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0, @function
_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0:
.LFB5356:
	.cfi_startproc
	jmp	cudaMalloc@PLT
	.cfi_endproc
.LFE5356:
	.size	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0, .-_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	.type	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0, @function
_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0:
.LFB5357:
	.cfi_startproc
	movq	%rdi, %rax
	movq	%rdx, %rdi
	subq	%rax, %rsi
	movq	%rsi, %rdx
	cmpq	$8, %rsi
	jle	.L12
	movq	%rax, %rsi
	jmp	memmove@PLT
.L12:
	jne	.L11
	movsd	(%rax), %xmm0
	movsd	%xmm0, (%rdi)
.L11:
	ret
	.cfi_endproc
.LFE5357:
	.size	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0, .-_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	.globl	_ZN5param19gravity_device_massEdd
	.type	_ZN5param19gravity_device_massEdd, @function
_ZN5param19gravity_device_massEdd:
.LFB4368:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	divsd	.LC0(%rip), %xmm1
	movsd	%xmm0, 8(%rsp)
	movaps	%xmm1, %xmm0
	call	sin@PLT
	movsd	8(%rsp), %xmm2
	movsd	.LC1(%rip), %xmm1
	andps	.LC2(%rip), %xmm0
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	mulsd	%xmm2, %xmm1
	mulsd	%xmm0, %xmm1
	addsd	%xmm2, %xmm1
	movaps	%xmm1, %xmm0
	ret
	.cfi_endproc
.LFE4368:
	.size	_ZN5param19gravity_device_massEdd, .-_ZN5param19gravity_device_massEdd
	.globl	_ZN5param16get_missile_costEd
	.type	_ZN5param16get_missile_costEd, @function
_ZN5param16get_missile_costEd:
.LFB4369:
	.cfi_startproc
	endbr64
	mulsd	.LC3(%rip), %xmm0
	addsd	.LC4(%rip), %xmm0
	ret
	.cfi_endproc
.LFE4369:
	.size	_ZN5param16get_missile_costEd, .-_ZN5param16get_missile_costEd
	.globl	_Z4distdddddd
	.type	_Z4distdddddd, @function
_Z4distdddddd:
.LFB4372:
	.cfi_startproc
	endbr64
	subsd	%xmm3, %xmm0
	subsd	%xmm4, %xmm1
	subsd	%xmm5, %xmm2
	mulsd	%xmm0, %xmm0
	mulsd	%xmm1, %xmm1
	mulsd	%xmm2, %xmm2
	addsd	%xmm1, %xmm0
	addsd	%xmm2, %xmm0
	jmp	sqrt@PLT
	.cfi_endproc
.LFE4372:
	.size	_Z4distdddddd, .-_Z4distdddddd
	.globl	_Z9project_xdddddd
	.type	_Z9project_xdddddd, @function
_Z9project_xdddddd:
.LFB4373:
	.cfi_startproc
	endbr64
	movaps	%xmm0, %xmm6
	subsd	%xmm4, %xmm1
	subsd	%xmm5, %xmm2
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	subsd	%xmm3, %xmm6
	mulsd	%xmm1, %xmm1
	mulsd	%xmm2, %xmm2
	movaps	%xmm6, %xmm0
	movsd	%xmm6, 24(%rsp)
	mulsd	%xmm6, %xmm0
	addsd	%xmm1, %xmm0
	addsd	%xmm0, %xmm2
	movsd	%xmm0, 8(%rsp)
	movaps	%xmm2, %xmm0
	call	sqrt@PLT
	movsd	%xmm0, 16(%rsp)
	movsd	8(%rsp), %xmm0
	call	sqrt@PLT
	movsd	24(%rsp), %xmm6
	andps	.LC2(%rip), %xmm6
	divsd	%xmm0, %xmm6
	divsd	16(%rsp), %xmm0
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	mulsd	%xmm6, %xmm0
	ret
	.cfi_endproc
.LFE4373:
	.size	_Z9project_xdddddd, .-_Z9project_xdddddd
	.globl	_Z9project_ydddddd
	.type	_Z9project_ydddddd, @function
_Z9project_ydddddd:
.LFB4374:
	.cfi_startproc
	endbr64
	subsd	%xmm4, %xmm1
	subsd	%xmm3, %xmm0
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	subsd	%xmm5, %xmm2
	mulsd	%xmm0, %xmm0
	movaps	%xmm1, %xmm3
	movsd	%xmm1, 24(%rsp)
	mulsd	%xmm1, %xmm3
	mulsd	%xmm2, %xmm2
	addsd	%xmm3, %xmm0
	addsd	%xmm0, %xmm2
	movsd	%xmm0, 8(%rsp)
	movaps	%xmm2, %xmm0
	call	sqrt@PLT
	movsd	%xmm0, 16(%rsp)
	movsd	8(%rsp), %xmm0
	call	sqrt@PLT
	movsd	24(%rsp), %xmm1
	andps	.LC2(%rip), %xmm1
	divsd	%xmm0, %xmm1
	divsd	16(%rsp), %xmm0
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	mulsd	%xmm1, %xmm0
	ret
	.cfi_endproc
.LFE4374:
	.size	_Z9project_ydddddd, .-_Z9project_ydddddd
	.globl	_Z9project_zdddddd
	.type	_Z9project_zdddddd, @function
_Z9project_zdddddd:
.LFB4375:
	.cfi_startproc
	endbr64
	subsd	%xmm3, %xmm0
	subsd	%xmm4, %xmm1
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	subsd	%xmm5, %xmm2
	mulsd	%xmm1, %xmm1
	mulsd	%xmm0, %xmm0
	movsd	%xmm2, 8(%rsp)
	addsd	%xmm1, %xmm0
	movaps	%xmm2, %xmm1
	mulsd	%xmm2, %xmm1
	addsd	%xmm1, %xmm0
	call	sqrt@PLT
	movsd	8(%rsp), %xmm2
	andps	.LC2(%rip), %xmm2
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	divsd	%xmm0, %xmm2
	movaps	%xmm2, %xmm0
	ret
	.cfi_endproc
.LFE4375:
	.size	_Z9project_zdddddd, .-_Z9project_zdddddd
	.globl	_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi
	.type	_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi, @function
_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi:
.LFB4432:
	.cfi_startproc
	endbr64
	subq	$232, %rsp
	.cfi_def_cfa_offset 240
	movq	240(%rsp), %rax
	movl	%edi, 76(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rsi, 64(%rsp)
	leaq	108(%rsp), %rsi
	movq	%rax, 24(%rsp)
	movq	248(%rsp), %rax
	movq	%rdx, 56(%rsp)
	leaq	80(%rsp), %rdx
	movq	%rax, 16(%rsp)
	movq	256(%rsp), %rax
	movq	%rcx, 48(%rsp)
	leaq	88(%rsp), %rcx
	movq	%r8, 40(%rsp)
	movq	%r9, 32(%rsp)
	movq	%rax, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	leaq	76(%rsp), %rax
	movl	$1, 104(%rsp)
	movq	%rax, 144(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 192(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 200(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 208(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 96(%rsp)
	movq	%rax, 108(%rsp)
	movl	$1, 116(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L24
	pushq	88(%rsp)
	.cfi_def_cfa_offset 248
	leaq	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi(%rip), %rdi
	pushq	88(%rsp)
	.cfi_def_cfa_offset 256
	movq	124(%rsp), %rcx
	movl	132(%rsp), %r8d
	movq	112(%rsp), %rsi
	movl	120(%rsp), %edx
	leaq	160(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 248
	popq	%rdx
	.cfi_def_cfa_offset 240
.L24:
	movq	216(%rsp), %rax
	subq	%fs:40, %rax
	je	.L26
	call	__stack_chk_fail@PLT
.L26:
	addq	$232, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4432:
	.size	_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi, .-_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi
	.globl	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi
	.type	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi, @function
_Z15run_step_kerneliPdS_S_S_S_S_S_Pi:
.LFB4433:
	.cfi_startproc
	endbr64
	jmp	_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi
	.cfi_endproc
.LFE4433:
	.size	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi, .-_Z15run_step_kerneliPdS_S_S_S_S_S_Pi
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC5:
	.string	"_Z15run_step_kerneliPdS_S_S_S_S_S_Pi"
.LC6:
	.string	"n"
.LC7:
	.string	"planet"
.LC8:
	.string	"asteroid"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB4435:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC5(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	movq	%rax, _ZL32__nv_fatbinhandle_for_managed_rt(%rip)
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC6(%rip), %rdx
	movl	$4, %r9d
	leaq	_ZL1n(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	call	__cudaRegisterManagedVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC7(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$4, %r9d
	leaq	_ZL6planet(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC8(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movl	$4, %r9d
	movq	%rdx, %rcx
	leaq	_ZL8asteroid(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%r8
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE4435:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.text
	.globl	_Z12write_outputPKcdiid
	.type	_Z12write_outputPKcdiid, @function
_Z12write_outputPKcdiid:
.LFB4371:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4371
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%xmm1, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%xmm0, %r14
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movl	%esi, %r12d
	movq	%rdi, %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movl	%edx, %ebp
	movl	$16, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$528, %rsp
	.cfi_def_cfa_offset 576
	movq	%fs:40, %rax
	movq	%rax, 520(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rbx
	movq	%rbx, %rdi
.LEHB0:
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@PLT
.LEHE0:
	leaq	_ZSt10scientificRSt8ios_base(%rip), %rsi
	movq	%rbx, %rdi
.LEHB1:
	call	_ZNSolsEPFRSt8ios_baseS0_E@PLT
	movq	%rax, %rdi
	movq	(%rax), %rax
	movq	%r14, %xmm0
	movq	-24(%rax), %rax
	movq	$16, 8(%rdi,%rax)
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	%rax, %rdi
	movl	$10, %esi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@PLT
	movq	%rax, %rdi
	movl	%r12d, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	movl	$10, %esi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@PLT
	movq	%rax, %rdi
	movl	%ebp, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	movl	$32, %esi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@PLT
	movq	%rax, %rdi
	movq	%r15, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	%rax, %rdi
	movl	$10, %esi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@PLT
.LEHE1:
	movq	%rbx, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	520(%rsp), %rax
	subq	%fs:40, %rax
	je	.L34
	jmp	.L36
.L35:
	endbr64
	movq	%rax, %rbp
.L32:
	movq	%rbx, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	520(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L36
	movq	%rbp, %rdi
.LEHB2:
	call	_Unwind_Resume@PLT
.LEHE2:
.L36:
	call	__stack_chk_fail@PLT
.L34:
	addq	$528, %rsp
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4371:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table,"a",@progbits
.LLSDA4371:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4371-.LLSDACSB4371
.LLSDACSB4371:
	.uleb128 .LEHB0-.LFB4371
	.uleb128 .LEHE0-.LEHB0
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB1-.LFB4371
	.uleb128 .LEHE1-.LEHB1
	.uleb128 .L35-.LFB4371
	.uleb128 0
	.uleb128 .LEHB2-.LFB4371
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
.LLSDACSE4371:
	.text
	.size	_Z12write_outputPKcdiid, .-_Z12write_outputPKcdiid
	.section	.text._ZNSt6vectorIdSaIdEED2Ev,"axG",@progbits,_ZNSt6vectorIdSaIdEED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIdSaIdEED2Ev
	.type	_ZNSt6vectorIdSaIdEED2Ev, @function
_ZNSt6vectorIdSaIdEED2Ev:
.LFB4784:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L38
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L38:
	ret
	.cfi_endproc
.LFE4784:
	.size	_ZNSt6vectorIdSaIdEED2Ev, .-_ZNSt6vectorIdSaIdEED2Ev
	.weak	_ZNSt6vectorIdSaIdEED1Ev
	.set	_ZNSt6vectorIdSaIdEED1Ev,_ZNSt6vectorIdSaIdEED2Ev
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev:
.LFB4796:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	8(%rdi), %r12
	movq	%rdi, %rbx
	movq	(%rdi), %rbp
.L41:
	cmpq	%rbp, %r12
	je	.L45
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L41
.L45:
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L40
	movq	16(%rbx), %rsi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	subq	%rdi, %rsi
	jmp	_ZdlPvm@PLT
.L40:
	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4796:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	.set	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.section	.text._ZNSt6vectorIiSaIiEED2Ev,"axG",@progbits,_ZNSt6vectorIiSaIiEED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIiSaIiEED2Ev
	.type	_ZNSt6vectorIiSaIiEED2Ev, @function
_ZNSt6vectorIiSaIiEED2Ev:
.LFB4808:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L46
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L46:
	ret
	.cfi_endproc
.LFE4808:
	.size	_ZNSt6vectorIiSaIiEED2Ev, .-_ZNSt6vectorIiSaIiEED2Ev
	.weak	_ZNSt6vectorIiSaIiEED1Ev
	.set	_ZNSt6vectorIiSaIiEED1Ev,_ZNSt6vectorIiSaIiEED2Ev
	.section	.rodata._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm.str1.1,"aMS",@progbits,1
.LC9:
	.string	"vector::_M_default_append"
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm:
.LFB4990:
	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L66
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rax
	movq	(%rdi), %rcx
	subq	%rdx, %rax
	sarq	$5, %rax
	cmpq	%rsi, %rax
	jb	.L50
	movq	%rsi, %rcx
	movq	%rdx, %rax
.L51:
	leaq	16(%rax), %rsi
	xorl	%r8d, %r8d
	movb	$0, 16(%rax)
	addq	$32, %rax
	movq	%rsi, -32(%rax)
	movq	%r8, -24(%rax)
	decq	%rcx
	jne	.L51
	salq	$5, %rbx
	addq	%rdx, %rbx
	movq	%rbx, 8(%rbp)
	jmp	.L48
.L50:
	movabsq	$288230376151711743, %rax
	movq	%rdx, %r15
	subq	%rcx, %r15
	movq	%r15, %r14
	sarq	$5, %r14
	subq	%r14, %rax
	cmpq	%rsi, %rax
	jnb	.L52
	leaq	.LC9(%rip), %rdi
	call	_ZSt20__throw_length_errorPKc@PLT
.L52:
	cmpq	%r14, %rsi
	movq	%r14, %r12
	movq	%rdx, 16(%rsp)
	movabsq	$288230376151711743, %rax
	cmovnb	%rsi, %r12
	movq	%rcx, 8(%rsp)
	addq	%r14, %r12
	cmpq	%rax, %r12
	cmova	%rax, %r12
	salq	$5, %r12
	movq	%r12, %rdi
	call	_Znwm@PLT
	movq	16(%rsp), %rdx
	movq	8(%rsp), %rcx
	movq	%rbx, %rsi
	movq	%rax, %r13
	leaq	(%rax,%r15), %rax
.L53:
	leaq	16(%rax), %rdi
	movb	$0, 16(%rax)
	addq	$32, %rax
	movq	%rdi, -32(%rax)
	xorl	%edi, %edi
	movq	%rdi, -24(%rax)
	decq	%rsi
	jne	.L53
	movq	%r13, %rax
	movq	%rcx, %r15
.L54:
	cmpq	%r15, %rdx
	je	.L69
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%rdx, 24(%rsp)
	movq	%rcx, 16(%rsp)
	movq	%rax, 8(%rsp)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%r15, %rdi
	addq	$32, %r15
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	8(%rsp), %rax
	movq	24(%rsp), %rdx
	movq	16(%rsp), %rcx
	addq	$32, %rax
	jmp	.L54
.L69:
	testq	%rcx, %rcx
	je	.L56
	movq	16(%rbp), %rsi
	movq	%rcx, %rdi
	subq	%rcx, %rsi
	call	_ZdlPvm@PLT
.L56:
	addq	%r14, %rbx
	movq	%r13, 0(%rbp)
	salq	$5, %rbx
	addq	%r13, %rbx
	addq	%r12, %r13
	movq	%rbx, 8(%rbp)
	movq	%r13, 16(%rbp)
.L48:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L66:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	ret
	.cfi_endproc
.LFE4990:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm
	.section	.rodata._ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.str1.1,"aMS",@progbits,1
.LC10:
	.string	"vector::_M_realloc_insert"
	.section	.text._ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,"axG",@progbits,_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,comdat
	.align 2
	.weak	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.type	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_, @function
_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_:
.LFB5048:
	.cfi_startproc
	endbr64
	movabsq	$2305843009213693951, %rcx
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	8(%rdi), %rax
	movq	(%rdi), %r14
	movq	%rax, %rbx
	movq	%rax, (%rsp)
	subq	%r14, %rbx
	sarq	$2, %rbx
	cmpq	%rcx, %rbx
	jne	.L71
	leaq	.LC10(%rip), %rdi
	call	_ZSt20__throw_length_errorPKc@PLT
.L71:
	cmpq	%r14, (%rsp)
	movl	$1, %eax
	movq	%rsi, %r15
	movq	%rdi, %r13
	cmovne	%rbx, %rax
	movq	%rsi, %rbp
	addq	%rax, %rbx
	setc	%al
	subq	%r14, %r15
	movzbl	%al, %eax
	testq	%rax, %rax
	jne	.L81
	xorl	%r12d, %r12d
	testq	%rbx, %rbx
	je	.L76
	movabsq	$2305843009213693951, %rax
	cmpq	%rax, %rbx
	cmova	%rax, %rbx
	jmp	.L75
.L81:
	movq	%rcx, %rbx
.L75:
	leaq	0(,%rbx,4), %rdi
	movq	%rdx, 8(%rsp)
	call	_Znwm@PLT
	movq	8(%rsp), %rdx
	movq	%rax, %r12
.L76:
	movl	(%rdx), %eax
	movl	%eax, (%r12,%r15)
	testq	%r15, %r15
	jle	.L77
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
	call	memmove@PLT
.L77:
	movq	(%rsp), %rax
	leaq	4(%r12,%r15), %rdx
	subq	%rbp, %rax
	testq	%rax, %rax
	jle	.L78
	movq	%rdx, %rdi
	movq	%rbp, %rsi
	movq	%rax, %rcx
	rep movsb
.L78:
	leaq	(%rdx,%rax), %rbp
	testq	%r14, %r14
	je	.L79
	movq	16(%r13), %rsi
	movq	%r14, %rdi
	subq	%r14, %rsi
	call	_ZdlPvm@PLT
.L79:
	leaq	(%r12,%rbx,4), %rax
	movq	%r12, 0(%r13)
	movq	%rbp, 8(%r13)
	movq	%rax, 16(%r13)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5048:
	.size	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_, .-_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.section	.text._ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_,"axG",@progbits,_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_,comdat
	.weak	_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_
	.type	_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_, @function
_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_:
.LFB5290:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	testq	%rsi, %rsi
	je	.L88
	movq	$0x000000000, (%rdi)
	leaq	8(%rdi), %rax
	decq	%rsi
	je	.L88
	leaq	(%rax,%rsi,8), %rdx
	movq	%rax, %rcx
.L90:
	cmpq	%rcx, %rdx
	je	.L97
	movq	$0x000000000, (%rcx)
	addq	$8, %rcx
	jmp	.L90
.L97:
	subq	%rdi, %rdx
	leaq	-8(%rax,%rdx), %rax
.L88:
	ret
	.cfi_endproc
.LFE5290:
	.size	_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_, .-_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_
	.section	.text._ZNSt6vectorIdSaIdEE17_M_default_appendEm,"axG",@progbits,_ZNSt6vectorIdSaIdEE17_M_default_appendEm,comdat
	.align 2
	.weak	_ZNSt6vectorIdSaIdEE17_M_default_appendEm
	.type	_ZNSt6vectorIdSaIdEE17_M_default_appendEm, @function
_ZNSt6vectorIdSaIdEE17_M_default_appendEm:
.LFB4983:
	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L112
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	8(%rdi), %rdi
	movq	16(%rbp), %rax
	movq	0(%rbp), %r13
	subq	%rdi, %rax
	sarq	$3, %rax
	cmpq	%rsi, %rax
	jb	.L100
	call	_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_
	movq	%rax, 8(%rbp)
	jmp	.L98
.L100:
	movabsq	$1152921504606846975, %rax
	movq	%rdi, %rdx
	subq	%r13, %rdx
	movq	%rdx, %r15
	sarq	$3, %r15
	subq	%r15, %rax
	cmpq	%rsi, %rax
	jnb	.L101
	leaq	.LC9(%rip), %rdi
	call	_ZSt20__throw_length_errorPKc@PLT
.L101:
	cmpq	%r15, %rsi
	movq	%r15, %r14
	movq	%rdx, 8(%rsp)
	movabsq	$1152921504606846975, %rax
	cmovnb	%rsi, %r14
	addq	%r15, %r14
	cmpq	%rax, %r14
	cmova	%rax, %r14
	salq	$3, %r14
	movq	%r14, %rdi
	call	_Znwm@PLT
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rax, %r12
	leaq	(%rax,%rdx), %rdi
	call	_ZNSt27__uninitialized_default_n_1ILb1EE18__uninit_default_nIPdmEET_S3_T0_
	movq	8(%rsp), %rdx
	testq	%rdx, %rdx
	je	.L102
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	memmove@PLT
	jmp	.L103
.L102:
	testq	%r13, %r13
	je	.L104
.L103:
	movq	16(%rbp), %rsi
	movq	%r13, %rdi
	subq	%r13, %rsi
	call	_ZdlPvm@PLT
.L104:
	addq	%r15, %rbx
	movq	%r12, 0(%rbp)
	leaq	(%r12,%rbx,8), %rax
	addq	%r14, %r12
	movq	%rax, 8(%rbp)
	movq	%r12, 16(%rbp)
.L98:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L112:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	ret
	.cfi_endproc
.LFE4983:
	.size	_ZNSt6vectorIdSaIdEE17_M_default_appendEm, .-_ZNSt6vectorIdSaIdEE17_M_default_appendEm
	.section	.text._ZNSt6vectorIdSaIdEE6resizeEm,"axG",@progbits,_ZNSt6vectorIdSaIdEE6resizeEm,comdat
	.align 2
	.weak	_ZNSt6vectorIdSaIdEE6resizeEm
	.type	_ZNSt6vectorIdSaIdEE6resizeEm, @function
_ZNSt6vectorIdSaIdEE6resizeEm:
.LFB4758:
	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdx
	movq	(%rdi), %rcx
	movq	%rdx, %rax
	subq	%rcx, %rax
	sarq	$3, %rax
	cmpq	%rsi, %rax
	jnb	.L116
	subq	%rax, %rsi
	jmp	_ZNSt6vectorIdSaIdEE17_M_default_appendEm
.L116:
	cmpq	%rax, %rsi
	jnb	.L115
	leaq	(%rcx,%rsi,8), %rax
	cmpq	%rdx, %rax
	je	.L115
	movq	%rax, 8(%rdi)
.L115:
	ret
	.cfi_endproc
.LFE4758:
	.size	_ZNSt6vectorIdSaIdEE6resizeEm, .-_ZNSt6vectorIdSaIdEE6resizeEm
	.text
	.globl	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	.type	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE, @function
_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE:
.LFB4370:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4370
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movq	%rdi, %rsi
	subq	$600, %rsp
	.cfi_def_cfa_offset 656
	movq	656(%rsp), %rax
	movq	%r8, 16(%rsp)
	movq	%r9, 24(%rsp)
	movq	680(%rsp), %r14
	movq	%rax, 32(%rsp)
	movq	664(%rsp), %rax
	movq	688(%rsp), %r15
	movq	696(%rsp), %r13
	movq	%rax, 40(%rsp)
	movq	672(%rsp), %rax
	movq	%rax, 48(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, %rdi
	movq	%fs:40, %rdx
	movq	%rdx, 584(%rsp)
	xorl	%edx, %edx
	movl	$8, %edx
	movq	%rax, 8(%rsp)
.LEHB3:
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@PLT
.LEHE3:
	movq	8(%rsp), %rdi
	movq	%rbx, %rsi
.LEHB4:
	call	_ZNSirsERi@PLT
	movq	%rax, %rdi
	movq	%rbp, %rsi
	call	_ZNSirsERi@PLT
	movq	%rax, %rdi
	movq	%r12, %rsi
	call	_ZNSirsERi@PLT
	movslq	(%rbx), %rsi
	movq	16(%rsp), %rdi
	call	_ZNSt6vectorIdSaIdEE6resizeEm
	movslq	(%rbx), %rsi
	movq	24(%rsp), %rdi
	call	_ZNSt6vectorIdSaIdEE6resizeEm
	movslq	(%rbx), %rsi
	movq	32(%rsp), %rdi
	call	_ZNSt6vectorIdSaIdEE6resizeEm
	movslq	(%rbx), %rsi
	movq	40(%rsp), %rdi
	call	_ZNSt6vectorIdSaIdEE6resizeEm
	movslq	(%rbx), %rsi
	movq	48(%rsp), %rdi
	call	_ZNSt6vectorIdSaIdEE6resizeEm
	movslq	(%rbx), %rsi
	movq	%r14, %rdi
	call	_ZNSt6vectorIdSaIdEE6resizeEm
	movslq	(%rbx), %rsi
	movq	%r15, %rdi
	call	_ZNSt6vectorIdSaIdEE6resizeEm
	movq	8(%r13), %rdx
	movq	0(%r13), %rbp
	movslq	(%rbx), %rsi
	movq	%rdx, %rax
	subq	%rbp, %rax
	sarq	$5, %rax
	cmpq	%rsi, %rax
	jnb	.L119
	subq	%rax, %rsi
	movq	%r13, %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm
	jmp	.L120
.L119:
	cmpq	%rax, %rsi
	jnb	.L120
	salq	$5, %rsi
	addq	%rsi, %rbp
	cmpq	%rbp, %rdx
	je	.L120
	movq	%rbp, %r12
.L122:
	movq	%r12, %rdi
	movq	%rdx, 56(%rsp)
	addq	$32, %r12
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	56(%rsp), %rdx
	cmpq	%r12, %rdx
	jne	.L122
	movq	%rbp, 8(%r13)
.L120:
	xorl	%r12d, %r12d
.L123:
	cmpl	%r12d, (%rbx)
	jle	.L132
	movq	16(%rsp), %rax
	leaq	0(,%r12,8), %rbp
	movq	8(%rsp), %rdi
	movq	(%rax), %rsi
	addq	%rbp, %rsi
	call	_ZNSi10_M_extractIdEERSiRT_@PLT
	movq	%rax, %rdi
	movq	24(%rsp), %rax
	movq	(%rax), %rsi
	addq	%rbp, %rsi
	call	_ZNSi10_M_extractIdEERSiRT_@PLT
	movq	%rax, %rdi
	movq	32(%rsp), %rax
	movq	(%rax), %rsi
	addq	%rbp, %rsi
	call	_ZNSi10_M_extractIdEERSiRT_@PLT
	movq	%rax, %rdi
	movq	40(%rsp), %rax
	movq	(%rax), %rsi
	addq	%rbp, %rsi
	call	_ZNSi10_M_extractIdEERSiRT_@PLT
	movq	%rax, %rdi
	movq	48(%rsp), %rax
	movq	(%rax), %rsi
	addq	%rbp, %rsi
	call	_ZNSi10_M_extractIdEERSiRT_@PLT
	movq	(%r14), %rsi
	movq	%rax, %rdi
	addq	%rbp, %rsi
	call	_ZNSi10_M_extractIdEERSiRT_@PLT
	movq	(%r15), %rsi
	movq	%rax, %rdi
	addq	%rbp, %rsi
	call	_ZNSi10_M_extractIdEERSiRT_@PLT
	movq	%r12, %rsi
	movq	%rax, %rdi
	salq	$5, %rsi
	addq	0(%r13), %rsi
	call	_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
.LEHE4:
	incq	%r12
	jmp	.L123
.L132:
	movq	8(%rsp), %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	584(%rsp), %rax
	subq	%fs:40, %rax
	je	.L127
	jmp	.L130
.L128:
	endbr64
	movq	%rax, %rbx
.L125:
	movq	8(%rsp), %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	584(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L130
	movq	%rbx, %rdi
.LEHB5:
	call	_Unwind_Resume@PLT
.LEHE5:
.L130:
	call	__stack_chk_fail@PLT
.L127:
	addq	$600, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4370:
	.section	.gcc_except_table
.LLSDA4370:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4370-.LLSDACSB4370
.LLSDACSB4370:
	.uleb128 .LEHB3-.LFB4370
	.uleb128 .LEHE3-.LEHB3
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB4-.LFB4370
	.uleb128 .LEHE4-.LEHB4
	.uleb128 .L128-.LFB4370
	.uleb128 0
	.uleb128 .LEHB5-.LFB4370
	.uleb128 .LEHE5-.LEHB5
	.uleb128 0
	.uleb128 0
.LLSDACSE4370:
	.text
	.size	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE, .-_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	.section	.rodata.str1.1
.LC14:
	.string	"must supply 2 arguments"
.LC15:
	.string	"device"
	.section	.text.startup
	.globl	main
	.type	main, @function
main:
.LFB4376:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4376
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$712, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%rsi, -656(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	cmpl	$3, %edi
	je	.L134
	movl	$16, %edi
	call	__cxa_allocate_exception@PLT
	leaq	.LC14(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbx
.LEHB6:
	call	_ZNSt13runtime_errorC1EPKc@PLT
.LEHE6:
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L390
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%rbx, %rdi
.LEHB7:
	call	__cxa_throw@PLT
.LEHE7:
.L134:
	xorl	%r9d, %r9d
	leaq	-320(%rbp), %rbx
	leaq	-296(%rbp), %r12
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	leaq	-272(%rbp), %r13
	movq	%r9, -320(%rbp)
	movq	%r9, -312(%rbp)
	movq	%r9, -304(%rbp)
	movq	%r9, -296(%rbp)
	movq	%r9, -288(%rbp)
	movq	%r9, -280(%rbp)
	movq	%r9, -272(%rbp)
	movq	%r9, -264(%rbp)
	movq	%r9, -256(%rbp)
	movq	%r9, -248(%rbp)
	movq	%r9, -240(%rbp)
	movq	%r9, -232(%rbp)
	movq	%r9, -224(%rbp)
	movq	%r9, -216(%rbp)
	movq	%r9, -208(%rbp)
	movq	%r9, -200(%rbp)
	movq	%r9, -192(%rbp)
	movq	%r9, -184(%rbp)
	movq	%r9, -176(%rbp)
	movq	%r9, -168(%rbp)
	movq	%r9, -160(%rbp)
	movq	%r9, -152(%rbp)
	movq	%r9, -144(%rbp)
	movq	%r9, -136(%rbp)
	movq	%r9, -128(%rbp)
	movq	%r9, -120(%rbp)
	movq	%r9, -112(%rbp)
	movq	%rbx, -104(%rbp)
	movq	%r12, -96(%rbp)
	movq	%r13, -88(%rbp)
	je	.L136
.L139:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	_ZL8asteroid(%rip), %r15
	jne	.L137
	jmp	.L394
.L136:
.LEHB8:
	call	_ZL20__nv_init_managed_rtv
	jmp	.L139
.L394:
	call	_ZL20__nv_init_managed_rtv
.L137:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	_ZL6planet(%rip), %r14
	jne	.L140
	call	_ZL20__nv_init_managed_rtv
.L140:
	movq	-656(%rbp), %rax
	movq	%r12, %r9
	movq	%rbx, %r8
	movq	%r15, %rcx
	movq	_ZL1n(%rip), %rsi
	movq	%r14, %rdx
	movq	8(%rax), %rdi
	leaq	-152(%rbp), %rax
	pushq	%rax
	leaq	-176(%rbp), %rax
	pushq	%rax
	leaq	-200(%rbp), %rax
	pushq	%rax
	leaq	-224(%rbp), %rax
	pushq	%rax
	leaq	-248(%rbp), %rax
	pushq	%rax
	pushq	%r13
	.cfi_escape 0x2e,0x30
	call	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	addq	$48, %rsp
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L141
	.cfi_escape 0x2e,0
	call	_ZL20__nv_init_managed_rtv
.L141:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,4), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L142:
	cmpq	%rcx, %rsp
	je	.L143
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L142
.L143:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L144
	orq	$0, -8(%rsp,%rax)
.L144:
	movq	%rsp, -600(%rbp)
	xorl	%ebx, %ebx
	leaq	.LC15(%rip), %r12
.L145:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L147
	call	_ZL20__nv_init_managed_rtv
.L147:
	movq	_ZL1n(%rip), %rax
	cmpl	%ebx, (%rax)
	jle	.L395
	movq	%rbx, %rax
	xorl	%edx, %edx
	salq	$5, %rax
	addq	-152(%rbp), %rax
	cmpq	$6, 8(%rax)
	jne	.L146
	movq	(%rax), %rdi
	movl	$6, %edx
	movq	%r12, %rsi
	call	memcmp@PLT
	xorl	%edx, %edx
	testl	%eax, %eax
	sete	%dl
.L146:
	movq	-600(%rbp), %rax
	movl	%edx, (%rax,%rbx,4)
	incq	%rbx
	jmp	.L145
.L395:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L149
	call	_ZL20__nv_init_managed_rtv
.L149:
	movq	_ZL1n(%rip), %rax
	movl	$32, %ecx
	movl	(%rax), %eax
	addl	$31, %eax
	cltd
	idivl	%ecx
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movl	%eax, -660(%rbp)
	jne	.L150
	call	_ZL20__nv_init_managed_rtv
.L150:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L151:
	cmpq	%rcx, %rsp
	je	.L152
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L151
.L152:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L153
	orq	$0, -8(%rsp,%rax)
.L153:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, -568(%rbp)
	jne	.L154
	call	_ZL20__nv_init_managed_rtv
.L154:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L155:
	cmpq	%rcx, %rsp
	je	.L156
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L155
.L156:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L157
	orq	$0, -8(%rsp,%rax)
.L157:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, -576(%rbp)
	jne	.L158
	call	_ZL20__nv_init_managed_rtv
.L158:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L159:
	cmpq	%rcx, %rsp
	je	.L160
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L159
.L160:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L161
	orq	$0, -8(%rsp,%rax)
.L161:
	movq	-312(%rbp), %r12
	movq	-320(%rbp), %rbx
	movq	%rsp, -584(%rbp)
	movq	-568(%rbp), %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-296(%rbp), %rax
	movq	-288(%rbp), %r13
	movq	-576(%rbp), %rdx
	movq	%rax, %rdi
	movq	%r13, %rsi
	movq	%rax, -704(%rbp)
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-264(%rbp), %rax
	movq	-584(%rbp), %rdx
	movq	%rax, -712(%rbp)
	movq	-272(%rbp), %rax
	movq	-712(%rbp), %rsi
	movq	%rax, %rdi
	movq	%rax, -720(%rbp)
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L162
	call	_ZL20__nv_init_managed_rtv
.L162:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L163:
	cmpq	%rcx, %rsp
	je	.L164
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L163
.L164:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L165
	orq	$0, -8(%rsp,%rax)
.L165:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, -728(%rbp)
	jne	.L166
	call	_ZL20__nv_init_managed_rtv
.L166:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L167:
	cmpq	%rcx, %rsp
	je	.L168
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L167
.L168:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L169
	orq	$0, -8(%rsp,%rax)
.L169:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, -736(%rbp)
	jne	.L170
	call	_ZL20__nv_init_managed_rtv
.L170:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L171:
	cmpq	%rcx, %rsp
	je	.L172
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L171
.L172:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L173
	orq	$0, -8(%rsp,%rax)
.L173:
	movq	-240(%rbp), %rax
	movq	-728(%rbp), %rdx
	movq	%rsp, -744(%rbp)
	movq	%rax, -640(%rbp)
	movq	-248(%rbp), %rax
	movq	-640(%rbp), %rsi
	movq	%rax, %rdi
	movq	%rax, -648(%rbp)
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-216(%rbp), %rax
	movq	-736(%rbp), %rdx
	movq	%rax, -672(%rbp)
	movq	-224(%rbp), %rax
	movq	-672(%rbp), %rsi
	movq	%rax, %rdi
	movq	%rax, -680(%rbp)
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-192(%rbp), %rax
	movq	-744(%rbp), %rdx
	movq	%rax, -688(%rbp)
	movq	-200(%rbp), %rax
	movq	-688(%rbp), %rsi
	movq	%rax, %rdi
	movq	%rax, -696(%rbp)
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L174
	call	_ZL20__nv_init_managed_rtv
.LEHE8:
.L174:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L175:
	cmpq	%rcx, %rsp
	je	.L176
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L175
.L176:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L177
	orq	$0, -8(%rsp,%rax)
.L177:
	movq	-168(%rbp), %rax
	movq	%rsp, %rdx
	movq	%rsp, -616(%rbp)
	xorl	%r14d, %r14d
	movq	%rax, -624(%rbp)
	movq	-176(%rbp), %rax
	movq	-624(%rbp), %rsi
	movq	%rax, %rdi
	movq	%rax, -632(%rbp)
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	xorl	%r8d, %r8d
	movq	%r8, -80(%rbp)
	movq	%r8, -72(%rbp)
	movq	%r8, -64(%rbp)
.L178:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movl	%r14d, -332(%rbp)
	jne	.L182
.LEHB9:
	call	_ZL20__nv_init_managed_rtv
.L182:
	movq	_ZL1n(%rip), %rax
	cmpl	%r14d, (%rax)
	jle	.L396
	movq	-600(%rbp), %rcx
	movslq	%r14d, %rax
	cmpl	$1, (%rcx,%rax,4)
	jne	.L179
	movq	-72(%rbp), %rsi
	cmpq	-64(%rbp), %rsi
	je	.L180
	movl	%r14d, (%rsi)
	addq	$4, %rsi
	movq	%rsi, -72(%rbp)
	jmp	.L181
.L180:
	leaq	-332(%rbp), %rdx
	leaq	-80(%rbp), %rdi
	call	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
.L181:
	movq	-616(%rbp), %rcx
	movslq	%r14d, %rax
	movq	$0x000000000, (%rcx,%rax,8)
.L179:
	incl	%r14d
	jmp	.L178
.L396:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L184
	call	_ZL20__nv_init_managed_rtv
.L184:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L185:
	cmpq	%rcx, %rsp
	je	.L186
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L185
.L186:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L187
	orq	$0, -8(%rsp,%rax)
.L187:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, -592(%rbp)
	jne	.L188
	call	_ZL20__nv_init_managed_rtv
.L188:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L189:
	cmpq	%rcx, %rsp
	je	.L190
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L189
.L190:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L191
	orq	$0, -8(%rsp,%rax)
.L191:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, -608(%rbp)
	jne	.L192
	call	_ZL20__nv_init_managed_rtv
.L192:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L193:
	cmpq	%rcx, %rsp
	je	.L194
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L193
.L194:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L195
	orq	$0, -8(%rsp,%rax)
.L195:
	movq	-592(%rbp), %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movq	%rsp, %r15
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-608(%rbp), %rdx
	movq	-704(%rbp), %rdi
	movq	%r13, %rsi
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-712(%rbp), %rsi
	movq	-720(%rbp), %rdi
	movq	%r15, %rdx
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L196
	call	_ZL20__nv_init_managed_rtv
.L196:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L197:
	cmpq	%rcx, %rsp
	je	.L198
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L197
.L198:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L199
	orq	$0, -8(%rsp,%rax)
.L199:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, %r12
	jne	.L200
	call	_ZL20__nv_init_managed_rtv
.L200:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L201:
	cmpq	%rcx, %rsp
	je	.L202
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L201
.L202:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L203
	orq	$0, -8(%rsp,%rax)
.L203:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rsp, %r13
	jne	.L204
	call	_ZL20__nv_init_managed_rtv
.L204:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L205:
	cmpq	%rcx, %rsp
	je	.L206
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L205
.L206:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L207
	orq	$0, -8(%rsp,%rax)
.L207:
	movq	-640(%rbp), %rsi
	movq	-648(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsp, %r14
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-672(%rbp), %rsi
	movq	-680(%rbp), %rdi
	movq	%r13, %rdx
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	movq	-688(%rbp), %rsi
	movq	-696(%rbp), %rdi
	movq	%r14, %rdx
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L208
	call	_ZL20__nv_init_managed_rtv
.L208:
	movq	_ZL1n(%rip), %rax
	movq	%rsp, %rcx
	movslq	(%rax), %rax
	leaq	15(,%rax,8), %rdx
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L209:
	cmpq	%rcx, %rsp
	je	.L210
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L209
.L210:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L211
	orq	$0, -8(%rsp,%rax)
.L211:
	movq	-632(%rbp), %rdi
	movq	-624(%rbp), %rsi
	movq	%rsp, %rdx
	movq	%rsp, -640(%rbp)
	call	_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.isra.0
	xorl	%edi, %edi
	call	cudaSetDevice@PLT
	leaq	-424(%rbp), %rdi
	call	cudaStreamCreate@PLT
	leaq	-416(%rbp), %rdi
	call	cudaStreamCreate@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L212
	call	_ZL20__nv_init_managed_rtv
.L212:
	movq	_ZL1n(%rip), %rax
	leaq	-552(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L213
	call	_ZL20__nv_init_managed_rtv
.L213:
	movq	_ZL1n(%rip), %rax
	movq	-568(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-552(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L214
	call	_ZL20__nv_init_managed_rtv
.L214:
	movq	_ZL1n(%rip), %rax
	leaq	-544(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L215
	call	_ZL20__nv_init_managed_rtv
.L215:
	movq	_ZL1n(%rip), %rax
	movq	-576(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-544(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L216
	call	_ZL20__nv_init_managed_rtv
.L216:
	movq	_ZL1n(%rip), %rax
	leaq	-536(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L217
	call	_ZL20__nv_init_managed_rtv
.L217:
	movq	_ZL1n(%rip), %rax
	movq	-584(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-536(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L218
	call	_ZL20__nv_init_managed_rtv
.L218:
	movq	_ZL1n(%rip), %rax
	leaq	-528(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L219
	call	_ZL20__nv_init_managed_rtv
.L219:
	movq	_ZL1n(%rip), %rax
	movq	-728(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-528(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L220
	call	_ZL20__nv_init_managed_rtv
.L220:
	movq	_ZL1n(%rip), %rax
	leaq	-520(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L221
	call	_ZL20__nv_init_managed_rtv
.L221:
	movq	_ZL1n(%rip), %rax
	movq	-736(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-520(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L222
	call	_ZL20__nv_init_managed_rtv
.L222:
	movq	_ZL1n(%rip), %rax
	leaq	-512(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L223
	call	_ZL20__nv_init_managed_rtv
.L223:
	movq	_ZL1n(%rip), %rax
	movq	-744(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-512(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L224
	call	_ZL20__nv_init_managed_rtv
.L224:
	movq	_ZL1n(%rip), %rax
	leaq	-504(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L225
	call	_ZL20__nv_init_managed_rtv
.L225:
	movq	_ZL1n(%rip), %rax
	movq	-616(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-504(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L226
	call	_ZL20__nv_init_managed_rtv
.L226:
	movq	_ZL1n(%rip), %rax
	leaq	-496(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$2, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L227
	call	_ZL20__nv_init_managed_rtv
.L227:
	movq	_ZL1n(%rip), %rax
	movq	-600(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-496(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$2, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L228
	call	_ZL20__nv_init_managed_rtv
.L228:
	movq	_ZL1n(%rip), %rax
	leaq	-488(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L229
	call	_ZL20__nv_init_managed_rtv
.L229:
	movq	_ZL1n(%rip), %rax
	movq	-592(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-488(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L230
	call	_ZL20__nv_init_managed_rtv
.L230:
	movq	_ZL1n(%rip), %rax
	leaq	-480(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L231
	call	_ZL20__nv_init_managed_rtv
.L231:
	movq	_ZL1n(%rip), %rax
	movq	-608(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-480(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L232
	call	_ZL20__nv_init_managed_rtv
.L232:
	movq	_ZL1n(%rip), %rax
	leaq	-472(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L233
	call	_ZL20__nv_init_managed_rtv
.L233:
	movq	_ZL1n(%rip), %rax
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	%r15, %rsi
	movq	-472(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L234
	call	_ZL20__nv_init_managed_rtv
.L234:
	movq	_ZL1n(%rip), %rax
	leaq	-464(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L235
	call	_ZL20__nv_init_managed_rtv
.L235:
	movq	_ZL1n(%rip), %rax
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	%r12, %rsi
	movq	-464(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L236
	call	_ZL20__nv_init_managed_rtv
.L236:
	movq	_ZL1n(%rip), %rax
	leaq	-456(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L237
	call	_ZL20__nv_init_managed_rtv
.L237:
	movq	_ZL1n(%rip), %rax
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	%r13, %rsi
	movq	-456(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L238
	call	_ZL20__nv_init_managed_rtv
.L238:
	movq	_ZL1n(%rip), %rax
	leaq	-448(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L239
	call	_ZL20__nv_init_managed_rtv
.L239:
	movq	_ZL1n(%rip), %rax
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	%r14, %rsi
	movq	-448(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L240
	call	_ZL20__nv_init_managed_rtv
.L240:
	movq	_ZL1n(%rip), %rax
	leaq	-440(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L241
	call	_ZL20__nv_init_managed_rtv
.L241:
	movq	_ZL1n(%rip), %rax
	movq	-640(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-440(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L242
	call	_ZL20__nv_init_managed_rtv
.L242:
	movq	_ZL1n(%rip), %rax
	leaq	-432(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$2, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L243
	call	_ZL20__nv_init_managed_rtv
.L243:
	movq	_ZL1n(%rip), %rax
	movq	-600(%rbp), %rsi
	movq	%rbx, %r8
	movl	$1, %ecx
	movq	-432(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$2, %rdx
	call	cudaMemcpyAsync@PLT
	movsd	.LC12(%rip), %xmm6
	xorl	%r12d, %r12d
	movb	$1, %r13b
	movl	$-2, -616(%rbp)
	movabsq	$4294967328, %r14
	movsd	%xmm6, -624(%rbp)
.L270:
	movq	-424(%rbp), %r9
	testl	%r12d, %r12d
	je	.L245
	movl	-660(%rbp), %eax
	xorl	%r8d, %r8d
	movq	%r14, %rdx
	movl	$1, %ecx
	movq	%r14, -332(%rbp)
	movl	%eax, -344(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -340(%rbp)
	movl	-336(%rbp), %esi
	movq	-344(%rbp), %rdi
	movl	$1, -324(%rbp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L246
	pushq	%rdi
	movl	%r12d, %edi
	pushq	-496(%rbp)
	pushq	-504(%rbp)
	pushq	-512(%rbp)
	movq	-520(%rbp), %r9
	movq	-528(%rbp), %r8
	movq	-536(%rbp), %rcx
	movq	-544(%rbp), %rdx
	movq	-552(%rbp), %rsi
	.cfi_escape 0x2e,0x20
	call	_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi
	addq	$32, %rsp
.L246:
	testb	%r13b, %r13b
	je	.L245
	movl	-660(%rbp), %eax
	movq	-416(%rbp), %r9
	xorl	%r8d, %r8d
	movq	%r14, %rdx
	movl	$1, %ecx
	movq	%r14, -332(%rbp)
	movl	%eax, -344(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -340(%rbp)
	movl	-336(%rbp), %esi
	movq	-344(%rbp), %rdi
	movl	$1, -324(%rbp)
	.cfi_escape 0x2e,0
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L245
	pushq	%rsi
	movl	%r12d, %edi
	pushq	-432(%rbp)
	pushq	-440(%rbp)
	pushq	-448(%rbp)
	movq	-456(%rbp), %r9
	movq	-464(%rbp), %r8
	movq	-472(%rbp), %rcx
	movq	-480(%rbp), %rdx
	movq	-488(%rbp), %rsi
	.cfi_escape 0x2e,0x20
	call	_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi
	addq	$32, %rsp
.L245:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L249
	.cfi_escape 0x2e,0
	call	_ZL20__nv_init_managed_rtv
.L249:
	movq	_ZL1n(%rip), %rax
	movq	-552(%rbp), %rsi
	movq	%rbx, %r8
	movl	$2, %ecx
	movq	-568(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L250
	call	_ZL20__nv_init_managed_rtv
.L250:
	movq	_ZL1n(%rip), %rax
	movq	-544(%rbp), %rsi
	movq	%rbx, %r8
	movl	$2, %ecx
	movq	-576(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-424(%rbp), %rbx
	jne	.L251
	call	_ZL20__nv_init_managed_rtv
.L251:
	movq	_ZL1n(%rip), %rax
	movq	-536(%rbp), %rsi
	movq	%rbx, %r8
	movl	$2, %ecx
	movq	-584(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L252
	call	_ZL20__nv_init_managed_rtv
.L252:
	movq	_ZL6planet(%rip), %rax
	movq	-568(%rbp), %rbx
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movq	(%rbx,%rax,8), %rbx
	jne	.L253
	call	_ZL20__nv_init_managed_rtv
.L253:
	movq	_ZL8asteroid(%rip), %rax
	movq	-568(%rbp), %rcx
	movq	%rbx, %xmm6
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	subsd	(%rcx,%rax,8), %xmm6
	movsd	%xmm6, -632(%rbp)
	jne	.L254
	call	_ZL20__nv_init_managed_rtv
.L254:
	movq	_ZL6planet(%rip), %rax
	movq	-576(%rbp), %rbx
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movq	(%rbx,%rax,8), %rbx
	jne	.L255
	call	_ZL20__nv_init_managed_rtv
.L255:
	movq	_ZL8asteroid(%rip), %rax
	movq	-576(%rbp), %rcx
	movq	%rbx, %xmm7
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	subsd	(%rcx,%rax,8), %xmm7
	movsd	%xmm7, -640(%rbp)
	jne	.L256
	call	_ZL20__nv_init_managed_rtv
.L256:
	movq	_ZL6planet(%rip), %rax
	movq	-584(%rbp), %rbx
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movq	(%rbx,%rax,8), %rbx
	jne	.L257
	call	_ZL20__nv_init_managed_rtv
.L257:
	movq	_ZL8asteroid(%rip), %rax
	movq	-584(%rbp), %rcx
	movq	%rbx, %xmm1
	movsd	-632(%rbp), %xmm0
	movsd	-640(%rbp), %xmm2
	movslq	(%rax), %rax
	mulsd	%xmm2, %xmm2
	subsd	(%rcx,%rax,8), %xmm1
	mulsd	%xmm0, %xmm0
	mulsd	%xmm1, %xmm1
	addsd	%xmm2, %xmm0
	addsd	%xmm1, %xmm0
	call	sqrt@PLT
	minsd	-624(%rbp), %xmm0
	movsd	%xmm0, -624(%rbp)
	testb	%r13b, %r13b
	je	.L260
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L261
	call	_ZL20__nv_init_managed_rtv
.L261:
	movq	_ZL1n(%rip), %rax
	movq	-488(%rbp), %rsi
	movq	%rbx, %r8
	movl	$2, %ecx
	movq	-592(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L262
	call	_ZL20__nv_init_managed_rtv
.L262:
	movq	_ZL1n(%rip), %rax
	movq	-480(%rbp), %rsi
	movq	%rbx, %r8
	movl	$2, %ecx
	movq	-608(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-416(%rbp), %rbx
	jne	.L263
	call	_ZL20__nv_init_managed_rtv
.L263:
	movq	_ZL1n(%rip), %rax
	movq	%rbx, %r8
	movl	$2, %ecx
	movq	%r15, %rdi
	movq	-472(%rbp), %rsi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpyAsync@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L264
	call	_ZL20__nv_init_managed_rtv
.L264:
	movq	_ZL6planet(%rip), %rax
	movq	-592(%rbp), %rbx
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movq	(%rbx,%rax,8), %rbx
	jne	.L265
	call	_ZL20__nv_init_managed_rtv
.L265:
	movq	_ZL8asteroid(%rip), %rax
	movq	-592(%rbp), %rcx
	movq	%rbx, %xmm6
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	subsd	(%rcx,%rax,8), %xmm6
	movsd	%xmm6, -632(%rbp)
	jne	.L266
	call	_ZL20__nv_init_managed_rtv
.L266:
	movq	_ZL6planet(%rip), %rax
	movq	-608(%rbp), %rbx
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movq	(%rbx,%rax,8), %rbx
	jne	.L267
	call	_ZL20__nv_init_managed_rtv
.L267:
	movq	_ZL8asteroid(%rip), %rax
	movq	-608(%rbp), %rcx
	movq	%rbx, %xmm7
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	subsd	(%rcx,%rax,8), %xmm7
	movsd	%xmm7, -640(%rbp)
	jne	.L268
	call	_ZL20__nv_init_managed_rtv
.L268:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movq	(%r15,%rax,8), %rbx
	jne	.L269
	call	_ZL20__nv_init_managed_rtv
.L269:
	movq	_ZL8asteroid(%rip), %rax
	movsd	-632(%rbp), %xmm0
	movq	%rbx, %xmm1
	movsd	-640(%rbp), %xmm2
	movslq	(%rax), %rax
	mulsd	%xmm0, %xmm0
	mulsd	%xmm2, %xmm2
	subsd	(%r15,%rax,8), %xmm1
	movl	-616(%rbp), %eax
	mulsd	%xmm1, %xmm1
	addsd	%xmm2, %xmm0
	addsd	%xmm1, %xmm0
	movsd	.LC16(%rip), %xmm1
	ucomisd	%xmm0, %xmm1
	cmova	%r12d, %eax
	movl	%eax, -616(%rbp)
	movb	$0, %al
	cmova	%eax, %r13d
.L260:
	incl	%r12d
	cmpl	$200001, %r12d
	jne	.L270
	movq	-552(%rbp), %rdi
	call	cudaFree@PLT
	movq	-544(%rbp), %rdi
	call	cudaFree@PLT
	movq	-536(%rbp), %rdi
	call	cudaFree@PLT
	movq	-528(%rbp), %rdi
	call	cudaFree@PLT
	movq	-520(%rbp), %rdi
	call	cudaFree@PLT
	movq	-512(%rbp), %rdi
	call	cudaFree@PLT
	movq	-504(%rbp), %rdi
	call	cudaFree@PLT
	movq	-496(%rbp), %rdi
	call	cudaFree@PLT
	movq	-488(%rbp), %rdi
	call	cudaFree@PLT
	movq	-480(%rbp), %rdi
	call	cudaFree@PLT
	movq	-472(%rbp), %rdi
	call	cudaFree@PLT
	movq	-464(%rbp), %rdi
	call	cudaFree@PLT
	movq	-456(%rbp), %rdi
	call	cudaFree@PLT
	movq	-448(%rbp), %rdi
	call	cudaFree@PLT
	movq	-440(%rbp), %rdi
	call	cudaFree@PLT
	movq	-432(%rbp), %rdi
	call	cudaFree@PLT
	movq	-424(%rbp), %rdi
	call	cudaStreamDestroy@PLT
	movq	-416(%rbp), %rdi
	call	cudaStreamDestroy@PLT
	movl	$1, %edi
	call	cudaSetDevice@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L271
	call	_ZL20__nv_init_managed_rtv
.L271:
	movq	_ZL1n(%rip), %rax
	leaq	-408(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L272
	call	_ZL20__nv_init_managed_rtv
.L272:
	movq	_ZL1n(%rip), %rax
	leaq	-400(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L273
	call	_ZL20__nv_init_managed_rtv
.L273:
	movq	_ZL1n(%rip), %rax
	leaq	-392(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L274
	call	_ZL20__nv_init_managed_rtv
.L274:
	movq	_ZL1n(%rip), %rax
	leaq	-384(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L275
	call	_ZL20__nv_init_managed_rtv
.L275:
	movq	_ZL1n(%rip), %rax
	leaq	-376(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L276
	call	_ZL20__nv_init_managed_rtv
.L276:
	movq	_ZL1n(%rip), %rax
	leaq	-368(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L277
	call	_ZL20__nv_init_managed_rtv
.L277:
	movq	_ZL1n(%rip), %rax
	leaq	-360(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$3, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L278
	call	_ZL20__nv_init_managed_rtv
.L278:
	movq	_ZL1n(%rip), %rax
	leaq	-352(%rbp), %rdi
	movslq	(%rax), %rsi
	salq	$2, %rsi
	call	_Z10cudaMallocIdE9cudaErrorPPT_m.isra.0
	xorl	%eax, %eax
	xorl	%edx, %edx
	movsd	.LC13(%rip), %xmm7
	movl	$-999, -608(%rbp)
	movq	%rax, -632(%rbp)
	movl	%edx, -672(%rbp)
	movsd	%xmm7, -568(%rbp)
.L279:
	movq	-80(%rbp), %r15
	movq	-72(%rbp), %rax
	leaq	-320(%rbp), %rbx
	leaq	-296(%rbp), %r12
	subq	%r15, %rax
	sarq	$2, %rax
	cmpq	%rax, -632(%rbp)
	jnb	.L397
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L280
	call	_ZL20__nv_init_managed_rtv
.L280:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	_ZL8asteroid(%rip), %r14
	jne	.L281
	call	_ZL20__nv_init_managed_rtv
.L281:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	_ZL6planet(%rip), %r13
	jne	.L282
	call	_ZL20__nv_init_managed_rtv
.L282:
	movq	-656(%rbp), %rax
	movq	%r12, %r9
	movq	%rbx, %r8
	movq	%r14, %rcx
	movq	_ZL1n(%rip), %rsi
	movq	%r13, %rdx
	movq	8(%rax), %rdi
	leaq	-152(%rbp), %rax
	pushq	%rax
	leaq	-176(%rbp), %rax
	pushq	%rax
	leaq	-200(%rbp), %rax
	pushq	%rax
	leaq	-224(%rbp), %rax
	pushq	%rax
	leaq	-248(%rbp), %rax
	pushq	%rax
	leaq	-272(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	movq	-224(%rbp), %rax
	addq	$48, %rsp
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	-320(%rbp), %r12
	movq	-296(%rbp), %r13
	movq	%rax, -584(%rbp)
	movq	-200(%rbp), %rax
	movq	-272(%rbp), %r14
	movq	-248(%rbp), %rbx
	movq	%rax, -576(%rbp)
	movq	-176(%rbp), %rax
	movq	%rax, -648(%rbp)
	jne	.L283
	.cfi_escape 0x2e,0
	call	_ZL20__nv_init_managed_rtv
.L283:
	movq	_ZL1n(%rip), %rax
	movq	-408(%rbp), %rdi
	movl	$1, %ecx
	movq	%r12, %rsi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L284
	call	_ZL20__nv_init_managed_rtv
.L284:
	movq	_ZL1n(%rip), %rax
	movq	-400(%rbp), %rdi
	movl	$1, %ecx
	movq	%r13, %rsi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L285
	call	_ZL20__nv_init_managed_rtv
.L285:
	movq	_ZL1n(%rip), %rax
	movq	-392(%rbp), %rdi
	movl	$1, %ecx
	movq	%r14, %rsi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L286
	call	_ZL20__nv_init_managed_rtv
.L286:
	movq	_ZL1n(%rip), %rax
	movq	-384(%rbp), %rdi
	movl	$1, %ecx
	movq	%rbx, %rsi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L287
	call	_ZL20__nv_init_managed_rtv
.L287:
	movq	_ZL1n(%rip), %rax
	movq	-584(%rbp), %rsi
	movl	$1, %ecx
	movq	-376(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L288
	call	_ZL20__nv_init_managed_rtv
.L288:
	movq	_ZL1n(%rip), %rax
	movq	-576(%rbp), %rsi
	movl	$1, %ecx
	movq	-368(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L289
	call	_ZL20__nv_init_managed_rtv
.L289:
	movq	_ZL1n(%rip), %rax
	movq	-648(%rbp), %rsi
	movl	$1, %ecx
	movq	-360(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L290
	call	_ZL20__nv_init_managed_rtv
.L290:
	movq	_ZL1n(%rip), %rax
	movq	-600(%rbp), %rsi
	movl	$1, %ecx
	movq	-352(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$2, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L291
	call	_ZL20__nv_init_managed_rtv
.L291:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movsd	(%r12,%rax,8), %xmm7
	movsd	%xmm7, -576(%rbp)
	jne	.L292
	call	_ZL20__nv_init_managed_rtv
.L292:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movsd	0(%r13,%rax,8), %xmm3
	movsd	%xmm3, -584(%rbp)
	jne	.L293
	call	_ZL20__nv_init_managed_rtv
.L293:
	movq	_ZL6planet(%rip), %rax
	movq	$0x000000000, -640(%rbp)
	movslq	(%rax), %rax
	movsd	(%r14,%rax,8), %xmm4
	movq	-632(%rbp), %rax
	movsd	%xmm4, -592(%rbp)
	leaq	(%r15,%rax,4), %rbx
	xorl	%r15d, %r15d
.L294:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L296
	call	_ZL20__nv_init_managed_rtv
.L296:
	movq	_ZL1n(%rip), %rax
	movq	-408(%rbp), %rsi
	movl	$2, %ecx
	movq	%r12, %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L297
	call	_ZL20__nv_init_managed_rtv
.L297:
	movq	_ZL1n(%rip), %rax
	movq	-400(%rbp), %rsi
	movl	$2, %ecx
	movq	%r13, %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L298
	call	_ZL20__nv_init_managed_rtv
.L298:
	movq	_ZL1n(%rip), %rax
	movq	-392(%rbp), %rsi
	movl	$2, %ecx
	movq	%r14, %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
	movslq	(%rbx), %rax
	movsd	-592(%rbp), %xmm2
	movsd	-584(%rbp), %xmm1
	movsd	-576(%rbp), %xmm0
	movsd	(%r14,%rax,8), %xmm5
	movsd	0(%r13,%rax,8), %xmm4
	movsd	(%r12,%rax,8), %xmm3
	call	_Z9project_xdddddd
	movslq	(%rbx), %rax
	mulsd	.LC17(%rip), %xmm0
	addsd	-576(%rbp), %xmm0
	movsd	-592(%rbp), %xmm2
	movsd	(%r14,%rax,8), %xmm5
	movsd	0(%r13,%rax,8), %xmm4
	movsd	(%r12,%rax,8), %xmm3
	movsd	-584(%rbp), %xmm1
	movsd	%xmm0, -576(%rbp)
	call	_Z9project_ydddddd
	mulsd	.LC17(%rip), %xmm0
	movslq	(%rbx), %rax
	addsd	-584(%rbp), %xmm0
	movsd	-592(%rbp), %xmm2
	movsd	(%r14,%rax,8), %xmm5
	movsd	(%r12,%rax,8), %xmm3
	movsd	0(%r13,%rax,8), %xmm4
	movsd	%xmm0, -584(%rbp)
	movaps	%xmm0, %xmm1
	movsd	-576(%rbp), %xmm0
	call	_Z9project_zdddddd
	movsd	.LC17(%rip), %xmm3
	movslq	(%rbx), %rax
	addsd	-640(%rbp), %xmm3
	mulsd	.LC17(%rip), %xmm0
	addsd	-592(%rbp), %xmm0
	movsd	0(%r13,%rax,8), %xmm5
	movsd	(%r12,%rax,8), %xmm6
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movsd	%xmm3, -640(%rbp)
	movsd	(%r14,%rax,8), %xmm3
	movsd	%xmm0, -592(%rbp)
	movsd	%xmm3, -680(%rbp)
	movsd	%xmm5, -688(%rbp)
	movsd	%xmm6, -696(%rbp)
	jne	.L299
	call	_ZL20__nv_init_managed_rtv
.L299:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movsd	(%r14,%rax,8), %xmm7
	movsd	%xmm7, -704(%rbp)
	jne	.L300
	call	_ZL20__nv_init_managed_rtv
.L300:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movsd	0(%r13,%rax,8), %xmm3
	movsd	%xmm3, -712(%rbp)
	jne	.L301
	call	_ZL20__nv_init_managed_rtv
.L301:
	movq	_ZL6planet(%rip), %rax
	movsd	-688(%rbp), %xmm4
	movsd	-680(%rbp), %xmm5
	movsd	-696(%rbp), %xmm3
	movslq	(%rax), %rax
	movsd	-704(%rbp), %xmm2
	movsd	-712(%rbp), %xmm1
	movsd	(%r12,%rax,8), %xmm0
	call	_Z4distdddddd
	movsd	-640(%rbp), %xmm4
	comisd	%xmm0, %xmm4
	jb	.L302
	cvtsi2sdl	%r15d, %xmm0
	mulsd	.LC18(%rip), %xmm0
	movsd	-568(%rbp), %xmm5
	mulsd	.LC3(%rip), %xmm0
	movslq	(%rbx), %rdx
	addsd	.LC4(%rip), %xmm0
	movq	-648(%rbp), %rcx
	movq	%rdx, %rax
	movq	$0x000000000, (%rcx,%rdx,8)
	comisd	%xmm0, %xmm5
	minsd	%xmm5, %xmm0
	cmovbe	-608(%rbp), %eax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movl	%eax, -608(%rbp)
	movsd	%xmm0, -568(%rbp)
	jne	.L305
	call	_ZL20__nv_init_managed_rtv
.L305:
	movq	_ZL1n(%rip), %rax
	movq	-648(%rbp), %rsi
	movl	$1, %ecx
	movq	-360(%rbp), %rdi
	movslq	(%rax), %rdx
	salq	$3, %rdx
	call	cudaMemcpy@PLT
.L302:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L306
	call	_ZL20__nv_init_managed_rtv
.L306:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movsd	(%r12,%rax,8), %xmm7
	movsd	%xmm7, -680(%rbp)
	jne	.L307
	call	_ZL20__nv_init_managed_rtv
.L307:
	movq	_ZL8asteroid(%rip), %rax
	movsd	-680(%rbp), %xmm4
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	subsd	(%r12,%rax,8), %xmm4
	movsd	%xmm4, -680(%rbp)
	jne	.L308
	call	_ZL20__nv_init_managed_rtv
.L308:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movsd	0(%r13,%rax,8), %xmm3
	movsd	%xmm3, -688(%rbp)
	jne	.L309
	call	_ZL20__nv_init_managed_rtv
.L309:
	movq	_ZL8asteroid(%rip), %rax
	movsd	-688(%rbp), %xmm5
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	subsd	0(%r13,%rax,8), %xmm5
	movsd	%xmm5, -688(%rbp)
	jne	.L310
	call	_ZL20__nv_init_managed_rtv
.L310:
	movq	_ZL6planet(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movslq	(%rax), %rax
	movsd	(%r14,%rax,8), %xmm4
	movsd	%xmm4, -696(%rbp)
	jne	.L311
	call	_ZL20__nv_init_managed_rtv
.L311:
	movq	_ZL8asteroid(%rip), %rax
	movsd	-680(%rbp), %xmm0
	movsd	-688(%rbp), %xmm2
	movsd	-696(%rbp), %xmm1
	movslq	(%rax), %rax
	mulsd	%xmm0, %xmm0
	mulsd	%xmm2, %xmm2
	subsd	(%r14,%rax,8), %xmm1
	mulsd	%xmm1, %xmm1
	addsd	%xmm2, %xmm0
	addsd	%xmm1, %xmm0
	movsd	.LC16(%rip), %xmm1
	comisd	%xmm0, %xmm1
	jbe	.L389
	incl	-672(%rbp)
	jmp	.L314
.L389:
	incl	%r15d
	cmpl	$200001, %r15d
	je	.L314
	movl	$134217729, %edx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movl	$1, %ecx
	movl	-660(%rbp), %eax
	salq	$5, %rdx
	movl	$1, -324(%rbp)
	movq	%rdx, -332(%rbp)
	movl	%eax, -344(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -340(%rbp)
	movq	-344(%rbp), %rdi
	movl	-336(%rbp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L294
	pushq	%rcx
	movl	%r15d, %edi
	pushq	-352(%rbp)
	pushq	-360(%rbp)
	pushq	-368(%rbp)
	movq	-376(%rbp), %r9
	movq	-384(%rbp), %r8
	movq	-392(%rbp), %rcx
	movq	-400(%rbp), %rdx
	movq	-408(%rbp), %rsi
	.cfi_escape 0x2e,0x20
	call	_Z50__device_stub__Z15run_step_kerneliPdS_S_S_S_S_S_PiiPdS_S_S_S_S_S_Pi
	addq	$32, %rsp
	jmp	.L294
.L314:
	incq	-632(%rbp)
	jmp	.L279
.L397:
	movslq	-672(%rbp), %rdx
	cmpq	%rax, %rdx
	je	.L328
	cmpl	$-2, -616(%rbp)
	jne	.L317
.L328:
	movq	$0x000000000, -568(%rbp)
	movl	$-1, -608(%rbp)
.L317:
	movq	-408(%rbp), %rdi
	.cfi_escape 0x2e,0
	call	cudaFree@PLT
	movq	-400(%rbp), %rdi
	call	cudaFree@PLT
	movq	-392(%rbp), %rdi
	call	cudaFree@PLT
	movq	-384(%rbp), %rdi
	call	cudaFree@PLT
	movq	-376(%rbp), %rdi
	call	cudaFree@PLT
	movq	-368(%rbp), %rdi
	call	cudaFree@PLT
	movq	-360(%rbp), %rdi
	call	cudaFree@PLT
	movq	-352(%rbp), %rdi
	call	cudaFree@PLT
	movq	-656(%rbp), %rax
	movsd	-568(%rbp), %xmm1
	movl	-608(%rbp), %edx
	movl	-616(%rbp), %esi
	movq	16(%rax), %rdi
	movsd	-624(%rbp), %xmm0
	call	_Z12write_outputPKcdiid
.LEHE9:
	leaq	-80(%rbp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	leaq	-128(%rbp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	leaq	-152(%rbp), %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	leaq	-176(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-200(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-224(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-248(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-272(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	movq	%r12, %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	movq	%rbx, %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L323
	jmp	.L390
.L329:
	endbr64
	movq	%rax, %r12
.L318:
	movq	%rbx, %rdi
	call	__cxa_free_exception@PLT
	movq	%r12, %rdi
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L393
	jmp	.L390
.L331:
	endbr64
	movq	%rax, %rbx
.L320:
	leaq	-80(%rbp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	jmp	.L321
.L330:
	endbr64
	movq	%rax, %rbx
.L321:
	leaq	-128(%rbp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	leaq	-152(%rbp), %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	leaq	-176(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-200(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-224(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-248(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-272(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-296(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	leaq	-320(%rbp), %rdi
	call	_ZNSt6vectorIdSaIdEED1Ev
	movq	%rbx, %rdi
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L390
.L393:
.LEHB10:
	call	_Unwind_Resume@PLT
.LEHE10:
.L390:
	call	__stack_chk_fail@PLT
.L323:
	leaq	-40(%rbp), %rsp
	xorl	%eax, %eax
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4376:
	.section	.gcc_except_table
.LLSDA4376:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4376-.LLSDACSB4376
.LLSDACSB4376:
	.uleb128 .LEHB6-.LFB4376
	.uleb128 .LEHE6-.LEHB6
	.uleb128 .L329-.LFB4376
	.uleb128 0
	.uleb128 .LEHB7-.LFB4376
	.uleb128 .LEHE7-.LEHB7
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB8-.LFB4376
	.uleb128 .LEHE8-.LEHB8
	.uleb128 .L330-.LFB4376
	.uleb128 0
	.uleb128 .LEHB9-.LFB4376
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L331-.LFB4376
	.uleb128 0
	.uleb128 .LEHB10-.LFB4376
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
.LLSDACSE4376:
	.section	.text.startup
	.size	main, .-main
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.section	__nv_managed_data__,"aw"
	.align 8
	.type	_ZL8asteroid, @object
	.size	_ZL8asteroid, 8
_ZL8asteroid:
	.zero	8
	.align 8
	.type	_ZL6planet, @object
	.size	_ZL6planet, 8
_ZL6planet:
	.zero	8
	.align 8
	.type	_ZL1n, @object
	.size	_ZL1n, 8
_ZL1n:
	.zero	8
	.local	_ZL32__nv_fatbinhandle_for_managed_rt
	.comm	_ZL32__nv_fatbinhandle_for_managed_rt,8,8
	.local	_ZL22__nv_inited_managed_rt
	.comm	_ZL22__nv_inited_managed_rt,1,1
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC0:
	.long	0
	.long	1085763584
	.align 8
.LC1:
	.long	0
	.long	1071644672
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC2:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.section	.rodata.cst8
	.align 8
.LC3:
	.long	0
	.long	1083129856
	.align 8
.LC4:
	.long	0
	.long	1090021888
	.align 8
.LC12:
	.long	0
	.long	2146435072
	.align 8
.LC13:
	.long	-1
	.long	2146435071
	.align 8
.LC16:
	.long	512753664
	.long	1121369284
	.align 8
.LC17:
	.long	0
	.long	1099734072
	.align 8
.LC18:
	.long	0
	.long	1078853632
	.hidden	DW.ref.__gxx_personality_v0
	.weak	DW.ref.__gxx_personality_v0
	.section	.data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
	.align 8
	.type	DW.ref.__gxx_personality_v0, @object
	.size	DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
	.quad	__gxx_personality_v0
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:


#include <hip/hip_runtime.h>
#include <cmath>
#include <fstream>
#include <iomanip>
#include <limits>
#include <stdexcept>
#include <string>
#include <vector>
#include <cfloat>

using namespace std;

namespace param {
const int n_steps = 200000;
const double dt = 60;
const double eps = 1e-3;
const double G = 6.674e-11;
__host__ __device__ double gravity_device_mass(double m0, double t) {
    return m0 + 0.5 * m0 * fabs(sin(t / 6000));
}
const double planet_radius = 1e7;
const double missile_speed = 1e6;
double get_missile_cost(double t) { return 1e5 + 1e3 * t; }
}  // namespace param

__device__ __managed__ int n, planet, asteroid;  // global


void read_input(const char* filename, int& n, int& planet, int& asteroid,
    std::vector<double>& qx, std::vector<double>& qy, std::vector<double>& qz,
    std::vector<double>& vx, std::vector<double>& vy, std::vector<double>& vz,
    std::vector<double>& m, std::vector<std::string>& type) {
    std::ifstream fin(filename);
    fin >> n >> planet >> asteroid;
    qx.resize(n);
    qy.resize(n);
    qz.resize(n);
    vx.resize(n);
    vy.resize(n);
    vz.resize(n);
    m.resize(n);
    type.resize(n);
    for (int i = 0; i < n; i++) {
        fin >> qx[i] >> qy[i] >> qz[i] >> vx[i] >> vy[i] >> vz[i] >> m[i] >> type[i];
    }
}

void write_output(const char* filename, double min_dist, int hit_time_step,
    int gravity_device_id, double missile_cost) {
    std::ofstream fout(filename);
    fout << std::scientific
         << std::setprecision(std::numeric_limits<double>::digits10 + 1) << min_dist
         << '\n'
         << hit_time_step << '\n'
         << gravity_device_id << ' ' << missile_cost << '\n';
}

__global__ void run_step_kernel(int step, double* qx, double* qy, double* qz, double* vx, double* vy, double* vz, double* m, int* type) {
    
    int i = blockDim.x * blockIdx.x + threadIdx.x;
    
    if (i < n) {
        double ax = 0;
        double ay = 0;
        double az = 0;
        
        for (int j = 0; j < n; j++) {
            if (j == i) continue;
            double mj = m[j];
            if (type[j] == 1) {
                mj = param::gravity_device_mass(mj, step * param::dt);
            }
            //__syncthreads();
            
            double dx = qx[j] - qx[i];
            double dy = qy[j] - qy[i];
            double dz = qz[j] - qz[i];
            double dist3 = pow(dx * dx + dy * dy + dz * dz + param::eps * param::eps, 1.5);
            ax += param::G * mj * dx / dist3;
            ay += param::G * mj * dy / dist3;
            az += param::G * mj * dz / dist3;
            //__syncthreads();
        }
        
        //__syncthreads();
        vx[i] += ax * param::dt;
        vy[i] += ay * param::dt;
        vz[i] += az * param::dt;

        qx[i] += vx[i] * param::dt;
        qy[i] += vy[i] * param::dt;
        qz[i] += vz[i] * param::dt;
    }
    

}



double dist(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    return sqrt(dx*dx + dy*dy + dz*dz);
}

double project_x(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    double dist = sqrt(dx*dx + dy*dy + dz*dz);
    double dist_xy = sqrt(dx*dx + dy*dy);
    
    return (dist_xy/dist) * (fabs(x1-x2)/dist_xy);
}

double project_y(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    double dist = sqrt(dx*dx + dy*dy + dz*dz);
    double dist_xy = sqrt(dx*dx + dy*dy);
    
    return (dist_xy/dist) * (fabs(y1-y2)/dist_xy);
}

double project_z(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double dx = x1 - x2;
    double dy = y1 - y2;
    double dz = z1 - z2;
    double dist = sqrt(dx*dx + dy*dy + dz*dz);
    
    return (fabs(z1-z2)/dist);
}


int main(int argc, char** argv) {
    if (argc != 3) {
        throw std::runtime_error("must supply 2 arguments");
    }
    
    //int n;  // n: n bodies
    std::vector<double> qx, qy, qz, vx, vy, vz, m;
    std::vector<std::string> type;
    vector<int> t_temp;

    auto distance = [&](int i, int j) -> double {
        double dx = qx[i] - qx[j];
        double dy = qy[i] - qy[j];
        double dz = qz[i] - qz[j];
        return sqrt(dx * dx + dy * dy + dz * dz);
    };

    
    // read in
    read_input(argv[1], n, planet, asteroid, qx, qy, qz, vx, vy, vz, m, type);
    
    int t[n];
    for(int i=0; i<n; i++){
        if(type[i] == "device")
            t[i] = 1;
        else
            t[i] = 0;
    }
    
    int threadsPerBlock = 32;
    int blocksPerGrid = (n + threadsPerBlock-1)/threadsPerBlock;
    
    
    
    
    
    
    // convert std::vector to array
    // for P1
    double qx_h1[n], qy_h1[n], qz_h1[n];
    copy(qx.begin(), qx.end(), qx_h1);
    copy(qy.begin(), qy.end(), qy_h1);
    copy(qz.begin(), qz.end(), qz_h1);
    
    double vx_h1[n], vy_h1[n], vz_h1[n];
    copy(vx.begin(), vx.end(), vx_h1);
    copy(vy.begin(), vy.end(), vy_h1);
    copy(vz.begin(), vz.end(), vz_h1);
    
    double m_h1[n];
    copy(m.begin(), m.end(), m_h1);
    
    vector<int> devList;  // device list for P3
    for (int i = 0; i < n; i++) {
        if (t[i] == 1) {
            devList.push_back(i);
            m_h1[i] = 0;    // no device in problem 1
        }
    }
    
    // for P2
    double qx_h2[n], qy_h2[n], qz_h2[n];
    copy(qx.begin(), qx.end(), qx_h2);
    copy(qy.begin(), qy.end(), qy_h2);
    copy(qz.begin(), qz.end(), qz_h2);
    
    double vx_h2[n], vy_h2[n], vz_h2[n];
    copy(vx.begin(), vx.end(), vx_h2);
    copy(vy.begin(), vy.end(), vy_h2);
    copy(vz.begin(), vz.end(), vz_h2);
    
    double m_h2[n];
    copy(m.begin(), m.end(), m_h2);
    
    
    // device's variable
    double *qx_dev1, *qy_dev1, *qz_dev1, *vx_dev1, *vy_dev1, *vz_dev1, *m_dev1;
    int *t_dev1;
    
    double *qx_dev2, *qy_dev2, *qz_dev2, *vx_dev2, *vy_dev2, *vz_dev2, *m_dev2;
    int *t_dev2;
    
    
    // Problem 1 & 2
    double min_dist = std::numeric_limits<double>::infinity();
    int hit_time_step = -2;
    

    hipSetDevice(0);
    hipStream_t stream1, stream2;
    hipStreamCreate(&stream1);
    hipStreamCreate(&stream2);
    
    hipMalloc(&qx_dev1, sizeof(double)*n);
    hipMemcpyAsync(qx_dev1, qx_h1, sizeof(double)*n, hipMemcpyHostToDevice, stream1);
    hipMalloc(&qy_dev1, sizeof(double)*n);
    hipMemcpyAsync(qy_dev1, qy_h1, sizeof(double)*n, hipMemcpyHostToDevice, stream1);
    hipMalloc(&qz_dev1, sizeof(double)*n);
    hipMemcpyAsync(qz_dev1, qz_h1, sizeof(double)*n, hipMemcpyHostToDevice, stream1);
    
    hipMalloc(&vx_dev1, sizeof(double)*n);
    hipMemcpyAsync(vx_dev1, vx_h1, sizeof(double)*n, hipMemcpyHostToDevice, stream1);
    hipMalloc(&vy_dev1, sizeof(double)*n);
    hipMemcpyAsync(vy_dev1, vy_h1, sizeof(double)*n, hipMemcpyHostToDevice, stream1);
    hipMalloc(&vz_dev1, sizeof(double)*n);
    hipMemcpyAsync(vz_dev1, vz_h1, sizeof(double)*n, hipMemcpyHostToDevice, stream1);
    
    hipMalloc(&m_dev1, sizeof(double)*n);
    hipMemcpyAsync(m_dev1, m_h1, sizeof(double)*n, hipMemcpyHostToDevice, stream1);
    
    hipMalloc(&t_dev1, sizeof(int)*n);
    hipMemcpyAsync(t_dev1, t, sizeof(int)*n, hipMemcpyHostToDevice, stream1);
    
    
    hipMalloc(&qx_dev2, sizeof(double)*n);
    hipMemcpyAsync(qx_dev2, qx_h2, sizeof(double)*n, hipMemcpyHostToDevice, stream2);
    hipMalloc(&qy_dev2, sizeof(double)*n);
    hipMemcpyAsync(qy_dev2, qy_h2, sizeof(double)*n, hipMemcpyHostToDevice, stream2);
    hipMalloc(&qz_dev2, sizeof(double)*n);
    hipMemcpyAsync(qz_dev2, qz_h2, sizeof(double)*n, hipMemcpyHostToDevice, stream2);
    
    hipMalloc(&vx_dev2, sizeof(double)*n);
    hipMemcpyAsync(vx_dev2, vx_h2, sizeof(double)*n, hipMemcpyHostToDevice, stream2);
    hipMalloc(&vy_dev2, sizeof(double)*n);
    hipMemcpyAsync(vy_dev2, vy_h2, sizeof(double)*n, hipMemcpyHostToDevice, stream2);
    hipMalloc(&vz_dev2, sizeof(double)*n);
    hipMemcpyAsync(vz_dev2, vz_h2, sizeof(double)*n, hipMemcpyHostToDevice, stream2);
    
    hipMalloc(&m_dev2, sizeof(double)*n);
    hipMemcpyAsync(m_dev2, m_h2, sizeof(double)*n, hipMemcpyHostToDevice, stream2);
    
    hipMalloc(&t_dev2, sizeof(int)*n);
    hipMemcpyAsync(t_dev2, t, sizeof(int)*n, hipMemcpyHostToDevice, stream2);
    
    
    bool P2 = true;
    
   for (int step = 0; step <= param::n_steps; step++) {
        if (step > 0) {
            //cudaSetDevice(0);
            run_step_kernel<<<blocksPerGrid, threadsPerBlock, 0, stream1>>>(step, qx_dev1, qy_dev1, qz_dev1, vx_dev1, vy_dev1, vz_dev1, m_dev1, t_dev1);
            if(P2)
                run_step_kernel<<<blocksPerGrid, threadsPerBlock, 0, stream2>>>(step, qx_dev2, qy_dev2, qz_dev2, vx_dev2, vy_dev2, vz_dev2, m_dev2, t_dev2);
            //cudaDeviceSynchronize();
        }
       
       hipMemcpyAsync(qx_h1, qx_dev1, sizeof(double)*n, hipMemcpyDeviceToHost, stream1);
       hipMemcpyAsync(qy_h1, qy_dev1, sizeof(double)*n, hipMemcpyDeviceToHost, stream1);
       hipMemcpyAsync(qz_h1, qz_dev1, sizeof(double)*n, hipMemcpyDeviceToHost, stream1);
       
        double dx = qx_h1[planet] - qx_h1[asteroid];
        double dy = qy_h1[planet] - qy_h1[asteroid];
        double dz = qz_h1[planet] - qz_h1[asteroid];
        min_dist = std::min(min_dist, sqrt(dx * dx + dy * dy + dz * dz));
       
       
       if(P2){
           hipMemcpyAsync(qx_h2, qx_dev2, sizeof(double)*n, hipMemcpyDeviceToHost, stream2);
           hipMemcpyAsync(qy_h2, qy_dev2, sizeof(double)*n, hipMemcpyDeviceToHost, stream2);
           hipMemcpyAsync(qz_h2, qz_dev2, sizeof(double)*n, hipMemcpyDeviceToHost, stream2);
           
           double dx = qx_h2[planet] - qx_h2[asteroid];
           double dy = qy_h2[planet] - qy_h2[asteroid];
           double dz = qz_h2[planet] - qz_h2[asteroid];
           if (dx * dx + dy * dy + dz * dz < param::planet_radius * param::planet_radius) {
               hit_time_step = step;
               P2 = false;
           }

       }
       
       
       
    }
    
    hipFree(qx_dev1);
    hipFree(qy_dev1);
    hipFree(qz_dev1);
    hipFree(vx_dev1);
    hipFree(vy_dev1);
    hipFree(vz_dev1);
    hipFree(m_dev1);
    hipFree(t_dev1);
    
    hipFree(qx_dev2);
    hipFree(qy_dev2);
    hipFree(qz_dev2);
    hipFree(vx_dev2);
    hipFree(vy_dev2);
    hipFree(vz_dev2);
    hipFree(m_dev2);
    hipFree(t_dev2);
    
    hipStreamDestroy(stream1);
    hipStreamDestroy(stream2);
    
    

    // Problem 3
    // TODO
    int gravity_device_id = -999;
    double missile_cost = DBL_MAX;

    double *qx_dev3, *qy_dev3, *qz_dev3, *vx_dev3, *vy_dev3, *vz_dev3, *m_dev3;
    int *t_dev3;
        
    hipSetDevice(1);
        
    
    hipMalloc(&qx_dev3, sizeof(double)*n);
    hipMalloc(&qy_dev3, sizeof(double)*n);
    hipMalloc(&qz_dev3, sizeof(double)*n);
    hipMalloc(&vx_dev3, sizeof(double)*n);
    hipMalloc(&vy_dev3, sizeof(double)*n);
    hipMalloc(&vz_dev3, sizeof(double)*n);
    hipMalloc(&m_dev3, sizeof(double)*n);
    hipMalloc(&t_dev3, sizeof(int)*n);
        
    int hitNum = 0;
        
    for(int i=0; i<devList.size(); i++){
            
        read_input(argv[1], n, planet, asteroid, qx, qy, qz, vx, vy, vz, m, type);
            
        double *qx_h3 = &qx[0];
        double *qy_h3 = &qy[0];
        double *qz_h3 = &qz[0];
        double *vx_h3 = &vx[0];
        double *vy_h3 = &vy[0];
        double *vz_h3 = &vz[0];
        double *m_h3 = &m[0];
            
            
        hipMemcpy(qx_dev3, qx_h3, sizeof(double)*n, hipMemcpyHostToDevice);
        hipMemcpy(qy_dev3, qy_h3, sizeof(double)*n, hipMemcpyHostToDevice);
        hipMemcpy(qz_dev3, qz_h3, sizeof(double)*n, hipMemcpyHostToDevice);
            
        hipMemcpy(vx_dev3, vx_h3, sizeof(double)*n, hipMemcpyHostToDevice);
        hipMemcpy(vy_dev3, vy_h3, sizeof(double)*n, hipMemcpyHostToDevice);
        hipMemcpy(vz_dev3, vz_h3, sizeof(double)*n, hipMemcpyHostToDevice);
            
        hipMemcpy(m_dev3, m_h3, sizeof(double)*n, hipMemcpyHostToDevice);
        hipMemcpy(t_dev3, t, sizeof(int)*n, hipMemcpyHostToDevice);
            
        double qx_m, qy_m, qz_m;  // position of missile
        double travelDist = 0;
            
        qx_m = qx[planet];
        qy_m = qy[planet];
        qz_m = qz[planet];
            
        for (int step = 0; step <= param::n_steps; step++) {
            if (step > 0) {
                run_step_kernel<<<blocksPerGrid, threadsPerBlock>>>(step, qx_dev3, qy_dev3, qz_dev3, vx_dev3, vy_dev3, vz_dev3, m_dev3, t_dev3);
            }
                
            hipMemcpy(qx_h3, qx_dev3, sizeof(double)*n, hipMemcpyDeviceToHost);
            hipMemcpy(qy_h3, qy_dev3, sizeof(double)*n, hipMemcpyDeviceToHost);
            hipMemcpy(qz_h3, qz_dev3, sizeof(double)*n, hipMemcpyDeviceToHost);
            
            qx_m += param::missile_speed * param::dt * project_x(qx_m, qy_m, qz_m, qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]]);
            qy_m += param::missile_speed * param::dt * project_y(qx_m, qy_m, qz_m, qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]]);
            qz_m += param::missile_speed * param::dt * project_z(qx_m, qy_m, qz_m, qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]]);
                
                
            travelDist += param::missile_speed * param::dt;
                
            if(travelDist >= dist(qx_h3[planet], qy_h3[planet], qz_h3[planet], qx_h3[devList[i]], qy_h3[devList[i]], qz_h3[devList[i]])){
                m_h3[devList[i]] = 0;  // device’s mass becomes zero after it is destroyed
                double c = param::get_missile_cost(step * param::dt);
                if(missile_cost > c){
                    missile_cost = c;
                    gravity_device_id = devList[i];
                }
                hipMemcpy(m_dev3, m_h3, sizeof(double)*n, hipMemcpyHostToDevice);
            }
                
            // determine hitting
            double dx = qx_h3[planet] - qx_h3[asteroid];
            double dy = qy_h3[planet] - qy_h3[asteroid];
            double dz = qz_h3[planet] - qz_h3[asteroid];
            if (dx * dx + dy * dy + dz * dz < param::planet_radius * param::planet_radius) {
                hitNum++;
                //printf("%d\n", hitNum);
                break;
            }
            
                
        }
            
    }
        
    if(hitNum == devList.size() || hit_time_step == -2){
        gravity_device_id = -1;
        missile_cost = 0;
    }
        
    hipFree(qx_dev3);
    hipFree(qy_dev3);
    hipFree(qz_dev3);
    hipFree(vx_dev3);
    hipFree(vy_dev3);
    hipFree(vz_dev3);
    hipFree(m_dev3);
    hipFree(t_dev3);
        
    

    write_output(argv[2], min_dist, hit_time_step, gravity_device_id, missile_cost);
}

	.text
	.file	"hw5.hip"
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0                          # -- Begin function _ZN5param19gravity_device_massEdd
.LCPI0_0:
	.quad	0x3fe0000000000000              # double 0.5
.LCPI0_1:
	.quad	0x40b7700000000000              # double 6000
	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0
.LCPI0_2:
	.quad	0x7fffffffffffffff              # double NaN
	.quad	0x7fffffffffffffff              # double NaN
	.text
	.globl	_ZN5param19gravity_device_massEdd
	.type	_ZN5param19gravity_device_massEdd,@function
_ZN5param19gravity_device_massEdd:      # @_ZN5param19gravity_device_massEdd
	.cfi_startproc
# %bb.0:
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movsd	%xmm0, 16(%rsp)                 # 8-byte Spill
	movsd	.LCPI0_0(%rip), %xmm2           # xmm2 = mem[0],zero
	mulsd	%xmm0, %xmm2
	movsd	%xmm2, 8(%rsp)                  # 8-byte Spill
	divsd	.LCPI0_1(%rip), %xmm1
	movapd	%xmm1, %xmm0
	callq	sin
	andpd	.LCPI0_2(%rip), %xmm0
	mulsd	8(%rsp), %xmm0                  # 8-byte Folded Reload
	addsd	16(%rsp), %xmm0                 # 8-byte Folded Reload
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end0:
	.size	_ZN5param19gravity_device_massEdd, .Lfunc_end0-_ZN5param19gravity_device_massEdd
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0                          # -- Begin function _ZN5param16get_missile_costEd
.LCPI1_0:
	.quad	0x408f400000000000              # double 1000
.LCPI1_1:
	.quad	0x40f86a0000000000              # double 1.0E+5
	.text
	.globl	_ZN5param16get_missile_costEd
	.type	_ZN5param16get_missile_costEd,@function
_ZN5param16get_missile_costEd:          # @_ZN5param16get_missile_costEd
	.cfi_startproc
# %bb.0:
	mulsd	.LCPI1_0(%rip), %xmm0
	addsd	.LCPI1_1(%rip), %xmm0
	retq
.Lfunc_end1:
	.size	_ZN5param16get_missile_costEd, .Lfunc_end1-_ZN5param16get_missile_costEd
	.cfi_endproc
                                        # -- End function
	.globl	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE # -- Begin function _Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	.type	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE,@function
_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE: # @_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
.Lfunc_begin0:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception0
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$520, %rsp                      # imm = 0x208
	.cfi_def_cfa_offset 576
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%r9, %rbx
	movq	%r8, %r14
	movq	%rcx, %r12
	movq	%rdx, %r13
	movq	%rsi, %r15
	movq	%rdi, %rsi
	movq	%rsp, %rbp
	movq	%rbp, %rdi
	movl	$8, %edx
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode
.Ltmp0:
	movq	%rbp, %rdi
	movq	%r15, %rsi
	callq	_ZNSirsERi
.Ltmp1:
# %bb.1:
.Ltmp2:
	movq	%rax, %rdi
	movq	%r13, %rsi
	callq	_ZNSirsERi
.Ltmp3:
# %bb.2:
.Ltmp4:
	movq	%rax, %rdi
	movq	%r12, %rsi
	callq	_ZNSirsERi
.Ltmp5:
# %bb.3:
	movslq	(%r15), %rsi
.Ltmp6:
	movq	%r14, %rdi
	callq	_ZNSt6vectorIdSaIdEE6resizeEm
.Ltmp7:
# %bb.4:
	movslq	(%r15), %rsi
.Ltmp8:
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIdSaIdEE6resizeEm
.Ltmp9:
# %bb.5:
	movq	576(%rsp), %rdi
	movslq	(%r15), %rsi
.Ltmp10:
	callq	_ZNSt6vectorIdSaIdEE6resizeEm
.Ltmp11:
# %bb.6:
	movq	584(%rsp), %rdi
	movslq	(%r15), %rsi
.Ltmp12:
	callq	_ZNSt6vectorIdSaIdEE6resizeEm
.Ltmp13:
# %bb.7:
	movq	592(%rsp), %rdi
	movslq	(%r15), %rsi
.Ltmp14:
	callq	_ZNSt6vectorIdSaIdEE6resizeEm
.Ltmp15:
# %bb.8:
	movq	600(%rsp), %rdi
	movslq	(%r15), %rsi
.Ltmp16:
	callq	_ZNSt6vectorIdSaIdEE6resizeEm
.Ltmp17:
# %bb.9:
	movq	608(%rsp), %rdi
	movslq	(%r15), %rsi
.Ltmp18:
	callq	_ZNSt6vectorIdSaIdEE6resizeEm
.Ltmp19:
# %bb.10:
	movq	616(%rsp), %rdi
	movslq	(%r15), %rsi
.Ltmp20:
	callq	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm
.Ltmp21:
# %bb.11:                               # %.preheader
	cmpl	$0, (%r15)
	jle	.LBB2_22
# %bb.12:                               # %.lr.ph.preheader
	xorl	%r13d, %r13d
	xorl	%ebp, %ebp
	xorl	%r12d, %r12d
.LBB2_13:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	(%r14), %rsi
	addq	%rbp, %rsi
.Ltmp23:
	movq	%rsp, %rdi
	callq	_ZNSi10_M_extractIdEERSiRT_
.Ltmp24:
# %bb.14:                               # %_ZNSirsERd.exit
                                        #   in Loop: Header=BB2_13 Depth=1
	movq	(%rbx), %rsi
	addq	%rbp, %rsi
.Ltmp25:
	movq	%rax, %rdi
	callq	_ZNSi10_M_extractIdEERSiRT_
.Ltmp26:
# %bb.15:                               # %_ZNSirsERd.exit43
                                        #   in Loop: Header=BB2_13 Depth=1
	movq	576(%rsp), %rcx
	movq	(%rcx), %rsi
	addq	%rbp, %rsi
.Ltmp27:
	movq	%rax, %rdi
	callq	_ZNSi10_M_extractIdEERSiRT_
.Ltmp28:
# %bb.16:                               # %_ZNSirsERd.exit44
                                        #   in Loop: Header=BB2_13 Depth=1
	movq	584(%rsp), %rcx
	movq	(%rcx), %rsi
	addq	%rbp, %rsi
.Ltmp29:
	movq	%rax, %rdi
	callq	_ZNSi10_M_extractIdEERSiRT_
.Ltmp30:
# %bb.17:                               # %_ZNSirsERd.exit45
                                        #   in Loop: Header=BB2_13 Depth=1
	movq	592(%rsp), %rcx
	movq	(%rcx), %rsi
	addq	%rbp, %rsi
.Ltmp31:
	movq	%rax, %rdi
	callq	_ZNSi10_M_extractIdEERSiRT_
.Ltmp32:
# %bb.18:                               # %_ZNSirsERd.exit46
                                        #   in Loop: Header=BB2_13 Depth=1
	movq	600(%rsp), %rcx
	movq	(%rcx), %rsi
	addq	%rbp, %rsi
.Ltmp33:
	movq	%rax, %rdi
	callq	_ZNSi10_M_extractIdEERSiRT_
.Ltmp34:
# %bb.19:                               # %_ZNSirsERd.exit47
                                        #   in Loop: Header=BB2_13 Depth=1
	movq	608(%rsp), %rcx
	movq	(%rcx), %rsi
	addq	%rbp, %rsi
.Ltmp35:
	movq	%rax, %rdi
	callq	_ZNSi10_M_extractIdEERSiRT_
.Ltmp36:
# %bb.20:                               # %_ZNSirsERd.exit48
                                        #   in Loop: Header=BB2_13 Depth=1
	movq	616(%rsp), %rcx
	movq	(%rcx), %rsi
	addq	%r13, %rsi
.Ltmp37:
	movq	%rax, %rdi
	callq	_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE
.Ltmp38:
# %bb.21:                               #   in Loop: Header=BB2_13 Depth=1
	incq	%r12
	movslq	(%r15), %rax
	addq	$8, %rbp
	addq	$32, %r13
	cmpq	%rax, %r12
	jl	.LBB2_13
.LBB2_22:                               # %._crit_edge
	movq	%rsp, %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
	addq	$520, %rsp                      # imm = 0x208
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB2_25:
	.cfi_def_cfa_offset 576
.Ltmp22:
	jmp	.LBB2_24
.LBB2_23:
.Ltmp39:
.LBB2_24:
	movq	%rax, %rbx
	movq	%rsp, %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end2:
	.size	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE, .Lfunc_end2-_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table2:
.Lexception0:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end0-.Lcst_begin0
.Lcst_begin0:
	.uleb128 .Lfunc_begin0-.Lfunc_begin0    # >> Call Site 1 <<
	.uleb128 .Ltmp0-.Lfunc_begin0           #   Call between .Lfunc_begin0 and .Ltmp0
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp0-.Lfunc_begin0           # >> Call Site 2 <<
	.uleb128 .Ltmp21-.Ltmp0                 #   Call between .Ltmp0 and .Ltmp21
	.uleb128 .Ltmp22-.Lfunc_begin0          #     jumps to .Ltmp22
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp23-.Lfunc_begin0          # >> Call Site 3 <<
	.uleb128 .Ltmp38-.Ltmp23                #   Call between .Ltmp23 and .Ltmp38
	.uleb128 .Ltmp39-.Lfunc_begin0          #     jumps to .Ltmp39
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp38-.Lfunc_begin0          # >> Call Site 4 <<
	.uleb128 .Lfunc_end2-.Ltmp38            #   Call between .Ltmp38 and .Lfunc_end2
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end0:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIdSaIdEE6resizeEm,"axG",@progbits,_ZNSt6vectorIdSaIdEE6resizeEm,comdat
	.weak	_ZNSt6vectorIdSaIdEE6resizeEm   # -- Begin function _ZNSt6vectorIdSaIdEE6resizeEm
	.p2align	1, 0x90
	.type	_ZNSt6vectorIdSaIdEE6resizeEm,@function
_ZNSt6vectorIdSaIdEE6resizeEm:          # @_ZNSt6vectorIdSaIdEE6resizeEm
	.cfi_startproc
# %bb.0:
	movq	(%rdi), %rdx
	movq	8(%rdi), %rcx
	movq	%rcx, %r8
	subq	%rdx, %r8
	sarq	$3, %r8
	movq	%rsi, %rax
	subq	%r8, %rax
	jbe	.LBB3_1
# %bb.5:
	movq	%rax, %rsi
	jmp	_ZNSt6vectorIdSaIdEE17_M_default_appendEm # TAILCALL
.LBB3_1:
	jae	.LBB3_4
# %bb.2:
	leaq	(%rdx,%rsi,8), %rax
	cmpq	%rax, %rcx
	je	.LBB3_4
# %bb.3:
	movq	%rax, 8(%rdi)
.LBB3_4:                                # %_ZNSt6vectorIdSaIdEE15_M_erase_at_endEPd.exit
	retq
.Lfunc_end3:
	.size	_ZNSt6vectorIdSaIdEE6resizeEm, .Lfunc_end3-_ZNSt6vectorIdSaIdEE6resizeEm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm,comdat
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm # -- Begin function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm
	.p2align	1, 0x90
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm,@function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm: # @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	movq	(%rdi), %r14
	movq	8(%rdi), %r15
	movq	%r15, %rcx
	subq	%r14, %rcx
	sarq	$5, %rcx
	movq	%rsi, %rax
	subq	%rcx, %rax
	jbe	.LBB4_1
# %bb.9:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm # TAILCALL
.LBB4_1:
	.cfi_def_cfa_offset 48
	jae	.LBB4_8
# %bb.2:
	shlq	$5, %rsi
	addq	%rsi, %r14
	cmpq	%r14, %r15
	je	.LBB4_8
# %bb.3:                                # %.lr.ph.i.i.i.i.preheader
	movq	%r14, %r12
.LBB4_4:                                # %.lr.ph.i.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	(%r12), %rdi
	addq	$16, %r12
	cmpq	%r12, %rdi
	je	.LBB4_6
# %bb.5:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i
                                        #   in Loop: Header=BB4_4 Depth=1
	callq	_ZdlPv
.LBB4_6:                                # %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i
                                        #   in Loop: Header=BB4_4 Depth=1
	addq	$16, %r12
	cmpq	%r15, %r12
	jne	.LBB4_4
# %bb.7:                                # %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i
	movq	%r14, 8(%rbx)
.LBB4_8:                                # %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE15_M_erase_at_endEPS5_.exit
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end4:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm, .Lfunc_end4-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6resizeEm
	.cfi_endproc
                                        # -- End function
	.text
	.globl	_Z12write_outputPKcdiid         # -- Begin function _Z12write_outputPKcdiid
	.type	_Z12write_outputPKcdiid,@function
_Z12write_outputPKcdiid:                # @_Z12write_outputPKcdiid
.Lfunc_begin1:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception1
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$544, %rsp                      # imm = 0x220
	.cfi_def_cfa_offset 576
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movsd	%xmm1, 16(%rsp)                 # 8-byte Spill
	movl	%edx, %ebx
	movl	%esi, %ebp
	movsd	%xmm0, 24(%rsp)                 # 8-byte Spill
	movq	%rdi, %rsi
	leaq	32(%rsp), %r14
	movq	%r14, %rdi
	movl	$16, %edx
	callq	_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode
	movq	(%r14), %rax
	movq	-24(%rax), %rcx
	movl	$-261, %edx                     # imm = 0xFEFB
	andl	56(%rsp,%rcx), %edx
	orl	$256, %edx                      # imm = 0x100
	movl	%edx, 56(%rsp,%rcx)
	movq	-24(%rax), %rax
	movq	$16, 40(%rsp,%rax)
.Ltmp40:
	movq	%r14, %rdi
	movsd	24(%rsp), %xmm0                 # 8-byte Reload
                                        # xmm0 = mem[0],zero
	callq	_ZNSo9_M_insertIdEERSoT_
.Ltmp41:
# %bb.1:                                # %_ZNSolsEd.exit
	movq	%rax, %r14
	movb	$10, 15(%rsp)
	movq	(%rax), %rax
	movq	-24(%rax), %rax
	cmpq	$0, 16(%r14,%rax)
	je	.LBB5_4
# %bb.2:
.Ltmp42:
	leaq	15(%rsp), %rsi
	movl	$1, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp43:
# %bb.3:
	movq	%rax, %r14
	jmp	.LBB5_5
.LBB5_4:
.Ltmp44:
	movq	%r14, %rdi
	movl	$10, %esi
	callq	_ZNSo3putEc
.Ltmp45:
.LBB5_5:
.Ltmp46:
	movq	%r14, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp47:
# %bb.6:
	movq	%rax, %r14
	movb	$10, 15(%rsp)
	movq	(%rax), %rax
	movq	-24(%rax), %rax
	cmpq	$0, 16(%r14,%rax)
	je	.LBB5_9
# %bb.7:
.Ltmp48:
	leaq	15(%rsp), %rsi
	movl	$1, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp49:
# %bb.8:
	movq	%rax, %r14
	jmp	.LBB5_10
.LBB5_9:
.Ltmp50:
	movq	%r14, %rdi
	movl	$10, %esi
	callq	_ZNSo3putEc
.Ltmp51:
.LBB5_10:
.Ltmp52:
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp53:
# %bb.11:
	movq	%rax, %rbx
	movb	$32, 15(%rsp)
	movq	(%rax), %rax
	movq	-24(%rax), %rax
	cmpq	$0, 16(%rbx,%rax)
	je	.LBB5_14
# %bb.12:
.Ltmp54:
	leaq	15(%rsp), %rsi
	movl	$1, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp55:
# %bb.13:
	movq	%rax, %rbx
	jmp	.LBB5_15
.LBB5_14:
.Ltmp56:
	movq	%rbx, %rdi
	movl	$32, %esi
	callq	_ZNSo3putEc
.Ltmp57:
.LBB5_15:
.Ltmp58:
	movq	%rbx, %rdi
	movsd	16(%rsp), %xmm0                 # 8-byte Reload
                                        # xmm0 = mem[0],zero
	callq	_ZNSo9_M_insertIdEERSoT_
.Ltmp59:
# %bb.16:                               # %_ZNSolsEd.exit18
	movb	$10, 15(%rsp)
	movq	(%rax), %rcx
	movq	-24(%rcx), %rcx
	cmpq	$0, 16(%rax,%rcx)
	je	.LBB5_18
# %bb.17:
.Ltmp60:
	leaq	15(%rsp), %rsi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp61:
	jmp	.LBB5_19
.LBB5_18:
.Ltmp62:
	movq	%rax, %rdi
	movl	$10, %esi
	callq	_ZNSo3putEc
.Ltmp63:
.LBB5_19:
	movq	_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE(%rip), %rax
	leaq	40(%rsp), %rdi
	movq	%rax, -8(%rdi)
	movq	_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE+24(%rip), %rcx
	movq	-24(%rax), %rax
	movq	%rcx, 32(%rsp,%rax)
	callq	_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev
	leaq	280(%rsp), %rdi
	callq	_ZNSt8ios_baseD2Ev
	addq	$544, %rsp                      # imm = 0x220
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB5_20:
	.cfi_def_cfa_offset 576
.Ltmp64:
	movq	%rax, %rbx
	leaq	32(%rsp), %rdi
	callq	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end5:
	.size	_Z12write_outputPKcdiid, .Lfunc_end5-_Z12write_outputPKcdiid
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table5:
.Lexception1:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end1-.Lcst_begin1
.Lcst_begin1:
	.uleb128 .Lfunc_begin1-.Lfunc_begin1    # >> Call Site 1 <<
	.uleb128 .Ltmp40-.Lfunc_begin1          #   Call between .Lfunc_begin1 and .Ltmp40
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp40-.Lfunc_begin1          # >> Call Site 2 <<
	.uleb128 .Ltmp63-.Ltmp40                #   Call between .Ltmp40 and .Ltmp63
	.uleb128 .Ltmp64-.Lfunc_begin1          #     jumps to .Ltmp64
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp63-.Lfunc_begin1          # >> Call Site 3 <<
	.uleb128 .Lfunc_end5-.Ltmp63            #   Call between .Ltmp63 and .Lfunc_end5
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end1:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi # -- Begin function _Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	.type	_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi,@function
_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi: # @_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$176, %rsp
	.cfi_def_cfa_offset 224
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	4(%rsp), %rax
	movl	%edi, (%rax)
	leaq	56(%rsp), %rdi
	movq	%rsi, (%rdi)
	leaq	48(%rsp), %rsi
	movq	%rdx, (%rsi)
	leaq	40(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	32(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	24(%rsp), %r8
	movq	%r9, (%r8)
	leaq	96(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	movq	%rcx, 32(%rbx)
	movq	%r8, 40(%rbx)
	leaq	224(%rsp), %rax
	movq	%rax, 48(%rbx)
	leaq	232(%rsp), %rax
	movq	%rax, 56(%rbx)
	leaq	240(%rsp), %rax
	movq	%rax, 64(%rbx)
	leaq	80(%rsp), %r14
	leaq	64(%rsp), %r15
	leaq	16(%rsp), %r12
	leaq	8(%rsp), %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z15run_step_kerneliPdS_S_S_S_S_S_Pi, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$192, %rsp
	.cfi_adjust_cfa_offset -192
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end6:
	.size	_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi, .Lfunc_end6-_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	.cfi_endproc
                                        # -- End function
	.globl	_Z4distdddddd                   # -- Begin function _Z4distdddddd
	.type	_Z4distdddddd,@function
_Z4distdddddd:                          # @_Z4distdddddd
	.cfi_startproc
# %bb.0:
	subsd	%xmm3, %xmm0
	subsd	%xmm4, %xmm1
	subsd	%xmm5, %xmm2
	mulsd	%xmm0, %xmm0
	mulsd	%xmm1, %xmm1
	addsd	%xmm0, %xmm1
	mulsd	%xmm2, %xmm2
	addsd	%xmm1, %xmm2
	xorps	%xmm0, %xmm0
	sqrtsd	%xmm2, %xmm0
	retq
.Lfunc_end7:
	.size	_Z4distdddddd, .Lfunc_end7-_Z4distdddddd
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0                          # -- Begin function _Z9project_xdddddd
.LCPI8_0:
	.quad	0x7fffffffffffffff              # double NaN
	.quad	0x7fffffffffffffff              # double NaN
	.text
	.globl	_Z9project_xdddddd
	.type	_Z9project_xdddddd,@function
_Z9project_xdddddd:                     # @_Z9project_xdddddd
	.cfi_startproc
# %bb.0:
	subsd	%xmm3, %xmm0
	subsd	%xmm4, %xmm1
	subsd	%xmm5, %xmm2
	movapd	%xmm0, %xmm3
	mulsd	%xmm0, %xmm3
	mulsd	%xmm1, %xmm1
	addsd	%xmm3, %xmm1
	mulsd	%xmm2, %xmm2
	addsd	%xmm1, %xmm2
	sqrtsd	%xmm2, %xmm2
	sqrtsd	%xmm1, %xmm1
	andpd	.LCPI8_0(%rip), %xmm0
	divsd	%xmm1, %xmm0
	divsd	%xmm2, %xmm1
	mulsd	%xmm1, %xmm0
	retq
.Lfunc_end8:
	.size	_Z9project_xdddddd, .Lfunc_end8-_Z9project_xdddddd
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0                          # -- Begin function _Z9project_ydddddd
.LCPI9_0:
	.quad	0x7fffffffffffffff              # double NaN
	.quad	0x7fffffffffffffff              # double NaN
	.text
	.globl	_Z9project_ydddddd
	.type	_Z9project_ydddddd,@function
_Z9project_ydddddd:                     # @_Z9project_ydddddd
	.cfi_startproc
# %bb.0:
	subsd	%xmm3, %xmm0
	subsd	%xmm4, %xmm1
	subsd	%xmm5, %xmm2
	mulsd	%xmm0, %xmm0
	movapd	%xmm1, %xmm3
	mulsd	%xmm1, %xmm3
	addsd	%xmm0, %xmm3
	mulsd	%xmm2, %xmm2
	addsd	%xmm3, %xmm2
	sqrtsd	%xmm2, %xmm2
	xorps	%xmm0, %xmm0
	sqrtsd	%xmm3, %xmm0
	andpd	.LCPI9_0(%rip), %xmm1
	divsd	%xmm0, %xmm1
	divsd	%xmm2, %xmm0
	mulsd	%xmm1, %xmm0
	retq
.Lfunc_end9:
	.size	_Z9project_ydddddd, .Lfunc_end9-_Z9project_ydddddd
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0                          # -- Begin function _Z9project_zdddddd
.LCPI10_0:
	.quad	0x7fffffffffffffff              # double NaN
	.quad	0x7fffffffffffffff              # double NaN
	.text
	.globl	_Z9project_zdddddd
	.type	_Z9project_zdddddd,@function
_Z9project_zdddddd:                     # @_Z9project_zdddddd
	.cfi_startproc
# %bb.0:
	subsd	%xmm3, %xmm0
	subsd	%xmm4, %xmm1
	subsd	%xmm5, %xmm2
	mulsd	%xmm0, %xmm0
	mulsd	%xmm1, %xmm1
	addsd	%xmm0, %xmm1
	movapd	%xmm2, %xmm0
	mulsd	%xmm2, %xmm0
	addsd	%xmm1, %xmm0
	sqrtsd	%xmm0, %xmm0
	andpd	.LCPI10_0(%rip), %xmm2
	divsd	%xmm0, %xmm2
	movapd	%xmm2, %xmm0
	retq
.Lfunc_end10:
	.size	_Z9project_zdddddd, .Lfunc_end10-_Z9project_zdddddd
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0                          # -- Begin function main
.LCPI11_0:
	.quad	0x7ff0000000000000              # double +Inf
.LCPI11_1:
	.quad	0x42d6bcc41e900000              # double 1.0E+14
.LCPI11_2:
	.quad	0x7fefffffffffffff              # double 1.7976931348623157E+308
.LCPI11_3:
	.quad	0x418c9c3800000000              # double 6.0E+7
.LCPI11_4:
	.quad	0x404e000000000000              # double 60
.LCPI11_5:
	.quad	0x408f400000000000              # double 1000
.LCPI11_6:
	.quad	0x40f86a0000000000              # double 1.0E+5
	.text
	.globl	main
	.type	main,@function
main:                                   # @main
.Lfunc_begin2:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception2
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$600, %rsp                      # imm = 0x258
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	cmpl	$3, %edi
	jne	.LBB11_1
# %bb.4:
	xorpd	%xmm0, %xmm0
	leaq	-592(%rbp), %r8
	movapd	%xmm0, (%r8)
	xorl	%eax, %eax
	movq	%rax, 16(%r8)
	leaq	-560(%rbp), %r9
	movq	%rax, 16(%r9)
	movapd	%xmm0, (%r9)
	leaq	-528(%rbp), %r10
	movq	%rax, 16(%r10)
	movapd	%xmm0, (%r10)
	leaq	-496(%rbp), %r11
	movq	%rax, 16(%r11)
	movapd	%xmm0, (%r11)
	leaq	-464(%rbp), %rbx
	movq	%rax, 16(%rbx)
	movapd	%xmm0, (%rbx)
	leaq	-432(%rbp), %r14
	movq	%rax, 16(%r14)
	movapd	%xmm0, (%r14)
	leaq	-400(%rbp), %r15
	movq	%rax, 16(%r15)
	movapd	%xmm0, (%r15)
	leaq	-640(%rbp), %r12
	movq	%rax, 16(%r12)
	movapd	%xmm0, (%r12)
	movq	%rsi, -608(%rbp)                # 8-byte Spill
	movq	8(%rsi), %rdi
	movq	n(%rip), %rsi
	movq	planet(%rip), %rdx
	movq	asteroid(%rip), %rcx
.Ltmp68:
	.cfi_escape 0x2e, 0x30
	pushq	%r12
	pushq	%r15
	pushq	%r14
	pushq	%rbx
	pushq	%r11
	pushq	%r10
	callq	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	addq	$48, %rsp
.Ltmp69:
# %bb.5:
	movq	%rsp, -616(%rbp)                # 8-byte Spill
	movq	n(%rip), %rax
	movl	(%rax), %eax
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rcx
	leaq	15(,%rax,4), %rax
	andq	$-16, %rax
	subq	%rax, %rcx
	movq	%rcx, -144(%rbp)                # 8-byte Spill
	movq	%rcx, %rsp
	movq	n(%rip), %rbx
	movl	(%rbx), %esi
	testl	%esi, %esi
	jle	.LBB11_10
# %bb.6:                                # %.lr.ph
	movq	-640(%rbp), %rax
	addq	$8, %rax
	xorl	%ecx, %ecx
	movl	$1769366884, %edx               # imm = 0x69766564
.LBB11_7:                               # =>This Inner Loop Header: Depth=1
	cmpq	$6, (%rax)
	jne	.LBB11_17
# %bb.8:                                # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_.exit
                                        #   in Loop: Header=BB11_7 Depth=1
	movq	-8(%rax), %rsi
	movl	(%rsi), %edi
	xorl	%edx, %edi
	movzwl	4(%rsi), %esi
	xorl	$25955, %esi                    # imm = 0x6563
	orl	%edi, %esi
	je	.LBB11_9
.LBB11_17:                              # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_.exit.thread350
                                        #   in Loop: Header=BB11_7 Depth=1
	xorl	%esi, %esi
.LBB11_18:                              # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_.exit.thread
                                        #   in Loop: Header=BB11_7 Depth=1
	movq	-144(%rbp), %rdi                # 8-byte Reload
	movl	%esi, (%rdi,%rcx,4)
	incq	%rcx
	movslq	(%rbx), %rsi
	addq	$32, %rax
	cmpq	%rsi, %rcx
	jl	.LBB11_7
	jmp	.LBB11_10
.LBB11_9:                               #   in Loop: Header=BB11_7 Depth=1
	movl	$1, %esi
	jmp	.LBB11_18
.LBB11_10:                              # %._crit_edge
	leal	31(%rsi), %eax
	leal	62(%rsi), %ecx
	testl	%eax, %eax
	cmovnsl	%eax, %ecx
	movl	%ecx, -148(%rbp)                # 4-byte Spill
	movl	%esi, %eax
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %r15
	leaq	15(,%rax,8), %rax
	andq	$-16, %rax
	subq	%rax, %r15
	movq	%r15, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %r12
	subq	%rax, %r12
	movq	%r12, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %r13
	subq	%rax, %r13
	movq	%r13, %rsp
	movq	-592(%rbp), %rsi
	movq	-584(%rbp), %rdx
	movq	%rdx, %r14
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	movq	%rsi, -48(%rbp)                 # 8-byte Spill
	jl	.LBB11_12
# %bb.11:
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	callq	memmove@PLT
.LBB11_14:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit
	movq	-560(%rbp), %rsi
	movq	-552(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_19
# %bb.15:
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	callq	memmove@PLT
.LBB11_21:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit236
	movq	-528(%rbp), %rsi
	movq	-520(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_23
# %bb.22:
	.cfi_escape 0x2e, 0x00
	movq	%r13, %rdi
	callq	memmove@PLT
.LBB11_25:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit237
	movl	(%rbx), %eax
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rdi
	leaq	15(,%rax,8), %rax
	andq	$-16, %rax
	subq	%rax, %rdi
	movq	%rdi, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rcx
	subq	%rax, %rcx
	movq	%rcx, -136(%rbp)                # 8-byte Spill
	movq	%rcx, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rcx
	subq	%rax, %rcx
	movq	%rcx, -112(%rbp)                # 8-byte Spill
	movq	%rcx, %rsp
	movq	-496(%rbp), %rsi
	movq	-488(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	movq	%rdi, -96(%rbp)                 # 8-byte Spill
	jl	.LBB11_27
# %bb.26:
	.cfi_escape 0x2e, 0x00
	callq	memmove@PLT
.LBB11_29:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit238
	movq	-464(%rbp), %rsi
	movq	-456(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_31
# %bb.30:
	.cfi_escape 0x2e, 0x00
	movq	-136(%rbp), %rdi                # 8-byte Reload
	callq	memmove@PLT
.LBB11_33:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit239
	movq	-432(%rbp), %rsi
	movq	-424(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_35
# %bb.34:
	.cfi_escape 0x2e, 0x00
	movq	-112(%rbp), %rdi                # 8-byte Reload
	callq	memmove@PLT
.LBB11_37:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit240
	movl	(%rbx), %eax
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rdi
	leaq	15(,%rax,8), %rax
	andq	$-16, %rax
	subq	%rax, %rdi
	movq	%rdi, %rsp
	movq	-400(%rbp), %rsi
	movq	-392(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	movq	%rdi, -80(%rbp)                 # 8-byte Spill
	jl	.LBB11_39
# %bb.38:
	.cfi_escape 0x2e, 0x00
	callq	memmove@PLT
.LBB11_41:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit241
	xorpd	%xmm0, %xmm0
	movapd	%xmm0, -256(%rbp)
	movq	$0, -240(%rbp)
	movl	$0, -120(%rbp)
	cmpl	$0, (%rbx)
	jle	.LBB11_42
# %bb.50:                               # %.lr.ph378
	xorl	%eax, %eax
	leaq	-120(%rbp), %r14
.LBB11_51:                              # =>This Inner Loop Header: Depth=1
	movslq	%eax, %rcx
	movq	-144(%rbp), %rdx                # 8-byte Reload
	cmpl	$1, (%rdx,%rcx,4)
	jne	.LBB11_56
# %bb.52:                               #   in Loop: Header=BB11_51 Depth=1
	movq	-248(%rbp), %rsi
	cmpq	-240(%rbp), %rsi
	je	.LBB11_54
# %bb.53:                               #   in Loop: Header=BB11_51 Depth=1
	movl	%eax, (%rsi)
	addq	$4, %rsi
	movq	%rsi, -248(%rbp)
	jmp	.LBB11_55
.LBB11_54:                              #   in Loop: Header=BB11_51 Depth=1
.Ltmp71:
	.cfi_escape 0x2e, 0x00
	leaq	-256(%rbp), %rdi
	movq	%r14, %rdx
	callq	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
.Ltmp72:
.LBB11_55:                              # %_ZNSt6vectorIiSaIiEE9push_backERKi.exit
                                        #   in Loop: Header=BB11_51 Depth=1
	movslq	-120(%rbp), %rax
	movq	-80(%rbp), %rcx                 # 8-byte Reload
	movq	$0, (%rcx,%rax,8)
	movq	n(%rip), %rbx
.LBB11_56:                              #   in Loop: Header=BB11_51 Depth=1
	incl	%eax
	movl	%eax, -120(%rbp)
	cmpl	(%rbx), %eax
	jl	.LBB11_51
# %bb.43:                               # %._crit_edge379.loopexit
	movq	-592(%rbp), %rsi
	movq	-584(%rbp), %rdx
	jmp	.LBB11_44
.LBB11_42:
	movq	%r14, %rdx
	movq	-48(%rbp), %rsi                 # 8-byte Reload
.LBB11_44:                              # %._crit_edge379
	movl	-148(%rbp), %r14d               # 4-byte Reload
	subq	%rsi, %rdx
	movl	(%rbx), %eax
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rdi
	leaq	15(,%rax,8), %rax
	andq	$-16, %rax
	subq	%rax, %rdi
	movq	%rdi, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rcx
	subq	%rax, %rcx
	movq	%rcx, -48(%rbp)                 # 8-byte Spill
	movq	%rcx, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rcx
	subq	%rax, %rcx
	movq	%rcx, -88(%rbp)                 # 8-byte Spill
	movq	%rcx, %rsp
	cmpq	$9, %rdx
	movq	%rdi, -72(%rbp)                 # 8-byte Spill
	jl	.LBB11_46
# %bb.45:
	.cfi_escape 0x2e, 0x00
	callq	memmove@PLT
.LBB11_48:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit242
	movq	-560(%rbp), %rsi
	movq	-552(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_57
# %bb.49:
	.cfi_escape 0x2e, 0x00
	movq	-48(%rbp), %rdi                 # 8-byte Reload
	callq	memmove@PLT
.LBB11_59:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit243
	movq	-528(%rbp), %rsi
	movq	-520(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_61
# %bb.60:
	.cfi_escape 0x2e, 0x00
	movq	-88(%rbp), %rdi                 # 8-byte Reload
	callq	memmove@PLT
.LBB11_63:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit244
	movl	(%rbx), %eax
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rdi
	leaq	15(,%rax,8), %rax
	andq	$-16, %rax
	subq	%rax, %rdi
	movq	%rdi, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rcx
	subq	%rax, %rcx
	movq	%rcx, -128(%rbp)                # 8-byte Spill
	movq	%rcx, %rsp
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rcx
	subq	%rax, %rcx
	movq	%rcx, -104(%rbp)                # 8-byte Spill
	movq	%rcx, %rsp
	movq	-496(%rbp), %rsi
	movq	-488(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	movq	%rdi, -600(%rbp)                # 8-byte Spill
	jl	.LBB11_65
# %bb.64:
	.cfi_escape 0x2e, 0x00
	callq	memmove@PLT
.LBB11_67:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit245
	movq	-464(%rbp), %rsi
	movq	-456(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_69
# %bb.68:
	.cfi_escape 0x2e, 0x00
	movq	-128(%rbp), %rdi                # 8-byte Reload
	callq	memmove@PLT
.LBB11_71:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit246
	movq	-432(%rbp), %rsi
	movq	-424(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_73
# %bb.72:
	.cfi_escape 0x2e, 0x00
	movq	-104(%rbp), %rdi                # 8-byte Reload
	callq	memmove@PLT
.LBB11_75:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit247
	movl	(%rbx), %eax
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rbx
	leaq	15(,%rax,8), %rax
	andq	$-16, %rax
	subq	%rax, %rbx
	movq	%rbx, %rsp
	movq	-400(%rbp), %rsi
	movq	-392(%rbp), %rdx
	subq	%rsi, %rdx
	cmpq	$9, %rdx
	jl	.LBB11_77
# %bb.76:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	memmove@PLT
.LBB11_79:                              # %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES2_ET0_T_S8_S7_.exit248
.Ltmp74:
	.cfi_escape 0x2e, 0x00
	xorl	%edi, %edi
	callq	hipSetDevice
.Ltmp75:
# %bb.80:
.Ltmp77:
	.cfi_escape 0x2e, 0x00
	leaq	-64(%rbp), %rdi
	callq	hipStreamCreate
.Ltmp78:
# %bb.81:
.Ltmp79:
	.cfi_escape 0x2e, 0x00
	leaq	-56(%rbp), %rdi
	callq	hipStreamCreate
.Ltmp80:
# %bb.82:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp81:
	.cfi_escape 0x2e, 0x00
	leaq	-120(%rbp), %rdi
	callq	hipMalloc
.Ltmp82:
# %bb.83:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit
	movq	-120(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp83:
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rsi
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp84:
# %bb.84:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp85:
	.cfi_escape 0x2e, 0x00
	leaq	-224(%rbp), %rdi
	callq	hipMalloc
.Ltmp86:
# %bb.85:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit251
	movq	-224(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp87:
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rsi
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp88:
# %bb.86:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp89:
	.cfi_escape 0x2e, 0x00
	leaq	-216(%rbp), %rdi
	callq	hipMalloc
.Ltmp90:
# %bb.87:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit253
	movq	-216(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp91:
	.cfi_escape 0x2e, 0x00
	movq	%r13, %rsi
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp92:
# %bb.88:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp93:
	.cfi_escape 0x2e, 0x00
	leaq	-368(%rbp), %rdi
	callq	hipMalloc
.Ltmp94:
# %bb.89:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit255
	movq	-368(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp95:
	.cfi_escape 0x2e, 0x00
	movq	-96(%rbp), %rsi                 # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp96:
# %bb.90:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp97:
	.cfi_escape 0x2e, 0x00
	leaq	-360(%rbp), %rdi
	callq	hipMalloc
.Ltmp98:
# %bb.91:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit257
	movq	-360(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp99:
	.cfi_escape 0x2e, 0x00
	movq	-136(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp100:
# %bb.92:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp101:
	.cfi_escape 0x2e, 0x00
	leaq	-352(%rbp), %rdi
	callq	hipMalloc
.Ltmp102:
# %bb.93:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit259
	movq	-352(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp103:
	.cfi_escape 0x2e, 0x00
	movq	-112(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp104:
# %bb.94:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp105:
	.cfi_escape 0x2e, 0x00
	leaq	-344(%rbp), %rdi
	callq	hipMalloc
.Ltmp106:
# %bb.95:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit261
	movq	-344(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp107:
	.cfi_escape 0x2e, 0x00
	movq	-80(%rbp), %rsi                 # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp108:
# %bb.96:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$2, %rsi
.Ltmp109:
	.cfi_escape 0x2e, 0x00
	leaq	-336(%rbp), %rdi
	callq	hipMalloc
.Ltmp110:
# %bb.97:                               # %_ZL9hipMallocIiE10hipError_tPPT_m.exit
	movq	-336(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$2, %rdx
	movq	-64(%rbp), %r8
.Ltmp111:
	.cfi_escape 0x2e, 0x00
	movq	-144(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp112:
# %bb.98:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp113:
	.cfi_escape 0x2e, 0x00
	leaq	-208(%rbp), %rdi
	callq	hipMalloc
.Ltmp114:
# %bb.99:                               # %_ZL9hipMallocIdE10hipError_tPPT_m.exit264
	movq	-208(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp115:
	.cfi_escape 0x2e, 0x00
	movq	-72(%rbp), %rsi                 # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp116:
# %bb.100:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp117:
	.cfi_escape 0x2e, 0x00
	leaq	-200(%rbp), %rdi
	callq	hipMalloc
.Ltmp118:
# %bb.101:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit266
	movq	-200(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp119:
	.cfi_escape 0x2e, 0x00
	movq	-48(%rbp), %rsi                 # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp120:
# %bb.102:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp121:
	.cfi_escape 0x2e, 0x00
	leaq	-192(%rbp), %rdi
	callq	hipMalloc
.Ltmp122:
# %bb.103:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit268
	movq	-192(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp123:
	.cfi_escape 0x2e, 0x00
	movq	-88(%rbp), %rsi                 # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp124:
# %bb.104:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp125:
	.cfi_escape 0x2e, 0x00
	leaq	-328(%rbp), %rdi
	callq	hipMalloc
.Ltmp126:
# %bb.105:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit270
	movq	-328(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp127:
	.cfi_escape 0x2e, 0x00
	movq	-600(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp128:
# %bb.106:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp129:
	.cfi_escape 0x2e, 0x00
	leaq	-320(%rbp), %rdi
	callq	hipMalloc
.Ltmp130:
# %bb.107:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit272
	movq	-320(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp131:
	.cfi_escape 0x2e, 0x00
	movq	-128(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp132:
# %bb.108:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp133:
	.cfi_escape 0x2e, 0x00
	leaq	-312(%rbp), %rdi
	callq	hipMalloc
.Ltmp134:
# %bb.109:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit274
	movq	-312(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp135:
	.cfi_escape 0x2e, 0x00
	movq	-104(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp136:
# %bb.110:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp137:
	.cfi_escape 0x2e, 0x00
	leaq	-304(%rbp), %rdi
	callq	hipMalloc
.Ltmp138:
# %bb.111:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit276
	movq	-304(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp139:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rsi
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp140:
# %bb.112:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$2, %rsi
.Ltmp141:
	.cfi_escape 0x2e, 0x00
	leaq	-296(%rbp), %rdi
	callq	hipMalloc
.Ltmp142:
# %bb.113:                              # %_ZL9hipMallocIiE10hipError_tPPT_m.exit278
	movq	-296(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$2, %rdx
	movq	-56(%rbp), %r8
.Ltmp143:
	.cfi_escape 0x2e, 0x00
	movq	-144(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpyAsync
.Ltmp144:
# %bb.114:                              # %.preheader
	sarl	$5, %r14d
	movl	%r14d, %eax
	btsq	$32, %rax
	movq	%rax, -136(%rbp)                # 8-byte Spill
	movsd	.LCPI11_0(%rip), %xmm0          # xmm0 = mem[0],zero
	movsd	%xmm0, -128(%rbp)               # 8-byte Spill
	movb	$1, %r14b
	movl	$-2, -104(%rbp)                 # 4-byte Folded Spill
	xorl	%ebx, %ebx
.LBB11_115:                             # =>This Inner Loop Header: Depth=1
	testl	%ebx, %ebx
	je	.LBB11_123
# %bb.116:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-64(%rbp), %r9
.Ltmp146:
	.cfi_escape 0x2e, 0x00
	movq	-136(%rbp), %rdi                # 8-byte Reload
	movl	$1, %esi
	movabsq	$4294967328, %rdx               # imm = 0x100000020
	movl	$1, %ecx
	xorl	%r8d, %r8d
	callq	__hipPushCallConfiguration
.Ltmp147:
# %bb.117:                              #   in Loop: Header=BB11_115 Depth=1
	testl	%eax, %eax
	jne	.LBB11_119
# %bb.118:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-120(%rbp), %rsi
	movq	-224(%rbp), %rdx
	movq	-216(%rbp), %rcx
	movq	-368(%rbp), %r8
	movq	-360(%rbp), %r9
.Ltmp148:
	.cfi_escape 0x2e, 0x20
	subq	$8, %rsp
	movl	%ebx, %edi
	pushq	-336(%rbp)
	pushq	-344(%rbp)
	pushq	-352(%rbp)
	callq	_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	addq	$32, %rsp
.Ltmp149:
.LBB11_119:                             #   in Loop: Header=BB11_115 Depth=1
	testb	$1, %r14b
	je	.LBB11_123
# %bb.120:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-56(%rbp), %r9
.Ltmp150:
	.cfi_escape 0x2e, 0x00
	movq	-136(%rbp), %rdi                # 8-byte Reload
	movl	$1, %esi
	movabsq	$4294967328, %rdx               # imm = 0x100000020
	movl	$1, %ecx
	xorl	%r8d, %r8d
	callq	__hipPushCallConfiguration
.Ltmp151:
# %bb.121:                              #   in Loop: Header=BB11_115 Depth=1
	testl	%eax, %eax
	jne	.LBB11_123
# %bb.122:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-208(%rbp), %rsi
	movq	-200(%rbp), %rdx
	movq	-192(%rbp), %rcx
	movq	-328(%rbp), %r8
	movq	-320(%rbp), %r9
.Ltmp152:
	.cfi_escape 0x2e, 0x20
	subq	$8, %rsp
	movl	%ebx, %edi
	pushq	-296(%rbp)
	pushq	-304(%rbp)
	pushq	-312(%rbp)
	callq	_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	addq	$32, %rsp
.Ltmp153:
.LBB11_123:                             #   in Loop: Header=BB11_115 Depth=1
	movq	-120(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp154:
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	movl	$2, %ecx
	callq	hipMemcpyAsync
.Ltmp155:
# %bb.124:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-224(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp156:
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	movl	$2, %ecx
	callq	hipMemcpyAsync
.Ltmp157:
# %bb.125:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-216(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-64(%rbp), %r8
.Ltmp158:
	.cfi_escape 0x2e, 0x00
	movq	%r13, %rdi
	movl	$2, %ecx
	callq	hipMemcpyAsync
.Ltmp159:
# %bb.126:                              #   in Loop: Header=BB11_115 Depth=1
	movq	planet(%rip), %rax
	movslq	(%rax), %rax
	movsd	(%r15,%rax,8), %xmm0            # xmm0 = mem[0],zero
	movq	asteroid(%rip), %rcx
	movslq	(%rcx), %rcx
	subsd	(%r15,%rcx,8), %xmm0
	movsd	(%r12,%rax,8), %xmm1            # xmm1 = mem[0],zero
	subsd	(%r12,%rcx,8), %xmm1
	movsd	(%r13,%rax,8), %xmm2            # xmm2 = mem[0],zero
	subsd	(%r13,%rcx,8), %xmm2
	testb	$1, %r14b
	je	.LBB11_131
# %bb.127:                              #   in Loop: Header=BB11_115 Depth=1
	movsd	%xmm2, -96(%rbp)                # 8-byte Spill
	movsd	%xmm1, -112(%rbp)               # 8-byte Spill
	movsd	%xmm0, -80(%rbp)                # 8-byte Spill
	movq	-208(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp161:
	.cfi_escape 0x2e, 0x00
	movq	-72(%rbp), %rdi                 # 8-byte Reload
	movl	$2, %ecx
	callq	hipMemcpyAsync
.Ltmp162:
# %bb.128:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-200(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp163:
	.cfi_escape 0x2e, 0x00
	movq	-48(%rbp), %rdi                 # 8-byte Reload
	movl	$2, %ecx
	callq	hipMemcpyAsync
.Ltmp164:
# %bb.129:                              #   in Loop: Header=BB11_115 Depth=1
	movq	-192(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
	movq	-56(%rbp), %r8
.Ltmp165:
	.cfi_escape 0x2e, 0x00
	movq	-88(%rbp), %rdi                 # 8-byte Reload
	movl	$2, %ecx
	callq	hipMemcpyAsync
.Ltmp166:
# %bb.130:                              #   in Loop: Header=BB11_115 Depth=1
	movq	planet(%rip), %rax
	movslq	(%rax), %rax
	movq	-72(%rbp), %rdx                 # 8-byte Reload
	movsd	(%rdx,%rax,8), %xmm0            # xmm0 = mem[0],zero
	movq	asteroid(%rip), %rcx
	movslq	(%rcx), %rcx
	subsd	(%rdx,%rcx,8), %xmm0
	movq	-48(%rbp), %rdx                 # 8-byte Reload
	movsd	(%rdx,%rax,8), %xmm1            # xmm1 = mem[0],zero
	subsd	(%rdx,%rcx,8), %xmm1
	movq	-88(%rbp), %rdx                 # 8-byte Reload
	movsd	(%rdx,%rax,8), %xmm2            # xmm2 = mem[0],zero
	subsd	(%rdx,%rcx,8), %xmm2
	mulsd	%xmm0, %xmm0
	mulsd	%xmm1, %xmm1
	addsd	%xmm0, %xmm1
	mulsd	%xmm2, %xmm2
	addsd	%xmm1, %xmm2
	movsd	.LCPI11_1(%rip), %xmm0          # xmm0 = mem[0],zero
	ucomisd	%xmm2, %xmm0
	movzbl	%r14b, %r14d
	movl	$0, %eax
	cmoval	%eax, %r14d
	movl	-104(%rbp), %eax                # 4-byte Reload
	cmoval	%ebx, %eax
	movl	%eax, -104(%rbp)                # 4-byte Spill
	movsd	-80(%rbp), %xmm0                # 8-byte Reload
                                        # xmm0 = mem[0],zero
	movsd	-112(%rbp), %xmm1               # 8-byte Reload
                                        # xmm1 = mem[0],zero
	movsd	-96(%rbp), %xmm2                # 8-byte Reload
                                        # xmm2 = mem[0],zero
.LBB11_131:                             #   in Loop: Header=BB11_115 Depth=1
	mulsd	%xmm0, %xmm0
	mulsd	%xmm1, %xmm1
	addsd	%xmm0, %xmm1
	mulsd	%xmm2, %xmm2
	addsd	%xmm1, %xmm2
	xorps	%xmm0, %xmm0
	sqrtsd	%xmm2, %xmm0
	movsd	-128(%rbp), %xmm1               # 8-byte Reload
                                        # xmm1 = mem[0],zero
	minsd	%xmm0, %xmm1
	movsd	%xmm1, -128(%rbp)               # 8-byte Spill
	incl	%ebx
	cmpl	$200001, %ebx                   # imm = 0x30D41
	jne	.LBB11_115
# %bb.132:
	movq	-120(%rbp), %rdi
.Ltmp168:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp169:
# %bb.133:
	movq	-224(%rbp), %rdi
.Ltmp170:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp171:
# %bb.134:
	movq	-216(%rbp), %rdi
.Ltmp172:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp173:
# %bb.135:
	movq	-368(%rbp), %rdi
.Ltmp174:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp175:
# %bb.136:
	movq	-360(%rbp), %rdi
.Ltmp176:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp177:
# %bb.137:
	movq	-352(%rbp), %rdi
.Ltmp178:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp179:
# %bb.138:
	movq	-344(%rbp), %rdi
.Ltmp180:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp181:
# %bb.139:
	movq	-336(%rbp), %rdi
.Ltmp182:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp183:
# %bb.140:
	movq	-208(%rbp), %rdi
.Ltmp184:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp185:
# %bb.141:
	movq	-200(%rbp), %rdi
.Ltmp186:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp187:
# %bb.142:
	movq	-192(%rbp), %rdi
.Ltmp188:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp189:
# %bb.143:
	movq	-328(%rbp), %rdi
.Ltmp190:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp191:
# %bb.144:
	movq	-320(%rbp), %rdi
.Ltmp192:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp193:
# %bb.145:
	movq	-312(%rbp), %rdi
.Ltmp194:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp195:
# %bb.146:
	movq	-304(%rbp), %rdi
.Ltmp196:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp197:
# %bb.147:
	movq	-296(%rbp), %rdi
.Ltmp198:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp199:
# %bb.148:
	movq	-64(%rbp), %rdi
.Ltmp200:
	.cfi_escape 0x2e, 0x00
	callq	hipStreamDestroy
.Ltmp201:
# %bb.149:
	movq	-56(%rbp), %rdi
.Ltmp202:
	.cfi_escape 0x2e, 0x00
	callq	hipStreamDestroy
.Ltmp203:
# %bb.150:
.Ltmp205:
	.cfi_escape 0x2e, 0x00
	movl	$1, %edi
	callq	hipSetDevice
.Ltmp206:
# %bb.151:
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp207:
	.cfi_escape 0x2e, 0x00
	leaq	-184(%rbp), %rdi
	callq	hipMalloc
.Ltmp208:
# %bb.152:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit280
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp209:
	.cfi_escape 0x2e, 0x00
	leaq	-176(%rbp), %rdi
	callq	hipMalloc
.Ltmp210:
# %bb.153:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit282
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp211:
	.cfi_escape 0x2e, 0x00
	leaq	-168(%rbp), %rdi
	callq	hipMalloc
.Ltmp212:
# %bb.154:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit284
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp213:
	.cfi_escape 0x2e, 0x00
	leaq	-288(%rbp), %rdi
	callq	hipMalloc
.Ltmp214:
# %bb.155:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit286
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp215:
	.cfi_escape 0x2e, 0x00
	leaq	-280(%rbp), %rdi
	callq	hipMalloc
.Ltmp216:
# %bb.156:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit288
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp217:
	.cfi_escape 0x2e, 0x00
	leaq	-272(%rbp), %rdi
	callq	hipMalloc
.Ltmp218:
# %bb.157:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit290
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$3, %rsi
.Ltmp219:
	.cfi_escape 0x2e, 0x00
	leaq	-160(%rbp), %rdi
	callq	hipMalloc
.Ltmp220:
# %bb.158:                              # %_ZL9hipMallocIdE10hipError_tPPT_m.exit292
	movq	n(%rip), %rax
	movslq	(%rax), %rsi
	shlq	$2, %rsi
.Ltmp221:
	.cfi_escape 0x2e, 0x00
	leaq	-264(%rbp), %rdi
	callq	hipMalloc
.Ltmp222:
# %bb.159:                              # %_ZL9hipMallocIiE10hipError_tPPT_m.exit294.preheader
	movq	-248(%rbp), %rax
	movq	-256(%rbp), %rcx
	subq	%rcx, %rax
	je	.LBB11_160
# %bb.195:                              # %.lr.ph400
	movq	planet(%rip), %rdx
	xorl	%eax, %eax
	movq	%rax, -88(%rbp)                 # 8-byte Spill
	movsd	.LCPI11_2(%rip), %xmm0          # xmm0 = mem[0],zero
	movsd	%xmm0, -80(%rbp)                # 8-byte Spill
	movl	$-999, -72(%rbp)                # 4-byte Folded Spill
                                        # imm = 0xFC19
	movq	asteroid(%rip), %rcx
	movl	$0, -96(%rbp)                   # 4-byte Folded Spill
.LBB11_196:                             # =>This Loop Header: Depth=1
                                        #     Child Loop BB11_206 Depth 2
	movq	-608(%rbp), %rax                # 8-byte Reload
	movq	8(%rax), %rdi
	movq	n(%rip), %rsi
.Ltmp224:
	.cfi_escape 0x2e, 0x30
	leaq	-592(%rbp), %r8
	leaq	-560(%rbp), %r9
	leaq	-640(%rbp), %rax
	pushq	%rax
	leaq	-400(%rbp), %rax
	pushq	%rax
	leaq	-432(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-496(%rbp), %rax
	pushq	%rax
	leaq	-528(%rbp), %rax
	pushq	%rax
	callq	_Z10read_inputPKcRiS1_S1_RSt6vectorIdSaIdEES5_S5_S5_S5_S5_S5_RS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EE
	addq	$48, %rsp
.Ltmp225:
# %bb.197:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-592(%rbp), %r15
	movq	-560(%rbp), %r12
	movq	-528(%rbp), %rbx
	movq	-496(%rbp), %r14
	movq	-464(%rbp), %rax
	movq	%rax, -48(%rbp)                 # 8-byte Spill
	movq	-432(%rbp), %r13
	movq	-400(%rbp), %rax
	movq	%rax, -112(%rbp)                # 8-byte Spill
	movq	-184(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp227:
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rsi
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp228:
# %bb.198:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-176(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp229:
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rsi
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp230:
# %bb.199:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-168(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp231:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rsi
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp232:
# %bb.200:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-288(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp233:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rsi
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp234:
# %bb.201:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-280(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp235:
	.cfi_escape 0x2e, 0x00
	movq	-48(%rbp), %rsi                 # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp236:
# %bb.202:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-272(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp237:
	.cfi_escape 0x2e, 0x00
	movq	%r13, %rsi
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp238:
# %bb.203:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-160(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp239:
	.cfi_escape 0x2e, 0x00
	movq	-112(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp240:
# %bb.204:                              #   in Loop: Header=BB11_196 Depth=1
	movq	-264(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$2, %rdx
.Ltmp241:
	.cfi_escape 0x2e, 0x00
	movq	-144(%rbp), %rsi                # 8-byte Reload
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp242:
# %bb.205:                              # %.preheader449.preheader
                                        #   in Loop: Header=BB11_196 Depth=1
	xorpd	%xmm0, %xmm0
	movsd	%xmm0, -48(%rbp)                # 8-byte Spill
	xorl	%r14d, %r14d
.LBB11_206:                             # %.preheader449
                                        #   Parent Loop BB11_196 Depth=1
                                        # =>  This Inner Loop Header: Depth=2
	testl	%r14d, %r14d
	je	.LBB11_210
# %bb.207:                              #   in Loop: Header=BB11_206 Depth=2
.Ltmp244:
	.cfi_escape 0x2e, 0x00
	movq	-136(%rbp), %rdi                # 8-byte Reload
	movl	$1, %esi
	movabsq	$4294967328, %rdx               # imm = 0x100000020
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp245:
# %bb.208:                              #   in Loop: Header=BB11_206 Depth=2
	testl	%eax, %eax
	jne	.LBB11_210
# %bb.209:                              #   in Loop: Header=BB11_206 Depth=2
	movq	-184(%rbp), %rsi
	movq	-176(%rbp), %rdx
	movq	-168(%rbp), %rcx
	movq	-288(%rbp), %r8
	movq	-280(%rbp), %r9
.Ltmp246:
	.cfi_escape 0x2e, 0x20
	subq	$8, %rsp
	movl	%r14d, %edi
	pushq	-264(%rbp)
	pushq	-160(%rbp)
	pushq	-272(%rbp)
	callq	_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	addq	$32, %rsp
.Ltmp247:
.LBB11_210:                             #   in Loop: Header=BB11_206 Depth=2
	movq	-184(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp248:
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	movl	$2, %ecx
	callq	hipMemcpy
.Ltmp249:
# %bb.211:                              #   in Loop: Header=BB11_206 Depth=2
	movq	-176(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp250:
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	movl	$2, %ecx
	callq	hipMemcpy
.Ltmp251:
# %bb.212:                              #   in Loop: Header=BB11_206 Depth=2
	movq	-168(%rbp), %rsi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp252:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	$2, %ecx
	callq	hipMemcpy
.Ltmp253:
# %bb.213:                              #   in Loop: Header=BB11_206 Depth=2
	movq	-256(%rbp), %rax
	movq	-88(%rbp), %rcx                 # 8-byte Reload
	movslq	(%rax,%rcx,4), %r13
	movsd	-48(%rbp), %xmm6                # 8-byte Reload
                                        # xmm6 = mem[0],zero
	addsd	.LCPI11_3(%rip), %xmm6
	movq	planet(%rip), %rdx
	movslq	(%rdx), %rax
	movsd	(%r15,%rax,8), %xmm0            # xmm0 = mem[0],zero
	movapd	%xmm0, %xmm3
	subsd	(%r15,%r13,8), %xmm3
	movsd	(%r12,%rax,8), %xmm1            # xmm1 = mem[0],zero
	movapd	%xmm1, %xmm4
	subsd	(%r12,%r13,8), %xmm4
	movsd	(%rbx,%rax,8), %xmm2            # xmm2 = mem[0],zero
	movapd	%xmm2, %xmm5
	subsd	(%rbx,%r13,8), %xmm5
	mulsd	%xmm3, %xmm3
	mulsd	%xmm4, %xmm4
	addsd	%xmm3, %xmm4
	mulsd	%xmm5, %xmm5
	addsd	%xmm4, %xmm5
	xorps	%xmm3, %xmm3
	sqrtsd	%xmm5, %xmm3
	movsd	%xmm6, -48(%rbp)                # 8-byte Spill
	ucomisd	%xmm3, %xmm6
	jb	.LBB11_216
# %bb.214:                              #   in Loop: Header=BB11_206 Depth=2
	movq	-112(%rbp), %rsi                # 8-byte Reload
	movq	$0, (%rsi,%r13,8)
	movq	-160(%rbp), %rdi
	movq	n(%rip), %rax
	movslq	(%rax), %rdx
	shlq	$3, %rdx
.Ltmp255:
	.cfi_escape 0x2e, 0x00
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp256:
# %bb.215:                              # %._crit_edge423
                                        #   in Loop: Header=BB11_206 Depth=2
	xorps	%xmm3, %xmm3
	cvtsi2sd	%r14d, %xmm3
	mulsd	.LCPI11_4(%rip), %xmm3
	mulsd	.LCPI11_5(%rip), %xmm3
	addsd	.LCPI11_6(%rip), %xmm3
	movsd	-80(%rbp), %xmm0                # 8-byte Reload
                                        # xmm0 = mem[0],zero
	ucomisd	%xmm3, %xmm0
	movl	-72(%rbp), %eax                 # 4-byte Reload
	cmoval	%r13d, %eax
	movl	%eax, -72(%rbp)                 # 4-byte Spill
	minsd	%xmm0, %xmm3
	movq	planet(%rip), %rdx
	movslq	(%rdx), %rax
	movsd	(%r15,%rax,8), %xmm0            # xmm0 = mem[0],zero
	movsd	(%r12,%rax,8), %xmm1            # xmm1 = mem[0],zero
	movsd	(%rbx,%rax,8), %xmm2            # xmm2 = mem[0],zero
	movsd	%xmm3, -80(%rbp)                # 8-byte Spill
.LBB11_216:                             #   in Loop: Header=BB11_206 Depth=2
	movq	asteroid(%rip), %rcx
	movslq	(%rcx), %rax
	subsd	(%r15,%rax,8), %xmm0
	subsd	(%r12,%rax,8), %xmm1
	subsd	(%rbx,%rax,8), %xmm2
	mulsd	%xmm0, %xmm0
	mulsd	%xmm1, %xmm1
	addsd	%xmm0, %xmm1
	mulsd	%xmm2, %xmm2
	addsd	%xmm1, %xmm2
	movsd	.LCPI11_1(%rip), %xmm0          # xmm0 = mem[0],zero
	ucomisd	%xmm2, %xmm0
	ja	.LBB11_222
# %bb.217:                              #   in Loop: Header=BB11_206 Depth=2
	incl	%r14d
	cmpl	$200001, %r14d                  # imm = 0x30D41
	jne	.LBB11_206
	jmp	.LBB11_223
.LBB11_222:                             # %.split.loop.exit385
                                        #   in Loop: Header=BB11_196 Depth=1
	incl	-96(%rbp)                       # 4-byte Folded Spill
.LBB11_223:                             # %_ZL9hipMallocIiE10hipError_tPPT_m.exit294
                                        #   in Loop: Header=BB11_196 Depth=1
	movq	-88(%rbp), %rdi                 # 8-byte Reload
	incq	%rdi
	movq	-248(%rbp), %rax
	subq	-256(%rbp), %rax
	sarq	$2, %rax
	movq	%rdi, %rsi
	movq	%rdi, -88(%rbp)                 # 8-byte Spill
	cmpq	%rdi, %rax
	ja	.LBB11_196
	jmp	.LBB11_161
.LBB11_160:
	sarq	$2, %rax
	movl	$0, -96(%rbp)                   # 4-byte Folded Spill
	movl	$-999, -72(%rbp)                # 4-byte Folded Spill
                                        # imm = 0xFC19
	movsd	.LCPI11_2(%rip), %xmm0          # xmm0 = mem[0],zero
	movsd	%xmm0, -80(%rbp)                # 8-byte Spill
.LBB11_161:                             # %_ZL9hipMallocIiE10hipError_tPPT_m.exit294._crit_edge
	movslq	-96(%rbp), %rcx                 # 4-byte Folded Reload
	cmpq	%rcx, %rax
	sete	%al
	cmpl	$-2, -104(%rbp)                 # 4-byte Folded Reload
	sete	%cl
	orb	%al, %cl
	xorpd	%xmm0, %xmm0
	testb	%cl, %cl
	jne	.LBB11_163
# %bb.162:                              # %_ZL9hipMallocIiE10hipError_tPPT_m.exit294._crit_edge
	movsd	-80(%rbp), %xmm0                # 8-byte Reload
                                        # xmm0 = mem[0],zero
.LBB11_163:                             # %_ZL9hipMallocIiE10hipError_tPPT_m.exit294._crit_edge
	movsd	%xmm0, -48(%rbp)                # 8-byte Spill
	movl	$-1, %eax
	movl	-72(%rbp), %ecx                 # 4-byte Reload
	cmovnel	%eax, %ecx
	movl	%ecx, -72(%rbp)                 # 4-byte Spill
	movq	-184(%rbp), %rdi
.Ltmp258:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp259:
# %bb.164:
	movq	-176(%rbp), %rdi
.Ltmp260:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp261:
# %bb.165:
	movq	-168(%rbp), %rdi
.Ltmp262:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp263:
# %bb.166:
	movq	-288(%rbp), %rdi
.Ltmp264:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp265:
# %bb.167:
	movq	-280(%rbp), %rdi
.Ltmp266:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp267:
# %bb.168:
	movq	-272(%rbp), %rdi
.Ltmp268:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp269:
# %bb.169:
	movq	-160(%rbp), %rdi
.Ltmp270:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp271:
# %bb.170:
	movq	-264(%rbp), %rdi
.Ltmp272:
	.cfi_escape 0x2e, 0x00
	callq	hipFree
.Ltmp273:
# %bb.171:
	movq	-608(%rbp), %rax                # 8-byte Reload
	movq	16(%rax), %rdi
.Ltmp274:
	.cfi_escape 0x2e, 0x00
	movsd	-128(%rbp), %xmm0               # 8-byte Reload
                                        # xmm0 = mem[0],zero
	movl	-104(%rbp), %esi                # 4-byte Reload
	movl	-72(%rbp), %edx                 # 4-byte Reload
	movsd	-48(%rbp), %xmm1                # 8-byte Reload
                                        # xmm1 = mem[0],zero
	callq	_Z12write_outputPKcdiid
.Ltmp275:
# %bb.172:
	movq	-256(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_174
# %bb.173:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_174:                             # %_ZNSt6vectorIiSaIiEED2Ev.exit300
	movq	-616(%rbp), %rsp                # 8-byte Reload
	.cfi_escape 0x2e, 0x00
	leaq	-640(%rbp), %rdi
	callq	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	movq	-400(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_176
# %bb.175:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_176:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit
	movq	-432(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_178
# %bb.177:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_178:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit303
	movq	-464(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_180
# %bb.179:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_180:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit305
	movq	-496(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_182
# %bb.181:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_182:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit307
	movq	-528(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_184
# %bb.183:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_184:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit309
	movq	-560(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_186
# %bb.185:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_186:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit311
	movq	-592(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_188
# %bb.187:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_188:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit313
	xorl	%eax, %eax
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa %rsp, 8
	retq
.LBB11_12:
	.cfi_def_cfa %rbp, 16
	cmpq	$8, %rdx
	jne	.LBB11_14
# %bb.13:
	movq	-48(%rbp), %rax                 # 8-byte Reload
	movsd	(%rax), %xmm0                   # xmm0 = mem[0],zero
	movsd	%xmm0, (%r15)
	jmp	.LBB11_14
.LBB11_19:
	cmpq	$8, %rdx
	jne	.LBB11_21
# %bb.20:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movsd	%xmm0, (%r12)
	jmp	.LBB11_21
.LBB11_23:
	cmpq	$8, %rdx
	jne	.LBB11_25
# %bb.24:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movsd	%xmm0, (%r13)
	jmp	.LBB11_25
.LBB11_27:
	cmpq	$8, %rdx
	jne	.LBB11_29
# %bb.28:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-96(%rbp), %rax                 # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_29
.LBB11_31:
	cmpq	$8, %rdx
	jne	.LBB11_33
# %bb.32:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-136(%rbp), %rax                # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_33
.LBB11_35:
	cmpq	$8, %rdx
	jne	.LBB11_37
# %bb.36:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-112(%rbp), %rax                # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_37
.LBB11_39:
	cmpq	$8, %rdx
	jne	.LBB11_41
# %bb.40:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-80(%rbp), %rax                 # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_41
.LBB11_46:
	cmpq	$8, %rdx
	jne	.LBB11_48
# %bb.47:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-72(%rbp), %rax                 # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_48
.LBB11_57:
	cmpq	$8, %rdx
	jne	.LBB11_59
# %bb.58:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-48(%rbp), %rax                 # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_59
.LBB11_61:
	cmpq	$8, %rdx
	jne	.LBB11_63
# %bb.62:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-88(%rbp), %rax                 # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_63
.LBB11_65:
	cmpq	$8, %rdx
	jne	.LBB11_67
# %bb.66:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-600(%rbp), %rax                # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_67
.LBB11_69:
	cmpq	$8, %rdx
	jne	.LBB11_71
# %bb.70:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-128(%rbp), %rax                # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_71
.LBB11_73:
	cmpq	$8, %rdx
	jne	.LBB11_75
# %bb.74:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movq	-104(%rbp), %rax                # 8-byte Reload
	movsd	%xmm0, (%rax)
	jmp	.LBB11_75
.LBB11_77:
	cmpq	$8, %rdx
	jne	.LBB11_79
# %bb.78:
	movsd	(%rsi), %xmm0                   # xmm0 = mem[0],zero
	movsd	%xmm0, (%rbx)
	jmp	.LBB11_79
.LBB11_1:
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
.Ltmp65:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str, %esi
	movq	%rax, %rdi
	callq	_ZNSt13runtime_errorC1EPKc
.Ltmp66:
# %bb.2:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.LBB11_3:
.Ltmp67:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
	jmp	.LBB11_241
.LBB11_189:
.Ltmp76:
	jmp	.LBB11_225
.LBB11_16:
.Ltmp70:
	movq	%rax, %rbx
	jmp	.LBB11_227
.LBB11_242:
.Ltmp73:
	jmp	.LBB11_225
.LBB11_224:
.Ltmp276:
	jmp	.LBB11_225
.LBB11_194:
.Ltmp223:
	jmp	.LBB11_225
.LBB11_193:
.Ltmp204:
	jmp	.LBB11_225
.LBB11_218:
.Ltmp226:
	jmp	.LBB11_225
.LBB11_190:
.Ltmp145:
	jmp	.LBB11_225
.LBB11_192:
.Ltmp167:
	jmp	.LBB11_225
.LBB11_191:
.Ltmp160:
	jmp	.LBB11_225
.LBB11_219:
.Ltmp243:
	jmp	.LBB11_225
.LBB11_221:
.Ltmp257:
	jmp	.LBB11_225
.LBB11_220:
.Ltmp254:
.LBB11_225:
	movq	%rax, %rbx
	movq	-256(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_227
# %bb.226:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_227:                             # %_ZNSt6vectorIiSaIiEED2Ev.exit317
	.cfi_escape 0x2e, 0x00
	leaq	-640(%rbp), %rdi
	callq	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	movq	-400(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_229
# %bb.228:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_229:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit319
	movq	-432(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_231
# %bb.230:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_231:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit321
	movq	-464(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_233
# %bb.232:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_233:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit323
	movq	-496(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_235
# %bb.234:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_235:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit325
	movq	-528(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_237
# %bb.236:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_237:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit327
	movq	-560(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_239
# %bb.238:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_239:                             # %_ZNSt6vectorIdSaIdEED2Ev.exit329
	movq	-592(%rbp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_241
# %bb.240:
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB11_241:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end11:
	.size	main, .Lfunc_end11-main
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table11:
.Lexception2:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end2-.Lcst_begin2
.Lcst_begin2:
	.uleb128 .Ltmp68-.Lfunc_begin2          # >> Call Site 1 <<
	.uleb128 .Ltmp69-.Ltmp68                #   Call between .Ltmp68 and .Ltmp69
	.uleb128 .Ltmp70-.Lfunc_begin2          #     jumps to .Ltmp70
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp69-.Lfunc_begin2          # >> Call Site 2 <<
	.uleb128 .Ltmp71-.Ltmp69                #   Call between .Ltmp69 and .Ltmp71
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp71-.Lfunc_begin2          # >> Call Site 3 <<
	.uleb128 .Ltmp72-.Ltmp71                #   Call between .Ltmp71 and .Ltmp72
	.uleb128 .Ltmp73-.Lfunc_begin2          #     jumps to .Ltmp73
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp72-.Lfunc_begin2          # >> Call Site 4 <<
	.uleb128 .Ltmp74-.Ltmp72                #   Call between .Ltmp72 and .Ltmp74
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp74-.Lfunc_begin2          # >> Call Site 5 <<
	.uleb128 .Ltmp75-.Ltmp74                #   Call between .Ltmp74 and .Ltmp75
	.uleb128 .Ltmp76-.Lfunc_begin2          #     jumps to .Ltmp76
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp77-.Lfunc_begin2          # >> Call Site 6 <<
	.uleb128 .Ltmp144-.Ltmp77               #   Call between .Ltmp77 and .Ltmp144
	.uleb128 .Ltmp145-.Lfunc_begin2         #     jumps to .Ltmp145
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp146-.Lfunc_begin2         # >> Call Site 7 <<
	.uleb128 .Ltmp159-.Ltmp146              #   Call between .Ltmp146 and .Ltmp159
	.uleb128 .Ltmp160-.Lfunc_begin2         #     jumps to .Ltmp160
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp161-.Lfunc_begin2         # >> Call Site 8 <<
	.uleb128 .Ltmp166-.Ltmp161              #   Call between .Ltmp161 and .Ltmp166
	.uleb128 .Ltmp167-.Lfunc_begin2         #     jumps to .Ltmp167
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp168-.Lfunc_begin2         # >> Call Site 9 <<
	.uleb128 .Ltmp203-.Ltmp168              #   Call between .Ltmp168 and .Ltmp203
	.uleb128 .Ltmp204-.Lfunc_begin2         #     jumps to .Ltmp204
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp205-.Lfunc_begin2         # >> Call Site 10 <<
	.uleb128 .Ltmp222-.Ltmp205              #   Call between .Ltmp205 and .Ltmp222
	.uleb128 .Ltmp223-.Lfunc_begin2         #     jumps to .Ltmp223
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp224-.Lfunc_begin2         # >> Call Site 11 <<
	.uleb128 .Ltmp225-.Ltmp224              #   Call between .Ltmp224 and .Ltmp225
	.uleb128 .Ltmp226-.Lfunc_begin2         #     jumps to .Ltmp226
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp227-.Lfunc_begin2         # >> Call Site 12 <<
	.uleb128 .Ltmp242-.Ltmp227              #   Call between .Ltmp227 and .Ltmp242
	.uleb128 .Ltmp243-.Lfunc_begin2         #     jumps to .Ltmp243
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp244-.Lfunc_begin2         # >> Call Site 13 <<
	.uleb128 .Ltmp253-.Ltmp244              #   Call between .Ltmp244 and .Ltmp253
	.uleb128 .Ltmp254-.Lfunc_begin2         #     jumps to .Ltmp254
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp255-.Lfunc_begin2         # >> Call Site 14 <<
	.uleb128 .Ltmp256-.Ltmp255              #   Call between .Ltmp255 and .Ltmp256
	.uleb128 .Ltmp257-.Lfunc_begin2         #     jumps to .Ltmp257
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp258-.Lfunc_begin2         # >> Call Site 15 <<
	.uleb128 .Ltmp275-.Ltmp258              #   Call between .Ltmp258 and .Ltmp275
	.uleb128 .Ltmp276-.Lfunc_begin2         #     jumps to .Ltmp276
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp275-.Lfunc_begin2         # >> Call Site 16 <<
	.uleb128 .Ltmp65-.Ltmp275               #   Call between .Ltmp275 and .Ltmp65
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp65-.Lfunc_begin2          # >> Call Site 17 <<
	.uleb128 .Ltmp66-.Ltmp65                #   Call between .Ltmp65 and .Ltmp66
	.uleb128 .Ltmp67-.Lfunc_begin2          #     jumps to .Ltmp67
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp66-.Lfunc_begin2          # >> Call Site 18 <<
	.uleb128 .Lfunc_end11-.Ltmp66           #   Call between .Ltmp66 and .Lfunc_end11
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end2:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,comdat
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev # -- Begin function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.p2align	1, 0x90
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,@function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev: # @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	(%rdi), %rbx
	movq	8(%rdi), %r15
	cmpq	%r15, %rbx
	je	.LBB12_6
# %bb.1:                                # %.lr.ph.i.i.i.preheader
	movq	%rdi, %r14
.LBB12_2:                               # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rdi
	addq	$16, %rbx
	cmpq	%rbx, %rdi
	je	.LBB12_4
# %bb.3:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i
                                        #   in Loop: Header=BB12_2 Depth=1
	callq	_ZdlPv
.LBB12_4:                               # %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i
                                        #   in Loop: Header=BB12_2 Depth=1
	addq	$16, %rbx
	cmpq	%r15, %rbx
	jne	.LBB12_2
# %bb.5:                                # %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split
	movq	(%r14), %rbx
.LBB12_6:                               # %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit
	testq	%rbx, %rbx
	je	.LBB12_7
# %bb.8:
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZdlPv                          # TAILCALL
.LBB12_7:                               # %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end12:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, .Lfunc_end12-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIdSaIdEE17_M_default_appendEm,"axG",@progbits,_ZNSt6vectorIdSaIdEE17_M_default_appendEm,comdat
	.weak	_ZNSt6vectorIdSaIdEE17_M_default_appendEm # -- Begin function _ZNSt6vectorIdSaIdEE17_M_default_appendEm
	.p2align	1, 0x90
	.type	_ZNSt6vectorIdSaIdEE17_M_default_appendEm,@function
_ZNSt6vectorIdSaIdEE17_M_default_appendEm: # @_ZNSt6vectorIdSaIdEE17_M_default_appendEm
	.cfi_startproc
# %bb.0:
	testq	%rsi, %rsi
	je	.LBB13_16
# %bb.1:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	pushq	%rax
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	8(%rdi), %r15
	movq	16(%rdi), %rax
	subq	%r15, %rax
	sarq	$3, %rax
	cmpq	%rsi, %rax
	jae	.LBB13_2
# %bb.5:
	movq	(%rbx), %r12
	subq	%r12, %r15
	movq	%r15, %r13
	sarq	$3, %r13
	movl	$.L.str.2, %edx
	movq	%rbx, %rdi
	movq	%r14, %rsi
	callq	_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc
	testq	%rax, %rax
	movq	%rax, (%rsp)                    # 8-byte Spill
	je	.LBB13_6
# %bb.7:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIdE8allocateEmPKv
	movq	%rax, %rbp
	jmp	.LBB13_8
.LBB13_2:
	movq	$0, (%r15)
	leaq	8(%r15), %rdi
	cmpq	$1, %r14
	je	.LBB13_4
# %bb.3:                                # %_ZSt6fill_nIPdmdET_S1_T0_RKT1_.exit.loopexit.i.i.i
	leaq	-8(,%r14,8), %rdx
	xorl	%esi, %esi
	callq	memset@PLT
	leaq	(%r15,%r14,8), %rdi
.LBB13_4:                               # %_ZSt27__uninitialized_default_n_aIPdmdET_S1_T0_RSaIT1_E.exit
	movq	%rdi, 8(%rbx)
	jmp	.LBB13_15
.LBB13_6:
	xorl	%ebp, %ebp
.LBB13_8:
	leaq	(,%r13,8), %r13
	addq	%rbp, %r13
	movq	$0, (%r13)
	cmpq	$1, %r14
	je	.LBB13_10
# %bb.9:                                # %_ZSt6fill_nIPdmdET_S1_T0_RKT1_.exit.loopexit.i.i.i30
	leaq	8(%r13), %rdi
	leaq	-8(,%r14,8), %rdx
	xorl	%esi, %esi
	callq	memset@PLT
.LBB13_10:                              # %_ZSt27__uninitialized_default_n_aIPdmdET_S1_T0_RSaIT1_E.exit32
	testq	%r15, %r15
	jle	.LBB13_12
# %bb.11:
	movq	%rbp, %rdi
	movq	%r12, %rsi
	movq	%r15, %rdx
	callq	memmove@PLT
.LBB13_12:                              # %_ZNSt6vectorIdSaIdEE11_S_relocateEPdS2_S2_RS0_.exit
	testq	%r12, %r12
	je	.LBB13_14
# %bb.13:
	movq	%r12, %rdi
	callq	_ZdlPv
.LBB13_14:                              # %_ZNSt12_Vector_baseIdSaIdEE13_M_deallocateEPdm.exit35
	movq	%rbp, (%rbx)
	leaq	(,%r14,8), %rax
	addq	%r13, %rax
	movq	%rax, 8(%rbx)
	movq	(%rsp), %rax                    # 8-byte Reload
	leaq	(,%rax,8), %rax
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
.LBB13_15:
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	.cfi_restore %rbx
	.cfi_restore %r12
	.cfi_restore %r13
	.cfi_restore %r14
	.cfi_restore %r15
	.cfi_restore %rbp
.LBB13_16:
	retq
.Lfunc_end13:
	.size	_ZNSt6vectorIdSaIdEE17_M_default_appendEm, .Lfunc_end13-_ZNSt6vectorIdSaIdEE17_M_default_appendEm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc,"axG",@progbits,_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc,comdat
	.weak	_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc # -- Begin function _ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc
	.p2align	1, 0x90
	.type	_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc,@function
_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc: # @_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc
	.cfi_startproc
# %bb.0:
	movabsq	$1152921504606846975, %rcx      # imm = 0xFFFFFFFFFFFFFFF
	movq	8(%rdi), %r8
	subq	(%rdi), %r8
	sarq	$3, %r8
	movq	%rcx, %rax
	subq	%r8, %rax
	cmpq	%rsi, %rax
	jb	.LBB14_2
# %bb.1:
	cmpq	%rsi, %r8
	cmovaq	%r8, %rsi
	leaq	(%rsi,%r8), %rax
	cmpq	%rcx, %rax
	cmovaeq	%rcx, %rax
	addq	%r8, %rsi
	cmovbq	%rcx, %rax
	retq
.LBB14_2:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	callq	_ZSt20__throw_length_errorPKc
.Lfunc_end14:
	.size	_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc, .Lfunc_end14-_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorIdE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorIdE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorIdE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorIdE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorIdE8allocateEmPKv,@function
_ZNSt15__new_allocatorIdE8allocateEmPKv: # @_ZNSt15__new_allocatorIdE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$60, %rax
	jne	.LBB15_1
# %bb.3:
	shlq	$3, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB15_1:
	.cfi_def_cfa_offset 16
	shrq	$61, %rsi
	je	.LBB15_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB15_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end15:
	.size	_ZNSt15__new_allocatorIdE8allocateEmPKv, .Lfunc_end15-_ZNSt15__new_allocatorIdE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm,comdat
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm # -- Begin function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm
	.p2align	1, 0x90
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm,@function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm: # @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm
	.cfi_startproc
# %bb.0:
	testq	%rsi, %rsi
	je	.LBB16_20
# %bb.1:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	8(%rdi), %r15
	movq	16(%rdi), %rax
	subq	%r15, %rax
	sarq	$5, %rax
	cmpq	%rsi, %rax
	jae	.LBB16_2
# %bb.5:
	movq	(%rbx), %r12
	movq	%r15, %r13
	subq	%r12, %r13
	sarq	$5, %r13
	movl	$.L.str.2, %edx
	movq	%rbx, %rdi
	movq	%r14, %rsi
	callq	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	testq	%rax, %rax
	movq	%rax, 24(%rsp)                  # 8-byte Spill
	je	.LBB16_6
# %bb.7:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	jmp	.LBB16_8
.LBB16_2:                               # %.lr.ph.i.i.i.preheader
	addq	$16, %r15
.LBB16_3:                               # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%r15, -16(%r15)
	movq	$0, -8(%r15)
	movb	$0, (%r15)
	addq	$32, %r15
	decq	%r14
	jne	.LBB16_3
# %bb.4:                                # %_ZSt27__uninitialized_default_n_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmS5_ET_S7_T0_RSaIT1_E.exit
	addq	$-16, %r15
	movq	%r15, 8(%rbx)
	jmp	.LBB16_19
.LBB16_6:
	xorl	%eax, %eax
.LBB16_8:                               # %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit
	movq	%rbx, 32(%rsp)                  # 8-byte Spill
	shlq	$5, %r13
	leaq	(%rax,%r13), %rdx
	addq	$16, %rdx
	movq	%rax, 8(%rsp)                   # 8-byte Spill
	addq	%rax, %r13
	movq	%r14, %rcx
.LBB16_9:                               # %.lr.ph.i.i.i30
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, -16(%rdx)
	movq	$0, -8(%rdx)
	movb	$0, (%rdx)
	addq	$32, %rdx
	decq	%rcx
	jne	.LBB16_9
# %bb.10:                               # %_ZSt27__uninitialized_default_n_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmS5_ET_S7_T0_RSaIT1_E.exit35
	movq	%r12, 16(%rsp)                  # 8-byte Spill
	cmpq	%r15, %r12
	je	.LBB16_16
# %bb.11:                               # %.lr.ph.i.i.i37.preheader
	movq	8(%rsp), %rax                   # 8-byte Reload
	leaq	16(%rax), %rbp
	movq	16(%rsp), %rax                  # 8-byte Reload
	leaq	16(%rax), %r12
.LBB16_12:                              # %.lr.ph.i.i.i37
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbp, -16(%rbp)
	movq	-16(%r12), %rsi
	cmpq	%rsi, %r12
	je	.LBB16_13
# %bb.14:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i
                                        #   in Loop: Header=BB16_12 Depth=1
	movq	%rsi, -16(%rbp)
	movq	(%r12), %rax
	movq	%rax, (%rbp)
	movq	-8(%r12), %rbx
	jmp	.LBB16_15
.LBB16_13:                              #   in Loop: Header=BB16_12 Depth=1
	movq	-8(%r12), %rbx
	leaq	1(%rbx), %rdx
	movq	%rbp, %rdi
	callq	memcpy@PLT
.LBB16_15:                              # %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i
                                        #   in Loop: Header=BB16_12 Depth=1
	movq	%rbx, -8(%rbp)
	movq	%r12, -16(%r12)
	movq	$0, -8(%r12)
	movb	$0, (%r12)
	addq	$32, %rbp
	leaq	32(%r12), %rax
	addq	$16, %r12
	cmpq	%r15, %r12
	movq	%rax, %r12
	jne	.LBB16_12
.LBB16_16:                              # %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit
	movq	16(%rsp), %rdi                  # 8-byte Reload
	testq	%rdi, %rdi
	je	.LBB16_18
# %bb.17:
	callq	_ZdlPv
.LBB16_18:                              # %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit41
	movq	32(%rsp), %rax                  # 8-byte Reload
	movq	8(%rsp), %rdx                   # 8-byte Reload
	movq	%rdx, (%rax)
	shlq	$5, %r14
	addq	%r14, %r13
	movq	%r13, 8(%rax)
	movq	24(%rsp), %rcx                  # 8-byte Reload
	shlq	$5, %rcx
	addq	%rdx, %rcx
	movq	%rcx, 16(%rax)
.LBB16_19:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	.cfi_restore %rbx
	.cfi_restore %r12
	.cfi_restore %r13
	.cfi_restore %r14
	.cfi_restore %r15
	.cfi_restore %rbp
.LBB16_20:
	retq
.Lfunc_end16:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm, .Lfunc_end16-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendEm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc,"axG",@progbits,_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc,comdat
	.weak	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc # -- Begin function _ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	.p2align	1, 0x90
	.type	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc,@function
_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc: # @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	.cfi_startproc
# %bb.0:
	movabsq	$288230376151711743, %rcx       # imm = 0x3FFFFFFFFFFFFFF
	movq	8(%rdi), %r8
	subq	(%rdi), %r8
	sarq	$5, %r8
	movq	%rcx, %rax
	subq	%r8, %rax
	cmpq	%rsi, %rax
	jb	.LBB17_2
# %bb.1:
	cmpq	%rsi, %r8
	cmovaq	%r8, %rsi
	leaq	(%rsi,%r8), %rax
	cmpq	%rcx, %rax
	cmovaeq	%rcx, %rax
	addq	%r8, %rsi
	cmovbq	%rcx, %rax
	retq
.LBB17_2:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	callq	_ZSt20__throw_length_errorPKc
.Lfunc_end17:
	.size	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc, .Lfunc_end17-_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv,@function
_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv: # @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$58, %rax
	jne	.LBB18_1
# %bb.3:
	shlq	$5, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB18_1:
	.cfi_def_cfa_offset 16
	shrq	$59, %rsi
	je	.LBB18_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB18_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end18:
	.size	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv, .Lfunc_end18-_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,"axG",@progbits,_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,comdat
	.weak	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_ # -- Begin function _ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,@function
_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_: # @_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r12
	movq	%rdi, %rbx
	movl	$1, %esi
	movl	$.L.str.3, %edx
	callq	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	movq	(%rbx), %r13
	movq	8(%rbx), %r15
	movq	%r12, 8(%rsp)                   # 8-byte Spill
	subq	%r13, %r12
	movq	%r12, %r14
	sarq	$2, %r14
	testq	%rax, %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	je	.LBB19_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
	movq	%rax, %rbp
	jmp	.LBB19_3
.LBB19_1:
	xorl	%ebp, %ebp
.LBB19_3:                               # %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit
	movq	(%rsp), %rax                    # 8-byte Reload
	movl	(%rax), %eax
	movl	%eax, (%rbp,%r14,4)
	testq	%r12, %r12
	jle	.LBB19_5
# %bb.4:
	movq	%rbp, %rdi
	movq	%r13, %rsi
	movq	%r12, %rdx
	callq	memmove@PLT
.LBB19_5:                               # %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit
	addq	%rbp, %r12
	addq	$4, %r12
	movq	8(%rsp), %rsi                   # 8-byte Reload
	subq	%rsi, %r15
	testq	%r15, %r15
	jle	.LBB19_7
# %bb.6:
	movq	%r12, %rdi
	movq	%r15, %rdx
	callq	memmove@PLT
.LBB19_7:                               # %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16
	testq	%r13, %r13
	je	.LBB19_9
# %bb.8:
	movq	%r13, %rdi
	callq	_ZdlPv
.LBB19_9:                               # %_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim.exit
	addq	%r15, %r12
	movq	%rbp, (%rbx)
	movq	%r12, 8(%rbx)
	movq	16(%rsp), %rax                  # 8-byte Reload
	leaq	(,%rax,4), %rax
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end19:
	.size	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_, .Lfunc_end19-_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc,"axG",@progbits,_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc,comdat
	.weak	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc # -- Begin function _ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	.p2align	1, 0x90
	.type	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc,@function
_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc: # @_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	.cfi_startproc
# %bb.0:
	movabsq	$2305843009213693951, %rcx      # imm = 0x1FFFFFFFFFFFFFFF
	movq	8(%rdi), %r8
	subq	(%rdi), %r8
	sarq	$2, %r8
	movq	%rcx, %rax
	subq	%r8, %rax
	cmpq	%rsi, %rax
	jb	.LBB20_2
# %bb.1:
	cmpq	%rsi, %r8
	cmovaq	%r8, %rsi
	leaq	(%rsi,%r8), %rax
	cmpq	%rcx, %rax
	cmovaeq	%rcx, %rax
	addq	%r8, %rsi
	cmovbq	%rcx, %rax
	retq
.LBB20_2:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	callq	_ZSt20__throw_length_errorPKc
.Lfunc_end20:
	.size	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc, .Lfunc_end20-_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorIiE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorIiE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorIiE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorIiE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorIiE8allocateEmPKv,@function
_ZNSt15__new_allocatorIiE8allocateEmPKv: # @_ZNSt15__new_allocatorIiE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB21_1
# %bb.3:
	shlq	$2, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB21_1:
	.cfi_def_cfa_offset 16
	shrq	$62, %rsi
	je	.LBB21_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB21_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end21:
	.size	_ZNSt15__new_allocatorIiE8allocateEmPKv, .Lfunc_end21-_ZNSt15__new_allocatorIiE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.text
	.p2align	4, 0x90                         # -- Begin function __hip_module_ctor
	.type	__hip_module_ctor,@function
__hip_module_ctor:                      # @__hip_module_ctor
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -16
	movq	__hip_gpubin_handle(%rip), %rbx
	testq	%rbx, %rbx
	jne	.LBB22_2
# %bb.1:
	movl	$__hip_fatbin_wrapper, %edi
	callq	__hipRegisterFatBinary
	movq	%rax, %rbx
	movq	%rax, __hip_gpubin_handle(%rip)
.LBB22_2:
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z15run_step_kerneliPdS_S_S_S_S_S_Pi, %esi
	movl	$.L__unnamed_1, %edx
	movl	$.L__unnamed_1, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	movl	$n, %esi
	movl	$n.managed, %edx
	movl	$.L__unnamed_2, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$planet, %esi
	movl	$planet.managed, %edx
	movl	$.L__unnamed_3, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$asteroid, %esi
	movl	$asteroid.managed, %edx
	movl	$.L__unnamed_4, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$__hip_module_dtor, %edi
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit                          # TAILCALL
.Lfunc_end22:
	.size	__hip_module_ctor, .Lfunc_end22-__hip_module_ctor
	.cfi_endproc
                                        # -- End function
	.p2align	4, 0x90                         # -- Begin function __hip_module_dtor
	.type	__hip_module_dtor,@function
__hip_module_dtor:                      # @__hip_module_dtor
	.cfi_startproc
# %bb.0:
	movq	__hip_gpubin_handle(%rip), %rdi
	testq	%rdi, %rdi
	je	.LBB23_2
# %bb.1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__hipUnregisterFatBinary
	movq	$0, __hip_gpubin_handle(%rip)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
.LBB23_2:
	retq
.Lfunc_end23:
	.size	__hip_module_dtor, .Lfunc_end23-__hip_module_dtor
	.cfi_endproc
                                        # -- End function
	.type	n.managed,@object               # @n.managed
	.local	n.managed
	.comm	n.managed,4,4
	.type	planet.managed,@object          # @planet.managed
	.local	planet.managed
	.comm	planet.managed,4,4
	.type	asteroid.managed,@object        # @asteroid.managed
	.local	asteroid.managed
	.comm	asteroid.managed,4,4
	.type	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi,@object # @_Z15run_step_kerneliPdS_S_S_S_S_S_Pi
	.section	.rodata,"a",@progbits
	.globl	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi
	.p2align	3, 0x0
_Z15run_step_kerneliPdS_S_S_S_S_S_Pi:
	.quad	_Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	.size	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi, 8

	.type	.L.str,@object                  # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"must supply 2 arguments"
	.size	.L.str, 24

	.type	.L.str.1,@object                # @.str.1
.L.str.1:
	.asciz	"device"
	.size	.L.str.1, 7

	.type	.L.str.2,@object                # @.str.2
.L.str.2:
	.asciz	"vector::_M_default_append"
	.size	.L.str.2, 26

	.type	.L.str.3,@object                # @.str.3
.L.str.3:
	.asciz	"vector::_M_realloc_insert"
	.size	.L.str.3, 26

	.type	.L__unnamed_1,@object           # @0
.L__unnamed_1:
	.asciz	"_Z15run_step_kerneliPdS_S_S_S_S_S_Pi"
	.size	.L__unnamed_1, 37

	.type	.L__unnamed_2,@object           # @1
.L__unnamed_2:
	.asciz	"n"
	.size	.L__unnamed_2, 2

	.type	n,@object                       # @n
	.local	n
	.comm	n,8,8
	.type	.L__unnamed_3,@object           # @2
.L__unnamed_3:
	.asciz	"planet"
	.size	.L__unnamed_3, 7

	.type	planet,@object                  # @planet
	.local	planet
	.comm	planet,8,8
	.type	.L__unnamed_4,@object           # @3
.L__unnamed_4:
	.asciz	"asteroid"
	.size	.L__unnamed_4, 9

	.type	asteroid,@object                # @asteroid
	.local	asteroid
	.comm	asteroid,8,8
	.type	__hip_fatbin_wrapper,@object    # @__hip_fatbin_wrapper
	.section	.hipFatBinSegment,"a",@progbits
	.p2align	3, 0x0
__hip_fatbin_wrapper:
	.long	1212764230                      # 0x48495046
	.long	1                               # 0x1
	.quad	__hip_fatbin
	.quad	0
	.size	__hip_fatbin_wrapper, 24

	.type	__hip_gpubin_handle,@object     # @__hip_gpubin_handle
	.local	__hip_gpubin_handle
	.comm	__hip_gpubin_handle,8,8
	.section	.init_array,"aw",@init_array
	.p2align	3, 0x0
	.quad	__hip_module_ctor
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __gxx_personality_v0
	.addrsig_sym _Z30__device_stub__run_step_kerneliPdS_S_S_S_S_S_Pi
	.addrsig_sym __hip_module_ctor
	.addrsig_sym __hip_module_dtor
	.addrsig_sym _Unwind_Resume
	.addrsig_sym n.managed
	.addrsig_sym planet.managed
	.addrsig_sym asteroid.managed
	.addrsig_sym _Z15run_step_kerneliPdS_S_S_S_S_S_Pi
	.addrsig_sym _ZTISt13runtime_error
	.addrsig_sym n
	.addrsig_sym planet
	.addrsig_sym asteroid
	.addrsig_sym __hip_fatbin
	.addrsig_sym __hip_fatbin_wrapper
	.addrsig_sym __hip_cuid_

	.text
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.protected	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi ; -- Begin function _Z15run_step_kerneliPdS_S_S_S_S_S_Pi
	.globl	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi
	.p2align	8
	.type	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi,@function
_Z15run_step_kerneliPdS_S_S_S_S_S_Pi:   ; @_Z15run_step_kerneliPdS_S_S_S_S_S_Pi
; %bb.0:
	s_getpc_b64 s[2:3]
	s_add_u32 s2, s2, n@rel32@lo+4
	s_addc_u32 s3, s3, n@rel32@hi+12
	s_load_b64 s[2:3], s[2:3], 0x0
	s_load_b32 s4, s[0:1], 0x54
	s_waitcnt lgkmcnt(0)
	s_load_b32 s33, s[2:3], 0x0
	s_and_b32 s2, s4, 0xffff
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_mad_u64_u32 v[1:2], null, s15, s2, v[0:1]
	s_mov_b32 s2, exec_lo
	s_waitcnt lgkmcnt(0)
	v_cmpx_gt_i32_e64 s33, v1
	s_cbranch_execz .LBB0_13
; %bb.1:                                ; %.preheader
	s_load_b512 s[4:19], s[0:1], 0x8
	v_ashrrev_i32_e32 v2, 31, v1
	s_cmp_gt_i32 s33, 0
	s_mov_b32 s20, 0
	s_cbranch_scc1 .LBB0_3
; %bb.2:                                ; %.preheader.._crit_edge_crit_edge
	s_delay_alu instid0(VALU_DEP_1)
	v_dual_mov_b32 v4, v2 :: v_dual_mov_b32 v3, v1
	s_mov_b64 s[2:3], 0
	s_branch .LBB0_4
.LBB0_3:
	s_mov_b32 s20, -1
                                        ; implicit-def: $sgpr2_sgpr3
                                        ; implicit-def: $vgpr3_vgpr4
.LBB0_4:                                ; %Flow120
	v_dual_mov_b32 v10, s3 :: v_dual_mov_b32 v9, s2
	v_dual_mov_b32 v8, s3 :: v_dual_mov_b32 v7, s2
	v_dual_mov_b32 v6, s3 :: v_dual_mov_b32 v5, s2
	s_and_not1_b32 vcc_lo, exec_lo, s20
	s_cbranch_vccnz .LBB0_12
; %bb.5:                                ; %.lr.ph
	s_load_b32 s0, s[0:1], 0x0
	s_mov_b32 s2, 0
	s_mov_b32 s1, 0x3ff921fb
	s_mov_b32 s21, 0xbc91a626
	s_mov_b32 s20, 0x33145c00
	s_mov_b32 s22, 0x555502a1
	s_mov_b32 s23, 0x3fa55555
	s_mov_b32 s24, 0x55555555
	s_mov_b32 s25, s23
	s_mov_b32 s26, 0xa0b5ed8d
	s_mov_b32 s28, 0x968915a9
	s_mov_b32 s30, 0x4222de17
	s_mov_b32 s34, 0x3abe935a
	s_mov_b32 s36, 0x47e6c9c2
	s_mov_b32 s38, 0xcfa74449
	s_mov_b32 s40, 0x71bf3c30
	s_mov_b32 s42, 0x1c7792ce
	s_mov_b32 s44, 0x924920da
	s_mov_b32 s46, 0x9999999c
	s_mov_b32 s48, 0xfefa39ef
	s_waitcnt lgkmcnt(0)
	v_cvt_f64_i32_e32 v[3:4], s0
	s_mov_b32 s50, 0x3b39803f
	s_mov_b32 s52, 0xd5df274d
	s_mov_b32 s54, 0x652b82fe
	s_mov_b32 s60, 0xfca7ab0c
	s_mov_b32 s62, 0x6a5dcb37
	s_mov_b32 s64, 0x623fde64
	s_mov_b32 s66, 0x7c89e6b0
	s_mov_b32 s68, 0x14761f6e
	s_mov_b32 s70, 0x1852b7b0
	s_mov_b32 s72, 0x55555511
	s_mov_b32 s74, 11
	s_mov_b32 s76, 0xf4deae16
	s_mov_b32 s27, 0x3eb0c6f7
	s_mov_b32 s29, 0x3fba6564
	s_mov_b32 s31, 0x3fbdee67
	s_mov_b32 s35, 0x3fbe25e4
	s_mov_b32 s37, 0x3fc110ef
	s_mov_b32 s39, 0x3fc3b13b
	s_mov_b32 s41, 0x3fc745d1
	s_mov_b32 s43, 0x3fcc71c7
	s_mov_b32 s45, 0x3fd24924
	s_mov_b32 s47, 0x3fd99999
	s_mov_b32 s49, 0x3fe62e42
	s_mov_b32 s51, 0x3c7abc9e
	s_mov_b32 s53, 0x3c8543b0
	s_mov_b32 s55, 0x3ff71547
	s_mov_b32 s57, 0xbfe62e42
	s_mov_b32 s59, 0xbc7abc9e
	s_mov_b32 s61, 0x3e928af3
	s_mov_b32 s63, 0x3e5ade15
	s_mov_b32 s65, 0x3ec71dee
	s_mov_b32 s67, 0x3efa0199
	s_mov_b32 s69, 0x3f2a01a0
	s_mov_b32 s71, 0x3f56c16c
	s_mov_b32 s73, 0x3fc55555
	s_mov_b32 s75, 0x3fe00000
	s_mov_b32 s77, 0x3dd25868
	v_mul_f64 v[3:4], 0x404e0000, v[3:4]
	s_mov_b64 s[78:79], s[8:9]
	s_mov_b64 s[80:81], s[6:7]
	s_mov_b64 s[82:83], s[4:5]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_div_scale_f64 v[5:6], null, 0x40b77000, 0x40b77000, v[3:4]
	v_div_scale_f64 v[11:12], vcc_lo, v[3:4], 0x40b77000, v[3:4]
	v_rcp_f64_e32 v[7:8], v[5:6]
	s_waitcnt_depctr 0xfff
	v_fma_f64 v[9:10], -v[5:6], v[7:8], 1.0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[7:8], v[7:8], v[9:10], v[7:8]
	v_fma_f64 v[9:10], -v[5:6], v[7:8], 1.0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[7:8], v[7:8], v[9:10], v[7:8]
	v_mul_f64 v[9:10], v[11:12], v[7:8]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[5:6], -v[5:6], v[9:10], v[11:12]
	v_div_fmas_f64 v[5:6], v[5:6], v[7:8], v[9:10]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_div_fixup_f64 v[7:8], v[5:6], 0x40b77000, v[3:4]
	v_ldexp_f64 v[3:4], |v[7:8]|, 0xffffff80
	v_cmp_le_f64_e64 vcc_lo, 0x7b000000, |v[7:8]|
	v_trig_preop_f64 v[5:6], |v[7:8]|, 0
	v_and_b32_e32 v0, 0x7fffffff, v8
	v_trig_preop_f64 v[9:10], |v[7:8]|, 1
	v_trig_preop_f64 v[19:20], |v[7:8]|, 2
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_dual_cndmask_b32 v3, v7, v3 :: v_dual_cndmask_b32 v4, v0, v4
	v_mul_f64 v[11:12], v[5:6], v[3:4]
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_mul_f64 v[13:14], v[9:10], v[3:4]
	v_fma_f64 v[5:6], v[5:6], v[3:4], -v[11:12]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_fma_f64 v[9:10], v[9:10], v[3:4], -v[13:14]
	v_add_f64 v[15:16], v[13:14], v[5:6]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add_f64 v[17:18], v[15:16], -v[13:14]
	v_add_f64 v[23:24], v[11:12], v[15:16]
	v_add_f64 v[21:22], v[15:16], -v[17:18]
	v_add_f64 v[5:6], v[5:6], -v[17:18]
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_4)
	v_ldexp_f64 v[17:18], v[23:24], -2
	v_add_f64 v[11:12], v[23:24], -v[11:12]
	v_add_f64 v[13:14], v[13:14], -v[21:22]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_cmp_neq_f64_e64 vcc_lo, 0x7ff00000, |v[17:18]|
	v_add_f64 v[11:12], v[15:16], -v[11:12]
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_add_f64 v[5:6], v[5:6], v[13:14]
	v_fract_f64_e32 v[13:14], v[17:18]
	v_cndmask_b32_e32 v13, 0, v13, vcc_lo
	v_mul_f64 v[25:26], v[19:20], v[3:4]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_cndmask_b32_e32 v14, 0, v14, vcc_lo
	v_ldexp_f64 v[13:14], v[13:14], 2
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add_f64 v[21:22], v[25:26], v[9:10]
	v_fma_f64 v[3:4], v[19:20], v[3:4], -v[25:26]
	v_add_f64 v[15:16], v[21:22], v[5:6]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add_f64 v[17:18], v[11:12], v[15:16]
	v_add_f64 v[27:28], v[15:16], -v[21:22]
	v_add_f64 v[23:24], v[17:18], v[13:14]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_4)
	v_add_f64 v[33:34], v[15:16], -v[27:28]
	v_add_f64 v[5:6], v[5:6], -v[27:28]
	v_add_f64 v[11:12], v[17:18], -v[11:12]
	v_cmp_gt_f64_e32 vcc_lo, 0, v[23:24]
	v_add_f64 v[23:24], v[21:22], -v[25:26]
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_2) | instid1(VALU_DEP_2)
	v_add_f64 v[11:12], v[15:16], -v[11:12]
	s_and_b32 s0, vcc_lo, exec_lo
	s_cselect_b32 s3, 0x40100000, 0
	v_add_f64 v[31:32], v[21:22], -v[23:24]
	v_add_f64 v[13:14], v[13:14], s[2:3]
	v_add_f64 v[9:10], v[9:10], -v[23:24]
	v_add_f64 v[21:22], v[21:22], -v[33:34]
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_add_f64 v[23:24], v[25:26], -v[31:32]
	v_add_f64 v[29:30], v[17:18], v[13:14]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[5:6], v[5:6], v[21:22]
	v_add_f64 v[9:10], v[9:10], v[23:24]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_cvt_i32_f64_e32 v0, v[29:30]
	v_add_f64 v[5:6], v[9:10], v[5:6]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_cvt_f64_i32_e32 v[27:28], v0
	v_add_f64 v[3:4], v[3:4], v[5:6]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[13:14], v[13:14], -v[27:28]
	v_add_f64 v[3:4], v[11:12], v[3:4]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[9:10], v[17:18], v[13:14]
	v_add_f64 v[5:6], v[9:10], -v[13:14]
	v_cmp_le_f64_e32 vcc_lo, 0.5, v[9:10]
	s_delay_alu instid0(VALU_DEP_2)
	v_add_f64 v[5:6], v[17:18], -v[5:6]
	s_and_b32 s0, vcc_lo, exec_lo
	s_cselect_b32 s3, 0x3ff00000, 0
	v_add_co_ci_u32_e64 v0, s0, 0, v0, vcc_lo
	v_add_f64 v[9:10], v[9:10], -s[2:3]
	s_mov_b32 s0, 0x54442d18
	s_mov_b32 s2, 0x6dc9c883
	s_mov_b32 s3, 0x3fe45f30
	v_cmp_gt_f64_e64 vcc_lo, 0x41d00000, |v[7:8]|
	v_mul_f64 v[15:16], |v[7:8]|, s[2:3]
	s_mov_b32 s2, 0x33145c07
	s_mov_b32 s3, 0x3c91a626
	v_add_f64 v[3:4], v[3:4], v[5:6]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[5:6], v[9:10], v[3:4]
	v_mul_f64 v[11:12], v[5:6], s[0:1]
	v_add_f64 v[9:10], v[5:6], -v[9:10]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_fma_f64 v[13:14], v[5:6], s[0:1], -v[11:12]
	v_add_f64 v[3:4], v[3:4], -v[9:10]
	v_rndne_f64_e32 v[9:10], v[15:16]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[5:6], v[5:6], s[2:3], v[13:14]
	v_fma_f64 v[3:4], v[3:4], s[0:1], v[5:6]
	s_mov_b32 s1, 0xbff921fb
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_3) | instid1(VALU_DEP_1)
	v_mul_f64 v[5:6], v[9:10], s[20:21]
	v_fma_f64 v[13:14], v[9:10], s[0:1], |v[7:8]|
	s_mov_b32 s0, 0x252049c0
	s_mov_b32 s1, 0xb97b839a
	v_add_f64 v[15:16], v[13:14], v[5:6]
	v_fma_f64 v[17:18], v[9:10], s[20:21], v[13:14]
	s_mov_b32 s21, s3
	s_mov_b32 s2, 0xf9a43bb8
	s_mov_b32 s3, 0x3de5e0b2
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[13:14], v[13:14], -v[15:16]
	v_add_f64 v[15:16], v[15:16], -v[17:18]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_3) | instid1(VALU_DEP_2)
	v_add_f64 v[13:14], v[13:14], v[5:6]
	v_fma_f64 v[5:6], v[9:10], s[20:21], v[5:6]
	s_mov_b32 s20, 0x796cde01
	s_mov_b32 s21, 0x3ec71de3
	v_add_f64 v[13:14], v[15:16], v[13:14]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add_f64 v[5:6], v[13:14], -v[5:6]
	v_add_f64 v[13:14], v[11:12], v[3:4]
	v_fma_f64 v[5:6], v[9:10], s[0:1], v[5:6]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_3) | instid1(VALU_DEP_3)
	v_add_f64 v[11:12], v[13:14], -v[11:12]
	s_mov_b32 s0, 0xb42fdfa7
	s_mov_b32 s1, 0xbe5ae600
	v_cvt_i32_f64_e32 v9, v[9:10]
	v_add_f64 v[15:16], v[17:18], v[5:6]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[3:4], v[3:4], -v[11:12]
	v_dual_cndmask_b32 v11, v13, v15 :: v_dual_cndmask_b32 v12, v14, v16
	v_add_f64 v[17:18], v[15:16], -v[17:18]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_mul_f64 v[13:14], v[11:12], v[11:12]
	v_add_f64 v[5:6], v[5:6], -v[17:18]
	s_delay_alu instid0(VALU_DEP_2)
	v_fma_f64 v[15:16], v[13:14], s[2:3], s[0:1]
	s_mov_b32 s0, 0x9037ab78
	s_mov_b32 s2, 0x46cc5e42
	s_mov_b32 s1, 0x3e21eeb6
	s_mov_b32 s3, 0xbda907db
	v_mul_f64 v[19:20], v[13:14], 0.5
	v_fma_f64 v[17:18], v[13:14], s[2:3], s[0:1]
	s_mov_b32 s0, 0xa17f65f6
	s_mov_b32 s2, 0x19e83e5c
	s_mov_b32 s1, 0xbe927e4f
	s_mov_b32 s3, 0xbf2a01a0
	v_mul_f64 v[23:24], v[11:12], -v[13:14]
	v_dual_cndmask_b32 v4, v4, v6 :: v_dual_cndmask_b32 v3, v3, v5
	v_fma_f64 v[15:16], v[13:14], v[15:16], s[20:21]
	s_mov_b32 s21, 0x3f811111
	s_mov_b32 s20, 0x11110bb3
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_4) | instid1(VALU_DEP_4)
	v_mul_f64 v[5:6], v[3:4], 0.5
	v_add_f64 v[21:22], -v[19:20], 1.0
	v_fma_f64 v[17:18], v[13:14], v[17:18], s[0:1]
	s_mov_b32 s0, 0x19f4ec90
	s_mov_b32 s1, 0x3efa01a0
	v_fma_f64 v[15:16], v[13:14], v[15:16], s[2:3]
	s_mov_b32 s3, 0xbfe55555
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[25:26], -v[21:22], 1.0
	v_fma_f64 v[17:18], v[13:14], v[17:18], s[0:1]
	s_mov_b32 s0, 0x16c16967
	s_mov_b32 s1, 0xbf56c16c
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_fma_f64 v[15:16], v[13:14], v[15:16], s[20:21]
	s_mov_b32 s20, 0x11122322
	v_add_f64 v[19:20], v[25:26], -v[19:20]
	s_delay_alu instid0(VALU_DEP_3)
	v_fma_f64 v[17:18], v[13:14], v[17:18], s[0:1]
	v_cmp_class_f64_e64 s0, v[7:8], 0x1f8
	v_mov_b32_e32 v7, 0
	v_fma_f64 v[5:6], v[23:24], v[15:16], v[5:6]
	v_mul_f64 v[15:16], v[13:14], v[13:14]
	v_fma_f64 v[19:20], v[11:12], -v[3:4], v[19:20]
	v_fma_f64 v[17:18], v[13:14], v[17:18], s[24:25]
	s_mov_b32 s25, 0xbfc55555
	s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_fma_f64 v[3:4], v[13:14], v[5:6], -v[3:4]
	v_mov_b32_e32 v5, 0
	v_fma_f64 v[13:14], v[15:16], v[17:18], v[19:20]
	v_lshlrev_b64 v[17:18], 3, v[1:2]
	s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_2) | instid1(VALU_DEP_4)
	v_fma_f64 v[15:16], v[23:24], s[24:25], v[3:4]
	v_dual_mov_b32 v4, v2 :: v_dual_mov_b32 v3, v1
	v_cndmask_b32_e32 v2, v0, v9, vcc_lo
	v_add_co_u32 v9, s1, s4, v17
	v_add_f64 v[13:14], v[21:22], v[13:14]
	v_add_co_ci_u32_e64 v10, s1, s5, v18, s1
	s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_2) | instid1(VALU_DEP_2)
	v_and_b32_e32 v0, 1, v2
	v_lshlrev_b32_e32 v2, 30, v2
	s_mov_b32 s25, 0x3fe55555
	v_cmp_eq_u32_e32 vcc_lo, 0, v0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_xor_b32_e32 v2, v2, v8
	v_and_b32_e32 v2, 0x80000000, v2
	v_add_f64 v[15:16], v[11:12], -v[15:16]
	v_mov_b32_e32 v6, 0
	v_add_co_u32 v11, s1, s6, v17
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_add_co_ci_u32_e64 v12, s1, s7, v18, s1
	v_dual_cndmask_b32 v19, v13, v15 :: v_dual_cndmask_b32 v8, v14, v16
	v_add_co_u32 v13, vcc_lo, s8, v17
	v_add_co_ci_u32_e32 v14, vcc_lo, s9, v18, vcc_lo
	s_delay_alu instid0(VALU_DEP_3)
	v_xor_b32_e32 v2, v8, v2
	v_mov_b32_e32 v16, v6
	v_mov_b32_e32 v18, v6
	v_dual_mov_b32 v0, 0x3ff00000 :: v_dual_mov_b32 v17, v5
	v_mov_b32_e32 v15, v5
	v_cndmask_b32_e64 v19, 0, v19, s0
	v_cndmask_b32_e64 v20, 0x7ff80000, v2, s0
.LBB0_6:                                ; =>This Inner Loop Header: Depth=1
	s_mov_b32 s84, exec_lo
	v_cmpx_ne_u32_e32 0, v1
	s_cbranch_execz .LBB0_10
; %bb.7:                                ;   in Loop: Header=BB0_6 Depth=1
	s_load_b64 s[0:1], s[16:17], 0x0
	s_load_b32 s2, s[18:19], 0x0
	s_waitcnt lgkmcnt(0)
	v_dual_mov_b32 v22, s1 :: v_dual_mov_b32 v21, s0
	s_cmp_lg_u32 s2, 1
	s_cbranch_scc1 .LBB0_9
; %bb.8:                                ; %_ZN5param19gravity_device_massEdd.exit
                                        ;   in Loop: Header=BB0_6 Depth=1
	v_mul_f64 v[21:22], s[0:1], 0.5
	s_delay_alu instid0(VALU_DEP_1)
	v_fma_f64 v[21:22], v[21:22], |v[19:20]|, s[0:1]
.LBB0_9:                                ;   in Loop: Header=BB0_6 Depth=1
	global_load_b64 v[23:24], v[11:12], off
	global_load_b64 v[25:26], v[9:10], off
	global_load_b64 v[27:28], v[13:14], off
	s_load_b64 s[0:1], s[80:81], 0x0
	s_mov_b32 s2, s24
	s_mov_b32 s56, s48
	s_mov_b32 s58, s50
	v_mul_f64 v[21:22], v[21:22], s[76:77]
	s_waitcnt vmcnt(2) lgkmcnt(0)
	v_add_f64 v[23:24], s[0:1], -v[23:24]
	s_load_b64 s[0:1], s[82:83], 0x0
	s_waitcnt vmcnt(1) lgkmcnt(0)
	v_add_f64 v[25:26], s[0:1], -v[25:26]
	s_load_b64 s[0:1], s[78:79], 0x0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_mul_f64 v[29:30], v[23:24], v[23:24]
	v_mul_f64 v[23:24], v[21:22], v[23:24]
	s_waitcnt vmcnt(0) lgkmcnt(0)
	v_add_f64 v[27:28], s[0:1], -v[27:28]
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_fma_f64 v[29:30], v[25:26], v[25:26], v[29:30]
	v_mul_f64 v[25:26], v[21:22], v[25:26]
	v_mul_f64 v[21:22], v[21:22], v[27:28]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[29:30], v[27:28], v[27:28], v[29:30]
	v_add_f64 v[29:30], v[29:30], s[26:27]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_frexp_mant_f64_e64 v[31:32], |v[29:30]|
	v_cmp_gt_f64_e32 vcc_lo, s[24:25], v[31:32]
	v_cndmask_b32_e64 v2, 0, 1, vcc_lo
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_ldexp_f64 v[31:32], v[31:32], v2
	v_frexp_exp_i32_f64_e32 v2, v[29:30]
	v_add_f64 v[33:34], v[31:32], 1.0
	v_add_f64 v[39:40], v[31:32], -1.0
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_4)
	v_subrev_co_ci_u32_e32 v2, vcc_lo, 0, v2, vcc_lo
	v_cmp_eq_f64_e32 vcc_lo, 1.0, v[29:30]
	v_rcp_f64_e32 v[35:36], v[33:34]
	v_add_f64 v[41:42], v[33:34], -1.0
	v_cndmask_b32_e32 v8, 0x3ff80000, v0, vcc_lo
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_add_f64 v[31:32], v[31:32], -v[41:42]
	s_waitcnt_depctr 0xfff
	v_fma_f64 v[37:38], -v[33:34], v[35:36], 1.0
	v_fma_f64 v[35:36], v[37:38], v[35:36], v[35:36]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[37:38], -v[33:34], v[35:36], 1.0
	v_fma_f64 v[35:36], v[37:38], v[35:36], v[35:36]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_f64 v[37:38], v[39:40], v[35:36]
	v_mul_f64 v[43:44], v[33:34], v[37:38]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[33:34], v[37:38], v[33:34], -v[43:44]
	v_fma_f64 v[31:32], v[37:38], v[31:32], v[33:34]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[33:34], v[43:44], v[31:32]
	v_add_f64 v[41:42], v[39:40], -v[33:34]
	v_add_f64 v[43:44], v[33:34], -v[43:44]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[39:40], v[39:40], -v[41:42]
	v_add_f64 v[31:32], v[43:44], -v[31:32]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[33:34], v[39:40], -v[33:34]
	v_add_f64 v[31:32], v[31:32], v[33:34]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[31:32], v[41:42], v[31:32]
	v_mul_f64 v[31:32], v[35:36], v[31:32]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[33:34], v[37:38], v[31:32]
	v_add_f64 v[35:36], v[33:34], -v[37:38]
	v_mul_f64 v[37:38], v[33:34], v[33:34]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[31:32], v[31:32], -v[35:36]
	v_fma_f64 v[35:36], v[33:34], v[33:34], -v[37:38]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[39:40], v[31:32], v[31:32]
	v_fma_f64 v[35:36], v[33:34], v[39:40], v[35:36]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[39:40], v[37:38], v[35:36]
	v_fma_f64 v[41:42], v[39:40], s[30:31], s[28:29]
	v_add_f64 v[37:38], v[39:40], -v[37:38]
	v_mul_f64 v[47:48], v[33:34], v[39:40]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_fma_f64 v[41:42], v[39:40], v[41:42], s[34:35]
	v_add_f64 v[35:36], v[35:36], -v[37:38]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[41:42], v[39:40], v[41:42], s[36:37]
	v_fma_f64 v[41:42], v[39:40], v[41:42], s[38:39]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[41:42], v[39:40], v[41:42], s[40:41]
	v_fma_f64 v[41:42], v[39:40], v[41:42], s[42:43]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[41:42], v[39:40], v[41:42], s[44:45]
	v_fma_f64 v[41:42], v[39:40], v[41:42], s[46:47]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_f64 v[43:44], v[39:40], v[41:42]
	v_fma_f64 v[37:38], v[39:40], v[41:42], -v[43:44]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[37:38], v[35:36], v[41:42], v[37:38]
	v_add_f64 v[41:42], v[43:44], v[37:38]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add_f64 v[45:46], v[41:42], s[24:25]
	v_add_f64 v[43:44], v[41:42], -v[43:44]
	v_add_f64 v[49:50], v[45:46], s[2:3]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_4)
	v_add_f64 v[37:38], v[37:38], -v[43:44]
	v_fma_f64 v[43:44], v[39:40], v[33:34], -v[47:48]
	v_cmp_eq_f64_e64 s2, 0, v[29:30]
	v_add_f64 v[41:42], v[41:42], -v[49:50]
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_add_f64 v[37:38], v[37:38], s[52:53]
	v_fma_f64 v[39:40], v[39:40], v[31:32], v[43:44]
	v_ldexp_f64 v[31:32], v[31:32], 1
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[37:38], v[37:38], v[41:42]
	v_fma_f64 v[35:36], v[35:36], v[33:34], v[39:40]
	v_ldexp_f64 v[33:34], v[33:34], 1
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[39:40], v[45:46], v[37:38]
	v_add_f64 v[41:42], v[47:48], v[35:36]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[43:44], v[45:46], -v[39:40]
	v_mul_f64 v[45:46], v[41:42], v[39:40]
	v_add_f64 v[47:48], v[41:42], -v[47:48]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[37:38], v[37:38], v[43:44]
	v_fma_f64 v[43:44], v[41:42], v[39:40], -v[45:46]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[35:36], v[35:36], -v[47:48]
	v_fma_f64 v[37:38], v[41:42], v[37:38], v[43:44]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_fma_f64 v[35:36], v[35:36], v[39:40], v[37:38]
	v_cvt_f64_i32_e32 v[39:40], v2
	v_add_f64 v[37:38], v[45:46], v[35:36]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_4)
	v_add_f64 v[41:42], v[33:34], v[37:38]
	v_add_f64 v[43:44], v[37:38], -v[45:46]
	v_mul_f64 v[45:46], v[39:40], s[48:49]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[33:34], v[41:42], -v[33:34]
	v_add_f64 v[35:36], v[35:36], -v[43:44]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_fma_f64 v[43:44], v[39:40], s[48:49], -v[45:46]
	v_add_f64 v[33:34], v[37:38], -v[33:34]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[31:32], v[31:32], v[35:36]
	v_fma_f64 v[35:36], v[39:40], s[50:51], v[43:44]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[31:32], v[31:32], v[33:34]
	v_add_f64 v[33:34], v[45:46], v[35:36]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[37:38], v[41:42], v[31:32]
	v_add_f64 v[45:46], v[33:34], -v[45:46]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_add_f64 v[39:40], v[33:34], v[37:38]
	v_add_f64 v[41:42], v[37:38], -v[41:42]
	v_add_f64 v[35:36], v[35:36], -v[45:46]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[43:44], v[39:40], -v[33:34]
	v_add_f64 v[31:32], v[31:32], -v[41:42]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_add_f64 v[47:48], v[39:40], -v[43:44]
	v_add_f64 v[37:38], v[37:38], -v[43:44]
	v_add_f64 v[41:42], v[35:36], v[31:32]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[33:34], v[33:34], -v[47:48]
	v_add_f64 v[33:34], v[37:38], v[33:34]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[37:38], v[41:42], -v[35:36]
	v_add_f64 v[33:34], v[41:42], v[33:34]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_add_f64 v[41:42], v[41:42], -v[37:38]
	v_add_f64 v[31:32], v[31:32], -v[37:38]
	v_add_f64 v[43:44], v[39:40], v[33:34]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[35:36], v[35:36], -v[41:42]
	v_add_f64 v[37:38], v[43:44], -v[39:40]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_f64 v[31:32], v[31:32], v[35:36]
	v_add_f64 v[33:34], v[33:34], -v[37:38]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[31:32], v[31:32], v[33:34]
	v_add_f64 v[33:34], v[43:44], v[31:32]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add_f64 v[35:36], v[33:34], -v[43:44]
	v_mul_f64 v[37:38], v[7:8], v[33:34]
	v_add_f64 v[31:32], v[31:32], -v[35:36]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_fma_f64 v[33:34], v[7:8], v[33:34], -v[37:38]
	v_cmp_class_f64_e64 vcc_lo, v[37:38], 0x204
	v_fma_f64 v[31:32], v[7:8], v[31:32], v[33:34]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_f64 v[33:34], v[37:38], v[31:32]
	v_dual_cndmask_b32 v36, v34, v38 :: v_dual_cndmask_b32 v35, v33, v37
	v_add_f64 v[33:34], v[33:34], -v[37:38]
	s_delay_alu instid0(VALU_DEP_2)
	v_mul_f64 v[39:40], v[35:36], s[54:55]
	v_cmp_nlt_f64_e64 s0, 0x40900000, v[35:36]
	v_cmp_neq_f64_e64 vcc_lo, 0x7ff00000, |v[35:36]|
	v_cmp_ngt_f64_e64 s1, 0xc090cc00, v[35:36]
	v_add_f64 v[31:32], v[31:32], -v[33:34]
	v_trunc_f64_e32 v[33:34], v[7:8]
	v_rndne_f64_e32 v[39:40], v[39:40]
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_dual_cndmask_b32 v32, 0, v32 :: v_dual_cndmask_b32 v31, 0, v31
	s_and_b32 vcc_lo, s1, s0
	v_fma_f64 v[41:42], v[39:40], s[56:57], v[35:36]
	v_cvt_i32_f64_e32 v2, v[39:40]
	v_cmp_class_f64_e64 s56, v[29:30], 0x204
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[41:42], v[39:40], s[58:59], v[41:42]
	v_fma_f64 v[43:44], v[41:42], s[62:63], s[60:61]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[64:65]
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[66:67]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[68:69]
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[70:71]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[20:21]
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[22:23]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[72:73]
	v_fma_f64 v[43:44], v[41:42], v[43:44], s[74:75]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[43:44], v[41:42], v[43:44], 1.0
	v_fma_f64 v[39:40], v[41:42], v[43:44], 1.0
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_ldexp_f64 v[37:38], v[39:40], v2
	v_mul_f64 v[39:40], v[7:8], 0.5
	v_cndmask_b32_e64 v2, 0x7ff00000, v38, s0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_trunc_f64_e32 v[35:36], v[39:40]
	v_cndmask_b32_e32 v37, 0, v37, vcc_lo
	v_cmp_eq_f64_e32 vcc_lo, v[33:34], v[7:8]
	s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_cndmask_b32_e64 v38, 0, v2, s1
	v_cndmask_b32_e64 v2, 0x7ff00000, 0, s2
	v_fma_f64 v[31:32], v[37:38], v[31:32], v[37:38]
	v_cmp_class_f64_e64 s1, v[37:38], 0x204
	v_cmp_neq_f64_e64 s0, v[35:36], v[39:40]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_cndmask_b32_e64 v32, v32, v38, s1
	s_and_b32 vcc_lo, vcc_lo, s0
	v_cndmask_b32_e32 v8, 0x3ff00000, v30, vcc_lo
	v_cndmask_b32_e32 v33, 0, v30, vcc_lo
	s_or_b32 vcc_lo, s2, s56
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_bfi_b32 v8, 0x7fffffff, v32, v8
	v_bfi_b32 v2, 0x7fffffff, v2, v33
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_cndmask_b32_e32 v2, v8, v2, vcc_lo
	v_cndmask_b32_e64 v31, v31, v37, s1
	v_cndmask_b32_e64 v8, v31, 0, vcc_lo
	v_cmp_o_f64_e32 vcc_lo, v[29:30], v[29:30]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_cndmask_b32_e32 v27, 0, v8, vcc_lo
	v_cndmask_b32_e32 v28, 0x7ff80000, v2, vcc_lo
	v_div_scale_f64 v[29:30], null, v[27:28], v[27:28], v[25:26]
	v_div_scale_f64 v[31:32], null, v[27:28], v[27:28], v[23:24]
	v_div_scale_f64 v[33:34], null, v[27:28], v[27:28], v[21:22]
	v_div_scale_f64 v[47:48], vcc_lo, v[25:26], v[27:28], v[25:26]
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_rcp_f64_e32 v[35:36], v[29:30]
	v_rcp_f64_e32 v[37:38], v[31:32]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(TRANS32_DEP_3)
	v_rcp_f64_e32 v[39:40], v[33:34]
	v_fma_f64 v[41:42], -v[29:30], v[35:36], 1.0
	s_waitcnt_depctr 0xfff
	v_fma_f64 v[43:44], -v[31:32], v[37:38], 1.0
	v_fma_f64 v[45:46], -v[33:34], v[39:40], 1.0
	v_fma_f64 v[35:36], v[35:36], v[41:42], v[35:36]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_fma_f64 v[37:38], v[37:38], v[43:44], v[37:38]
	v_fma_f64 v[39:40], v[39:40], v[45:46], v[39:40]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_fma_f64 v[41:42], -v[29:30], v[35:36], 1.0
	v_fma_f64 v[43:44], -v[31:32], v[37:38], 1.0
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_fma_f64 v[45:46], -v[33:34], v[39:40], 1.0
	v_fma_f64 v[35:36], v[35:36], v[41:42], v[35:36]
	v_div_scale_f64 v[41:42], s0, v[23:24], v[27:28], v[23:24]
	s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_3) | instid1(VALU_DEP_4)
	v_fma_f64 v[37:38], v[37:38], v[43:44], v[37:38]
	v_div_scale_f64 v[43:44], s1, v[21:22], v[27:28], v[21:22]
	v_fma_f64 v[39:40], v[39:40], v[45:46], v[39:40]
	v_mul_f64 v[45:46], v[47:48], v[35:36]
	v_mul_f64 v[49:50], v[41:42], v[37:38]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_mul_f64 v[51:52], v[43:44], v[39:40]
	v_fma_f64 v[29:30], -v[29:30], v[45:46], v[47:48]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_fma_f64 v[31:32], -v[31:32], v[49:50], v[41:42]
	v_fma_f64 v[33:34], -v[33:34], v[51:52], v[43:44]
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_div_fmas_f64 v[29:30], v[29:30], v[35:36], v[45:46]
	s_mov_b32 vcc_lo, s0
	v_div_fmas_f64 v[31:32], v[31:32], v[37:38], v[49:50]
	s_mov_b32 vcc_lo, s1
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_div_fmas_f64 v[33:34], v[33:34], v[39:40], v[51:52]
	v_div_fixup_f64 v[25:26], v[29:30], v[27:28], v[25:26]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_div_fixup_f64 v[23:24], v[31:32], v[27:28], v[23:24]
	v_div_fixup_f64 v[21:22], v[33:34], v[27:28], v[21:22]
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_f64 v[5:6], v[5:6], v[25:26]
	v_add_f64 v[15:16], v[15:16], v[23:24]
	s_delay_alu instid0(VALU_DEP_3)
	v_add_f64 v[17:18], v[17:18], v[21:22]
.LBB0_10:                               ; %Flow
                                        ;   in Loop: Header=BB0_6 Depth=1
	s_or_b32 exec_lo, exec_lo, s84
	s_add_i32 s33, s33, -1
	s_add_u32 s16, s16, 8
	s_addc_u32 s17, s17, 0
	s_add_u32 s18, s18, 4
	s_addc_u32 s19, s19, 0
	s_add_u32 s82, s82, 8
	s_addc_u32 s83, s83, 0
	s_add_u32 s80, s80, 8
	v_add_nc_u32_e32 v1, -1, v1
	s_addc_u32 s81, s81, 0
	s_add_u32 s78, s78, 8
	s_addc_u32 s79, s79, 0
	s_cmp_eq_u32 s33, 0
	s_cbranch_scc0 .LBB0_6
; %bb.11:                               ; %._crit_edge.loopexit
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_mul_f64 v[9:10], 0x404e0000, v[5:6]
	v_mul_f64 v[7:8], 0x404e0000, v[15:16]
	s_delay_alu instid0(VALU_DEP_4)
	v_mul_f64 v[5:6], 0x404e0000, v[17:18]
.LBB0_12:                               ; %Flow121
	v_lshlrev_b64 v[0:1], 3, v[3:4]
	s_waitcnt lgkmcnt(0)
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_co_u32 v2, vcc_lo, s10, v0
	v_add_co_ci_u32_e32 v3, vcc_lo, s11, v1, vcc_lo
	global_load_b64 v[11:12], v[2:3], off
	s_waitcnt vmcnt(0)
	v_add_f64 v[9:10], v[9:10], v[11:12]
	v_add_co_u32 v11, vcc_lo, s12, v0
	v_add_co_ci_u32_e32 v12, vcc_lo, s13, v1, vcc_lo
	global_store_b64 v[2:3], v[9:10], off
	global_load_b64 v[9:10], v[11:12], off
	s_waitcnt vmcnt(0)
	v_add_f64 v[7:8], v[7:8], v[9:10]
	v_add_co_u32 v9, vcc_lo, s14, v0
	v_add_co_ci_u32_e32 v10, vcc_lo, s15, v1, vcc_lo
	global_store_b64 v[11:12], v[7:8], off
	global_load_b64 v[7:8], v[9:10], off
	s_waitcnt vmcnt(0)
	v_add_f64 v[4:5], v[5:6], v[7:8]
	v_add_co_u32 v6, vcc_lo, s4, v0
	v_add_co_ci_u32_e32 v7, vcc_lo, s5, v1, vcc_lo
	global_store_b64 v[9:10], v[4:5], off
	global_load_b64 v[2:3], v[2:3], off
	global_load_b64 v[4:5], v[6:7], off
	s_waitcnt vmcnt(0)
	v_fma_f64 v[2:3], 0x404e0000, v[2:3], v[4:5]
	v_add_co_u32 v4, vcc_lo, s6, v0
	v_add_co_ci_u32_e32 v5, vcc_lo, s7, v1, vcc_lo
	v_add_co_u32 v0, vcc_lo, s8, v0
	v_add_co_ci_u32_e32 v1, vcc_lo, s9, v1, vcc_lo
	global_store_b64 v[6:7], v[2:3], off
	global_load_b64 v[2:3], v[11:12], off
	global_load_b64 v[6:7], v[4:5], off
	s_waitcnt vmcnt(0)
	v_fma_f64 v[2:3], 0x404e0000, v[2:3], v[6:7]
	global_store_b64 v[4:5], v[2:3], off
	global_load_b64 v[2:3], v[9:10], off
	global_load_b64 v[4:5], v[0:1], off
	s_waitcnt vmcnt(0)
	v_fma_f64 v[2:3], 0x404e0000, v[2:3], v[4:5]
	global_store_b64 v[0:1], v[2:3], off
.LBB0_13:
	s_nop 0
	s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z15run_step_kerneliPdS_S_S_S_S_S_Pi
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 328
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 53
		.amdhsa_next_free_sgpr 85
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end0:
	.size	_Z15run_step_kerneliPdS_S_S_S_S_S_Pi, .Lfunc_end0-_Z15run_step_kerneliPdS_S_S_S_S_S_Pi
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 4828
; NumSgprs: 87
; NumVgprs: 53
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 10
; VGPRBlocks: 6
; NumSGPRsForWavesPerEU: 87
; NumVGPRsForWavesPerEU: 53
; Occupancy: 16
; WaveLimiterHint : 1
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.protected	n.managed               ; @n.managed
	.type	n.managed,@object
	.section	.bss,"aw",@nobits
	.globl	n.managed
	.p2align	2, 0x0
n.managed:
	.long	0                               ; 0x0
	.size	n.managed, 4

	.protected	planet.managed          ; @planet.managed
	.type	planet.managed,@object
	.globl	planet.managed
	.p2align	2, 0x0
planet.managed:
	.long	0                               ; 0x0
	.size	planet.managed, 4

	.protected	asteroid.managed        ; @asteroid.managed
	.type	asteroid.managed,@object
	.globl	asteroid.managed
	.p2align	2, 0x0
asteroid.managed:
	.long	0                               ; 0x0
	.size	asteroid.managed, 4

	.protected	n                       ; @n
	.type	n,@object
	.globl	n
	.p2align	3, 0x0
n:
	.quad	0
	.size	n, 8

	.protected	planet                  ; @planet
	.type	planet,@object
	.globl	planet
	.p2align	3, 0x0
planet:
	.quad	0
	.size	planet, 8

	.protected	asteroid                ; @asteroid
	.type	asteroid,@object
	.globl	asteroid
	.p2align	3, 0x0
asteroid:
	.quad	0
	.size	asteroid, 8

	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym n.managed
	.addrsig_sym planet.managed
	.addrsig_sym asteroid.managed
	.addrsig_sym n
	.addrsig_sym planet
	.addrsig_sym asteroid
	.addrsig_sym __hip_cuid_
	.amdgpu_metadata
---
amdhsa.kernels:
  - .args:
      - .offset:         0
        .size:           4
        .value_kind:     by_value
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         32
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         40
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         48
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         56
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         64
        .size:           8
        .value_kind:     global_buffer
      - .offset:         72
        .size:           4
        .value_kind:     hidden_block_count_x
      - .offset:         76
        .size:           4
        .value_kind:     hidden_block_count_y
      - .offset:         80
        .size:           4
        .value_kind:     hidden_block_count_z
      - .offset:         84
        .size:           2
        .value_kind:     hidden_group_size_x
      - .offset:         86
        .size:           2
        .value_kind:     hidden_group_size_y
      - .offset:         88
        .size:           2
        .value_kind:     hidden_group_size_z
      - .offset:         90
        .size:           2
        .value_kind:     hidden_remainder_x
      - .offset:         92
        .size:           2
        .value_kind:     hidden_remainder_y
      - .offset:         94
        .size:           2
        .value_kind:     hidden_remainder_z
      - .offset:         112
        .size:           8
        .value_kind:     hidden_global_offset_x
      - .offset:         120
        .size:           8
        .value_kind:     hidden_global_offset_y
      - .offset:         128
        .size:           8
        .value_kind:     hidden_global_offset_z
      - .offset:         136
        .size:           2
        .value_kind:     hidden_grid_dims
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 328
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z15run_step_kerneliPdS_S_S_S_S_S_Pi
    .private_segment_fixed_size: 0
    .sgpr_count:     87
    .sgpr_spill_count: 0
    .symbol:         _Z15run_step_kerneliPdS_S_S_S_S_S_Pi.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     53
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
