// File: /workspace/github_c_makefile_star2_O0/jrrk[P]cbzone/c_explode.c
// Function: calcpointsVI
void calcpointsVI(dc, method, index, g, pl)
     DCp dc;
     Methodp method;
     int index;
     Genericp g, pl;
{
  int i;
  float dx, dy, dz, xn, yn, zn, c1, s1, c2, s2, cp, sp;
  float t1, t2, t3, t4, t5, t6, t7, t8, t9, rx, ry, rz, prx, pry, prz;
  Coord2dp new;
  Coord3dp old;

  old = dc->s->object+index;
  new = dc->points+index;

  dx = pl->x - g->x - dc->pos.x;
  dy = pl->y - g->y - dc->pos.y;
  dz = - dc->pos.z;
  xn =  dx*dc->cta + dy*dc->sta*dc->ctp + dz*dc->sta*dc->stp;
  yn =  -dx*dc->sta + dy*dc->cta*dc->ctp + dz*dc->cta*dc->stp;
  zn =  -dy*dc->stp + dz*dc->ctp;
  c1 = pl->ca*dc->cta;
  s1 = pl->sa*dc->sta;
  c2 = pl->ca*dc->sta;
  s2 = pl->sa*dc->cta;
  cp = dc->ctp;
  sp = dc->stp;
  t1 = c1 + s1 * cp;
  t2 = -c2 + s2 * cp;
  t3 = -pl->sa * sp;
  t4 = -s2 + c2 * cp;
  t5 = s1 + c1 * cp;
  t6 = -pl->ca * sp;
  t7 = dc->sta * sp;
  t8 = dc->cta * sp;
  t9 = cp;
  for (i=0; i<method->num; i++, old++, new++) {
    rx = old->x - xn;
    ry = old->y - yn;
    rz = old->z - zn;
    prx = rx * t1 + ry * t2 + rz * t3;
    pry = rx * t4 + ry * t5 + rz * t6;
    prz = rx * t7 + ry * t8 + rz * t9;
    if (pry < 10.0)
      pry = 10.0;
    new->x = 500 + prx / pry * 450;
    new->y = 260 - prz / pry * 450;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x28, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
imulq $0x6, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xa8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rax
movslq -0x14(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
movq -0x28(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x20(%rbp), %rax
subss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0x100(%rax), %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x28(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x20(%rbp), %rax
subss 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0x104(%rax), %xmm0
movss %xmm0, -0x34(%rbp)
movq -0x8(%rbp), %rax
movss 0x108(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x38(%rbp)
movss -0x30(%rbp), %xmm1
movq -0x8(%rbp), %rax
movss 0x118(%rax), %xmm2
movss -0x34(%rbp), %xmm0
movq -0x8(%rbp), %rax
mulss 0x11c(%rax), %xmm0
movq -0x8(%rbp), %rax
mulss 0x120(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x38(%rbp), %xmm0
movq -0x8(%rbp), %rax
mulss 0x11c(%rax), %xmm0
movq -0x8(%rbp), %rax
movss 0x124(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x30(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
movq -0x8(%rbp), %rax
movss 0x11c(%rax), %xmm2
movss -0x34(%rbp), %xmm0
movq -0x8(%rbp), %rax
mulss 0x118(%rax), %xmm0
movq -0x8(%rbp), %rax
mulss 0x120(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x38(%rbp), %xmm0
movq -0x8(%rbp), %rax
mulss 0x118(%rax), %xmm0
movq -0x8(%rbp), %rax
movss 0x124(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x34(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
movss 0x124(%rax), %xmm2
movss -0x38(%rbp), %xmm1
movq -0x8(%rbp), %rax
mulss 0x120(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x44(%rbp)
movq -0x28(%rbp), %rax
movss 0x24(%rax), %xmm0
movq -0x8(%rbp), %rax
mulss 0x118(%rax), %xmm0
movss %xmm0, -0x48(%rbp)
movq -0x28(%rbp), %rax
movss 0x28(%rax), %xmm0
movq -0x8(%rbp), %rax
mulss 0x11c(%rax), %xmm0
movss %xmm0, -0x4c(%rbp)
movq -0x28(%rbp), %rax
movss 0x24(%rax), %xmm0
movq -0x8(%rbp), %rax
mulss 0x11c(%rax), %xmm0
movss %xmm0, -0x50(%rbp)
movq -0x28(%rbp), %rax
movss 0x28(%rax), %xmm0
movq -0x8(%rbp), %rax
mulss 0x118(%rax), %xmm0
movss %xmm0, -0x54(%rbp)
movq -0x8(%rbp), %rax
movss 0x120(%rax), %xmm0
movss %xmm0, -0x58(%rbp)
movq -0x8(%rbp), %rax
movss 0x124(%rax), %xmm0
movss %xmm0, -0x5c(%rbp)
movss -0x48(%rbp), %xmm1
movss -0x4c(%rbp), %xmm0
movss -0x58(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x60(%rbp)
movss -0x50(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
movss -0x54(%rbp), %xmm0
movss -0x58(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x64(%rbp)
movq -0x28(%rbp), %rax
movss 0x28(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss -0x5c(%rbp), %xmm0
movss %xmm0, -0x68(%rbp)
movss -0x54(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
movss -0x50(%rbp), %xmm0
movss -0x58(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x6c(%rbp)
movss -0x4c(%rbp), %xmm1
movss -0x48(%rbp), %xmm0
movss -0x58(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x70(%rbp)
movq -0x28(%rbp), %rax
movss 0x24(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss -0x5c(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movq -0x8(%rbp), %rax
movss 0x11c(%rax), %xmm0
mulss -0x5c(%rbp), %xmm0
movss %xmm0, -0x78(%rbp)
movq -0x8(%rbp), %rax
movss 0x118(%rax), %xmm0
mulss -0x5c(%rbp), %xmm0
movss %xmm0, -0x7c(%rbp)
movss -0x58(%rbp), %xmm0
movss %xmm0, -0x80(%rbp)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x6fbd
movq -0xa8(%rbp), %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
subss -0x3c(%rbp), %xmm0
movss %xmm0, -0x84(%rbp)
movq -0xa8(%rbp), %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
subss -0x40(%rbp), %xmm0
movss %xmm0, -0x88(%rbp)
movq -0xa8(%rbp), %rax
movswl 0x4(%rax), %eax
cvtsi2ss %eax, %xmm0
subss -0x44(%rbp), %xmm0
movss %xmm0, -0x8c(%rbp)
movss -0x84(%rbp), %xmm1
movss -0x60(%rbp), %xmm2
movss -0x88(%rbp), %xmm0
mulss -0x64(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x8c(%rbp), %xmm0
movss -0x68(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x90(%rbp)
movss -0x84(%rbp), %xmm1
movss -0x6c(%rbp), %xmm2
movss -0x88(%rbp), %xmm0
mulss -0x70(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x8c(%rbp), %xmm0
movss -0x74(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x94(%rbp)
movss -0x84(%rbp), %xmm1
movss -0x78(%rbp), %xmm2
movss -0x88(%rbp), %xmm0
mulss -0x7c(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x8c(%rbp), %xmm0
movss -0x80(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x98(%rbp)
movss -0x94(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xd106(%rip), %xmm0     # 0x14008
ucomisd %xmm1, %xmm0
jbe 0x6f18
movss 0xd108(%rip), %xmm0     # 0x14018
movss %xmm0, -0x94(%rbp)
movss -0x90(%rbp), %xmm1
movss -0x94(%rbp), %xmm0
divss %xmm0, %xmm1
movss 0xd0e8(%rip), %xmm0     # 0x1401c
mulss %xmm0, %xmm1
movss 0xd0e0(%rip), %xmm2     # 0x14020
addss %xmm2, %xmm1
cvttss2si %xmm1, %eax
movw %ax, %cx
movq -0xa0(%rbp), %rax
movw %cx, (%rax)
movss -0x98(%rbp), %xmm1
movss -0x94(%rbp), %xmm2
divss %xmm2, %xmm1
mulss %xmm0, %xmm1
movss 0xd0af(%rip), %xmm0     # 0x14024
subss %xmm1, %xmm0
cvttss2si %xmm0, %eax
movw %ax, %cx
movq -0xa0(%rbp), %rax
movw %cx, 0x2(%rax)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq -0xa8(%rbp), %rax
addq $0x6, %rax
movq %rax, -0xa8(%rbp)
movq -0xa0(%rbp), %rax
addq $0x4, %rax
movq %rax, -0xa0(%rbp)
jmp 0x6dcf
addq $0x28, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)