// File: /workspace/github_cpp_makefile_star2_O1/eryxcc[P]lois/src/element.cpp
// Function: lois::aggressive_simplify(std::vector<std::shared_ptr<lois::Variable>, std::allocator<std::shared_ptr<lois::Variable>>>&, lois::rbool&, std::shared_ptr<lois::Context>&, std::function<bool (std::shared_ptr<lois::Variable>)>, std::function<void (std::vector<std::pair<std::shared_ptr<lois::Variable>, lois::term>, std::allocator<std::pair<std::shared_ptr<lois::Variable>, lois::term>>> const&)>)
void aggressive_simplify(varlist& selvar, rbool& selphi, contextptr& ain, std::function<bool(vptr)> a_isused, std::function<void(const varsubstlist&)> a_alpha) {
  if(selphi.isTrue()) return;
  if(!aggressive_simplification_tries) return;

  int size1 = selphi->formulasize();
  
  simplifyWhat = selphi;
  
  rbool phi ( std::make_shared<FormulaQ> (false, rbool(simplifier), selvar) );
  
  phi = outenv(phi, false, emptycontext, ain);

  if(notForInternalSolver(phi)) return;

  simplifyWhat->clearinfo();

  // cout << "AGGRESSIVE SIMPLIFY " << phi << endl;
  
  checkid++;
  phi->initDomains();

  triesleft = aggressive_simplification_tries; 
  try { phi->verify();
  } catch(unsolvable_exception) {
    triesleft = -1;
    }

  if(triesleft <= 0) {
    std::cout << "simplification failed for rbool of size " << size1 << std::endl;
    std::cout << phi << std::endl;
    std::cout << "NFI is : " << notForInternalSolver(phi) << std::endl;
    std::cout << "features are: ";

    featurelist fl;
    phi->listFeatures(fl);
    for(auto r: fl.relations) std::cout << (r->getName()); std::cout << std::endl;

    exit(1);
    return;
    }
  
  rbool orig = selphi;
  
  selphi = simplifyWhat->qsimplify();
  // cout << "simplification result: " << sel.phi << endl;

  int size3 = selphi->formulasize();
  
  if(size1 == size3) {
    // printf("Not Simplified: %d in %d tries\n", size1, aggressive_simplification_tries-triesleft);
    // cout << "orig: " << orig << endl;
    return;
    }

  if(simplifyVerbosity >= 1) 
     printf("Simplified: %d to %d in %d tries\n", size1, size3, aggressive_simplification_tries-triesleft);

  // std::cout << "FROM: " << phi << std::endl << "TO: " << selphi << std::endl;
  
  varlist var2;
  swap(var2, selvar);
  
  for(auto w: var2) 
    if(selphi->uses(w) || a_isused(w)) {
      term w1 = selphi->valueKnown(w, false);
      if(w1.p) {
        varsubstlist l = { make_pair(w, w1) };
        selphi = substitute(selphi,l);
        a_alpha(l);
        }
      else selvar.push_back(w);
      }
    
  aggressive_simplify(selvar, selphi, ain, a_isused, a_alpha);
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %r8, 0x70(%rsp)
movq %rcx, 0x78(%rsp)
movq %rdi, %r13
movq (%rsi), %rdi
leaq 0x1568c(%rip), %rax     # 0x537b0
cmpq (%rax), %rdi
je 0x3e889
cmpl $0x0, 0x15a9c(%rip)     # 0x53bd0
je 0x3e889
movq %rdx, %rbp
movq %rsi, %r15
movq (%rdi), %rax
callq *0x50(%rax)
movl %eax, 0x2c(%rsp)
movq (%r15), %rax
movq %rax, 0x15a5c(%rip)     # 0x53bb0
leaq 0x8(%r15), %rsi
leaq 0x15a59(%rip), %rdi     # 0x53bb8
movq %rsi, 0x68(%rsp)
callq 0x16086
movb $0x0, 0x10(%rsp)
movq 0x15a4b(%rip), %rax     # 0x53bc0
movq 0x15a4c(%rip), %r14     # 0x53bc8
testq %r14, %r14
je 0x3e198
movq 0x14e40(%rip), %rcx     # 0x52fc8
cmpb $0x0, (%rcx)
je 0x3e193
incl 0x8(%r14)
jmp 0x3e198
lock
incl 0x8(%r14)
movq %rax, 0x30(%rsp)
movq %r14, 0x38(%rsp)
testq %r14, %r14
je 0x3e1be
movq 0x14e1a(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
je 0x3e1b9
incl 0x8(%r14)
jmp 0x3e1be
lock
incl 0x8(%r14)
leaq 0x98(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x90(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x30(%rsp), %r8
movq %r13, %r9
callq 0x2dca8
movq 0x90(%rsp), %r12
movq 0x98(%rsp), %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
testq %rbx, %rbx
je 0x3e232
movq 0x14db1(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
je 0x3e221
incl 0x8(%rbx)
jmp 0x3e225
lock
incl 0x8(%rbx)
testq %rbx, %rbx
je 0x3e232
movq %rbx, %rdi
callq 0x13308
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3e244
callq 0x13308
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x3e253
callq 0x13308
testq %r14, %r14
je 0x3e260
movq %r14, %rdi
callq 0x13308
movq %r12, 0x170(%rsp)
movq %rbx, 0x178(%rsp)
testq %rbx, %rbx
je 0x3e28a
movq 0x14d4c(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
je 0x3e286
incl 0x8(%rbx)
jmp 0x3e28a
lock
incl 0x8(%rbx)
leaq 0x154cf(%rip), %rax     # 0x53760
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %rcx, 0x160(%rsp)
movq %rax, 0x168(%rsp)
testq %rax, %rax
je 0x3e2c2
movq 0x14d14(%rip), %rcx     # 0x52fc8
cmpb $0x0, (%rcx)
je 0x3e2be
incl 0x8(%rax)
jmp 0x3e2c2
lock
incl 0x8(%rax)
movq (%rbp), %rax
movq %rax, 0x150(%rsp)
movq 0x8(%rbp), %rax
movq %rax, 0x158(%rsp)
testq %rax, %rax
je 0x3e2f4
movq 0x14ce2(%rip), %rcx     # 0x52fc8
cmpb $0x0, (%rcx)
je 0x3e2f0
incl 0x8(%rax)
jmp 0x3e2f4
lock
incl 0x8(%rax)
movq %r13, 0x60(%rsp)
leaq 0x90(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x160(%rsp), %rcx
leaq 0x150(%rsp), %r8
xorl %edx, %edx
callq 0x28a12
movq 0x90(%rsp), %r14
movq 0x98(%rsp), %r13
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
testq %rbx, %rbx
je 0x3e348
movq %rbx, %rdi
callq 0x13308
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3e35a
callq 0x13308
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x3e36c
callq 0x13308
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x3e37e
callq 0x13308
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0x3e390
callq 0x13308
movq %r14, 0x140(%rsp)
movq %r13, 0x148(%rsp)
testq %r13, %r13
je 0x3e3bc
movq 0x14c1c(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
je 0x3e3b7
incl 0x8(%r13)
jmp 0x3e3bc
lock
incl 0x8(%r13)
leaq 0x140(%rsp), %rdi
callq 0x34834
movl %eax, %ebx
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0x3e3dd
callq 0x13308
testb %bl, %bl
jne 0x3e87c
movq 0x157c4(%rip), %rdi     # 0x53bb0
movq (%rdi), %rax
callq *0x48(%rax)
leaq 0x153af(%rip), %rax     # 0x537a8
incl (%rax)
movq (%r14), %rax
movq %r14, %rdi
callq *0x38(%rax)
movl 0x157c6(%rip), %eax     # 0x53bd0
leaq 0x1538f(%rip), %r12     # 0x537a0
movl %eax, (%r12)
movq (%r14), %rax
movq %r14, %rdi
callq *0x20(%rax)
cmpl $0x0, (%r12)
jle 0x3e8a5
movq 0x68(%rsp), %rax
movq (%rax), %rbx
testq %rbx, %rbx
je 0x3e44b
movq 0x14b8b(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
je 0x3e447
incl 0x8(%rbx)
jmp 0x3e44b
lock
incl 0x8(%rbx)
movq 0x1575e(%rip), %rsi     # 0x53bb0
leaq 0x90(%rsp), %rdi
callq 0x2dd9c
movaps 0x90(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x90(%rsp)
movq 0x8(%r15), %rdi
movups %xmm0, (%r15)
testq %rdi, %rdi
je 0x3e484
callq 0x13308
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3e496
callq 0x13308
movq (%r15), %rdi
movq (%rdi), %rax
callq *0x50(%rax)
movl 0x2c(%rsp), %esi
cmpl %eax, %esi
je 0x3e86f
movq %rbx, 0x20(%rsp)
movq %rbp, 0x58(%rsp)
movq %r13, (%rsp)
cmpl $0x0, 0x15714(%rip)     # 0x53bd4
jle 0x3e4dc
movl 0x15708(%rip), %ecx     # 0x53bd0
subl (%r12), %ecx
leaq 0x3e32(%rip), %rdi      # 0x42305
movl %eax, %edx
xorl %eax, %eax
callq 0x7050
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
xorl %eax, %eax
movq %rax, 0x40(%rsp)
movq 0x38(%rsp), %rcx
movq 0x40(%rsp), %rdx
movq 0x60(%rsp), %rdi
movq (%rdi), %r13
movq %r13, 0x30(%rsp)
movq 0x8(%rdi), %r8
movq %r8, 0x38(%rsp)
movq 0x10(%rdi), %rsi
movq %rsi, 0x40(%rsp)
movq %rax, (%rdi)
movq %rcx, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
movq %r8, 0x68(%rsp)
cmpq %r8, %r13
je 0x3e7d8
leaq 0x1c0(%rsp), %r14
movq 0x14a8c(%rip), %rbp     # 0x52fc8
movq (%r13), %rax
movq %rax, 0x10(%rsp)
movq 0x8(%r13), %rax
movq %rax, 0x18(%rsp)
testq %rax, %rax
je 0x3e562
cmpb $0x0, (%rbp)
je 0x3e55e
incl 0x8(%rax)
jmp 0x3e562
lock
incl 0x8(%rax)
movq (%r15), %rdi
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x110(%rsp)
movq %rax, 0x118(%rsp)
testq %rax, %rax
je 0x3e593
cmpb $0x0, (%rbp)
je 0x3e58f
incl 0x8(%rax)
jmp 0x3e593
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x110(%rsp), %rsi
callq *0x28(%rax)
movl %eax, %r12d
movb $0x1, %bl
testb %al, %al
jne 0x3e5f5
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x100(%rsp)
movq %rax, 0x108(%rsp)
testq %rax, %rax
je 0x3e5d8
cmpb $0x0, (%rbp)
je 0x3e5d4
incl 0x8(%rax)
jmp 0x3e5d8
lock
incl 0x8(%rax)
movq 0x78(%rsp), %rdi
cmpq $0x0, 0x10(%rdi)
je 0x3e89b
leaq 0x100(%rsp), %rsi
callq *0x18(%rdi)
movl %eax, %ebx
testb %r12b, %r12b
jne 0x3e60c
movq 0x108(%rsp), %rdi
testq %rdi, %rdi
je 0x3e60c
callq 0x13308
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0x3e61e
callq 0x13308
testb %bl, %bl
je 0x3e7ba
movq (%r15), %rsi
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0xf0(%rsp)
movq %rax, 0xf8(%rsp)
testq %rax, %rax
je 0x3e657
cmpb $0x0, (%rbp)
je 0x3e653
incl 0x8(%rax)
jmp 0x3e657
lock
incl 0x8(%rax)
movq (%rsi), %rax
leaq 0x80(%rsp), %rdi
leaq 0xf0(%rsp), %rdx
xorl %ecx, %ecx
callq *0x30(%rax)
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x3e681
callq 0x13308
cmpq $0x0, 0x80(%rsp)
je 0x3e6b6
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x90(%rsp)
movq %rax, 0x98(%rsp)
testq %rax, %rax
je 0x3e6ce
cmpb $0x0, (%rbp)
je 0x3e6ca
incl 0x8(%rax)
jmp 0x3e6ce
movq 0x60(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x162a6
jmp 0x3e7a8
lock
incl 0x8(%rax)
movq 0x80(%rsp), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0xa0(%rsp)
movq %rax, 0xa8(%rsp)
testq %rax, %rax
je 0x3e702
cmpb $0x0, (%rbp)
je 0x3e6fe
incl 0x8(%rax)
jmp 0x3e702
lock
incl 0x8(%rax)
movl $0x1, %edx
movq %r14, %rdi
leaq 0x90(%rsp), %rsi
leaq 0xf(%rsp), %rcx
callq 0x3ed30
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x3e72e
callq 0x13308
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3e740
callq 0x13308
leaq 0x90(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x2d16f
movaps 0x90(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x90(%rsp)
movq 0x8(%r15), %rdi
movups %xmm0, (%r15)
testq %rdi, %rdi
je 0x3e778
callq 0x13308
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3e78a
callq 0x13308
movq 0x70(%rsp), %rdi
cmpq $0x0, 0x10(%rdi)
je 0x3e8a0
movq %r14, %rsi
callq *0x18(%rdi)
movq %r14, %rdi
callq 0x165b8
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x3e7ba
callq 0x13308
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x3e7c9
callq 0x13308
addq $0x10, %r13
cmpq 0x68(%rsp), %r13
jne 0x3e53c
leaq 0x1a0(%rsp), %rdi
movq 0x78(%rsp), %rsi
callq 0x3ed78
leaq 0x180(%rsp), %rdi
movq 0x70(%rsp), %rsi
movq 0x20(%rsp), %rbx
callq 0x3edde
movq 0x58(%rsp), %rdx
movq 0x60(%rsp), %rdi
leaq 0x1a0(%rsp), %rcx
leaq 0x180(%rsp), %r8
movq %r15, %rsi
movq (%rsp), %r13
callq 0x3e0fc
movq 0x190(%rsp), %rax
testq %rax, %rax
je 0x3e846
leaq 0x180(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x1b0(%rsp), %rax
testq %rax, %rax
je 0x3e865
leaq 0x1a0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x30(%rsp), %rdi
callq 0x16384
testq %rbx, %rbx
je 0x3e87c
movq %rbx, %rdi
callq 0x13308
testq %r13, %r13
je 0x3e889
movq %r13, %rdi
callq 0x13308
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x7110
callq 0x7110
movq 0x14724(%rip), %rdi     # 0x52fd0
leaq 0x3a10(%rip), %rsi      # 0x422c3
movl $0x28, %edx
callq 0x72c0
movq 0x1470c(%rip), %rdi     # 0x52fd0
movl 0x2c(%rsp), %esi
callq 0x7410
movq %rax, %rdi
callq 0x7140
movq %r14, 0x130(%rsp)
movq %r13, 0x138(%rsp)
movq %r13, (%rsp)
testq %r13, %r13
je 0x3e90b
movq 0x146d3(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
jne 0x3e904
movq (%rsp), %rax
lock
incl 0x8(%rax)
jmp 0x3e90b
movq (%rsp), %rax
incl 0x8(%rax)
movq 0x146be(%rip), %rdi     # 0x52fd0
leaq 0x130(%rsp), %rsi
callq 0x29634
movq %rax, %rdi
callq 0x7140
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0x3e939
callq 0x13308
movq 0x14690(%rip), %rdi     # 0x52fd0
leaq 0x39a5(%rip), %rsi      # 0x422ec
movl $0x9, %edx
movq (%rsp), %r13
callq 0x72c0
movq %r14, 0x120(%rsp)
movq %r13, 0x128(%rsp)
testq %r13, %r13
je 0x3e987
movq 0x14657(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
jne 0x3e980
movq (%rsp), %rax
lock
incl 0x8(%rax)
jmp 0x3e987
movq (%rsp), %rax
incl 0x8(%rax)
leaq 0x120(%rsp), %rdi
callq 0x34834
movzbl %al, %esi
movq 0x14632(%rip), %rdi     # 0x52fd0
callq 0x73e0
movq %rax, %rdi
callq 0x7140
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
je 0x3e9bd
callq 0x13308
movq 0x1460c(%rip), %rdi     # 0x52fd0
leaq 0x392b(%rip), %rsi      # 0x422f6
movl $0xe, %edx
movq (%rsp), %r13
callq 0x72c0
xorl %eax, %eax
leaq 0xc8(%rsp), %r12
movl %eax, -0x30(%r12)
movq %rax, -0x28(%r12)
leaq 0x98(%rsp), %rcx
movq %rcx, -0x20(%r12)
movq %rcx, -0x18(%r12)
movq %rax, -0x10(%r12)
movl %eax, (%r12)
movq %rax, 0x8(%r12)
movq %r12, 0x10(%r12)
movq %r12, 0x18(%r12)
movq %rax, 0x20(%r12)
movq (%r14), %rax
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq *0x40(%rax)
movq 0xd8(%rsp), %rbx
cmpq %r12, %rbx
je 0x3ea91
leaq 0x40(%rsp), %r13
leaq 0x30(%rsp), %r14
movq 0x14585(%rip), %r15     # 0x52fd0
movq 0x20(%rbx), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *0x38(%rax)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq %r15, %rdi
callq 0x72c0
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x3ea81
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7280
movq %rbx, %rdi
callq 0x72d0
movq %rax, %rbx
cmpq %r12, %rax
jne 0x3ea4b
movq 0x14538(%rip), %rdi     # 0x52fd0
callq 0x7140
movl $0x1, %edi
callq 0x72f0
movq %rax, %rbp
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x3eac8
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7280
jmp 0x3eac8
jmp 0x3eac5
movq %rax, %rbp
leaq 0xc0(%rsp), %rdi
callq 0x35774
leaq 0x90(%rsp), %rdi
callq 0x357c4
jmp 0x3ed0a
movq %rax, %rbp
movq 0x128(%rsp), %rdi
jmp 0x3ebf5
movq %rax, %rbp
movq 0x138(%rsp), %rdi
jmp 0x3ebf5
jmp 0x3eb5c
jmp 0x3eb5c
movq %rax, %rbp
movq 0x190(%rsp), %rax
testq %rax, %rax
je 0x3eb34
leaq 0x180(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x3eb34
jmp 0x3eb5c
movq %rax, %rbp
movq 0x1b0(%rsp), %rax
testq %rax, %rax
je 0x3ecee
leaq 0x1a0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x3ecee
movq %rax, %rdi
callq 0x132d9
movq %rax, %rbp
jmp 0x3ecee
jmp 0x3eb6e
movq %rbx, 0x20(%rsp)
movq %r13, (%rsp)
movq %rax, %rbp
jmp 0x3ecf8
movq %rbp, 0x58(%rsp)
movq %r13, (%rsp)
movq %rax, %rbp
cmpl $0x1, %edx
jne 0x3ed0a
movq %rbp, %rdi
callq 0x7300
leaq 0x12ddd(%rip), %rax     # 0x51980
leaq 0x90(%rsp), %rbx
movq %rax, (%rbx)
movq %rbp, %rdi
callq 0x7120
movl $0xffffffff, (%r12)     # imm = 0xFFFFFFFF
movq %rbx, %rdi
callq 0x7478
callq 0x73d0
movq (%rsp), %r13
movq 0x58(%rsp), %rbp
jmp 0x3e41e
jmp 0x3ec6c
movq %rax, %rbp
jmp 0x3ec9a
movq %r13, (%rsp)
movq %rax, %rbp
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
jne 0x3ed05
jmp 0x3ed0a
movq %rax, %rbp
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x3ec18
callq 0x13308
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x3ec2a
callq 0x13308
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0x3ec3c
callq 0x13308
movq %rbx, (%rsp)
jmp 0x3ed0a
movq %rax, %rbp
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x3ec57
callq 0x13308
testq %r14, %r14
je 0x3ed1a
movq %r14, %rdi
jmp 0x3ed15
movq %r13, (%rsp)
movq %rax, %rbp
jmp 0x3ed0a
jmp 0x3ec8a
movq %rax, %rbp
leaq 0x90(%rsp), %rdi
callq 0x16594
jmp 0x3ec9a
jmp 0x3ec8a
movq %rax, %rbp
leaq 0x1c0(%rsp), %rdi
callq 0x165b8
movq 0x88(%rsp), %rdi
jmp 0x3ecd5
jmp 0x3ecb3
movq %rax, %rbp
movq 0xf8(%rsp), %rdi
jmp 0x3ecd5
movq %rax, %rbp
movq 0x108(%rsp), %rdi
testq %rdi, %rdi
je 0x3eccd
callq 0x13308
jmp 0x3eccd
movq %rax, %rbp
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0x3ecdf
callq 0x13308
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x3ecee
callq 0x13308
leaq 0x30(%rsp), %rdi
callq 0x16384
cmpq $0x0, 0x20(%rsp)
je 0x3ed0a
movq 0x20(%rsp), %rdi
callq 0x13308
cmpq $0x0, (%rsp)
je 0x3ed1a
movq (%rsp), %rdi
callq 0x13308
movq %rbp, %rdi
callq 0x7430