// File: /workspace/github_cpp_makefile_star2_O2/eryxcc[P]lois/tests/../include/lois.h
// Function: lois::EIteratorOf<lois::lpair<lois::term, lois::term>>::connectIterator()
void EIteratorOf<T>::connectIterator() {
  if(index >= s.elts.size() || index < 0) return;
  const SimpleSetOf<T>& sel(*s.elts[index]);
  // add variables and alph!

  if(debuglois) {
    std::cout << ido << "connect " << sel.a << " phi=" << sel.phi;
    for(auto v: sel.var) std::cout << " v:"<<v;
    std::cout << " in context="<<emptycontext << std::endl;
    }
  autoindenter i1;

  varsubstlist varpairs;
  varlist vlist;

  for(auto w: sel.var) {
    vptr v = newvar(w->dom);
    varpairs.emplace_back(w, term(v));
    vlist.push_back(v);
    }

  currentcontext = ourcontext = std::make_shared<Context> (currentcontext, 
    substitute(sel.phi, varpairs), vlist);
  
  // sometimes the environment is inconsistent with phi
  if(debuglois && at) std::cout << ido << "got for conscheck: " << *at << std::endl << ido << "  IN " << emptycontext << std::endl;
  if(debuglois && !at) std::cout << ido << "got for conscheck: " << "NULL" << std::endl << ido << "  IN " << emptycontext << std::endl;
  int res = solver->solveEnv();
  
  if(debuglois) std::cout << ido << "checking consistency: " << res << std::endl;
  
  if(res == 2) at = std::make_shared<T> (substitute(sel.a, varpairs));
  else ++(*this);

  if(debuglois) {
    if(at == NULL) std::cout << ido << "no result\n" << std::endl;
    else std::cout << ido << "result: " << *at << " in context="<<emptycontext << std::endl;
    }
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movslq 0x8(%rdi), %rax
testq %rax, %rax
js 0x1c2c0
movq %rdi, %r15
movq (%rdi), %rdx
movq 0x10(%rdx), %rcx
movq 0x18(%rdx), %rdx
subq %rcx, %rdx
sarq $0x4, %rdx
cmpq %rax, %rdx
jbe 0x1c2c0
shlq $0x4, %rax
movq (%rcx,%rax), %r12
leaq 0x2de97(%rip), %rax     # 0x49b98
cmpb $0x1, (%rax)
movq %r15, 0x58(%rsp)
movq %r12, 0x38(%rsp)
jne 0x1be6c
leaq 0x2d54d(%rip), %rax     # 0x49268
movq (%rax), %rsi
movq 0x2d2ab(%rip), %rdi     # 0x48fd0
callq 0x2d27c
leaq 0x1553e(%rip), %rsi     # 0x3126f
movq %rax, %rdi
callq 0x7230
movq %rax, %rbx
leaq 0x28(%r12), %rsi
leaq 0x138(%rsp), %r14
movq %r14, %rdi
callq 0x1accc
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1acf5
leaq 0x15515(%rip), %rsi     # 0x31278
movq %rax, %rdi
callq 0x7230
movq %rax, %rbx
leaq 0x18(%r12), %rsi
leaq 0xe8(%rsp), %r14
movq %r14, %rdi
callq 0xf04a
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1ef1c
leaq 0xf0(%rsp), %rdi
callq 0xefce
leaq 0x138(%rsp), %rdi
callq 0xde74
movq (%r12), %r14
movq 0x8(%r12), %r13
leaq 0x18(%rsp), %r12
leaq 0x154c1(%rip), %rbp     # 0x3127e
leaq 0xd8(%rsp), %rbx
cmpq %r13, %r14
je 0x1be1a
movq %r12, %rdi
movq %r14, %rsi
callq 0x1160e
movq 0x2d1f4(%rip), %rdi     # 0x48fd0
movq %rbp, %rsi
callq 0x7230
movq %rax, %r15
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1160e
movq %r15, %rdi
movq %rbx, %rsi
callq 0x1f79c
leaq 0xe0(%rsp), %rdi
callq 0xefce
leaq 0x20(%rsp), %rdi
callq 0xefce
addq $0x10, %r14
jmp 0x1bdc5
movq 0x2d1af(%rip), %rdi     # 0x48fd0
leaq 0x1545a(%rip), %rsi     # 0x31282
callq 0x7230
movq %rax, %rbx
leaq 0x2d929(%rip), %rsi     # 0x49760
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
callq 0xf7c2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x112f0
movq %rax, %rdi
callq 0x7130
leaq 0xd0(%rsp), %rdi
callq 0xefce
movq 0x38(%rsp), %r12
leaq 0x2da75(%rip), %rax     # 0x498e8
addl $0x2, (%rax)
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rax
andq $0x0, 0x10(%rax)
leaq 0x60(%rsp), %rcx
andq $0x0, 0x10(%rcx)
movaps %xmm0, (%rax)
movaps %xmm0, (%rcx)
movq (%r12), %r15
movq 0x8(%r12), %r14
leaq 0x18(%rsp), %r12
leaq 0x8(%rsp), %r13
leaq 0xa8(%rsp), %rbx
leaq 0xb8(%rsp), %rbp
cmpq %r14, %r15
je 0x1bf45
movq %r12, %rdi
movq %r15, %rsi
callq 0x1160e
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rsi
movq %r13, %rdi
callq 0x12a4f
movq %rbx, %rdi
movq %r13, %rsi
callq 0x12f26
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x21596
leaq 0x40(%rsp), %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x12a70
leaq 0xc0(%rsp), %rdi
callq 0xefce
leaq 0xb0(%rsp), %rdi
callq 0xefce
leaq 0x60(%rsp), %rdi
movq %r13, %rsi
callq 0x11466
leaq 0x10(%rsp), %rdi
callq 0xefce
leaq 0x20(%rsp), %rdi
callq 0xefce
addq $0x10, %r15
jmp 0x1beb6
movq 0x38(%rsp), %rbp
leaq 0x18(%rbp), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x216a8
leaq 0x2d80c(%rip), %rsi     # 0x49770
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
leaq 0x60(%rsp), %rcx
callq 0x12ab2
leaq 0x2dc19(%rip), %r12     # 0x49b98
movq 0x58(%rsp), %r13
leaq 0x20(%r13), %rbx
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x131f6
leaq 0x2d7d4(%rip), %rdi     # 0x49770
movq %rbx, %rsi
callq 0x112d4
leaq 0x20(%rsp), %rdi
callq 0xefce
leaq 0x10(%rsp), %rdi
callq 0xefce
movb (%r12), %al
cmpb $0x1, %al
jne 0x1c083
cmpq $0x0, 0x10(%r13)
je 0x1c083
leaq 0x2d292(%rip), %r15     # 0x49268
movq (%r15), %rsi
movq 0x2cff0(%rip), %rdi     # 0x48fd0
callq 0x2d27c
leaq 0x152a3(%rip), %rsi     # 0x3128f
movq %rax, %rdi
callq 0x7230
movq %rax, %rbx
movq 0x10(%r13), %rsi
leaq 0x118(%rsp), %r14
movq %r14, %rdi
callq 0x1accc
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1acf5
movq %rax, %rdi
callq 0x7130
movq (%r15), %rsi
movq %rax, %rdi
callq 0x2d27c
leaq 0x15273(%rip), %rsi     # 0x312a3
movq %rax, %rdi
callq 0x7230
movq %rax, %rbx
leaq 0x2d71e(%rip), %rsi     # 0x49760
leaq 0x98(%rsp), %r14
movq %r14, %rdi
callq 0xf7c2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x112f0
movq %rax, %rdi
callq 0x7130
leaq 0xa0(%rsp), %rdi
callq 0xefce
leaq 0x118(%rsp), %rdi
callq 0xde74
movb (%r12), %al
testb $0x1, %al
je 0x1c126
cmpq $0x0, 0x10(%r13)
jne 0x1c126
leaq 0x2d1cb(%rip), %rbx     # 0x49268
movq (%rbx), %rsi
movq 0x2cf29(%rip), %rdi     # 0x48fd0
callq 0x2d27c
leaq 0x151dc(%rip), %rsi     # 0x3128f
movq %rax, %rdi
callq 0x7230
leaq 0x151e7(%rip), %rsi     # 0x312a9
movq %rax, %rdi
callq 0x7230
movq %rax, %rdi
callq 0x7130
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x2d27c
leaq 0x151bf(%rip), %rsi     # 0x312a3
movq %rax, %rdi
callq 0x7230
movq %rax, %rbx
leaq 0x2d66a(%rip), %rsi     # 0x49760
leaq 0x88(%rsp), %r14
movq %r14, %rdi
callq 0xf7c2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x112f0
movq %rax, %rdi
callq 0x7130
leaq 0x90(%rsp), %rdi
callq 0xefce
leaq 0x2d743(%rip), %rax     # 0x49870
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movl %eax, %ebx
cmpb $0x1, (%r12)
jne 0x1c176
leaq 0x2d122(%rip), %rax     # 0x49268
movq (%rax), %rsi
movq 0x2ce80(%rip), %rdi     # 0x48fd0
callq 0x2d27c
leaq 0x15152(%rip), %rsi     # 0x312ae
movq %rax, %rdi
callq 0x7230
movq %rax, %rdi
movl %ebx, %esi
callq 0x7400
movq %rax, %rdi
callq 0x7130
leaq 0x10(%r13), %r14
cmpl $0x2, %ebx
jne 0x1c1c7
addq $0x28, %rbp
leaq 0x18(%rsp), %rdi
leaq 0x40(%rsp), %rdx
movq %rbp, %rsi
callq 0x1af7e
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x1c408
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x1c5ae
leaq 0x10(%rsp), %rdi
callq 0xefce
leaq 0x18(%rsp), %rdi
callq 0xde74
jmp 0x1c1cf
movq %r13, %rdi
callq 0xe070
cmpb $0x1, (%r12)
jne 0x1c2a2
cmpq $0x0, (%r14)
leaq 0x2d083(%rip), %rax     # 0x49268
movq (%rax), %rsi
je 0x1c27f
movq 0x2cddb(%rip), %rdi     # 0x48fd0
callq 0x2d27c
leaq 0x150cf(%rip), %rsi     # 0x312d0
movq %rax, %rdi
callq 0x7230
movq %rax, %rbx
movq (%r14), %rsi
leaq 0xf8(%rsp), %r14
movq %r14, %rdi
callq 0x1accc
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1acf5
leaq 0x15051(%rip), %rsi     # 0x31282
movq %rax, %rdi
callq 0x7230
movq %rax, %rbx
leaq 0x2d51d(%rip), %rsi     # 0x49760
leaq 0x78(%rsp), %r14
movq %r14, %rdi
callq 0xf7c2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x112f0
movq %rax, %rdi
callq 0x7130
leaq 0x80(%rsp), %rdi
callq 0xefce
leaq 0xf8(%rsp), %rdi
callq 0xde74
jmp 0x1c2a2
movq 0x2cd4a(%rip), %rdi     # 0x48fd0
callq 0x2d27c
leaq 0x15033(%rip), %rsi     # 0x312c5
movq %rax, %rdi
callq 0x7230
movq %rax, %rdi
callq 0x7130
leaq 0x60(%rsp), %rdi
callq 0x114e6
leaq 0x40(%rsp), %rdi
callq 0x11692
leaq 0x2d62b(%rip), %rax     # 0x498e8
addl $-0x2, (%rax)
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x18(%rsp), %rdi
jmp 0x1c373
jmp 0x1c37c
movq %rax, %r14
leaq 0xf0(%rsp), %rdi
callq 0xefce
jmp 0x1c356
movq %rax, %r14
leaq 0x80(%rsp), %rdi
callq 0xefce
jmp 0x1c30b
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
jmp 0x1c373
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
callq 0xefce
jmp 0x1c36b
movq %rax, %r14
leaq 0x90(%rsp), %rdi
jmp 0x1c3dd
movq %rax, %r14
leaq 0x10(%rsp), %rdi
jmp 0x1c3dd
jmp 0x1c37c
movq %rax, %r14
leaq 0xd0(%rsp), %rdi
jmp 0x1c39b
movq %rax, %r14
leaq 0x138(%rsp), %rdi
callq 0xde74
jmp 0x1c400
movq %rax, %r14
leaq 0x118(%rsp), %rdi
callq 0xde74
jmp 0x1c3e2
jmp 0x1c37c
movq %rax, %r14
jmp 0x1c3e2
movq %rax, %r14
jmp 0x1c396
movq %rax, %r14
leaq 0xe0(%rsp), %rdi
callq 0xefce
leaq 0x20(%rsp), %rdi
callq 0xefce
jmp 0x1c400
movq %rax, %r14
jmp 0x1c3d8
movq %rax, %r14
jmp 0x1c3bc
movq %rax, %r14
leaq 0xc0(%rsp), %rdi
callq 0xefce
leaq 0xb0(%rsp), %rdi
callq 0xefce
jmp 0x1c3ce
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xefce
leaq 0x20(%rsp), %rdi
callq 0xefce
leaq 0x60(%rsp), %rdi
callq 0x114e6
leaq 0x40(%rsp), %rdi
callq 0x11692
leaq 0x2d4eb(%rip), %rax     # 0x498e8
addl $-0x2, (%rax)
movq %r14, %rdi
callq 0x7410