// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: tag_line
static int tag_line(GtIO *obo_file, GtStr *tag, GtStr *value, GtError *err)
{
  int had_err;
  gt_error_check(err);
  gt_assert(obo_file && tag && value);
  do {
    had_err = proc_any_char(obo_file, tag, false, err);
  } while (!had_err && any_char(obo_file, false));
  if (!had_err)
    had_err = gt_io_expect(obo_file, OBO_SEPARATOR_CHAR, err);
  while (!had_err && gt_io_peek(obo_file) == OBO_BLANK_CHAR)
    gt_io_next(obo_file);
  if (!had_err) {
    do {
      had_err = proc_any_char(obo_file, value, true, err);
    } while (!had_err && any_char(obo_file, true));
  }
  if (!had_err) {
    if (gt_io_peek(obo_file) == OBO_COMMENT_CHAR)
      had_err = comment_line(obo_file, err);
    else
      had_err = gt_io_expect(obo_file, GT_END_OF_LINE, err);
  }
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x50c258
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50c220
jmp 0x50c258
movq 0x12fd79(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x9de2(%rip), %rsi      # 0x516013
leaq 0x9f87(%rip), %rdx      # 0x5161bf
leaq 0x63650(%rip), %rcx     # 0x56f88f
leaq 0xb7d10(%rip), %r8      # 0x5c3f56
movl $0x115, %r9d            # imm = 0x115
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50c25a
jmp 0x50c25c
cmpq $0x0, 0x20(%rsp)
je 0x50c274
cmpq $0x0, 0x18(%rsp)
je 0x50c274
cmpq $0x0, 0x10(%rsp)
jne 0x50c2ac
movq 0x12fd25(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x9d8e(%rip), %rsi      # 0x516013
leaq 0xb7da4(%rip), %rdx     # 0x5c4030
leaq 0x635fc(%rip), %rcx     # 0x56f88f
leaq 0xb7cbc(%rip), %r8      # 0x5c3f56
movl $0x116, %r9d            # imm = 0x116
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50c2ae
jmp 0x50c2b0
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rcx
xorl %edx, %edx
callq 0x50c660
movl %eax, 0x4(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x4(%rsp)
movb %al, 0x3(%rsp)
jne 0x50c2e7
movq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x50c4c0
movb %al, 0x3(%rsp)
movb 0x3(%rsp), %al
testb $0x1, %al
jne 0x50c2b0
cmpl $0x0, 0x4(%rsp)
jne 0x50c30e
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rdx
movl $0x3a, %esi
callq 0xe7500
movl %eax, 0x4(%rsp)
jmp 0x50c310
xorl %eax, %eax
cmpl $0x0, 0x4(%rsp)
movb %al, 0x2(%rsp)
jne 0x50c334
movq 0x20(%rsp), %rdi
callq 0xe7300
movsbl %al, %eax
cmpl $0x20, %eax
sete %al
movb %al, 0x2(%rsp)
movb 0x2(%rsp), %al
testb $0x1, %al
jne 0x50c33e
jmp 0x50c34a
movq 0x20(%rsp), %rdi
callq 0xe7380
jmp 0x50c310
cmpl $0x0, 0x4(%rsp)
jne 0x50c39a
jmp 0x50c353
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rcx
movl $0x1, %edx
callq 0x50c660
movl %eax, 0x4(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x4(%rsp)
movb %al, 0x1(%rsp)
jne 0x50c390
movq 0x20(%rsp), %rdi
movl $0x1, %esi
callq 0x50c4c0
movb %al, 0x1(%rsp)
movb 0x1(%rsp), %al
testb $0x1, %al
jne 0x50c353
jmp 0x50c39a
cmpl $0x0, 0x4(%rsp)
jne 0x50c3e2
movq 0x20(%rsp), %rdi
callq 0xe7300
movsbl %al, %eax
cmpl $0x21, %eax
jne 0x50c3c8
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x50bbf0
movl %eax, 0x4(%rsp)
jmp 0x50c3e0
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rdx
movl $0xa, %esi
callq 0xe7500
movl %eax, 0x4(%rsp)
jmp 0x50c3e2
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)