// File: /workspace/github_c_makefile_star2_O1/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 0x2e71
movl %esi, %r13d
cmpl $0x1, %esi
jbe 0x2e90
testb $0x1, %r13b
jne 0x2eaf
movl %ecx, %r14d
movl %edx, %r15d
movq %rdi, %rbx
movl %r13d, %esi
callq 0x233c
movb (%rax), %cl
testb $0x1, %cl
jne 0x2ece
testb $0x2, %cl
jne 0x2eed
testb $0x4, %cl
jne 0x2f0c
orb $0x4, %cl
movb %cl, (%rax)
movl 0x10(%rbx), %ecx
movl %ecx, 0x4(%rax)
movq %rbx, %rdi
movl %r15d, %esi
callq 0x233c
movq %rbx, %rdi
movl %r14d, %esi
callq 0x233c
movl 0x98(%rbx), %r12d
cmpl %r12d, 0x10(%rbx)
jne 0x2e43
movl %r13d, -0x2c(%rbp)
movl %r15d, -0x30(%rbp)
movl %r14d, -0x34(%rbp)
leaq (%r12,%r12), %rax
testq %r12, %r12
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 0x1140
cmpq %r12, %r14
jbe 0x2e18
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 -0x34(%rbp), %r14d
movl -0x30(%rbp), %r15d
movl -0x2c(%rbp), %r13d
movq 0x60(%rbx), %rax
movl 0x10(%rbx), %ecx
leaq (%rcx,%rcx,2), %rdx
movl %r13d, (%rax,%rdx,4)
movl %r15d, 0x4(%rax,%rdx,4)
movl %r14d, 0x8(%rax,%rdx,4)
leal 0x1(%rcx), %eax
movl %eax, 0x10(%rbx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x54c9(%rip), %rdi      # 0x8341
leaq 0x5474(%rip), %rsi      # 0x82f3
leaq 0x55ff(%rip), %rcx      # 0x8485
movl $0x1fd, %edx            # imm = 0x1FD
callq 0x10f0
leaq 0x5634(%rip), %rdi      # 0x84cb
leaq 0x5455(%rip), %rsi      # 0x82f3
leaq 0x55e0(%rip), %rcx      # 0x8485
movl $0x1ff, %edx            # imm = 0x1FF
callq 0x10f0
leaq 0x561d(%rip), %rdi      # 0x84d3
leaq 0x5436(%rip), %rsi      # 0x82f3
leaq 0x55c1(%rip), %rcx      # 0x8485
movl $0x200, %edx            # imm = 0x200
callq 0x10f0
leaq 0x54ce(%rip), %rdi      # 0x83a3
leaq 0x5417(%rip), %rsi      # 0x82f3
leaq 0x55a2(%rip), %rcx      # 0x8485
movl $0x204, %edx            # imm = 0x204
callq 0x10f0
leaq 0x54bc(%rip), %rdi      # 0x83b0
leaq 0x53f8(%rip), %rsi      # 0x82f3
leaq 0x5583(%rip), %rcx      # 0x8485
movl $0x205, %edx            # imm = 0x205
callq 0x10f0
leaq 0x54aa(%rip), %rdi      # 0x83bd
leaq 0x53d9(%rip), %rsi      # 0x82f3
leaq 0x5564(%rip), %rcx      # 0x8485
movl $0x206, %edx            # imm = 0x206
callq 0x10f0