// File: /workspace/github_c_makefile_star2_O3/reactive-systems[P]aiger-ltl-model-checker/aiger.c
// Function: aiger_add_and
void
aiger_add_and (aiger * public, unsigned lhs, unsigned rhs0, unsigned rhs1)
{
  IMPORT_private_FROM (public);
  aiger_type *type;
  aiger_and *and;

  assert (!aiger_error (public));

  assert (lhs > 1);
  assert (!aiger_sign (lhs));

  type = aiger_import_literal (private, lhs);

  assert (!type->input);
  assert (!type->latch);
  assert (!type->and);

  type->and = 1;
  type->idx = public->num_ands;

  aiger_import_literal (private, rhs0);
  aiger_import_literal (private, rhs1);

  if (public->num_ands == private->size_ands)
    ENLARGE (public->ands, private->size_ands);

  and = public->ands + public->num_ands;

  and->lhs = lhs;
  and->rhs0 = rhs0;
  and->rhs1 = rhs1;

  public->num_ands++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
cmpq $0x0, 0xd0(%rdi)
jne 0x2d84
movl %esi, %r12d
cmpl $0x1, %esi
jbe 0x2da3
testb $0x1, %r12b
jne 0x2dc2
movl %ecx, %r14d
movl %edx, %r15d
movq %rdi, %rbx
movl %r12d, %esi
callq 0x21dc
movb (%rax), %cl
testb $0x1, %cl
jne 0x2de1
testb $0x2, %cl
jne 0x2e00
testb $0x4, %cl
jne 0x2e1f
movl %r12d, -0x34(%rbp)
orb $0x4, %cl
movb %cl, (%rax)
movl 0x10(%rbx), %ecx
movl %ecx, 0x4(%rax)
movq %rbx, %rdi
movl %r15d, %esi
callq 0x21dc
movq %rbx, %rdi
movl %r14d, %esi
callq 0x21dc
movl 0x10(%rbx), %r12d
cmpl 0x98(%rbx), %r12d
jne 0x2d51
movl %r15d, -0x2c(%rbp)
movl %r14d, -0x30(%rbp)
leaq (%r12,%r12), %rax
testl %r12d, %r12d
movl $0x1, %r14d
cmovneq %rax, %r14
leaq (,%r12,4), %rax
leaq (%rax,%rax,2), %rcx
movq %rcx, -0x48(%rbp)
leaq (,%r14,4), %rax
leaq (%rax,%rax,2), %rsi
cmpq %r12, %r14
movq %rsi, %r15
cmovaq %rcx, %r15
movq 0xb8(%rbx), %rdi
movq %rsi, -0x40(%rbp)
callq *0xc0(%rbx)
movq %rax, %r13
movq 0x60(%rbx), %rsi
movq %rax, %rdi
movq %r15, %rdx
movq -0x48(%rbp), %r15
callq 0x1150
cmpq %r12, %r14
jbe 0x2d24
movq %r13, %rdi
addq %r15, %rdi
movq -0x40(%rbp), %rdx
subq %r15, %rdx
xorl %esi, %esi
callq 0x1100
movq 0x60(%rbx), %rsi
movq 0xb8(%rbx), %rdi
movq %r15, %rdx
callq *0xc8(%rbx)
movq %r13, 0x60(%rbx)
movl %r14d, 0x98(%rbx)
movl 0x10(%rbx), %r12d
movl -0x30(%rbp), %r14d
movl -0x2c(%rbp), %r15d
jmp 0x2d55
movq 0x60(%rbx), %r13
movl %r12d, %eax
leaq (%rax,%rax,2), %rax
movl -0x34(%rbp), %ecx
movl %ecx, (%r13,%rax,4)
movl %r15d, 0x4(%r13,%rax,4)
movl %r14d, 0x8(%r13,%rax,4)
incl %r12d
movl %r12d, 0x10(%rbx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x55b6(%rip), %rdi      # 0x8341
leaq 0x5561(%rip), %rsi      # 0x82f3
leaq 0x56ec(%rip), %rcx      # 0x8485
movl $0x1fd, %edx            # imm = 0x1FD
callq 0x10f0
leaq 0x5721(%rip), %rdi      # 0x84cb
leaq 0x5542(%rip), %rsi      # 0x82f3
leaq 0x56cd(%rip), %rcx      # 0x8485
movl $0x1ff, %edx            # imm = 0x1FF
callq 0x10f0
leaq 0x570a(%rip), %rdi      # 0x84d3
leaq 0x5523(%rip), %rsi      # 0x82f3
leaq 0x56ae(%rip), %rcx      # 0x8485
movl $0x200, %edx            # imm = 0x200
callq 0x10f0
leaq 0x55bb(%rip), %rdi      # 0x83a3
leaq 0x5504(%rip), %rsi      # 0x82f3
leaq 0x568f(%rip), %rcx      # 0x8485
movl $0x204, %edx            # imm = 0x204
callq 0x10f0
leaq 0x55a9(%rip), %rdi      # 0x83b0
leaq 0x54e5(%rip), %rsi      # 0x82f3
leaq 0x5670(%rip), %rcx      # 0x8485
movl $0x205, %edx            # imm = 0x205
callq 0x10f0
leaq 0x5597(%rip), %rdi      # 0x83bd
leaq 0x54c6(%rip), %rsi      # 0x82f3
leaq 0x5651(%rip), %rcx      # 0x8485
movl $0x206, %edx            # imm = 0x206
callq 0x10f0