// File: /workspace/github_c_makefile_star2_O0/reactive-systems[P]aiger-ltl-model-checker/aiger.c
// Function: aiger_init_mem
aiger *
aiger_init_mem (void *memory_mgr,
		aiger_malloc external_malloc, aiger_free external_free)
{
  aiger_private *private;
  aiger *public;

  assert (external_malloc);
  assert (external_free);
  private = external_malloc (memory_mgr, sizeof (*private));
  CLR (*private);
  private->memory_mgr = memory_mgr;
  private->malloc_callback = external_malloc;
  private->free_callback = external_free;
  public = &private->public;
  PUSH (public->comments, private->num_comments, private->size_comments, 0);

  return public;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x20cd
jmp 0x20ec
leaq 0xa1c5(%rip), %rdi      # 0xc299
leaq 0xa1ce(%rip), %rsi      # 0xc2a9
movl $0xd4, %edx
leaq 0xa1ca(%rip), %rcx      # 0xc2b1
callq 0x10f0
cmpq $0x0, -0x18(%rbp)
je 0x20f5
jmp 0x2114
leaq 0xa1ed(%rip), %rdi      # 0xc2e9
leaq 0xa1a6(%rip), %rsi      # 0xc2a9
movl $0xd5, %edx
leaq 0xa1a2(%rip), %rcx      # 0xc2b1
callq 0x10f0
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rdi
movl $0xd8, %esi
callq *%rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %esi, %esi
movl $0xd8, %edx
callq 0x1100
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0xb8(%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0xc0(%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0xc8(%rax)
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movl 0xac(%rax), %eax
movq -0x20(%rbp), %rcx
cmpl 0xb0(%rcx), %eax
jne 0x2291
jmp 0x2188
movq -0x20(%rbp), %rax
movl 0xb0(%rax), %eax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x21aa
movq -0x30(%rbp), %rax
shlq %rax
movq %rax, -0x60(%rbp)
jmp 0x21b5
movl $0x1, %eax
movq %rax, -0x60(%rbp)
jmp 0x21b5
movq -0x60(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x48(%rbp), %rax
jae 0x21e9
movq -0x40(%rbp), %rax
movq %rax, -0x68(%rbp)
jmp 0x21f1
movq -0x48(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x20(%rbp), %rax
movq 0xc0(%rax), %rax
movq -0x20(%rbp), %rcx
movq 0xb8(%rcx), %rdi
movq -0x48(%rbp), %rsi
callq *%rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rsi
movq -0x50(%rbp), %rdx
callq 0x1140
movq -0x48(%rbp), %rax
cmpq -0x40(%rbp), %rax
jbe 0x224f
movq -0x58(%rbp), %rdi
addq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rdx
subq -0x40(%rbp), %rdx
xorl %esi, %esi
callq 0x1100
movq -0x20(%rbp), %rax
movq 0xc8(%rax), %rax
movq -0x20(%rbp), %rcx
movq 0xb8(%rcx), %rdi
movq -0x28(%rbp), %rcx
movq 0x68(%rcx), %rsi
movq -0x40(%rbp), %rdx
callq *%rax
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x68(%rax)
movq -0x38(%rbp), %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0xb0(%rax)
jmp 0x2291
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq -0x20(%rbp), %rdx
movl 0xac(%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0xac(%rdx)
movl %ecx, %ecx
movq $0x0, (%rax,%rcx,8)
movq -0x28(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)