// File: eryxcc[P]lois/src/formula.cpp
// Function: lois::FormulaBi::subst(std::vector<std::pair<std::shared_ptr<lois::Variable>, lois::term>, std::allocator<std::pair<std::shared_ptr<lois::Variable>, lois::term>>> const&) const
virtual rbool subst(const varsubstlist& l) const { 
    if(l.size() == 1 && l[0].first == lastusecheck && usestat < 3) {
      if(usestat == 1 && type)
        return substitute(left, l) && right;
      if(usestat == 1 && !type)
        return substitute(left, l) || right;
      if(usestat == 2 && type)
        return left && substitute(right, l);
      if(usestat == 2 && !type)
        return left || substitute(right, l);
      }
    if(type) return substitute(left, l) && substitute(right, l);
    return substitute(left, l) || substitute(right, l);
    // make_shared<FormulaBi> (type, left->alph(v1,v2), right->alph(v1,v2));
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x100(%rbp)
movq %rdi, %rax
movq %rax, -0xf8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x21840
cmpq $0x1, %rax
jne 0x4c0a6
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4cbc0
movq -0xf0(%rbp), %rsi
movq %rax, %rdi
addq $0x38, %rsi
callq 0x45090
testb $0x1, %al
jne 0x4bdaf
jmp 0x4c0a6
movq -0xf0(%rbp), %rax
cmpl $0x3, 0x48(%rax)
jge 0x4c0a6
movq -0xf0(%rbp), %rax
cmpl $0x1, 0x48(%rax)
jne 0x4be72
movq -0xf0(%rbp), %rax
testb $0x1, 0x10(%rax)
je 0x4be72
movq -0xf0(%rbp), %rsi
addq $0x18, %rsi
movq -0x18(%rbp), %rdx
leaq -0x28(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x44840
movq -0xf0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x11030
movq -0x100(%rbp), %rdi
movq -0x110(%rbp), %rsi
movq -0x108(%rbp), %rdx
callq 0x42150
jmp 0x4be38
leaq -0x38(%rbp), %rdi
callq 0x11060
leaq -0x28(%rbp), %rdi
callq 0x11060
jmp 0x4c201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x11060
leaq -0x28(%rbp), %rdi
callq 0x11060
jmp 0x4c211
movq -0xf0(%rbp), %rax
cmpl $0x1, 0x48(%rax)
jne 0x4bf24
movq -0xf0(%rbp), %rax
testb $0x1, 0x10(%rax)
jne 0x4bf24
movq -0xf0(%rbp), %rsi
addq $0x18, %rsi
movq -0x18(%rbp), %rdx
leaq -0x58(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x44840
movq -0xf0(%rbp), %rsi
addq $0x28, %rsi
leaq -0x68(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x11030
movq -0x100(%rbp), %rdi
movq -0x120(%rbp), %rsi
movq -0x118(%rbp), %rdx
callq 0x42550
jmp 0x4beea
leaq -0x68(%rbp), %rdi
callq 0x11060
leaq -0x58(%rbp), %rdi
callq 0x11060
jmp 0x4c201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x11060
leaq -0x58(%rbp), %rdi
callq 0x11060
jmp 0x4c211
movq -0xf0(%rbp), %rax
cmpl $0x2, 0x48(%rax)
jne 0x4bfde
movq -0xf0(%rbp), %rax
testb $0x1, 0x10(%rax)
je 0x4bfde
movq -0xf0(%rbp), %rsi
addq $0x18, %rsi
leaq -0x78(%rbp), %rdi
callq 0x11030
movq -0xf0(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x44840
jmp 0x4bf77
movq -0x100(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x88(%rbp), %rdx
callq 0x42150
jmp 0x4bf90
leaq -0x88(%rbp), %rdi
callq 0x11060
leaq -0x78(%rbp), %rdi
callq 0x11060
jmp 0x4c201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4bfd0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x11060
leaq -0x78(%rbp), %rdi
callq 0x11060
jmp 0x4c211
movq -0xf0(%rbp), %rax
cmpl $0x2, 0x48(%rax)
jne 0x4c0a4
movq -0xf0(%rbp), %rax
testb $0x1, 0x10(%rax)
jne 0x4c0a4
movq -0xf0(%rbp), %rsi
addq $0x18, %rsi
leaq -0x98(%rbp), %rdi
callq 0x11030
movq -0xf0(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
callq 0x44840
jmp 0x4c034
movq -0x100(%rbp), %rdi
leaq -0x98(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
callq 0x42550
jmp 0x4c050
leaq -0xa8(%rbp), %rdi
callq 0x11060
leaq -0x98(%rbp), %rdi
callq 0x11060
jmp 0x4c201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4c093
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x11060
leaq -0x98(%rbp), %rdi
callq 0x11060
jmp 0x4c211
jmp 0x4c0a6
movq -0xf0(%rbp), %rax
testb $0x1, 0x10(%rax)
je 0x4c15f
movq -0xf0(%rbp), %rsi
addq $0x18, %rsi
movq -0x18(%rbp), %rdx
leaq -0xb8(%rbp), %rdi
callq 0x44840
movq -0xf0(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
callq 0x44840
jmp 0x4c0ef
movq -0x100(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
callq 0x42150
jmp 0x4c10b
leaq -0xc8(%rbp), %rdi
callq 0x11060
leaq -0xb8(%rbp), %rdi
callq 0x11060
jmp 0x4c201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4c14e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x11060
leaq -0xb8(%rbp), %rdi
callq 0x11060
jmp 0x4c211
movq -0xf0(%rbp), %rsi
addq $0x18, %rsi
movq -0x18(%rbp), %rdx
leaq -0xd8(%rbp), %rdi
callq 0x44840
movq -0xf0(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
callq 0x44840
jmp 0x4c197
movq -0x100(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x42550
jmp 0x4c1b3
leaq -0xe8(%rbp), %rdi
callq 0x11060
leaq -0xd8(%rbp), %rdi
callq 0x11060
jmp 0x4c201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4c1f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x11060
leaq -0xd8(%rbp), %rdi
callq 0x11060
jmp 0x4c211
movq -0xf8(%rbp), %rax
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x84d0
nopw (%rax,%rax)