// File: /workspace/github_cpp_makefile_star2_O2/canzarlab[P]Trajan/geno/lbfgsb.cpp
// Function: LBFGSB::cauchyPoint()
void LBFGSB::cauchyPoint() {
  _c = Vector::Zero(2 * _S.cols());

  Vector bnd(_x.size());
  Vector d(_x.size());
  typedef std::pair<Scalar, Index> Pair;
  std::vector<Pair> vector;
  vector.reserve(_x.size());

  for (Index i = 0; i < _g.size(); ++i) {
    Scalar t = std::numeric_limits<Scalar>::infinity();
    if (_g[i] < 0) {
      t = (_x[i] - _ub[i]) / _g[i];
      bnd[i] = _ub[i];
    } else if (_g[i] > 0) {
      t = (_x[i] - _lb[i]) / _g[i];
      bnd[i] = _lb[i];
    }
    if (t == 0) {
      d[i] = 0;
      _workingSet[i] = 0;
    } else {
      d[i] = -_g[i];
      _workingSet[i] = 1;
    }
    //	    vector.emplace_back(t, i);
    vector.push_back(Pair(t, i));
  }

  auto nonzero_begin = std::partition(vector.begin(), vector.end(),
      [](Pair const& p) {return p.first == 0.0;});
  auto heapComp = [](Pair const& p1, Pair const& p2)
  {return p1.first >= p2.first;};
  std::make_heap(nonzero_begin, vector.end(), heapComp);

  // Initialize
  Vector p(2 * _S.cols());
  p.head(_S.cols()) = _S.transpose() * d;
  p.tail(_S.cols()) = _Y.transpose() * d;

  Scalar f1 = -d.dot(d);
  Scalar f2 = -_theta * f1 - p.transpose() * _M * p;

  _xCP = _x;
  Scalar tOld = 0;

  Scalar deltaTMin = 0;
  auto it = nonzero_begin;
  auto heap_end = vector.end();
  for (; it != heap_end; --heap_end) {
    deltaTMin = (0 == f1 && 0 == f2) ? 0 : -f1/f2;  // TODO think about just f2 == 0
    Index b = it->second;
    Scalar tThis = it->first;
    Scalar deltaT = tThis - tOld;

    if (deltaTMin < deltaT) break;
    std::pop_heap(it, heap_end, heapComp);

    assert(0 != _g[b]);
    _xCP(b) = bnd(b);
    Scalar z = _xCP(b) - _x(b);
    _c = _c + deltaT*p;
    Vector tmp(2 * _S.cols());// = _W.row(b);
    tmp.head(_S.cols()) = _S.row(b);
    tmp.tail(_S.cols()) = _Y.row(b);

    f1 = f1 + deltaT*f2 + _g(b)*_g(b) + _theta*_g(b)*z - _g(b)*(tmp.dot(_M*_c));
    // TODO
    // -1 should + 3
    f2 = f2 - 1 * _theta*_g(b)*_g(b) - 2*_g(b)*(tmp.dot(_M*p)) -
      _g(b) * _g(b)*(tmp.dot(_M*tmp));
    p = p + _g(b)*tmp;
    d(b) = 0;
    tOld = tThis;
    _workingSet[b] = 0;
  }

  deltaTMin = std::max(deltaTMin, Scalar(0.0));
  tOld = tOld + deltaTMin;
  _xCP += tOld * d;

  _c = _c + deltaTMin*p;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rdi, %r15
movq 0xb8(%rdi), %rsi
addq %rsi, %rsi
leaq 0x100(%rsp), %rbx
movq %rbx, %rdi
callq 0xced2
leaq 0x200(%r15), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x26bc6
movq 0x18(%r15), %rax
movq %rax, (%rbx)
leaq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rbx
movq %rbx, %rsi
callq 0xcea2
movq 0x18(%r15), %rax
movq %rax, (%rbx)
leaq 0x50(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0xcea2
movq %r14, 0x40(%rsp)
xorpd %xmm0, %xmm0
leaq 0x150(%rsp), %rdi
movapd %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
movq 0x18(%r15), %rsi
callq 0x137ec
leaq 0xa8(%r15), %rax
movq %rax, 0x98(%rsp)
leaq 0x10(%r15), %rax
movq %rax, 0x38(%rsp)
leaq 0x40(%r15), %r13
leaq 0x20(%r15), %rbx
leaq 0x30(%r15), %r14
movq %r15, 0x20(%rsp)
leaq 0x1e0(%r15), %rax
movq %rax, 0x80(%rsp)
xorl %r15d, %r15d
leaq 0x150(%rsp), %r12
leaq 0x100(%rsp), %rbp
movq 0x20(%rsp), %rax
cmpq 0x48(%rax), %r15
jge 0x10c15
movq %r13, %rdi
movq %r15, %rsi
callq 0x13224
xorpd %xmm0, %xmm0
ucomisd (%rax), %xmm0
jbe 0x10ac0
movq 0x38(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
callq 0x13224
movsd 0x10(%rsp), %xmm0
subsd (%rsp), %xmm0
divsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
leaq 0xf0(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
jmp 0x10b5a
movq %r13, %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
ucomisd 0x40931(%rip), %xmm0    # 0x51408
movsd 0x40909(%rip), %xmm0    # 0x513e8
movsd %xmm0, 0x10(%rsp)
jbe 0x10b9c
movq 0x38(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
callq 0x13224
movsd 0x10(%rsp), %xmm0
subsd (%rsp), %xmm0
divsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
leaq 0xf0(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rsp), %xmm0
movsd %xmm0, (%rax)
movsd 0x10(%rsp), %xmm0
ucomisd 0x40897(%rip), %xmm0    # 0x51408
jne 0x10b9c
jp 0x10b9c
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
andq $0x0, (%rax)
movq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
andq $0x0, (%rax)
jmp 0x10beb
movq %r13, %rdi
movq %r15, %rsi
callq 0x13224
movsd (%rax), %xmm0
movapd %xmm0, (%rsp)
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
movapd (%rsp), %xmm0
xorpd 0x407f6(%rip), %xmm0    # 0x513c0
movlpd %xmm0, (%rax)
movq 0x80(%rsp), %rdi
movq %r15, %rsi
callq 0x13224
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x100(%rsp)
movq %r15, 0x108(%rsp)
movq %r12, %rdi
movq %rbp, %rsi
callq 0x26c44
incq %r15
jmp 0x10a28
movq 0x150(%rsp), %r12
movq 0x158(%rsp), %rdx
xorpd %xmm0, %xmm0
movq %rdx, %rax
xorl %r15d, %r15d
leaq (%r12,%r15), %rbx
cmpq %rax, %rbx
je 0x10c85
movsd (%rbx), %xmm1
ucomisd %xmm0, %xmm1
jne 0x10c4a
jp 0x10c4a
addq $0x10, %r15
jmp 0x10c2f
addq $-0x10, %rax
cmpq %rbx, %rax
je 0x10c85
movsd (%rax), %xmm2
ucomisd %xmm0, %xmm2
jne 0x10c4a
jp 0x10c4a
addq %r15, %r12
addq $0x10, %r12
movsd %xmm2, -0x10(%r12)
movsd %xmm1, (%rax)
movq -0x8(%r12), %rcx
movq 0x8(%rax), %rdi
movq %rdi, -0x8(%r12)
movq %rcx, 0x8(%rax)
jmp 0x10c2c
movq %r13, 0x168(%rsp)
subq %r12, %rdx
subq %r15, %rdx
sarq $0x4, %rdx
cmpq $0x2, %rdx
jl 0x10cd5
leaq -0x2(%rdx), %r14
shrq %r14
movq %r14, %rbp
shlq $0x4, %rbp
leaq (%r12,%rbp), %rax
movsd (%r15,%rax), %xmm0
movq 0x8(%r15,%rax), %rcx
movq %rbx, %rdi
movq %r14, %rsi
movq %rdx, %r13
callq 0x13122
movq %r13, %rdx
addq $-0x10, %rbp
addq $-0x1, %r14
jb 0x10cab
movq %r12, 0xa8(%rsp)
movq 0x20(%rsp), %r14
movq 0xb8(%r14), %rax
addq %rax, %rax
leaq 0x100(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x28(%rsp), %rdi
callq 0xcea2
leaq 0xd0(%rsp), %rdi
movq 0x98(%rsp), %rax
movq %rax, (%rdi)
leaq 0x50(%rsp), %rsi
callq 0x132a2
movq %r15, 0xa0(%rsp)
movq %rax, 0x1c0(%rsp)
movq %rdx, 0x1c8(%rsp)
movq 0xb8(%r14), %rdx
leaq 0x100(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xd304
movq %rbx, 0xb0(%rsp)
leaq 0x100(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x26d87
leaq 0xc0(%r14), %rax
leaq 0xd0(%rsp), %rdi
movq %rax, 0x170(%rsp)
movq %rax, (%rdi)
leaq 0x50(%rsp), %rsi
callq 0x132a2
movq 0x168(%rsp), %r13
movq %rax, 0x1c0(%rsp)
movq %rdx, 0x1c8(%rsp)
movq 0xb8(%r14), %rdx
leaq 0x100(%rsp), %rdi
leaq 0x28(%rsp), %rbx
movq %rbx, %rsi
callq 0xdb4a
leaq 0x100(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x26d87
leaq 0x50(%rsp), %rdi
movq %rdi, %rsi
callq 0x1325a
movapd %xmm0, 0x10(%rsp)
movsd 0xd8(%r14), %xmm0
movapd %xmm0, 0x60(%rsp)
leaq 0xd0(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x110(%r14), %rsi
movq %rsi, 0x78(%rsp)
callq 0x13894
leaq 0x1c0(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
leaq 0x100(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x26f94
leaq 0x100(%rsp), %rdi
callq 0x138b8
movsd %xmm0, (%rsp)
leaq 0x1d0(%r14), %rdi
movq %rdi, 0x70(%rsp)
movq 0x38(%rsp), %rsi
callq 0xe787
movapd 0x40558(%rip), %xmm0    # 0x513c0
andq $0x0, 0xe8(%rsp)
movapd 0x10(%rsp), %xmm1
xorpd %xmm1, %xmm0
movapd %xmm0, 0x140(%rsp)
andq $0x0, 0x48(%rsp)
movapd 0x60(%rsp), %xmm0
mulsd %xmm1, %xmm0
subsd (%rsp), %xmm0
movapd %xmm0, 0x60(%rsp)
movq 0x158(%rsp), %rax
movq %rax, %rdx
subq 0xa8(%rsp), %rdx
subq 0xa0(%rsp), %rdx
leaq 0x1c0(%rsp), %r12
leaq 0x100(%rsp), %rbx
leaq 0xd0(%rsp), %rbp
xorpd %xmm0, %xmm0
cmpq %rax, 0xb0(%rsp)
je 0x11428
movq %rax, 0xc0(%rsp)
xorpd %xmm1, %xmm1
movapd 0x60(%rsp), %xmm2
cmpeqpd %xmm1, %xmm2
movapd 0x140(%rsp), %xmm3
cmpeqpd %xmm1, %xmm3
andpd %xmm2, %xmm3
movd %xmm3, %eax
testb $0x1, %al
jne 0x10f2c
movapd 0x140(%rsp), %xmm1
xorpd 0x4049a(%rip), %xmm1    # 0x513c0
divsd 0x60(%rsp), %xmm1
movsd %xmm1, 0x48(%rsp)
movq 0xa8(%rsp), %rax
movq 0xa0(%rsp), %rcx
movq 0x8(%rax,%rcx), %r14
movsd (%rax,%rcx), %xmm2
movsd %xmm2, 0xc8(%rsp)
subsd %xmm0, %xmm2
movsd %xmm2, 0xe0(%rsp)
ucomisd %xmm1, %xmm2
ja 0x1142e
movq %rdx, 0xb8(%rsp)
cmpq $0x11, %rdx
jl 0x10fb7
movq 0xc0(%rsp), %rax
movsd -0x10(%rax), %xmm0
movq -0x8(%rax), %rcx
movq 0xb0(%rsp), %rdi
movsd (%rdi), %xmm1
movsd %xmm1, -0x10(%rax)
movq %r14, -0x8(%rax)
movq 0xb8(%rsp), %rax
leaq -0x10(%rax), %rdx
sarq $0x4, %rdx
xorl %esi, %esi
callq 0x13122
movq %r13, %rdi
movq %r14, %rsi
callq 0x13224
movsd (%rax), %xmm0
ucomisd 0x4043a(%rip), %xmm0    # 0x51408
jne 0x10fd6
jnp 0x114f4
leaq 0xf0(%rsp), %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0xd27a
movsd 0x10(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0x38(%rsp), %rdi
movq %r14, %rsi
callq 0xd27a
movsd 0x90(%rsp), %xmm0
subsd (%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
movq %r12, %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xdbac
movq %rbx, %rdi
movq 0x40(%rsp), %rsi
movq %r12, %rdx
callq 0x138da
movq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x277ac
movq 0x20(%rsp), %rax
movq 0xb8(%rax), %rax
addq %rax, %rax
movq %rax, 0x100(%rsp)
movq %rbp, %rdi
movq %rbx, %rsi
callq 0xcea2
movq %rbx, %rdi
movq 0x98(%rsp), %rsi
movq %r14, %rdx
callq 0x154fe
movq 0x20(%rsp), %rax
movq 0xb8(%rax), %rdx
movq %r12, %r15
movq %r12, %rdi
movq %rbp, %rsi
callq 0xd304
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2793f
movq %rbx, %rdi
movq 0x170(%rsp), %rsi
movq %r14, %rdx
callq 0x154fe
movq 0x20(%rsp), %rax
movq 0xb8(%rax), %rdx
movq %r12, %r15
movq %r12, %rdi
movq %rbp, %rsi
callq 0xdb4a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2793f
movsd 0xe0(%rsp), %xmm0
mulsd 0x60(%rsp), %xmm0
movsd %xmm0, 0x1b8(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x1b0(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x1a8(%rsp)
movq 0x20(%rsp), %rax
movsd 0xd8(%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd 0x10(%rsp), %xmm0
mulsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x1a0(%rsp)
movq 0x78(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x13926
movq %rax, 0x100(%rsp)
movq %rdx, 0x108(%rsp)
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x138f6
movsd %xmm0, 0x198(%rsp)
movq 0x20(%rsp), %rax
movsd 0xd8(%rax), %xmm0
movsd %xmm0, (%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x88(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd 0x88(%rsp), %xmm0
mulsd (%rsp), %xmm0
mulsd (%rax), %xmm0
movsd %xmm0, 0x88(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
movq 0x78(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x13926
movq %rax, 0x100(%rsp)
movq %rdx, 0x108(%rsp)
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x138f6
movsd %xmm0, 0x190(%rsp)
movsd (%rsp), %xmm0
mulsd 0x425ab(%rip), %xmm0    # 0x53818
movsd %xmm0, (%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x188(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movsd (%rax), %xmm0
movsd %xmm0, 0x180(%rsp)
movq 0x78(%rsp), %rdi
movq %rbp, %rsi
callq 0x13926
movq %rax, 0x1c0(%rsp)
movq %rdx, 0x1c8(%rsp)
movq %rbp, %rdi
movq %r12, %rsi
callq 0x138f6
movsd %xmm0, 0x178(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0xd27a
movq %r12, %rdi
movq %rax, %rsi
movq %rbp, %rdx
callq 0xdbac
movq %rbx, %rdi
leaq 0x28(%rsp), %rsi
movq %r12, %rdx
callq 0x138da
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x277ac
leaq 0x50(%rsp), %rdi
movq %r14, %rsi
callq 0xd27a
andq $0x0, (%rax)
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0xe8(%rsp)
movq 0x80(%rsp), %rdi
movq %r14, %rsi
callq 0x13224
movsd 0x1b8(%rsp), %xmm0
addsd 0x140(%rsp), %xmm0
movsd 0x1b0(%rsp), %xmm1
mulsd 0x1a8(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd 0x10(%rsp), %xmm2
mulsd 0x90(%rsp), %xmm2
addsd %xmm1, %xmm2
movsd 0x1a0(%rsp), %xmm0
mulsd 0x198(%rsp), %xmm0
subsd %xmm0, %xmm2
movsd %xmm2, 0x10(%rsp)
movapd 0x60(%rsp), %xmm0
subsd 0x88(%rsp), %xmm0
movsd (%rsp), %xmm1
mulsd 0x190(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd 0x180(%rsp), %xmm0
mulsd 0x188(%rsp), %xmm0
mulsd 0x178(%rsp), %xmm0
subsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
andq $0x0, (%rax)
movq 0xd0(%rsp), %rdi
callq 0x93c0
movq 0xc0(%rsp), %rax
addq $-0x10, %rax
movq 0xb8(%rsp), %rdx
addq $-0x10, %rdx
movsd 0xc8(%rsp), %xmm0
movsd (%rsp), %xmm1
movaps %xmm1, 0x60(%rsp)
movsd 0x10(%rsp), %xmm1
movapd %xmm1, 0x140(%rsp)
jmp 0x10ed6
movsd 0x48(%rsp), %xmm1
xorpd %xmm2, %xmm2
maxsd %xmm1, %xmm2
movsd %xmm2, 0x48(%rsp)
addsd %xmm2, %xmm0
leaq 0xe8(%rsp), %rsi
movsd %xmm0, (%rsi)
leaq 0x100(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0xdbac
movq 0x40(%rsp), %rbx
leaq 0x100(%rsp), %rsi
movq 0x70(%rsp), %rdi
callq 0x1394a
leaq 0x1c0(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xdbac
leaq 0x100(%rsp), %rdi
leaq 0x1c0(%rsp), %rdx
movq %rbx, %rsi
callq 0x138da
leaq 0x100(%rsp), %rsi
movq %rbx, %rdi
callq 0x277ac
movq 0x28(%rsp), %rdi
callq 0x93c0
leaq 0x150(%rsp), %rdi
callq 0x26bd4
movq 0x50(%rsp), %rdi
callq 0x93c0
movq 0xf0(%rsp), %rdi
callq 0x93c0
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x425de(%rip), %rdi     # 0x53ad9
leaq 0x425e2(%rip), %rsi     # 0x53ae4
leaq 0x425eb(%rip), %rcx     # 0x53af4
movl $0xd7, %edx
callq 0x9210
jmp 0x11542
jmp 0x11542
jmp 0x11542
jmp 0x11542
jmp 0x11567
jmp 0x11567
movq %rax, %rbx
jmp 0x11581
jmp 0x11542
jmp 0x11542
jmp 0x11542
jmp 0x11542
jmp 0x11542
jmp 0x11542
jmp 0x1154b
jmp 0x1154b
jmp 0x1154b
jmp 0x1154b
jmp 0x1154b
jmp 0x1154b
jmp 0x11542
jmp 0x11567
jmp 0x11542
movq %rax, %rbx
jmp 0x1155b
jmp 0x1154b
jmp 0x1154b
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
callq 0x93c0
movq 0x28(%rsp), %rdi
callq 0x93c0
jmp 0x1156a
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0x26bd4
movq 0x50(%rsp), %rdi
callq 0x93c0
movq 0xf0(%rsp), %rdi
callq 0x93c0
movq %rbx, %rdi
callq 0x9640