// File: /workspace/github_c_makefile_star2_O2/reactive-systems[P]aiger-ltl-model-checker/aiger.c
// Function: aiger_read_literal
static const char *
aiger_read_literal (aiger_private * private,
		    aiger_reader * reader,
		    unsigned *res_ptr, 
		    char expected_followed_by,
		    char * followed_by_ptr)
{
  unsigned res;

  assert (expected_followed_by == ' ' || 
          expected_followed_by == '\n' ||
          !expected_followed_by);

  if (!isdigit (reader->ch))
    return aiger_error_u (private,
			  "line %u: expected literal", reader->lineno);

  res = aiger_read_number (reader);

  if (expected_followed_by == ' ')
    {
      if (reader->ch != ' ')
	return aiger_error_uu (private,
			       "line %u: expected space after literal %u",
			       reader->lineno_at_last_token_start, res);
    }
  if (expected_followed_by == '\n')
    {
      if (reader->ch != '\n')
	return aiger_error_uu (private,
			       "line %u: expected new line after literal %u",
			       reader->lineno_at_last_token_start, res);
    }
  if (!expected_followed_by)
    {
      if (reader->ch != '\n' && reader->ch != ' ')
	return aiger_error_uu (private,
		 "line %u: expected space or new line after literal %u",
		 reader->lineno_at_last_token_start, res);
    }

  if (followed_by_ptr)
    *followed_by_ptr = reader->ch;

  aiger_next_ch (reader);	/* skip white space */

  *res_ptr = res;

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, -0x38(%rbp)
movq %rdx, -0x40(%rbp)
movq %rdi, -0x30(%rbp)
cmpl $0x20, %ecx
ja 0x6fd8
movl %ecx, %r14d
movl %ecx, %eax
movabsq $0x100000401, %rcx      # imm = 0x100000401
btq %rax, %rcx
jae 0x6fd8
movq %rsi, %rbx
callq 0x11b0
movq (%rax), %r15
movslq 0x10(%rbx), %r12
testb $0x8, 0x1(%r15,%r12,2)
jne 0x6f11
movl 0x14(%rbx), %edx
leaq 0x2319(%rip), %rsi      # 0x9213
movq -0x30(%rbp), %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x651c
movq %rax, %r13
addl $-0x30, %r12d
movq %rbx, %rdi
callq 0x6e17
cltq
testb $0x8, 0x1(%r15,%rax,2)
je 0x6f3f
imull $0xa, %r12d, %eax
movl 0x10(%rbx), %ecx
leal (%rax,%rcx), %r12d
addl $-0x30, %r12d
movq (%r13), %r15
jmp 0x6f18
movsbl %r14b, %eax
testl %eax, %eax
je 0x6f79
cmpl $0xa, %eax
movq -0x38(%rbp), %rcx
je 0x6f67
cmpl $0x20, %eax
jne 0x6f8a
cmpl $0x20, 0x10(%rbx)
je 0x6f8a
movl 0x1c(%rbx), %edx
leaq 0x22c8(%rip), %rsi      # 0x922d
jmp 0x6fbe
cmpl $0xa, 0x10(%rbx)
je 0x6f8a
movl 0x1c(%rbx), %edx
leaq 0x22df(%rip), %rsi      # 0x9256
jmp 0x6fbe
movl 0x10(%rbx), %eax
cmpl $0xa, %eax
movq -0x38(%rbp), %rcx
je 0x6f8a
cmpl $0x20, %eax
jne 0x6fb4
testq %rcx, %rcx
je 0x6f94
movb 0x10(%rbx), %al
movb %al, (%rcx)
movq %rbx, %rdi
callq 0x6e17
movq -0x40(%rbp), %rax
movl %r12d, (%rax)
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl 0x1c(%rbx), %edx
leaq 0x22c4(%rip), %rsi      # 0x9282
movq -0x30(%rbp), %rdi
movl %r12d, %ecx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x642b
leaq 0x2181(%rip), %rdi      # 0x9160
leaq 0x130d(%rip), %rsi      # 0x82f3
leaq 0x21c8(%rip), %rcx      # 0x91b5
movl $0x794, %edx            # imm = 0x794
callq 0x10f0