// File: /workspace/github_cpp_makefile_star2_O1/eryxcc[P]lois/tests/autotest.cpp
// Function: countStructures(std::vector<lois::term, std::allocator<lois::term>>&, lois::RelTree&, lois::lsetof<lois::term> const&, lois::rbool, int)
int countStructures(vector<term>& v, RelTree& tree, const lsetof<term>& A, rbool phi, int expected) {
  numstruct = 0;
  If(phi) analyzeStructure(v, tree, A);
  if(numstruct == expected)
    std::cout << "passed: found " << numstruct << " trees for " << phi << std::endl;
  else {
    std::cout << "failed: " << phi << " (" << numstruct << ")" << std::endl;
    exit(1);
    }
  showTimeElapsed(); cout<<endl;
  return numstruct;
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movl %r8d, %ebp
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
movl $0x0, 0x4ab67(%rip)     # 0x53740
movq (%rcx), %rax
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
je 0x8bfa
movq 0x4a3dc(%rip), %rcx     # 0x52fc8
cmpb $0x0, (%rcx)
je 0x8bf6
incl 0x8(%rdi)
jmp 0x8bfa
lock
incl 0x8(%rdi)
movq %rax, (%rsp)
movq %rdi, 0x8(%rsp)
testq %rdi, %rdi
je 0x8c19
movq 0x4a3b9(%rip), %rax     # 0x52fc8
cmpb $0x0, (%rax)
je 0x8c23
incl 0x8(%rdi)
jmp 0x8c27
movl $0x0, 0x10(%rsp)
jmp 0x8c39
lock
incl 0x8(%rdi)
movl $0x0, 0x10(%rsp)
testq %rdi, %rdi
je 0x8c39
callq 0x13308
leaq 0x38(%rsp), %rdi
movq %rsp, %rsi
callq 0x29206
leaq 0x68(%rsp), %rdi
movq %rsp, %rsi
callq 0x29291
leaq 0x38(%rsp), %r13
movl 0x60(%rsp), %eax
cmpl 0x90(%rsp), %eax
je 0x8c8a
addl $-0x4, %eax
cmpl $-0x2, %eax
jae 0x8c80
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x855f
movq %r13, %rdi
callq 0x291f2
jmp 0x8c58
leaq 0x48617(%rip), %r14     # 0x512a8
movq %r14, 0x68(%rsp)
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x8ca8
callq 0x13308
leaq 0x68(%rsp), %rdi
callq 0x133aa
movq %r14, 0x38(%rsp)
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x8cc6
callq 0x13308
leaq 0x38(%rsp), %rdi
callq 0x133aa
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x8cdf
callq 0x13308
cmpl %ebp, 0x4aa5b(%rip)     # 0x53740
jne 0x8de0
movq 0x4a2de(%rip), %r14     # 0x52fd0
leaq 0x37383(%rip), %rsi     # 0x4007c
movl $0xe, %edx
movq %r14, %rdi
callq 0x72c0
movl 0x4aa34(%rip), %esi     # 0x53740
movq %r14, %rdi
callq 0x7410
movq %rax, %r15
leaq 0x3736d(%rip), %rsi     # 0x4008b
movl $0xb, %edx
movq %rax, %rdi
callq 0x72c0
movq (%rbx), %rax
movq %rax, 0x28(%rsp)
movq 0x8(%rbx), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x8d56
movq 0x4a280(%rip), %rcx     # 0x52fc8
cmpb $0x0, (%rcx)
je 0x8d52
incl 0x8(%rax)
jmp 0x8d56
lock
incl 0x8(%rax)
leaq 0x28(%rsp), %rsi
movq %r15, %rdi
callq 0x29634
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7250
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7030
movq %rax, %rdi
callq 0x7190
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x8d9c
callq 0x13308
callq 0x7eef
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7250
movsbl %al, %esi
movq %r14, %rdi
callq 0x7030
movq %rax, %rdi
callq 0x7190
movl 0x4a972(%rip), %eax     # 0x53740
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x4a1e9(%rip), %rdi     # 0x52fd0
leaq 0x37285(%rip), %rsi     # 0x40073
movl $0x8, %edx
callq 0x72c0
movq (%rbx), %rax
movq %rax, 0x18(%rsp)
movq 0x8(%rbx), %rax
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0x8e23
movq 0x4a1b3(%rip), %rcx     # 0x52fc8
cmpb $0x0, (%rcx)
jne 0x8e20
lock
incl 0x8(%rax)
jmp 0x8e23
incl 0x8(%rax)
movq 0x4a1a6(%rip), %rdi     # 0x52fd0
leaq 0x18(%rsp), %rsi
callq 0x29634
movq %rax, %rbx
leaq 0x380b5(%rip), %rsi     # 0x40ef3
movl $0x2, %edx
movq %rax, %rdi
callq 0x72c0
movl 0x4a8ef(%rip), %esi     # 0x53740
movq %rbx, %rdi
callq 0x7410
movq %rax, %rbx
leaq 0x38873(%rip), %rsi     # 0x416d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x72c0
movq %rbx, %rdi
callq 0x7140
leaq 0x18(%rsp), %rdi
callq 0x1051c
movl $0x1, %edi
callq 0x72f0
movq %rax, %rbx
movq 0x20(%rsp), %rdi
jmp 0x8ec8
movq %rax, %rbx
jmp 0x8eb9
movq %rax, %rbx
jmp 0x8ec3
movq %rax, %rbx
movq 0x30(%rsp), %rdi
jmp 0x8ec8
jmp 0x8eac
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x1052a
leaq 0x38(%rsp), %rdi
callq 0x1052a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x8ed2
callq 0x13308
movq %rbx, %rdi
callq 0x7430