// File: /workspace/github_c_makefile_star2_O0/jrrk[P]cbzone/c_move.c
// Function: placeobjects
void placeobjects(o, missilerun, score)
     Genericp o;
     Bool missilerun;
     LONG score;
{
  static int lander = 1000;
  static int landercount = 0;
  static struct timeval clock = {0, 40000};
  float odds, scale, r, dazm, ca, sa;
  Genericp g;
  Genericp pl = o;
  int nta = 0;
  int nsu = 0;
  int nmi = 0;
  int nco = 0;
  int nla = 0;

  landercount++;
  for (g=o; g<o+opt->mobjects; g++)
    if (g->attr & STILL_THERE)
      switch (g->type) {
      case IS_TANK:
        nta++; break;
      case IS_SUPER:
        nsu++; break;
      case IS_MISSILE:
        nmi++; break;
      case IS_COPTER:
        nco++; break;
      case IS_LANDER:
        nla++; break;
      }

  if (pl->attr & IS_ALIVE &&
      (missilerun && nta + nsu == 0 && nmi + nco < opt->mmissiles ||
       !missilerun && nmi + nco == 0 && nta + nsu < opt->mtanks)) {
    for (g=o+opt->estart; g<o+opt->lstart; g++)
      if (!(g->attr & STILL_THERE))
        break;
    if (g == o+opt->lstart) {
      printf("Help! Did not have space available for enemy!\n");
      printf("Should not have been possible.\n");
#ifdef WIN32
      return;
#else //X11
      exit(1);
#endif
    }

    if (missilerun) {
      /* reset clock usec just in case they change select to return the
         amount of time remaining after the select finishes.   The
         man page mentions this might occur in future releases.
       */
      tonetime();
      clock.tv_usec = 40000;
      select(0, 0, 0, 0, &clock);
      tonetime();
      clock.tv_usec = 40000;
      select(0, 0, 0, 0, &clock);
      tonetime();
      odds = score / 500000.0;
      if (score < 75000)
        odds = 0.0;
      if (odds > 0.333)
        odds = 0.333;
      if (opt->copters || frand() < odds) {
        g->type = IS_COPTER;
        g->lntype = LN_COPTER;
        scale = 0.2;
        g->z = 150.0;
        r = 1900;
      }
      else {
        g->type = IS_MISSILE;
        g->lntype = LN_MISSILE;
        scale = 0.1;
        g->z = 250.0;
        r = 1750;
      }
      dazm = frand() * scale;
      if (frand() > 0.5)
        dazm = - dazm;
      dazm += pl->azm;
      ca = cos(dazm);
      sa = sin(dazm);
      g->x = pl->x - r * sa;
      g->y = pl->y + r * ca;
      g->attr = START_LIVING;
      dazm = frand() * 0.015 / scale;
      if (frand() > 0.5)
        dazm = - dazm;
      g->azm = pl->azm - PI + dazm;
    }
    else {
      odds = (60000.0 - score) / 30000.0;
      if (odds < 0.10)
        odds = 0.10;
      if (frand() < odds) {
        g->type = IS_TANK;
        g->lntype = LN_TANK;
      }
      else {
        g->type = IS_SUPER;
        g->lntype = LN_SUPER;
      }
      r = 800.0 + 1200.0 * frand();
      dazm = frand() * PI2;
      g->x = pl->x + r * cos(dazm);
      g->y = pl->y + r * sin(dazm);
      g->z = 0.0;
      g->azm = frand() * PI2;
      g->attr = START_LIVING;
    }
    g->criticalx = 45.0;
    g->criticaly = 70.0;
  }

  if (landercount > lander && nla < opt->mlanders) {
    for (g=o+opt->lstart; g<o+opt->sstart; g++)
      if (!(g->attr & STILL_THERE))
        break;
    if (g == o+opt->sstart) {
      printf("Help! Did not have space available for lander!\n");
      printf("Should not have been possible.\n");
#ifdef WIN32
      return;
#else //X11
      exit(1);
#endif
    }

    r = 1500.0 + 500.0 * frand();
    dazm = frand() * PI2;
    g->x = pl->x + r * cos(dazm);
    g->y = pl->y + r * sin(dazm);
    g->z = 0.0;
    g->azm = frand() * PI2;
    g->speed = frand() * 10.0;
    g->criticalx = g->criticaly = 6400.0;
    g->type = IS_LANDER;
    g->lntype = LN_LANDER;
    g->attr = START_LIVING;
  }

  for (g=o+opt->bstart; g<o+opt->mobjects; g++)
    if (!(g->attr & IS_ALIVE)) {
      if (frand() > 0.5) {
        g->type = IS_CUBE;
        g->lntype = LN_CUBE;
        g->criticalx = g->criticaly = 50.0;
      }
      else {
        g->type = IS_PYRAMID;
        g->lntype = LN_PYRAMID;
        g->criticalx = g->criticaly = 35.0;
      }
      g->attr = START_LIVING;
      if (pl->attr & IS_NEW)
        r = 400 + frand() * 1800.0;
      else
        r = 2000.0;
      dazm = frand() * PI2;
      g->x = pl->x + r * cos(dazm);
      g->y = pl->y + r * sin(dazm);
      g->z = 0.0;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl $0x0, -0x48(%rbp)
movl $0x0, -0x4c(%rbp)
movl $0x0, -0x50(%rbp)
movl $0x0, -0x54(%rbp)
movl 0xaf21(%rip), %eax      # 0x19d68
addl $0x1, %eax
movl %eax, 0xaf18(%rip)      # 0x19d68
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
leaq 0xaaf9(%rip), %rdx      # 0x19960
movq (%rdx), %rdx
movslq 0x1c(%rdx), %rdx
imulq $0x660, %rdx, %rdx      # imm = 0x660
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0xef16
movq -0x38(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x119, %eax            # imm = 0x119
cmpl $0x0, %eax
je 0xef01
movq -0x38(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x58(%rbp)
subl $0x4, %eax
je 0xeeca
jmp 0xeea2
movl -0x58(%rbp), %eax
subl $0x8, %eax
je 0xeed5
jmp 0xeeac
movl -0x58(%rbp), %eax
subl $0x10, %eax
je 0xeee0
jmp 0xeeb6
movl -0x58(%rbp), %eax
subl $0x20, %eax
je 0xeeeb
jmp 0xeec0
movl -0x58(%rbp), %eax
subl $0x40, %eax
je 0xeef6
jmp 0xeeff
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0xeeff
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0xeeff
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xeeff
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xeeff
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xef01
jmp 0xef03
movq -0x38(%rbp), %rax
addq $0x660, %rax            # imm = 0x660
movq %rax, -0x38(%rbp)
jmp 0xee58
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xf592
cmpl $0x0, -0xc(%rbp)
je 0xef4f
movl -0x44(%rbp), %eax
addl -0x48(%rbp), %eax
cmpl $0x0, %eax
jne 0xef4f
movl -0x4c(%rbp), %eax
addl -0x50(%rbp), %eax
leaq 0xaa19(%rip), %rcx      # 0x19960
movq (%rcx), %rcx
cmpl 0xc(%rcx), %eax
jl 0xef81
cmpl $0x0, -0xc(%rbp)
jne 0xf592
movl -0x4c(%rbp), %eax
addl -0x50(%rbp), %eax
cmpl $0x0, %eax
jne 0xf592
movl -0x44(%rbp), %eax
addl -0x48(%rbp), %eax
leaq 0xa9eb(%rip), %rcx      # 0x19960
movq (%rcx), %rcx
cmpl 0x14(%rcx), %eax
jge 0xf592
movq -0x8(%rbp), %rax
leaq 0xa9d4(%rip), %rcx      # 0x19960
movq (%rcx), %rcx
movslq 0x20(%rcx), %rcx
imulq $0x660, %rcx, %rcx      # imm = 0x660
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
leaq 0xa9b0(%rip), %rdx      # 0x19960
movq (%rdx), %rdx
movslq 0x24(%rdx), %rdx
imulq $0x660, %rdx, %rdx      # imm = 0x660
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0xefeb
movq -0x38(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x119, %eax            # imm = 0x119
cmpl $0x0, %eax
jne 0xefd9
jmp 0xefeb
jmp 0xefdb
movq -0x38(%rbp), %rax
addq $0x660, %rax            # imm = 0x660
movq %rax, -0x38(%rbp)
jmp 0xefa1
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
leaq 0xa966(%rip), %rdx      # 0x19960
movq (%rdx), %rdx
movslq 0x24(%rdx), %rdx
imulq $0x660, %rdx, %rdx      # imm = 0x660
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0xf036
leaq 0x5a79(%rip), %rdi      # 0x14a90
movb $0x0, %al
callq 0x5050
leaq 0x5a9a(%rip), %rdi      # 0x14abf
movb $0x0, %al
callq 0x5050
movl $0x1, %edi
callq 0x5100
cmpl $0x0, -0xc(%rbp)
je 0xf374
movb $0x0, %al
callq 0x9980
movq $0x9c40, 0xa926(%rip) # imm = 0x9C40
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %ecx
leaq 0xa911(%rip), %r8       # 0x19970
movq %rcx, %rsi
movq %rcx, %rdx
callq 0x50f0
movb $0x0, %al
callq 0x9980
movq $0x9c40, 0xa8fc(%rip) # imm = 0x9C40
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %ecx
leaq 0xa8e7(%rip), %r8       # 0x19970
movq %rcx, %rsi
movq %rcx, %rdx
callq 0x50f0
movb $0x0, %al
callq 0x9980
cvtsi2sdq -0x18(%rbp), %xmm0
movsd 0x58bf(%rip), %xmm1     # 0x14968
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
cmpq $0x124f8, -0x18(%rbp)   # imm = 0x124F8
jge 0xf0c8
xorps %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x5897(%rip), %xmm1     # 0x14970
ucomisd %xmm1, %xmm0
jbe 0xf0ec
movss 0x595d(%rip), %xmm0     # 0x14a44
movss %xmm0, -0x1c(%rbp)
leaq 0xa86d(%rip), %rax      # 0x19960
movq (%rax), %rax
cmpl $0x0, 0x30(%rax)
jne 0xf127
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm1
movsd 0x4f2c(%rip), %xmm0     # 0x14040
divsd %xmm0, %xmm1
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xf169
movq -0x38(%rbp), %rax
movl $0x20, (%rax)
movq -0x38(%rbp), %rax
movl $0x5, 0x4(%rax)
movss 0x5914(%rip), %xmm0     # 0x14a58
movss %xmm0, -0x20(%rbp)
movq -0x38(%rbp), %rax
movss 0x58ff(%rip), %xmm0     # 0x14a54
movss %xmm0, 0x14(%rax)
movss 0x58ee(%rip), %xmm0     # 0x14a50
movss %xmm0, -0x24(%rbp)
jmp 0xf1a9
movq -0x38(%rbp), %rax
movl $0x10, (%rax)
movq -0x38(%rbp), %rax
movl $0x4, 0x4(%rax)
movss 0x58ba(%rip), %xmm0     # 0x14a40
movss %xmm0, -0x20(%rbp)
movq -0x38(%rbp), %rax
movss 0x58b5(%rip), %xmm0     # 0x14a4c
movss %xmm0, 0x14(%rax)
movss 0x58a4(%rip), %xmm0     # 0x14a48
movss %xmm0, -0x24(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4e7f(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movss -0x20(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4e4d(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x4e99(%rip), %xmm1     # 0x14098
ucomisd %xmm1, %xmm0
jbe 0xf21c
movss -0x28(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x40(%rbp), %rax
movss 0x20(%rax), %xmm0
addss -0x28(%rbp), %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x51d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x5570
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x40(%rbp), %rax
movss 0xc(%rax), %xmm1
movss -0x24(%rbp), %xmm0
movss -0x30(%rbp), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x40(%rbp), %rax
movss 0x10(%rax), %xmm1
movss -0x24(%rbp), %xmm0
movss -0x2c(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x38(%rbp), %rax
movl $0x3, 0x8(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4d6b(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x5697(%rip), %xmm1     # 0x14978
mulsd %xmm1, %xmm0
movss -0x20(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4d2d(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x4d79(%rip), %xmm1     # 0x14098
ucomisd %xmm1, %xmm0
jbe 0xf33c
movss -0x28(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x40(%rbp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x562f(%rip), %xmm1     # 0x14980
subsd %xmm1, %xmm0
movss -0x28(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x20(%rax)
jmp 0xf570
cvtsi2sdq -0x18(%rbp), %xmm1
movsd 0x55ce(%rip), %xmm0     # 0x14950
subsd %xmm1, %xmm0
movsd 0x55ba(%rip), %xmm1     # 0x14948
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x5594(%rip), %xmm0     # 0x14940
ucomisd %xmm1, %xmm0
jbe 0xf3bf
movss 0x5686(%rip), %xmm0     # 0x14a40
movss %xmm0, -0x1c(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm1
movsd 0x4c69(%rip), %xmm0     # 0x14040
divsd %xmm0, %xmm1
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xf401
movq -0x38(%rbp), %rax
movl $0x4, (%rax)
movq -0x38(%rbp), %rax
movl $0x2, 0x4(%rax)
jmp 0xf416
movq -0x38(%rbp), %rax
movl $0x8, (%rax)
movq -0x38(%rbp), %rax
movl $0x3, 0x4(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4c12(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x551e(%rip), %xmm1     # 0x14958
mulsd %xmm1, %xmm0
movsd 0x551a(%rip), %xmm1     # 0x14960
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x24(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4bd5(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x53e1(%rip), %xmm1     # 0x14858
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x40(%rbp), %rax
movss 0xc(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x78(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x51d0
movsd -0x78(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x70(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x40(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x5570
movsd -0x68(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x60(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x38(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x14(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4af8(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x5304(%rip), %xmm1     # 0x14858
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x20(%rax)
movq -0x38(%rbp), %rax
movl $0x3, 0x8(%rax)
movq -0x38(%rbp), %rax
movss 0x52bc(%rip), %xmm0     # 0x14838
movss %xmm0, 0x38(%rax)
movq -0x38(%rbp), %rax
movss 0x52a7(%rip), %xmm0     # 0x14834
movss %xmm0, 0x3c(%rax)
movl 0xa7d0(%rip), %eax      # 0x19d68
cmpl 0xa3ca(%rip), %eax      # 0x19968
jle 0xf847
movl -0x54(%rbp), %eax
leaq 0xa3b2(%rip), %rcx      # 0x19960
movq (%rcx), %rcx
cmpl 0x8(%rcx), %eax
jge 0xf847
movq -0x8(%rbp), %rax
leaq 0xa39b(%rip), %rcx      # 0x19960
movq (%rcx), %rcx
movslq 0x24(%rcx), %rcx
imulq $0x660, %rcx, %rcx      # imm = 0x660
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
leaq 0xa377(%rip), %rdx      # 0x19960
movq (%rdx), %rdx
movslq 0x28(%rdx), %rdx
imulq $0x660, %rdx, %rdx      # imm = 0x660
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0xf624
movq -0x38(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x119, %eax            # imm = 0x119
cmpl $0x0, %eax
jne 0xf612
jmp 0xf624
jmp 0xf614
movq -0x38(%rbp), %rax
addq $0x660, %rax            # imm = 0x660
movq %rax, -0x38(%rbp)
jmp 0xf5da
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
leaq 0xa32d(%rip), %rdx      # 0x19960
movq (%rdx), %rdx
movslq 0x28(%rdx), %rdx
imulq $0x660, %rdx, %rdx      # imm = 0x660
addq %rdx, %rcx
cmpq %rcx, %rax
jne 0xf66f
leaq 0x548f(%rip), %rdi      # 0x14adf
movb $0x0, %al
callq 0x5050
leaq 0x5461(%rip), %rdi      # 0x14abf
movb $0x0, %al
callq 0x5050
movl $0x1, %edi
callq 0x5100
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x49b9(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x4fe5(%rip), %xmm1     # 0x14678
mulsd %xmm1, %xmm0
movsd 0x52e9(%rip), %xmm1     # 0x14988
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x24(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x497c(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x5188(%rip), %xmm1     # 0x14858
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x40(%rbp), %rax
movss 0xc(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x51d0
movsd -0x98(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x90(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x40(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x88(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x5570
movsd -0x88(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x80(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x38(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x14(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x488d(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x5099(%rip), %xmm1     # 0x14858
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x20(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4858(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x4814(%rip), %xmm1     # 0x14008
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x2c(%rax)
movq -0x38(%rbp), %rax
movss 0x524b(%rip), %xmm0     # 0x14a5c
movss %xmm0, 0x3c(%rax)
movq -0x38(%rbp), %rax
movss 0x523a(%rip), %xmm0     # 0x14a5c
movss %xmm0, 0x38(%rax)
movq -0x38(%rbp), %rax
movl $0x40, (%rax)
movq -0x38(%rbp), %rax
movl $0x6, 0x4(%rax)
movq -0x38(%rbp), %rax
movl $0x3, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0xa10e(%rip), %rcx      # 0x19960
movq (%rcx), %rcx
movslq 0x2c(%rcx), %rcx
imulq $0x660, %rcx, %rcx      # imm = 0x660
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
leaq 0xa0ea(%rip), %rdx      # 0x19960
movq (%rdx), %rdx
movslq 0x1c(%rdx), %rdx
imulq $0x660, %rdx, %rdx      # imm = 0x660
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0xfaad
movq -0x38(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0xfa98
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4785(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x47d1(%rip), %xmm1     # 0x14098
ucomisd %xmm1, %xmm0
jbe 0xf906
movq -0x38(%rbp), %rax
movl $0x2, (%rax)
movq -0x38(%rbp), %rax
movl $0x1, 0x4(%rax)
movq -0x38(%rbp), %rax
movss 0x5176(%rip), %xmm0     # 0x14a64
movss %xmm0, 0x3c(%rax)
movq -0x38(%rbp), %rax
movss 0x5165(%rip), %xmm0     # 0x14a64
movss %xmm0, 0x38(%rax)
jmp 0xf93d
movq -0x38(%rbp), %rax
movl $0x1, (%rax)
movq -0x38(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x38(%rbp), %rax
movss 0x5139(%rip), %xmm0     # 0x14a60
movss %xmm0, 0x3c(%rax)
movq -0x38(%rbp), %rax
movss 0x5128(%rip), %xmm0     # 0x14a60
movss %xmm0, 0x38(%rax)
movq -0x38(%rbp), %rax
movl $0x3, 0x8(%rax)
movq -0x40(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xf996
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x46d1(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x5015(%rip), %xmm1     # 0x14990
mulsd %xmm1, %xmm0
movsd 0x5011(%rip), %xmm1     # 0x14998
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x24(%rbp)
jmp 0xf9a3
movss 0x50ca(%rip), %xmm0     # 0x14a68
movss %xmm0, -0x24(%rbp)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0x4685(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0x4e91(%rip), %xmm1     # 0x14858
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x40(%rbp), %rax
movss 0xc(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xb8(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xb0(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x51d0
movsd -0xb8(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xb0(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x40(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xa8(%rbp)
movss -0x24(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
movss -0x28(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x5570
movsd -0xa8(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xa0(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x38(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x38(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x14(%rax)
jmp 0xfa9a
movq -0x38(%rbp), %rax
addq $0x660, %rax            # imm = 0x660
movq %rax, -0x38(%rbp)
jmp 0xf867
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)