// File: /workspace/github_c_makefile_star2_O0/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
subq $0x40, %rsp
movb %cl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movb %al, -0x21(%rbp)
movq %r8, -0x30(%rbp)
movsbl -0x21(%rbp), %eax
cmpl $0x20, %eax
je 0xaf65
movsbl -0x21(%rbp), %eax
cmpl $0xa, %eax
je 0xaf65
cmpb $0x0, -0x21(%rbp)
jne 0xaf67
jmp 0xaf86
leaq 0x21c6(%rip), %rdi      # 0xd134
leaq 0x1334(%rip), %rsi      # 0xc2a9
movl $0x794, %edx            # imm = 0x794
leaq 0x2208(%rip), %rcx      # 0xd189
callq 0x10f0
callq 0x11a0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movslq 0x10(%rcx), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0xafc4
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x14(%rax), %edx
leaq 0x2231(%rip), %rsi      # 0xd1e7
callq 0xa150
movq %rax, -0x8(%rbp)
jmp 0xb0a9
movq -0x18(%rbp), %rdi
callq 0xb210
movl %eax, -0x34(%rbp)
movsbl -0x21(%rbp), %eax
cmpl $0x20, %eax
jne 0xb008
movq -0x18(%rbp), %rax
cmpl $0x20, 0x10(%rax)
je 0xb006
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x1c(%rax), %edx
movl -0x34(%rbp), %ecx
leaq 0x2209(%rip), %rsi      # 0xd201
callq 0x9fe0
movq %rax, -0x8(%rbp)
jmp 0xb0a9
jmp 0xb008
movsbl -0x21(%rbp), %eax
cmpl $0xa, %eax
jne 0xb03d
movq -0x18(%rbp), %rax
cmpl $0xa, 0x10(%rax)
je 0xb03b
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x1c(%rax), %edx
movl -0x34(%rbp), %ecx
leaq 0x21fa(%rip), %rsi      # 0xd22a
callq 0x9fe0
movq %rax, -0x8(%rbp)
jmp 0xb0a9
jmp 0xb03d
cmpb $0x0, -0x21(%rbp)
jne 0xb079
movq -0x18(%rbp), %rax
cmpl $0xa, 0x10(%rax)
je 0xb077
movq -0x18(%rbp), %rax
cmpl $0x20, 0x10(%rax)
je 0xb077
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x1c(%rax), %edx
movl -0x34(%rbp), %ecx
leaq 0x21ea(%rip), %rsi      # 0xd256
callq 0x9fe0
movq %rax, -0x8(%rbp)
jmp 0xb0a9
jmp 0xb079
cmpq $0x0, -0x30(%rbp)
je 0xb08f
movq -0x18(%rbp), %rax
movl 0x10(%rax), %eax
movb %al, %cl
movq -0x30(%rbp), %rax
movb %cl, (%rax)
movq -0x18(%rbp), %rdi
callq 0xae30
movl -0x34(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)