// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/primordial.c
// Function: primordial_inflation_derivs
int primordial_inflation_derivs(
                                double tau,
                                double * y,
                                double * dy,
                                void * parameters_and_workspace,
                                ErrorMsg error_message
                                ) {

  struct primordial_inflation_parameters_and_workspace * ppipaw;
  struct primordial * ppm;

  ppipaw = (struct primordial_inflation_parameters_and_workspace *)parameters_and_workspace;
  ppm = ppipaw->ppm;

  // a2
  ppipaw->a2=y[ppm->index_in_a]*y[ppm->index_in_a];

  // BACKGROUND

  switch (ppm->primordial_spec_type) {

  case inflation_V:
  case inflation_V_end:

    class_call(primordial_inflation_potential(ppm,
                                              y[ppm->index_in_phi],
                                              &(ppipaw->V),
                                              &(ppipaw->dV),
                                              &(ppipaw->ddV)),
               ppm->error_message,
               ppm->error_message);

    switch (ppipaw->integrate) {

    case forward:

      switch (ppipaw->time) {

      case conformal:

        // a H = a'/a
        ppipaw->aH = sqrt((8*_PI_/3.)*(0.5*y[ppm->index_in_dphi]*y[ppm->index_in_dphi]+ppipaw->a2*ppipaw->V));
        // 1: a
        dy[ppm->index_in_a]=y[ppm->index_in_a]*ppipaw->aH;
        // 2: phi
        dy[ppm->index_in_phi]=y[ppm->index_in_dphi];
        // 3: dphi/dtau
        dy[ppm->index_in_dphi]=-2.*ppipaw->aH*y[ppm->index_in_dphi]-ppipaw->a2*ppipaw->dV;
        break;

      case proper:

        // a H = adot
        ppipaw->aH = y[ppm->index_in_a]*sqrt((8*_PI_/3.)*(0.5*y[ppm->index_in_dphi]*y[ppm->index_in_dphi]+ppipaw->V));
        // 1: a
        dy[ppm->index_in_a]=ppipaw->aH;
        // 2: phi
        dy[ppm->index_in_phi]=y[ppm->index_in_dphi];
        // 3: dphi/dt
        dy[ppm->index_in_dphi]=-3.*ppipaw->aH/y[ppm->index_in_a]*y[ppm->index_in_dphi]-ppipaw->dV;
        break;
      }

      // z''/z (assumes that conformal time is requested)
      ppipaw->zpp_over_z=
        2*ppipaw->aH*ppipaw->aH
        - ppipaw->a2*ppipaw->ddV
        - 4.*_PI_*(7.*y[ppm->index_in_dphi]*y[ppm->index_in_dphi]
                   +4.*y[ppm->index_in_dphi]/ppipaw->aH*ppipaw->a2*ppipaw->dV)
        +32.*_PI_*_PI_*pow(y[ppm->index_in_dphi],4)/pow(ppipaw->aH,2);

      // a''/a (assumes that conformal time is requested)
      ppipaw->app_over_a=2.*ppipaw->aH*ppipaw->aH - 4.*_PI_*y[ppm->index_in_dphi]*y[ppm->index_in_dphi];

      break;

      // For backward integration of approximate slow-roll solution:
      // Neglect kinetic energy of the field phi'^2/(2a^2) w.r.t. potential energy V
      // Neglect phi'' w.r.t 2aHphi', reducing 2nd order Klein-Gordon to approximate 1st-order
    case backward:

      switch (ppipaw->time) {

      case conformal:

        // a H = a'/a
        ppipaw->aH = sqrt((8*_PI_/3.)*ppipaw->a2*ppipaw->V);
        // 1: a
        dy[ppm->index_in_a]=y[ppm->index_in_a]*ppipaw->aH;
        // 2: phi
        dy[ppm->index_in_phi]= -ppipaw->a2*ppipaw->dV/3./ppipaw->aH;
        break;

      case proper:

        // a H = da/dt
        ppipaw->aH = y[ppm->index_in_a]*sqrt((8*_PI_/3.)*ppipaw->V);
        // 1: a
        dy[ppm->index_in_a]=ppipaw->aH;
        // 2: phi
        dy[ppm->index_in_phi]= -ppipaw->dV/3./ppipaw->aH*y[ppm->index_in_a];
        break;
      }

      break;
    }

    break;

  case inflation_H:

    class_call(primordial_inflation_hubble(ppm,
                                           y[ppm->index_in_phi],
                                           &(ppipaw->H),
                                           &(ppipaw->dH),
                                           &(ppipaw->ddH),
                                           &(ppipaw->dddH)),
               ppm->error_message,
               ppm->error_message);

    switch (ppipaw->time) {

    case conformal:

      // 1: a
      dy[ppm->index_in_a]=ppipaw->a2*ppipaw->H;
      // 2: phi
      dy[ppm->index_in_phi]=-1./4./_PI_*y[ppm->index_in_a]*ppipaw->dH;
      break;

    case proper:

      // 1: a
      dy[ppm->index_in_a]=y[ppm->index_in_a]*ppipaw->H;
      // 2: phi
      dy[ppm->index_in_phi]=-1./4./_PI_*ppipaw->dH;
      break;
    }

    // z''/z (assumes that conformal time is requested)
    ppipaw->zpp_over_z =
      2.               *ppipaw->a2*ppipaw->H*ppipaw->H
      -3./4./_PI_      *ppipaw->a2*ppipaw->H*ppipaw->ddH
      +1./16./_PI_/_PI_*ppipaw->a2*ppipaw->ddH*ppipaw->ddH
      +1./16./_PI_/_PI_*ppipaw->a2*ppipaw->dH*ppipaw->dddH
      -1./4./_PI_/_PI_ *ppipaw->a2*ppipaw->dH*ppipaw->dH*ppipaw->ddH/ppipaw->H
      +1./2./_PI_      *ppipaw->a2*ppipaw->dH*ppipaw->dH
      +1./8./_PI_/_PI_ *ppipaw->a2*ppipaw->dH*ppipaw->dH*ppipaw->dH*ppipaw->dH/ppipaw->H/ppipaw->H;

    // a''/a (assumes that conformal time is requested)
    ppipaw->app_over_a = 2.*ppipaw->a2*ppipaw->H*ppipaw->H
      -4.*_PI_*dy[ppm->index_in_phi]*dy[ppm->index_in_phi];

    break;

  default:
    class_stop(ppm->error_message,"ppm->primordial_spec_type=%d different from possible relevant cases",ppm->primordial_spec_type);
    break;

  }

  if (ppipaw->N <= ppm->in_bg_size) // mind the <= instead of ==, necessary because for backward integration 1 equation is removed
    return _SUCCESS_;

  // PERTURBATIONS

  class_test(ppipaw->time == proper,
             ppm->error_message,
             "For inflaton perturbations, only conformal time is coded.");

  // SCALARS
  // 4: ksi_re
  dy[ppm->index_in_ksi_re]=y[ppm->index_in_dksi_re];
  // 5: ksi_im
  dy[ppm->index_in_ksi_im]=y[ppm->index_in_dksi_im];
  // 6: d ksi_re / dtau
  dy[ppm->index_in_dksi_re]=-(ppipaw->k*ppipaw->k-ppipaw->zpp_over_z)*y[ppm->index_in_ksi_re];
  // 7: d ksi_im / dtau
  dy[ppm->index_in_dksi_im]=-(ppipaw->k*ppipaw->k-ppipaw->zpp_over_z)*y[ppm->index_in_ksi_im];

  // TENSORS
  // 8: ah_re
  dy[ppm->index_in_ah_re]=y[ppm->index_in_dah_re];
  // 9: ah_im
  dy[ppm->index_in_ah_im]=y[ppm->index_in_dah_im];
  // 10: d ah_re / dtau
  dy[ppm->index_in_dah_re]=-(ppipaw->k*ppipaw->k-ppipaw->app_over_a)*y[ppm->index_in_ah_re];
  // 11: d ah_im / dtau
  dy[ppm->index_in_dah_im]=-(ppipaw->k*ppipaw->k-ppipaw->app_over_a)*y[ppm->index_in_ah_im];

  return _SUCCESS_;
}

// Assembly:
subq $0x3088, %rsp           # imm = 0x3088
movsd %xmm0, 0x3078(%rsp)
movq %rdi, 0x3070(%rsp)
movq %rsi, 0x3068(%rsp)
movq %rdx, 0x3060(%rsp)
movq %rcx, 0x3058(%rsp)
movq 0x3060(%rsp), %rax
movq %rax, 0x3050(%rsp)
movq 0x3050(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x3048(%rsp)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
mulsd %xmm0, %xmm0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x10(%rax)
movq 0x3048(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x3c(%rsp)
subl $0x2, %eax
je 0x11f7a4
jmp 0x11f786
movl 0x3c(%rsp), %eax
subl $0x3, %eax
je 0x11ffe5
jmp 0x11f795
movl 0x3c(%rsp), %eax
subl $0x4, %eax
jne 0x120455
jmp 0x11f7a4
movq 0x3048(%rsp), %rdi
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3050(%rsp), %rsi
addq $0x18, %rsi
movq 0x3050(%rsp), %rdx
addq $0x20, %rdx
movq 0x3050(%rsp), %rcx
addq $0x28, %rcx
callq 0x1189b0
cmpl $0x1, %eax
jne 0x11f863
leaq 0x2840(%rsp), %rdi
movq 0x3048(%rsp), %rcx
addq $0x32a, %rcx            # imm = 0x32A
leaq 0xb2bc4(%rip), %rsi     # 0x1d23d8
leaq 0xdf86f(%rip), %rdx     # 0x1ff08a
movb $0x0, %al
callq 0x5b9c0
movq 0x3048(%rsp), %rdi
addq $0x32a, %rdi            # imm = 0x32A
leaq 0x2840(%rsp), %r8
leaq 0xb27f4(%rip), %rsi     # 0x1d2034
leaq 0xdf8aa(%rip), %rdx     # 0x1ff0f1
movl $0xc14, %ecx            # imm = 0xC14
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3084(%rsp)
jmp 0x1208cb
movq 0x3050(%rsp), %rax
movl 0x70(%rax), %eax
movl %eax, 0x38(%rsp)
testl %eax, %eax
je 0x11fddf
jmp 0x11f87c
movl 0x38(%rsp), %eax
subl $0x1, %eax
jne 0x11ffe0
jmp 0x11f88b
movq 0x3050(%rsp), %rax
movl 0x74(%rax), %eax
movl %eax, 0x34(%rsp)
testl %eax, %eax
je 0x11f8b2
jmp 0x11f8a0
movl 0x34(%rsp), %eax
subl $0x1, %eax
je 0x11fa3a
jmp 0x11fbd2
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd 0xb33b7(%rip), %xmm1    # 0x1d2c88
mulsd (%rax,%rcx,8), %xmm1
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x18(%rax), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0xdcabc(%rip), %xmm0    # 0x1fc3d8
mulsd %xmm1, %xmm0
callq 0x82e0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x30(%rax)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x30(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0xb3dc1(%rip), %xmm0    # 0x1d3780
mulsd 0x30(%rax), %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x10(%rax), %xmm1
movq 0x3050(%rsp), %rax
mulsd 0x20(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x11fbd2
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x28(%rsp)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd 0xb320d(%rip), %xmm1    # 0x1d2c88
mulsd (%rax,%rcx,8), %xmm1
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x18(%rax), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0xdc91f(%rip), %xmm0    # 0x1fc3d8
mulsd %xmm1, %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x28(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x30(%rax)
movq 0x3050(%rsp), %rax
movsd 0x30(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0xb5e5b(%rip), %xmm0    # 0x1d59a8
mulsd 0x30(%rax), %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
divsd (%rax,%rcx,8), %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x20(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0xb309e(%rip), %xmm1    # 0x1d2c80
mulsd 0x30(%rax), %xmm1
movq 0x3050(%rsp), %rax
movsd 0x30(%rax), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x28(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd 0xb3b3c(%rip), %xmm0    # 0x1d3788
mulsd (%rax,%rcx,8), %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm3
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd 0xb583c(%rip), %xmm2    # 0x1d54c8
mulsd (%rax,%rcx,8), %xmm2
movq 0x3050(%rsp), %rax
divsd 0x30(%rax), %xmm2
movq 0x3050(%rsp), %rax
mulsd 0x10(%rax), %xmm2
movq 0x3050(%rsp), %rax
mulsd 0x20(%rax), %xmm2
mulsd %xmm3, %xmm0
addsd %xmm2, %xmm0
movsd 0xdc760(%rip), %xmm2    # 0x1fc428
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movl $0x4, %edi
callq 0x5b970
movaps %xmm0, %xmm1
movsd 0xdc719(%rip), %xmm0    # 0x1fc420
mulsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rsp)
movq 0x3050(%rsp), %rax
movsd 0x30(%rax), %xmm0
movl $0x2, %edi
callq 0x5b970
movsd 0x18(%rsp), %xmm1
movaps %xmm0, %xmm2
movsd 0x20(%rsp), %xmm0
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x58(%rax)
movq 0x3050(%rsp), %rax
movsd 0xb2f24(%rip), %xmm0    # 0x1d2c80
mulsd 0x30(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x30(%rax), %xmm2
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
movsd 0xb6a83(%rip), %xmm1    # 0x1d6810
mulsd (%rax,%rcx,8), %xmm1
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d8(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x60(%rax)
jmp 0x11ffe0
movq 0x3050(%rsp), %rax
movl 0x74(%rax), %eax
movl %eax, 0x14(%rsp)
testl %eax, %eax
je 0x11fe06
jmp 0x11fdf4
movl 0x14(%rsp), %eax
subl $0x1, %eax
je 0x11feea
jmp 0x11ffde
movq 0x3050(%rsp), %rax
movsd 0xdc5c2(%rip), %xmm0    # 0x1fc3d8
mulsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x18(%rax), %xmm0
callq 0x82e0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x30(%rax)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x30(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0x10(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x20(%rax), %xmm0
movsd 0xb37e0(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
divsd 0x30(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x11ffde
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8(%rsp)
movq 0x3050(%rsp), %rax
movsd 0xdc4bc(%rip), %xmm0    # 0x1fc3d8
mulsd 0x18(%rax), %xmm0
callq 0x82e0
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x30(%rax)
movq 0x3050(%rsp), %rax
movsd 0x30(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0x20(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0xb3703(%rip), %xmm1    # 0x1d3698
divsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
divsd 0x30(%rax), %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x11ffe0
jmp 0x1204d5
movq 0x3048(%rsp), %rdi
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3050(%rsp), %rsi
addq $0x38, %rsi
movq 0x3050(%rsp), %rdx
addq $0x40, %rdx
movq 0x3050(%rsp), %rcx
addq $0x48, %rcx
movq 0x3050(%rsp), %r8
addq $0x50, %r8
callq 0x119520
cmpl $0x1, %eax
jne 0x1200b0
leaq 0x2040(%rsp), %rdi
movq 0x3048(%rsp), %rcx
addq $0x32a, %rcx            # imm = 0x32A
leaq 0xb2377(%rip), %rsi     # 0x1d23d8
leaq 0xdf0a5(%rip), %rdx     # 0x1ff10d
movb $0x0, %al
callq 0x5b9c0
movq 0x3048(%rsp), %rdi
addq $0x32a, %rdi            # imm = 0x32A
leaq 0x2040(%rsp), %r8
leaq 0xb1fa7(%rip), %rsi     # 0x1d2034
leaq 0xdf05d(%rip), %rdx     # 0x1ff0f1
movl $0xc6c, %ecx            # imm = 0xC6C
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3084(%rsp)
jmp 0x1208cb
movq 0x3050(%rsp), %rax
movl 0x74(%rax), %eax
movl %eax, 0x4(%rsp)
testl %eax, %eax
je 0x1200d7
jmp 0x1200c5
movl 0x4(%rsp), %eax
subl $0x1, %eax
je 0x12015c
jmp 0x1201d2
movq 0x3050(%rsp), %rax
movsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x38(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd 0xdc2c4(%rip), %xmm0    # 0x1fc3f0
mulsd (%rax,%rcx,8), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x1201d2
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x38(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0xdc23f(%rip), %xmm0    # 0x1fc3f0
mulsd 0x40(%rax), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0xb2a9e(%rip), %xmm1    # 0x1d2c80
mulsd 0x10(%rax), %xmm1
movq 0x3050(%rsp), %rax
mulsd 0x38(%rax), %xmm1
movq 0x3050(%rsp), %rax
movsd 0x38(%rax), %xmm2
movq 0x3050(%rsp), %rax
movsd 0xdc207(%rip), %xmm0    # 0x1fc418
mulsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x38(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x48(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x3050(%rsp), %rax
movsd 0xdc1b1(%rip), %xmm0    # 0x1fc410
mulsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x48(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x48(%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd 0xdc17a(%rip), %xmm1    # 0x1fc410
mulsd 0x10(%rax), %xmm1
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm1
movq 0x3050(%rsp), %rax
movsd 0x50(%rax), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x3050(%rsp), %rax
movsd 0xdc13b(%rip), %xmm0    # 0x1fc408
mulsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x48(%rax), %xmm0
movq 0x3050(%rsp), %rax
divsd 0x38(%rax), %xmm0
subsd %xmm0, %xmm1
movq 0x3050(%rsp), %rax
movsd 0xdc0e6(%rip), %xmm0    # 0x1fc400
mulsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x40(%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd 0xdc0a7(%rip), %xmm1    # 0x1fc3f8
mulsd 0x10(%rax), %xmm1
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm1
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm1
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm1
movq 0x3050(%rsp), %rax
mulsd 0x40(%rax), %xmm1
movq 0x3050(%rsp), %rax
divsd 0x38(%rax), %xmm1
movq 0x3050(%rsp), %rax
divsd 0x38(%rax), %xmm1
addsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x58(%rax)
movq 0x3050(%rsp), %rax
movsd 0xb28bb(%rip), %xmm0    # 0x1d2c80
mulsd 0x10(%rax), %xmm0
movq 0x3050(%rsp), %rax
mulsd 0x38(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x38(%rax), %xmm2
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
movsd 0xb640d(%rip), %xmm1    # 0x1d6810
mulsd (%rax,%rcx,8), %xmm1
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2d4(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x3050(%rsp), %rax
movsd %xmm0, 0x60(%rax)
jmp 0x1204d5
leaq 0x1840(%rsp), %rdi
movq 0x3048(%rsp), %rax
movl 0x18(%rax), %edx
leaq 0xdd38d(%rip), %rsi     # 0x1fd7fc
movb $0x0, %al
callq 0x5b9c0
leaq 0x1040(%rsp), %rdi
leaq 0x1840(%rsp), %rdx
leaq 0xb20e0(%rip), %rsi     # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0x3048(%rsp), %rdi
addq $0x32a, %rdi            # imm = 0x32A
leaq 0x1040(%rsp), %r8
leaq 0xb1b82(%rip), %rsi     # 0x1d2034
leaq 0xdec38(%rip), %rdx     # 0x1ff0f1
movl $0xc92, %ecx            # imm = 0xC92
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3084(%rsp)
jmp 0x1208cb
movq 0x3050(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x3048(%rsp), %rax
cvtsi2sdl 0x2fc(%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0x120508
movl $0x0, 0x3084(%rsp)
jmp 0x1208cb
movq 0x3050(%rsp), %rax
cmpl $0x1, 0x74(%rax)
jne 0x12058c
leaq 0x840(%rsp), %rdi
leaq 0xdec5d(%rip), %rsi     # 0x1ff182
movb $0x0, %al
callq 0x5b9c0
leaq 0x40(%rsp), %rdi
leaq 0x840(%rsp), %rcx
leaq 0xb1b42(%rip), %rsi     # 0x1d2082
leaq 0xdec75(%rip), %rdx     # 0x1ff1bc
movb $0x0, %al
callq 0x5b9c0
movq 0x3048(%rsp), %rdi
addq $0x32a, %rdi            # imm = 0x32A
leaq 0x40(%rsp), %r8
leaq 0xb1acb(%rip), %rsi     # 0x1d2034
leaq 0xdeb81(%rip), %rdx     # 0x1ff0f1
movl $0xc9e, %ecx            # imm = 0xC9E
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3084(%rsp)
jmp 0x1208cb
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2e4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2dc(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2e8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2e0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x58(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2dc(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2e4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x58(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2e0(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2e8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2f4(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2ec(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2f8(%rcx), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2f0(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x60(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2ec(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2f4(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm0
movq 0x3050(%rsp), %rax
movsd 0x68(%rax), %xmm2
movq 0x3050(%rsp), %rax
movsd 0x60(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x3070(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2f0(%rcx), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x3068(%rsp), %rax
movq 0x3048(%rsp), %rcx
movslq 0x2f8(%rcx), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, 0x3084(%rsp)
movl 0x3084(%rsp), %eax
addq $0x3088, %rsp           # imm = 0x3088
retq
nopw (%rax,%rax)