// File: Kingsford-Group[P]ghost2/include/Eigen/src/Jacobi/Jacobi.h
// Function: void Eigen::internal::apply_rotation_in_the_plane<Eigen::Block<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, 1, true>, Eigen::Block<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, 1, true>, double>(Eigen::Block<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, 1, true>&, Eigen::Block<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, 1, true>&, Eigen::JacobiRotation<double> const&)
void /*EIGEN_DONT_INLINE*/ apply_rotation_in_the_plane(VectorX& _x, VectorY& _y, const JacobiRotation<OtherScalar>& j)
{
  typedef typename VectorX::Index Index;
  typedef typename VectorX::Scalar Scalar;
  enum { PacketSize = packet_traits<Scalar>::size };
  typedef typename packet_traits<Scalar>::type Packet;
  eigen_assert(_x.size() == _y.size());
  Index size = _x.size();
  Index incrx = _x.innerStride();
  Index incry = _y.innerStride();

  Scalar* EIGEN_RESTRICT x = &_x.coeffRef(0);
  Scalar* EIGEN_RESTRICT y = &_y.coeffRef(0);
  
  OtherScalar c = j.c();
  OtherScalar s = j.s();
  if (c==OtherScalar(1) && s==OtherScalar(0))
    return;

  /*** dynamic-size vectorized paths ***/

  if(VectorX::SizeAtCompileTime == Dynamic &&
    (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
    ((incrx==1 && incry==1) || PacketSize == 1))
  {
    // both vectors are sequentially stored in memory => vectorization
    enum { Peeling = 2 };

    Index alignedStart = internal::first_aligned(y, size);
    Index alignedEnd = alignedStart + ((size-alignedStart)/PacketSize)*PacketSize;

    const Packet pc = pset1<Packet>(c);
    const Packet ps = pset1<Packet>(s);
    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;

    for(Index i=0; i<alignedStart; ++i)
    {
      Scalar xi = x[i];
      Scalar yi = y[i];
      x[i] =  c * xi + numext::conj(s) * yi;
      y[i] = -s * xi + numext::conj(c) * yi;
    }

    Scalar* EIGEN_RESTRICT px = x + alignedStart;
    Scalar* EIGEN_RESTRICT py = y + alignedStart;

    if(internal::first_aligned(x, size)==alignedStart)
    {
      for(Index i=alignedStart; i<alignedEnd; i+=PacketSize)
      {
        Packet xi = pload<Packet>(px);
        Packet yi = pload<Packet>(py);
        pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
        pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
        px += PacketSize;
        py += PacketSize;
      }
    }
    else
    {
      Index peelingEnd = alignedStart + ((size-alignedStart)/(Peeling*PacketSize))*(Peeling*PacketSize);
      for(Index i=alignedStart; i<peelingEnd; i+=Peeling*PacketSize)
      {
        Packet xi   = ploadu<Packet>(px);
        Packet xi1  = ploadu<Packet>(px+PacketSize);
        Packet yi   = pload <Packet>(py);
        Packet yi1  = pload <Packet>(py+PacketSize);
        pstoreu(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
        pstoreu(px+PacketSize, padd(pmul(pc,xi1),pcj.pmul(ps,yi1)));
        pstore (py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
        pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pmul(ps,xi1)));
        px += Peeling*PacketSize;
        py += Peeling*PacketSize;
      }
      if(alignedEnd!=peelingEnd)
      {
        Packet xi = ploadu<Packet>(x+peelingEnd);
        Packet yi = pload <Packet>(y+peelingEnd);
        pstoreu(x+peelingEnd, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
        pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
      }
    }

    for(Index i=alignedEnd; i<size; ++i)
    {
      Scalar xi = x[i];
      Scalar yi = y[i];
      x[i] =  c * xi + numext::conj(s) * yi;
      y[i] = -s * xi + numext::conj(c) * yi;
    }
  }

  /*** fixed-size vectorized path ***/
  else if(VectorX::SizeAtCompileTime != Dynamic &&
          (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
          (VectorX::Flags & VectorY::Flags & AlignedBit))
  {
    const Packet pc = pset1<Packet>(c);
    const Packet ps = pset1<Packet>(s);
    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;
    Scalar* EIGEN_RESTRICT px = x;
    Scalar* EIGEN_RESTRICT py = y;
    for(Index i=0; i<size; i+=PacketSize)
    {
      Packet xi = pload<Packet>(px);
      Packet yi = pload<Packet>(py);
      pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
      pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
      px += PacketSize;
      py += PacketSize;
    }
  }

  /*** non-vectorized path ***/
  else
  {
    for(Index i=0; i<size; ++i)
    {
      Scalar xi = *x;
      Scalar yi = *y;
      *x =  c * xi + numext::conj(s) * yi;
      *y = -s * xi + numext::conj(c) * yi;
      x += incrx;
      y += incry;
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3c0, %rsp            # imm = 0x3C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x810f0
movq %rax, -0x308(%rbp)
movq -0x10(%rbp), %rdi
callq 0x810f0
movq %rax, %rcx
movq -0x308(%rbp), %rax
cmpq %rcx, %rax
jne 0x80181
jmp 0x801a0
leaq 0x5088f(%rip), %rdi     # 0xd0a17
leaq 0x5089f(%rip), %rsi     # 0xd0a2e
movl $0x133, %edx            # imm = 0x133
leaq 0x508b5(%rip), %rcx     # 0xd0a50
callq 0x104a0
movq -0x8(%rbp), %rdi
callq 0x810f0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x81130
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x81130
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x81150
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x81150
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
callq 0x811a0
movsd %xmm0, -0x48(%rbp)
movq -0x18(%rbp), %rdi
callq 0x811c0
movsd %xmm0, -0x50(%rbp)
movsd -0x48(%rbp), %xmm0
movsd 0x3be5e(%rip), %xmm1    # 0xbc070
ucomisd %xmm1, %xmm0
jne 0x8022f
jp 0x8022f
movsd -0x50(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x8022f
jp 0x8022f
jmp 0x80be3
cmpq $0x1, -0x28(%rbp)
jne 0x80ab5
cmpq $0x1, -0x30(%rbp)
jne 0x80ab5
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x22b50
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x310(%rbp)
movq -0x20(%rbp), %rax
subq -0x58(%rbp), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq -0x310(%rbp), %rax
shlq %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4bcd0
movapd %xmm0, -0x70(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x4bcd0
movapd %xmm0, -0x80(%rbp)
movq $0x0, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpq -0x58(%rbp), %rax
jge 0x803cf
movq -0x38(%rbp), %rax
movq -0x90(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x98(%rbp)
movq -0x40(%rbp), %rax
movq -0x90(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x328(%rbp)
movsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x330(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x4df90
movsd -0x330(%rbp), %xmm2
movaps %xmm0, %xmm1
movsd -0x328(%rbp), %xmm0
mulsd -0xa0(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x38(%rbp), %rax
movq -0x90(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x50(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x318(%rbp)
movsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x320(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4df90
movsd -0x320(%rbp), %xmm2
movaps %xmm0, %xmm1
movsd -0x318(%rbp), %xmm0
mulsd -0xa0(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x40(%rbp), %rax
movq -0x90(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x90(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x90(%rbp)
jmp 0x802ae
movq -0x38(%rbp), %rax
movq -0x58(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xa8(%rbp)
movq -0x40(%rbp), %rax
movq -0x58(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x22b50
cmpq -0x58(%rbp), %rax
jne 0x8057c
movq -0x58(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
cmpq -0x60(%rbp), %rax
jge 0x80577
movq -0xa8(%rbp), %rdi
callq 0x4bc80
movapd %xmm0, -0xd0(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x4bc80
movapd %xmm0, -0xe0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x340(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x100(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x110(%rbp)
leaq -0x100(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x4caa0
movq -0x340(%rbp), %rdi
movapd %xmm0, -0xf0(%rbp)
leaq -0xf0(%rbp), %rsi
callq 0x4bbd0
movq -0xb0(%rbp), %rax
movq %rax, -0x338(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x130(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x140(%rbp)
leaq -0x130(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x5c410
movq -0x338(%rbp), %rdi
movapd %xmm0, -0x120(%rbp)
leaq -0x120(%rbp), %rsi
callq 0x4bbd0
movq -0xa8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0xa8(%rbp)
movq -0xb0(%rbp), %rax
addq $0x10, %rax
movq %rax, -0xb0(%rbp)
movq -0xb8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0xb8(%rbp)
jmp 0x8041d
jmp 0x80984
movq -0x58(%rbp), %rax
movq %rax, -0x348(%rbp)
movq -0x20(%rbp), %rax
subq -0x58(%rbp), %rax
movl $0x4, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq -0x348(%rbp), %rax
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x148(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rax
cmpq -0x148(%rbp), %rax
jge 0x80837
movq -0xa8(%rbp), %rdi
callq 0x517b0
movapd %xmm0, -0x160(%rbp)
movq -0xa8(%rbp), %rdi
addq $0x10, %rdi
callq 0x517b0
movapd %xmm0, -0x170(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x4bc80
movapd %xmm0, -0x180(%rbp)
movq -0xb0(%rbp), %rdi
addq $0x10, %rdi
callq 0x4bc80
movapd %xmm0, -0x190(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x368(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x1b0(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0x180(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x1c0(%rbp)
leaq -0x1b0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x4caa0
movq -0x368(%rbp), %rdi
movapd %xmm0, -0x1a0(%rbp)
leaq -0x1a0(%rbp), %rsi
callq 0x51800
movq -0xa8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x360(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x1e0(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x1f0(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x4caa0
movq -0x360(%rbp), %rdi
movapd %xmm0, -0x1d0(%rbp)
leaq -0x1d0(%rbp), %rsi
callq 0x51800
movq -0xb0(%rbp), %rax
movq %rax, -0x358(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x180(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x210(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x220(%rbp)
leaq -0x210(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x5c410
movq -0x358(%rbp), %rdi
movapd %xmm0, -0x200(%rbp)
leaq -0x200(%rbp), %rsi
callq 0x4bbd0
movq -0xb0(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x350(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x240(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x250(%rbp)
leaq -0x240(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x5c410
movq -0x350(%rbp), %rdi
movapd %xmm0, -0x230(%rbp)
leaq -0x230(%rbp), %rsi
callq 0x4bbd0
movq -0xa8(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xa8(%rbp)
movq -0xb0(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xb0(%rbp)
movq -0x150(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x150(%rbp)
jmp 0x805bc
movq -0x60(%rbp), %rax
cmpq -0x148(%rbp), %rax
je 0x80982
movq -0x38(%rbp), %rdi
movq -0x148(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
callq 0x517b0
movapd %xmm0, -0x260(%rbp)
movq -0x40(%rbp), %rdi
movq -0x148(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
callq 0x4bc80
movapd %xmm0, -0x270(%rbp)
movq -0x38(%rbp), %rax
movq -0x148(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x378(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x290(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0x270(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x2a0(%rbp)
leaq -0x290(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x4caa0
movq -0x378(%rbp), %rdi
movapd %xmm0, -0x280(%rbp)
leaq -0x280(%rbp), %rsi
callq 0x51800
movq -0x40(%rbp), %rax
movq -0x148(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x370(%rbp)
leaq -0x81(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x270(%rbp), %rdx
callq 0x56cb0
movapd %xmm0, -0x2c0(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x4bc00
movapd %xmm0, -0x2d0(%rbp)
leaq -0x2c0(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x5c410
movq -0x370(%rbp), %rdi
movapd %xmm0, -0x2b0(%rbp)
leaq -0x2b0(%rbp), %rsi
callq 0x4bbd0
jmp 0x80984
movq -0x60(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq -0x2d8(%rbp), %rax
cmpq -0x20(%rbp), %rax
jge 0x80ab0
movq -0x38(%rbp), %rax
movq -0x2d8(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x2e0(%rbp)
movq -0x40(%rbp), %rax
movq -0x2d8(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x2e8(%rbp)
movsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x390(%rbp)
movsd -0x2e0(%rbp), %xmm0
movsd %xmm0, -0x398(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x4df90
movsd -0x398(%rbp), %xmm2
movaps %xmm0, %xmm1
movsd -0x390(%rbp), %xmm0
mulsd -0x2e8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x38(%rbp), %rax
movq -0x2d8(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x50(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x380(%rbp)
movsd -0x2e0(%rbp), %xmm0
movsd %xmm0, -0x388(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4df90
movsd -0x388(%rbp), %xmm2
movaps %xmm0, %xmm1
movsd -0x380(%rbp), %xmm0
mulsd -0x2e8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x40(%rbp), %rax
movq -0x2d8(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x2d8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2d8(%rbp)
jmp 0x8098f
jmp 0x80be3
movq $0x0, -0x2f0(%rbp)
movq -0x2f0(%rbp), %rax
cmpq -0x20(%rbp), %rax
jge 0x80be1
movq -0x38(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x2f8(%rbp)
movq -0x40(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x300(%rbp)
movsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x3b0(%rbp)
movsd -0x2f8(%rbp), %xmm0
movsd %xmm0, -0x3b8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x4df90
movsd -0x3b8(%rbp), %xmm2
movaps %xmm0, %xmm1
movsd -0x3b0(%rbp), %xmm0
mulsd -0x300(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x38(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x50(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x3a0(%rbp)
movsd -0x2f8(%rbp), %xmm0
movsd %xmm0, -0x3a8(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4df90
movsd -0x3a8(%rbp), %xmm2
movaps %xmm0, %xmm1
movsd -0x3a0(%rbp), %xmm0
mulsd -0x300(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x40(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x28(%rbp), %rax
shlq $0x3, %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
shlq $0x3, %rax
addq -0x40(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x2f0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2f0(%rbp)
jmp 0x80ac0
jmp 0x80be3
addq $0x3c0, %rsp            # imm = 0x3C0
popq %rbp
retq
nopl (%rax)