// File: /workspace/github_c_makefile_star2_O0/jrrk[P]cbzone/c_explode.c
// Function: explodeobject
void explodeobject(g, pl)
     Genericp g, pl;
{
  static float vars0[] = { 0.996195,  0.087156,  0.996195,  0.087156};
  static float vars1[] = { 0.996195, -0.087156,  0.996195, -0.087156};
  static float vars2[] = { 0.819152,  0.573576,  0.996195,  0.087156};
  static Coord3d tank0[] = {
     30, -53, -15,    35, -60,  15,    35,  60,  -5,    30,  37, -15,
    -30,  37, -15,   -35,  60,  -5,   -35, -60,  15,   -30, -53, -15,
     30, -53, -15,    30,  37, -15,    35, -60,  15,   -35, -60,  15,
     35,  60,  -5,   -35,  60,  -5,   -30, -53, -15,   -30,  37, -15};
  static int tank0pnum[] = {10, 0};
  static int tank0mnum[] = {6, 0};
  static Method tank0methods[] = {16, calcpointsV, NULL,
                                    0, NULL, NULL};
  static Coord3d tank1[] = {
    -10, -50,  10,   -10, -18,  10,    10, -18,  10,    10, -50,  10,
     25, -55, -11,    25,  55, -20,    10, -18,  10,   -10, -18,  10,
    -25,  55, -20,   -25, -55, -11,   -10, -50,  10,    10, -50,  10};
  static int tank1pnum[] = {12, 0};
  static int tank1mnum[] = {0};
  static Method tank1methods[] = {12, calcpointsV, NULL,
                                    0, NULL, NULL};
  static Coord3d tank2[] = {
     -3,  28,  -3,     3,  28,  -3,     3,  28,   3,    -3,  28,   3,
     -3,  28,  -3,     3, -28,   3,     3,  28,   3,    -3, -28,   3,
     -3,  28,   3,    -3, -13,  -3,    -3,  28,  -3,     3, -13,  -3,
      3,  28,  -3};
  static int tank2pnum[] = {5, 0};
  static int tank2mnum[] = {8, 0};
  static Method tank2methods[] = {13, calcpointsV, NULL,
                                    0, NULL, NULL};
  static StaticDC tankstaticdcs[] = {
    tank0, tank0pnum, tank0mnum, tank0methods, COLOR_TANK,
    tank1, tank1pnum, tank1mnum, tank1methods, COLOR_TANK,
    tank2, tank2pnum, tank2mnum, tank2methods, COLOR_TANK};
  static float* tankvars[] = {vars0, vars0, vars1};
  static float tankyoffsets[] = {0.0, 5.0, 32.0};
  static float tankzoffsets[] = {-25.0, 0.0, 0.0};

  static Coord3d super0[] = {
     15,  60, -15,    30, -60, -15,    30, -60,  19,    15,  60, -15,
    -15,  60, -15,   -30, -60, -15,   -30, -60,  19,   -15,  60, -15,
    -30, -60,  19,    30, -60,  19,   -30, -60, -15,    30, -60, -15};
  static int super0pnum[] = {8, 0};
  static int super0mnum[] = {4, 0};
  static Method super0methods[] = {12, calcpointsV, NULL,
                                   0, NULL, NULL};
  static Coord3d super1[] = {
      0,  47, -18,    13, -48,   9,    11, -48,  19,    11, -13,  19,
      0,  47, -18,   -13, -48,   9,   -11, -48,  19,   -11, -13,  19,
      0,  47, -18,    11, -48,  19,   -11, -48,  19,    11, -13,  19,
    -11, -13,  19};
  static int super1pnum[] = {9, 0};
  static int super1mnum[] = {4, 0};
  static Method super1methods[] = {13, calcpointsV, NULL,
                                   0, NULL, NULL};
  static Coord3d super2[] = {
      3, -36,   0,     3,  36,   0,    -3, -36,   0,    -3,  36,   0,
      3, -27,  -6,     3,  36,  -6,    -3, -27,  -6,    -3,  36,  -6,
      3,  36,  -6,     3,  36,   0,    -3,  36,   0,    -3,  36,  -6,
      3,  36,  -6};
  static int super2pnum[] = {4, 0};
  static int super2mnum[] = {5, 0};
  static Method super2methods[] = {9, calcpointsV, NULL,
                                   0, NULL, NULL};

  static StaticDC superstaticdcs[] = {
    super0, super0pnum, super0mnum, super0methods, COLOR_SUPER,
    super1, super1pnum, super1mnum, super1methods, COLOR_SUPER,
    super2, super2pnum, super2mnum, super2methods, COLOR_SUPER};
  static float superyoffsets[] = {0.0, -12.0, 19.0};
  static float superzoffsets[] = {-25.0, -15.0, 0.0};

  static Coord3d missile0[] = {
     15, -30, -25,    25, -30,   0,     0, -45,   0,    15, -30, -25,
    -15, -30, -25,     0, -45,   0,    15, -30,  25,   -15, -30,  25,
      0, -45,   0,   -25, -30,   0,   -15, -30,  25};
  static int missile0pnum[] = {11, 0};
  static int missile0mnum[] = {0};
  static Method missile0methods[] = {11, calcpointsV, NULL,
                                     0, NULL, NULL};
  static Coord3d missile1[] = {
     15, -30, -25,     0,  50,   0,    25, -30,   0,    15, -30,  25,
      0,  50,   0,   -15, -30, -25,   -25, -30,   0,     0,  50,   0,
    -15, -30,  25};
  static int missile1pnum[] = {9, 0};
  static int missile1mnum[] = {0};
  static Method missile1methods[] = {9, calcpointsV, NULL,
                                     0, NULL, NULL};
  static Coord3d missile2[] = {
     13, -17, 11,    15, -30,   5,    23, -38, -10,    23,   0, -10,
     13, -17, 11};
  static int missile2pnum[] = {5, 0};
  static int missile2mnum[] = {0};
  static Method missile2methods[] = {5, calcpointsV, NULL,
                                     0, NULL, NULL};
  static Coord3d missile3[] = {
    -13, -17, 11,   -15, -30,   5,   -23, -38, -10,   -23,   0, -10,
    -13, -17, 11};
  static int missile3pnum[] = {5, 0};
  static int missile3mnum[] = {0};
  static Method missile3methods[] = {5, calcpointsV, NULL,
                                     0, NULL, NULL};

  static StaticDC missilestaticdcs[] = {
    missile0, missile0pnum, missile0mnum, missile0methods, COLOR_MISSILE,
    missile1, missile1pnum, missile1mnum, missile1methods, COLOR_MISSILE,
    missile2, missile2pnum, missile2mnum, missile2methods, COLOR_MISSILE,
    missile3, missile3pnum, missile3mnum, missile3methods, COLOR_MISSILE};
  static float* missilevars[] = {vars0, vars0, vars1, vars1};
  static float missileyoffsets[] = {0.0, 0.0, 0.0, 0.0};
  static float missilezoffsets[] = {0.0, 0.0, -30.0, -30.0};

  static Coord3d copter0[] = {
      6,  100,   0,     6,  100,   0,    -6, -100,   0,     6, -100,   0,
     -6,  100,   0,     6,  100,   0};
  static int copter0pnum[] = {6, 0};
  static int copter0mnum[] = {0};
  static Method copter0methods[] = {6, calcpointsVI, NULL,
                                    0, NULL, NULL};
  static Coord3d copter1[] = {
      0,  -32, -10,     7,   52, -34,    10,   48, -14,     0,  -34,   0,
      0,  -52,  28,     0,  -62,  28,     0,  -48, -10,     0,  -32, -10,
     -7,   52, -34,   -10,   48, -14,     0,  -34,   0};
  static int copter1pnum[] = {11, 0};
  static int copter1mnum[] = {0};
  static Method copter1methods[] = {11, calcpointsV, NULL,
                                    0, NULL, NULL};
  static Coord3d copter2[] = {
    -14,   34, -34,    14,   34, -34,     0,   60, -14,   -14,   34, -34,
     -7,  -30, -34,     7,  -30, -34,    14,   34, -34,    26,   34, -14,
      0,   60, -14,   -26,   34, -14,   -10,  -34, -14,    10,  -34, -14,
     26,   34, -14,     4,   20,  16,     0,   22,  16,    -4,   20,  16,
     -4,  -22,  16,     4,  -22,  16,     4,   20,  16,   -10,  -34, -14,
     -4,  -22,  16,    10,  -34, -14,     4,  -22,  16,     0,   22,  16,
      0,   60, -14,   -14,   34, -34,   -26,   34, -14,   -26,   34, -14,
     -4,   20,  16};
  static int copter2pnum[] = {19, 0};
  static int copter2mnum[] = {10, 0};
  static Method copter2methods[] = {29, calcpointsV, NULL,
                                    0, NULL, NULL};

  static StaticDC copterstaticdcs[] = {
    copter0, copter0pnum, copter0mnum, copter0methods, COLOR_COPTER,
    copter1, copter1pnum, copter1mnum, copter1methods, COLOR_COPTER,
    copter2, copter2pnum, copter2mnum, copter2methods, COLOR_COPTER};
  static float* coptervars[] = {vars2, vars0, vars1};
  static float copteryoffsets[] = {0.0, -82.0, 0.0};
  static float copterzoffsets[] = {30.0, 0.0, 0.0};

  static StaticDCp staticdcs[] = {
    NULL, NULL, tankstaticdcs, superstaticdcs,
    missilestaticdcs, copterstaticdcs};
  static float* yoffsets[] = {
    NULL, NULL, tankyoffsets, superyoffsets,
    missileyoffsets, copteryoffsets};
  static float* zoffsets[] = {
    NULL, NULL, tankzoffsets, superzoffsets,
    missilezoffsets, copterzoffsets};
  static float* *vars[] = {
    NULL, NULL, tankvars, tankvars,
    missilevars, coptervars};
  static int pieces[] = {0, 0, 3, 3, 4, 3};
  static float gravity = 1.0;

  int color, i, j, p;
  DCp dc;
  Methodp methods;
  float yoffset, dx, dy, temp;
  static int threshold = 0.8;
  Float2d pro;
  float* v;

  if (g->type == IS_LANDER) {
    if (g->attr & EXERASE || g->ecount >= 40) {
      g->dc[0].seen = False;
      drawobject(g, pl);
      g->attr = 0;
      return;
    }                                   /* lander just blinks on every */
    if (g->dc[0].seen && g->ccount%3)   /* 3rd cycle                   */
      g->dc[0].seen = False;
    else
      g->ccount = 0;
    drawobject(g, pl);
    g->ccount++;
    return;
  }

  p = pieces[g->lntype];
  gprsetdrawvalue(opt->cpi[COLOR_BG]);
  for (i=0; i<p; i++) {
    dc = &g->dc[i];
    if (dc->last)
      displayobject(dc);
  }
  if (g->attr & EXERASE || g->ecount >= 40) {
    g->attr = 0;
    return;
  }

  if (!(g->attr & HAS_DC)) {
    g->attr |= HAS_DC;
    for (i=0; i<p; i++) {
      dc = &g->dc[i];
      dc->s = staticdcs[g->lntype]+i;

      switch (g->type) {
      case IS_CUBE:
      case IS_PYRAMID:
      case IS_LANDER:
      case IS_MISSILE:
      case IS_COPTER:
      case IS_SUPER:
      case IS_TANK:
        dc->fades = opt->fading_colors - 1;
        dc->basecolor = dc->s->basecolor;
        break;
      case IS_SALVO:
        dc->fades = False;
        if (g->salvo == pl)
          dc->basecolor = COLOR_PSALVO;
        else
          dc->basecolor = COLOR_ESALVO;
        break;
      }

      dc->cta = g->ca;
      dc->sta = g->sa;
      dc->ctp = 1.0;
      dc->stp = 0.0;
      yoffset = *(yoffsets[g->lntype]+i);
      dc->pos.x = -yoffset * g->sa;
      dc->pos.y = yoffset * g->sa;
      dc->pos.z = g->z + *(zoffsets[g->lntype]+i);
      dc->vel.x = frand() * 20.0 - 10.0;
      dc->vel.y = frand() * 20.0 - 10.0;
      dc->vel.z = 12.5 + frand() * 7.5;
    }
    if (g->type == IS_COPTER)
      g->dc[0].vel.z += 6.0;
  }

  for (i=0; i<p; i++) {
    dc = &g->dc[i];
    dx = g->x + dc->pos.x - pl->x;
    dy = g->y + dc->pos.y - pl->y;
    if (sqrt(dx*dx + dy*dy) < 2000.0) {
      if (dc->fades) {
        color = g->range/OUT_OF_DRAWING_RANGE * opt->fading_colors;
        if (color >= opt->fading_colors)
          color = opt->fading_colors-1;
      }
      else
        color = 0;
      gprsetdrawvalue(color + opt->cpi[dc->basecolor]);

      pro.x = dx * pl->ca + dy * pl->sa;
      pro.y = -dx * pl->sa + dy * pl->ca;

      if (pro.y/fabs(pro.x+1) > threshold) {
        methods = dc->s->methods;
        for (j=0; methods->num; methods++) {
          methods->calc(dc, methods, j, g, pl);
          j += methods->num;
        }

        displayobject(dc);
        dc->last = True;
      }
      else
        dc->last = False;
    }
    else
        dc->last = False;

    dc->pos.x += dc->vel.x;
    dc->pos.y += dc->vel.y;
    dc->vel.z -= gravity;
    dc->pos.z += dc->vel.z;
    if (dc->pos.z < -40.0) {
      dc->pos.z = -40.0;
      dc->vel.z *= -0.2;
    }

    v = vars[g->lntype][i];
    temp = dc->cta;
    dc->cta = dc->cta*v[0] - dc->sta*v[1];
    dc->sta = dc->sta*v[0] + temp*v[1];
    temp = dc->ctp;
    dc->ctp = dc->ctp*v[2] - dc->stp*v[3];
    dc->stp = dc->stp*v[2] + temp*v[3];
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x40, (%rax)
jne 0x7090
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x7006
movq -0x8(%rbp), %rax
cmpl $0x28, 0x44(%rax)
jl 0x7033
movq -0x8(%rbp), %rax
movl $0x0, 0x188(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movb $0x0, %al
callq 0x63a0
movq -0x8(%rbp), %rax
movl $0x0, 0x8(%rax)
jmp 0x78e0
movq -0x8(%rbp), %rax
cmpl $0x0, 0x188(%rax)
je 0x7064
movq -0x8(%rbp), %rax
movl 0x48(%rax), %eax
movl $0x3, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x7064
movq -0x8(%rbp), %rax
movl $0x0, 0x188(%rax)
jmp 0x706f
movq -0x8(%rbp), %rax
movl $0x0, 0x48(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movb $0x0, %al
callq 0x63a0
movq -0x8(%rbp), %rax
movl 0x48(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x48(%rax)
jmp 0x78e0
movq -0x8(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x11681(%rip), %rax     # 0x18720
movl (%rax,%rcx,4), %eax
movl %eax, -0x20(%rbp)
leaq 0x128b4(%rip), %rax     # 0x19960
movq (%rax), %rax
movl 0xf0(%rax), %edi
movb $0x0, %al
callq 0x9e90
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x710a
movq -0x8(%rbp), %rax
addq $0x60, %rax
movslq -0x18(%rbp), %rcx
imulq $0x130, %rcx, %rcx      # imm = 0x130
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpl $0x0, 0x12c(%rax)
je 0x70fd
movq -0x28(%rbp), %rdi
movb $0x0, %al
callq 0x62e0
jmp 0x70ff
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x70c3
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x7123
movq -0x8(%rbp), %rax
cmpl $0x28, 0x44(%rax)
jl 0x7133
movq -0x8(%rbp), %rax
movl $0x0, 0x8(%rax)
jmp 0x78e0
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
jne 0x7449
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
orl $0x1000, %ecx           # imm = 0x1000
movl %ecx, 0x8(%rax)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x7416
movq -0x8(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x130, %rcx, %rcx      # imm = 0x130
leaq 0x60(%rax,%rcx), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x114ce(%rip), %rax     # 0x18660
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
leaq (%rcx,%rcx,4), %rcx
leaq (%rax,%rcx,8), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x54(%rbp)
decl %eax
subl $0x2, %eax
jb 0x71f9
jmp 0x71bb
movl -0x54(%rbp), %eax
subl $0x4, %eax
je 0x71f9
jmp 0x71c5
movl -0x54(%rbp), %eax
subl $0x8, %eax
je 0x71f9
jmp 0x71cf
movl -0x54(%rbp), %eax
subl $0x10, %eax
je 0x71f9
jmp 0x71d9
movl -0x54(%rbp), %eax
subl $0x20, %eax
je 0x71f9
jmp 0x71e3
movl -0x54(%rbp), %eax
subl $0x40, %eax
je 0x71f9
jmp 0x71ed
movl -0x54(%rbp), %eax
subl $0x80, %eax
je 0x7226
jmp 0x725c
leaq 0x12760(%rip), %rax     # 0x19960
movq (%rax), %rax
movl 0x148(%rax), %ecx
subl $0x1, %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0xc(%rax)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl 0x20(%rax), %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x8(%rax)
jmp 0x725c
movq -0x28(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x8(%rbp), %rax
movq 0x650(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x724f
movq -0x28(%rbp), %rax
movl $0x4, 0x8(%rax)
jmp 0x725a
movq -0x28(%rbp), %rax
movl $0x8, 0x8(%rax)
jmp 0x725c
movq -0x8(%rbp), %rax
movss 0x24(%rax), %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x118(%rax)
movq -0x8(%rbp), %rax
movss 0x28(%rax), %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x11c(%rax)
movq -0x28(%rbp), %rax
movss 0xcde6(%rip), %xmm0     # 0x14078
movss %xmm0, 0x120(%rax)
movq -0x28(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x124(%rax)
movq -0x8(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x113d8(%rip), %rax     # 0x18690
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x34(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
mulss 0x28(%rax), %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x100(%rax)
movss -0x34(%rbp), %xmm0
movq -0x8(%rbp), %rax
mulss 0x28(%rax), %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x104(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x8(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1139d(%rip), %rax     # 0x186c0
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x108(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0xccec(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0xcce8(%rip), %xmm1     # 0x14048
mulsd %xmm1, %xmm0
movsd 0xcce4(%rip), %xmm1     # 0x14050
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x10c(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0xcca8(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0xcca4(%rip), %xmm1     # 0x14048
mulsd %xmm1, %xmm0
movsd 0xcca0(%rip), %xmm1     # 0x14050
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x110(%rax)
callq 0x5500
andq $0xffff, %rax           # imm = 0xFFFF
cvtsi2sd %rax, %xmm0
movsd 0xcc64(%rip), %xmm1     # 0x14040
divsd %xmm1, %xmm0
movsd 0xcc48(%rip), %xmm1     # 0x14030
mulsd %xmm1, %xmm0
movsd 0xcc44(%rip), %xmm1     # 0x14038
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x114(%rax)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x715f
movq -0x8(%rbp), %rax
cmpl $0x20, (%rax)
jne 0x7447
movq -0x8(%rbp), %rax
movss 0x174(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xcbf1(%rip), %xmm1     # 0x14028
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x174(%rax)
jmp 0x7449
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x78e0
movq -0x8(%rbp), %rax
addq $0x60, %rax
movslq -0x18(%rbp), %rcx
imulq $0x130, %rcx, %rcx      # imm = 0x130
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x28(%rbp), %rax
addss 0x100(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0xc(%rax), %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x28(%rbp), %rax
addss 0x104(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0x10(%rax), %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x38(%rbp), %xmm0
movss -0x38(%rbp), %xmm2
movss -0x3c(%rbp), %xmm1
mulss -0x3c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x5560
movaps %xmm0, %xmm1
movsd 0xcb24(%rip), %xmm0     # 0x14010
ucomisd %xmm1, %xmm0
jbe 0x76a7
movq -0x28(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0x7563
movq -0x8(%rbp), %rax
movss 0x34(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xcafb(%rip), %xmm1     # 0x14010
divsd %xmm1, %xmm0
leaq 0x12440(%rip), %rax     # 0x19960
movq (%rax), %rax
cvtsi2sdl 0x148(%rax), %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
leaq 0x12420(%rip), %rcx     # 0x19960
movq (%rcx), %rcx
cmpl 0x148(%rcx), %eax
jl 0x7561
leaq 0x1240e(%rip), %rax     # 0x19960
movq (%rax), %rax
movl 0x148(%rax), %eax
subl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x756a
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %edi
leaq 0x123ec(%rip), %rax     # 0x19960
movq (%rax), %rax
movq -0x28(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addl 0xf0(%rax,%rcx,4), %edi
movb $0x0, %al
callq 0x9e90
movss -0x38(%rbp), %xmm0
movq -0x10(%rbp), %rax
movss 0x24(%rax), %xmm2
movss -0x3c(%rbp), %xmm1
movq -0x10(%rbp), %rax
mulss 0x28(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x48(%rbp)
movss -0x38(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x10(%rbp), %rax
movss 0x28(%rax), %xmm2
movss -0x3c(%rbp), %xmm1
movq -0x10(%rbp), %rax
mulss 0x24(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x44(%rbp)
movss -0x44(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movss 0xca7b(%rip), %xmm1     # 0x14078
addss -0x48(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movaps 0xca73(%rip), %xmm2     # 0x14080
pand %xmm2, %xmm1
divsd %xmm1, %xmm0
cvtsi2sdl 0x1245b(%rip), %xmm1 # 0x19a78
ucomisd %xmm1, %xmm0
jbe 0x7697
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, (%rax)
je 0x767c
movq -0x30(%rbp), %rax
movq 0x8(%rax), %r9
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
movl -0x1c(%rbp), %edx
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %r8
movb $0x0, %al
callq *%r9
movq -0x30(%rbp), %rax
movl (%rax), %eax
addl -0x1c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movq -0x30(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x30(%rbp)
jmp 0x7639
movq -0x28(%rbp), %rdi
movb $0x0, %al
callq 0x62e0
movq -0x28(%rbp), %rax
movl $0x1, 0x12c(%rax)
jmp 0x76a5
movq -0x28(%rbp), %rax
movl $0x0, 0x12c(%rax)
jmp 0x76b5
movq -0x28(%rbp), %rax
movl $0x0, 0x12c(%rax)
movq -0x28(%rbp), %rax
movss 0x10c(%rax), %xmm0
movq -0x28(%rbp), %rax
addss 0x100(%rax), %xmm0
movss %xmm0, 0x100(%rax)
movq -0x28(%rbp), %rax
movss 0x110(%rax), %xmm0
movq -0x28(%rbp), %rax
addss 0x104(%rax), %xmm0
movss %xmm0, 0x104(%rax)
movss 0x1103b(%rip), %xmm1    # 0x18738
movq -0x28(%rbp), %rax
movss 0x114(%rax), %xmm0
subss %xmm1, %xmm0
movss %xmm0, 0x114(%rax)
movq -0x28(%rbp), %rax
movss 0x114(%rax), %xmm0
movq -0x28(%rbp), %rax
addss 0x108(%rax), %xmm0
movss %xmm0, 0x108(%rax)
movq -0x28(%rbp), %rax
movss 0x108(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xc90b(%rip), %xmm0     # 0x14058
ucomisd %xmm1, %xmm0
jbe 0x778f
movq -0x28(%rbp), %rax
movss 0xc91d(%rip), %xmm0     # 0x1407c
movss %xmm0, 0x108(%rax)
movq -0x28(%rbp), %rax
movss 0x114(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xc8e1(%rip), %xmm1     # 0x14060
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x114(%rax)
movq -0x8(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x10f52(%rip), %rax     # 0x186f0
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x50(%rbp)
movq -0x28(%rbp), %rax
movss 0x118(%rax), %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x28(%rbp), %rax
movss 0x118(%rax), %xmm0
movq -0x50(%rbp), %rax
movss (%rax), %xmm2
movq -0x28(%rbp), %rax
movss 0x11c(%rax), %xmm1
movq -0x50(%rbp), %rax
mulss 0x4(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x118(%rax)
movq -0x28(%rbp), %rax
movss 0x11c(%rax), %xmm0
movq -0x50(%rbp), %rax
movss (%rax), %xmm2
movss -0x40(%rbp), %xmm1
movq -0x50(%rbp), %rax
mulss 0x4(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x11c(%rax)
movq -0x28(%rbp), %rax
movss 0x120(%rax), %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x28(%rbp), %rax
movss 0x120(%rax), %xmm0
movq -0x50(%rbp), %rax
movss 0x8(%rax), %xmm2
movq -0x28(%rbp), %rax
movss 0x124(%rax), %xmm1
movq -0x50(%rbp), %rax
mulss 0xc(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x120(%rax)
movq -0x28(%rbp), %rax
movss 0x124(%rax), %xmm0
movq -0x50(%rbp), %rax
movss 0x8(%rax), %xmm2
movss -0x40(%rbp), %xmm1
movq -0x50(%rbp), %rax
mulss 0xc(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x28(%rbp), %rax
movss %xmm0, 0x124(%rax)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x7450
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)