// File: 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
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rcx, -0x108(%rbp)
movq %rsi, %rax
movq -0x108(%rbp), %rsi
movq %rsi, -0x100(%rbp)
movq %rdi, -0x8(%rbp)
movq %rax, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movl $0x0, 0x9b8ff(%rip)     # 0xa57c0
leaq -0x58(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x11030
movq -0xf8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x10ff0
jmp 0x9ee3
leaq -0x58(%rbp), %rdi
callq 0x11060
leaq -0x48(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rsi
leaq -0x98(%rbp), %rdi
callq 0x3ead0
jmp 0x9f06
movq -0x30(%rbp), %rsi
leaq -0xc8(%rbp), %rdi
callq 0x3eb60
jmp 0x9f18
jmp 0x9f1a
leaq -0x98(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x11080
movb %al, -0x109(%rbp)
jmp 0x9f35
movb -0x109(%rbp), %al
testb $0x1, %al
jne 0x9fba
jmp 0x9f41
leaq -0xc8(%rbp), %rdi
callq 0x110e0
leaq -0x98(%rbp), %rdi
callq 0x110e0
leaq -0x48(%rbp), %rdi
callq 0x11120
jmp 0xa033
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x11060
jmp 0xa201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa025
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa019
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x110e0
jmp 0xa019
leaq -0x98(%rbp), %rdi
callq 0x110b0
movb %al, -0x10a(%rbp)
jmp 0x9fce
movb -0x10a(%rbp), %al
andb $0x1, %al
movb %al, -0xc9(%rbp)
testb $0x1, -0xc9(%rbp)
jne 0x9fe7
jmp 0xa004
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x97d0
jmp 0xa002
jmp 0xa004
jmp 0xa006
leaq -0x98(%rbp), %rdi
callq 0x3ea80
jmp 0xa014
jmp 0x9f1a
leaq -0x98(%rbp), %rdi
callq 0x110e0
leaq -0x48(%rbp), %rdi
callq 0x11120
jmp 0xa201
movl 0x9b787(%rip), %eax     # 0xa57c0
cmpl -0x24(%rbp), %eax
jne 0xa0f2
movq 0x9af8f(%rip), %rdi     # 0xa4fd8
leaq 0x6809c(%rip), %rsi     # 0x720ec
callq 0x82b0
movq %rax, %rdi
movl 0x9b762(%rip), %esi     # 0xa57c0
callq 0x84c0
movq %rax, %rdi
leaq 0x6808e(%rip), %rsi     # 0x720fb
callq 0x82b0
movq -0x100(%rbp), %rsi
movq %rax, -0x128(%rbp)
leaq -0xe0(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x11030
movq -0x128(%rbp), %rdi
movq -0x120(%rbp), %rsi
callq 0x40060
movq %rax, -0x118(%rbp)
jmp 0xa0af
movq -0x118(%rbp), %rdi
movq 0x9aef3(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0xa0c4
leaq -0xe0(%rbp), %rdi
callq 0x11060
jmp 0xa1da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x11060
jmp 0xa201
movq 0x9aedf(%rip), %rdi     # 0xa4fd8
leaq 0x67fe3(%rip), %rsi     # 0x720e3
callq 0x82b0
movq -0x100(%rbp), %rsi
movq %rax, -0x140(%rbp)
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x11030
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rsi
callq 0x40060
movq %rax, -0x130(%rbp)
jmp 0xa142
movq -0x130(%rbp), %rdi
leaq 0x68e1f(%rip), %rsi     # 0x72f6f
callq 0x82b0
movq %rax, -0x148(%rbp)
jmp 0xa15e
movq -0x148(%rbp), %rdi
movl 0x9b655(%rip), %esi     # 0xa57c0
callq 0x84c0
movq %rax, -0x150(%rbp)
jmp 0xa179
movq -0x150(%rbp), %rdi
leaq 0x6957e(%rip), %rsi     # 0x73705
callq 0x82b0
movq %rax, -0x158(%rbp)
jmp 0xa195
movq -0x158(%rbp), %rdi
movq 0x9ae0d(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0xa1aa
leaq -0xf0(%rbp), %rdi
callq 0x11060
movl $0x1, %edi
callq 0x8390
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x11060
jmp 0xa201
callq 0x9070
movq 0x9adf2(%rip), %rdi     # 0xa4fd8
movq 0x9adc3(%rip), %rsi     # 0xa4fb0
callq 0x8300
movl 0x9b5c8(%rip), %eax     # 0xa57c0
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x84d0
nopw (%rax,%rax)