// File: /workspace/github_c_makefile_star2_O0/jrrk[P]cbzone/c_move.c
// Function: movemissile
void movemissile(g, pl, first)
     Genericp g;
     Genericp pl;
     Bool first;
{
  float dx, dy, tazm, t1, t3, dt1, t2;

  if (g->attr & IS_NEW) {
    g->ecount = 0;
    g->pcount = 0;
    g->attr &= ~IS_NEW;
  }

  g->rotate = 0.0;
  g->pcount++;
  g->z -= 25.0;
  if (g->z <= 0.0)
    g->z = 0.0;
  if (g->attr & IS_BLOCKED)
    g->z = 90.0;
  g->speed = 35.0;
  if (g->z > 91.0)
    g->speed = 0.0;
  if (g->pcount >= 12) {
    g->pcount = 0;
    if (g->proy > 60.0) {
      dx = pl->x - g->x;
      dy = pl->y - g->y;
      if (fabs(dy) < 1.e-7)
        dy = sign(1.e-7, dy);
      if (dy <= 0.0)
        tazm = - atan(dx / dy) + ra (180.0);
      else
        tazm = - atan(dx / dy);
      if (g->azm > PI2)
        g->azm -= PI2;
      if (g->azm < 0.0)
        g->azm += PI2;
      t1 = (tazm - g->azm);
      t3 = (tazm - (g->azm - PI2));
      if (fabs(t3) < fabs(t1))
        t1 = t3;
      if (!first) {
        dt1 = frand() * 0.5;
        dt1 = sign (dt1, t1);
        if (frand() > 0.8)
          dt1 = - dt1;
        t1 += dt1;
      }
      if (fabs(t1) > 0.90)
        t1 = sign (0.90, t1);
      g->rotate = t1;
    }
    else {
      tazm = pl->azm - PI;
      if (tazm < 0.0)
        tazm += PI2;
      if (tazm > PI2)
        tazm -= PI2;
      if (g->azm < 0.0)
        g->azm += PI2;
      if (g->azm > PI2)
        g->azm -= PI2;
      t1 = (tazm - g->azm);
      t2 = (tazm - (g->azm - PI2));
      if (fabs(t2) < fabs(t1))
        t1 = t2;
      if (fabs(t1) > 0.90)
        t1 = sign (0.90, t1);
      g->rotate = t1;
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x10795
movq -0x8(%rbp), %rax
movl $0x0, 0x44(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x4c(%rax)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
andl $-0x3, %ecx
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x30(%rax)
movq -0x8(%rbp), %rax
movl 0x4c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4c(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x4215(%rip), %xmm1     # 0x149d8
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jb 0x107f2
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x600, %eax            # imm = 0x600
cmpl $0x0, %eax
je 0x10814
movq -0x8(%rbp), %rax
movss 0x4265(%rip), %xmm0     # 0x14a74
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
movss 0x4240(%rip), %xmm0     # 0x14a60
movss %xmm0, 0x2c(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x41a6(%rip), %xmm1     # 0x149e0
ucomisd %xmm1, %xmm0
jbe 0x1084c
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x2c(%rax)
movq -0x8(%rbp), %rax
cmpl $0xc, 0x4c(%rax)
jl 0x10d9b
movq -0x8(%rbp), %rax
movl $0x0, 0x4c(%rax)
movq -0x8(%rbp), %rax
movss 0x1c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3e4e(%rip), %xmm1     # 0x146c8
ucomisd %xmm1, %xmm0
jbe 0x10bba
movq -0x10(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0xc(%rax), %xmm0
movss %xmm0, -0x18(%rbp)
movq -0x10(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0x10(%rax), %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movaps 0x37be(%rip), %xmm0     # 0x14080
pand %xmm0, %xmm1
movsd 0x40d2(%rip), %xmm0     # 0x149a0
ucomisd %xmm1, %xmm0
jbe 0x1090d
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x40c3(%rip), %xmm3     # 0x149a8
movsd 0x40b3(%rip), %xmm2     # 0x149a0
xorps %xmm1, %xmm1
cmpltsd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jb 0x10960
movss -0x18(%rbp), %xmm0
divss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x5260
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x405f(%rip), %xmm1     # 0x149b0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
jmp 0x10993
movss -0x18(%rbp), %xmm0
divss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x5260
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3eb0(%rip), %xmm1     # 0x14858
ucomisd %xmm1, %xmm0
jbe 0x109d0
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3e95(%rip), %xmm1     # 0x14858
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x20(%rax)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x10a08
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3e5d(%rip), %xmm1     # 0x14858
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x20(%rax)
movss -0x20(%rbp), %xmm0
movq -0x8(%rbp), %rax
subss 0x20(%rax), %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0x3e1f(%rip), %xmm2     # 0x14858
subsd %xmm2, %xmm1
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movaps 0x3626(%rip), %xmm0     # 0x14080
pand %xmm0, %xmm1
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0x3612(%rip), %xmm2     # 0x14080
pand %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x10a82
movss -0x28(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x10b4c
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x359c(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x35e8(%rip), %xmm1     # 0x14098
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x10ae8
movss -0x2c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x34(%rbp)
jmp 0x10af2
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x34(%rbp), %xmm0
movss %xmm0, -0x2c(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x352c(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x3ed8(%rip), %xmm1     # 0x149f8
ucomisd %xmm1, %xmm0
jbe 0x10b3d
movss -0x2c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x2c(%rbp), %xmm0
addss -0x24(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0x3524(%rip), %xmm1     # 0x14080
pand %xmm1, %xmm0
movsd 0x3e80(%rip), %xmm1     # 0x149e8
ucomisd %xmm1, %xmm0
jbe 0x10ba7
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3e71(%rip), %xmm3     # 0x149f0
movsd 0x3e61(%rip), %xmm2     # 0x149e8
xorps %xmm1, %xmm1
cmpltsd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x24(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x30(%rax)
jmp 0x10d99
movq -0x10(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3db1(%rip), %xmm1     # 0x14980
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x10c0c
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3c59(%rip), %xmm1     # 0x14858
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3c3b(%rip), %xmm1     # 0x14858
ucomisd %xmm1, %xmm0
jbe 0x10c41
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3c24(%rip), %xmm1     # 0x14858
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x10c79
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3bec(%rip), %xmm1     # 0x14858
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x20(%rax)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3bca(%rip), %xmm1     # 0x14858
ucomisd %xmm1, %xmm0
jbe 0x10cb6
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3baf(%rip), %xmm1     # 0x14858
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x20(%rax)
movss -0x20(%rbp), %xmm0
movq -0x8(%rbp), %rax
subss 0x20(%rax), %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0x3b71(%rip), %xmm2     # 0x14858
subsd %xmm2, %xmm1
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
movss -0x30(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movaps 0x3378(%rip), %xmm0     # 0x14080
pand %xmm0, %xmm1
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0x3364(%rip), %xmm2     # 0x14080
pand %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x10d30
movss -0x30(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0x3340(%rip), %xmm1     # 0x14080
pand %xmm1, %xmm0
movsd 0x3c9c(%rip), %xmm1     # 0x149e8
ucomisd %xmm1, %xmm0
jbe 0x10d8b
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x3c8d(%rip), %xmm3     # 0x149f0
movsd 0x3c7d(%rip), %xmm2     # 0x149e8
xorps %xmm1, %xmm1
cmpltsd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x24(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x30(%rax)
jmp 0x10d9b
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)