// File: eryxcc[P]lois/src/formula.cpp
// Function: lois::TermBinary::subFindv(std::shared_ptr<lois::TermVariable>)
vptr TermBinary::subFindv(tvptr v) {
  if(v->curcheck < checkid) {
    vptr v1 = left.p->subFindv(left.p);
    vptr v2 = right.p->subFindv(right.p);
    if(v1 == nullvptr) return v2;
    if(v2 == nullvptr) return v1;
    if(v1->sublink != v2->sublink) {
      v2->sublink = v1->sublink;
      subJoin(v1->sub, v2->sub);
      }
    if(!v1->sub) v1->sub = std::make_shared<Subdomain> ();
    v1->sub->useRelation(r);
    sublink = v1->sublink;
    }
  return sublink;
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdx, -0xa0(%rbp)
movq %rdi, %rax
movq -0xa0(%rbp), %rdi
movq %rax, -0x98(%rbp)
movq %rax, %rcx
movq %rcx, -0x90(%rbp)
movq %rax, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
callq 0x14bd0
movl 0x8(%rax), %eax
cmpl 0x61e56(%rip), %eax     # 0xa5828
jge 0x43cb2
movq -0x88(%rbp), %rdi
addq $0x20, %rdi
movq %rdi, -0xb8(%rbp)
callq 0x14bd0
movq -0xb8(%rbp), %rsi
movq %rax, -0xb0(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x16e30
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
movq (%rsi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rdi
callq *%rax
jmp 0x43a2a
leaq -0x38(%rbp), %rdi
callq 0x14cf0
movq -0x88(%rbp), %rdi
addq $0x30, %rdi
movq %rdi, -0xd0(%rbp)
callq 0x14bd0
movq -0xd0(%rbp), %rsi
movq %rax, -0xc8(%rbp)
leaq -0x68(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x16e30
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
movq (%rsi), %rax
movq 0x28(%rax), %rax
leaq -0x58(%rbp), %rdi
callq *%rax
jmp 0x43a85
leaq -0x68(%rbp), %rdi
callq 0x14cf0
leaq -0x28(%rbp), %rdi
leaq 0x61d77(%rip), %rsi     # 0xa5810
callq 0x45090
testb $0x1, %al
jne 0x43aa4
jmp 0x43af4
movq -0x98(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x1c970
movl $0x1, -0x6c(%rbp)
jmp 0x43c88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x14cf0
jmp 0x43cd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x14cf0
jmp 0x43ca7
leaq -0x58(%rbp), %rdi
leaq 0x61d11(%rip), %rsi     # 0xa5810
callq 0x45090
testb $0x1, %al
jne 0x43b0a
jmp 0x43b26
movq -0x98(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x1c970
movl $0x1, -0x6c(%rbp)
jmp 0x43c88
leaq -0x28(%rbp), %rdi
callq 0x11830
addq $0x30, %rax
movq %rax, -0xd8(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x11830
movq -0xd8(%rbp), %rdi
movq %rax, %rsi
addq $0x30, %rsi
callq 0x455e0
testb $0x1, %al
jne 0x43b5f
jmp 0x43bf1
leaq -0x28(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x11830
addq $0x30, %rax
movq %rax, -0xf8(%rbp)
leaq -0x58(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x11830
movq -0xf8(%rbp), %rsi
movq %rax, %rdi
addq $0x30, %rdi
callq 0x44bb0
movq -0xf0(%rbp), %rdi
callq 0x11830
movq -0xe8(%rbp), %rdi
addq $0x20, %rax
movq %rax, -0xe0(%rbp)
callq 0x11830
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
callq 0x43cf0
jmp 0x43bd5
jmp 0x43bf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x10f20
jmp 0x43ca7
leaq -0x28(%rbp), %rdi
callq 0x11830
movq %rax, %rdi
addq $0x20, %rdi
callq 0x45620
testb $0x1, %al
jne 0x43c37
leaq -0x80(%rbp), %rdi
callq 0x45640
jmp 0x43c15
leaq -0x28(%rbp), %rdi
callq 0x11830
movq %rax, %rdi
addq $0x20, %rdi
leaq -0x80(%rbp), %rsi
callq 0x456b0
leaq -0x80(%rbp), %rdi
callq 0x21170
leaq -0x28(%rbp), %rdi
callq 0x11830
movq %rax, %rdi
addq $0x20, %rdi
callq 0x45010
movq %rax, %rdi
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x43580
jmp 0x43c61
leaq -0x28(%rbp), %rdi
callq 0x11830
movq -0x88(%rbp), %rdi
movq %rax, %rsi
addq $0x30, %rsi
addq $0x40, %rdi
callq 0x44bb0
movl $0x0, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x10f20
leaq -0x28(%rbp), %rdi
callq 0x10f20
movl -0x6c(%rbp), %eax
testl %eax, %eax
je 0x43ca5
jmp 0x43ca3
jmp 0x43cc9
jmp 0x43cb2
leaq -0x28(%rbp), %rdi
callq 0x10f20
jmp 0x43cd9
movq -0x98(%rbp), %rdi
movq -0x88(%rbp), %rsi
addq $0x40, %rsi
callq 0x1b100
movq -0x90(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x84d0
nopw %cs:(%rax,%rax)