// File: /workspace/github_c_makefile_star2_O2/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 0x2b30
movl %esi, %r12d
cmpl $0x1, %esi
jbe 0x2b4f
testb $0x1, %r12b
jne 0x2b6e
movl %ecx, %r14d
movl %edx, %r15d
movq %rdi, %rbx
movl %r12d, %esi
callq 0x1fd2
movb (%rax), %cl
testb $0x1, %cl
jne 0x2b8d
testb $0x2, %cl
jne 0x2bac
testb $0x4, %cl
jne 0x2bcb
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 0x1fd2
movq %rbx, %rdi
movl %r14d, %esi
callq 0x1fd2
movl 0x10(%rbx), %r12d
cmpl 0x98(%rbx), %r12d
jne 0x2afd
movl %r15d, -0x2c(%rbp)
movl %r14d, -0x30(%rbp)
leaq (%r12,%r12), %rax
testl %r12d, %r12d
pushq $0x1
popq %r14
cmovneq %rax, %r14
imulq $0xc, %r12, %rax
movq %rax, -0x48(%rbp)
imulq $0xc, %r14, %rsi
cmpq %r12, %r14
movq %rsi, %r15
cmovaq %rax, %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 0x1140
cmpq %r12, %r14
jbe 0x2ad0
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 0x2b01
movq 0x60(%rbx), %r13
movl %r12d, %eax
imulq $0xc, %rax, %rax
movl -0x34(%rbp), %ecx
movl %ecx, (%r13,%rax)
movl %r15d, 0x4(%r13,%rax)
movl %r14d, 0x8(%r13,%rax)
incl %r12d
movl %r12d, 0x10(%rbx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x580a(%rip), %rdi      # 0x8341
leaq 0x57b5(%rip), %rsi      # 0x82f3
leaq 0x5940(%rip), %rcx      # 0x8485
movl $0x1fd, %edx            # imm = 0x1FD
callq 0x10f0
leaq 0x5975(%rip), %rdi      # 0x84cb
leaq 0x5796(%rip), %rsi      # 0x82f3
leaq 0x5921(%rip), %rcx      # 0x8485
movl $0x1ff, %edx            # imm = 0x1FF
callq 0x10f0
leaq 0x595e(%rip), %rdi      # 0x84d3
leaq 0x5777(%rip), %rsi      # 0x82f3
leaq 0x5902(%rip), %rcx      # 0x8485
movl $0x200, %edx            # imm = 0x200
callq 0x10f0
leaq 0x580f(%rip), %rdi      # 0x83a3
leaq 0x5758(%rip), %rsi      # 0x82f3
leaq 0x58e3(%rip), %rcx      # 0x8485
movl $0x204, %edx            # imm = 0x204
callq 0x10f0
leaq 0x57fd(%rip), %rdi      # 0x83b0
leaq 0x5739(%rip), %rsi      # 0x82f3
leaq 0x58c4(%rip), %rcx      # 0x8485
movl $0x205, %edx            # imm = 0x205
callq 0x10f0
leaq 0x57eb(%rip), %rdi      # 0x83bd
leaq 0x571a(%rip), %rsi      # 0x82f3
leaq 0x58a5(%rip), %rcx      # 0x8485
movl $0x206, %edx            # imm = 0x206
callq 0x10f0