// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_description_range
int gt_parse_description_range(const char *description, GtRange *range)
{
  GtUword i, desclen;
  char *desc, *descptr;
  gt_assert(description && range);
  desc = gt_cstr_dup(description);
  desclen = strlen(desc);
  descptr = desc;
  /* ignore terminal '\n' */
  if (desclen && desc[desclen-1] == '\n') {
    desc[desclen-1] = '\0';
    desclen--;
  }
  /* ignore terminal '\r' */
  if (desclen && desc[desclen-1] == '\r') {
    desc[desclen-1] = '\0';
    desclen--;
  }
  /* find ':' */
  for (i = 0; i < desclen; i++) {
    if (desc[i] == ':')
      break;
  }
  if (i == desclen) {
    /* no ':' found */
    gt_free(descptr);
    return -1;
  }
  desc += i + 1;
  /* find '..' */
  i = 0;
  while (desc[i] != '\0') {
    if (desc[i-1] == '.' && desc[i] == '.')
      break;
    i++;
  }
  if (desc[i] == '\0') {
    /* no '..' found */
    gt_free(descptr);
    return -1;
  }
  /* parse range start */
  gt_assert(desc[i-1] == '.' && desc[i] == '.');
  desc[i-1] = '\0';
  if (gt_parse_uword(&range->start, desc)) {
    /* parsing failed */
    gt_free(descptr);
    return -1;
  }
  /* parse range end */
  desc += i + 1;
  if (gt_parse_uword(&range->end, desc)) {
    /* parsing failed */
    gt_free(descptr);
    return -1;
  }
  gt_free(descptr);
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x162de
cmpq $0x0, 0x20(%rsp)
jne 0x16316
movq 0x19dcf3(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x147d77(%rip), %rsi    # 0x15e066
leaq 0x149995(%rip), %rdx    # 0x15fc8b
leaq 0x1499a3(%rip), %rcx    # 0x15fca0
leaq 0x14972d(%rip), %r8     # 0x15fa31
movl $0x146, %r9d            # imm = 0x146
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x16318
movq 0x28(%rsp), %rdi
callq 0x7c400
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0xb240
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1637e
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
subq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x1637e
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
subq $0x1, %rcx
movb $0x0, (%rax,%rcx)
movq 0x10(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x163bd
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
subq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xd, %eax
jne 0x163bd
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
subq $0x1, %rcx
movb $0x0, (%rax,%rcx)
movq 0x10(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x163f9
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
jne 0x163e7
jmp 0x163f9
jmp 0x163e9
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x163c6
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jne 0x16427
movq (%rsp), %rdi
leaq 0x149621(%rip), %rsi    # 0x15fa31
movl $0x15b, %edx            # imm = 0x15B
callq 0xdab0
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x165d9
movq 0x18(%rsp), %rax
addq $0x1, %rax
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x16492
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
subq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2e, %eax
jne 0x16482
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2e, %eax
jne 0x16482
jmp 0x16492
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x16443
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x164c7
movq (%rsp), %rdi
leaq 0x149581(%rip), %rsi    # 0x15fa31
movl $0x168, %edx            # imm = 0x168
callq 0xdab0
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x165d9
jmp 0x164c9
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
subq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2e, %eax
jne 0x164f3
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2e, %eax
je 0x1652b
movq 0x19dade(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x147b62(%rip), %rsi    # 0x15e066
leaq 0x1497b0(%rip), %rdx    # 0x15fcbb
leaq 0x14978e(%rip), %rcx    # 0x15fca0
leaq 0x149518(%rip), %r8     # 0x15fa31
movl $0x16c, %r9d            # imm = 0x16C
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x1652d
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
subq $0x1, %rcx
movb $0x0, (%rax,%rcx)
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x15580
cmpl $0x0, %eax
je 0x16572
movq (%rsp), %rdi
leaq 0x1494d3(%rip), %rsi    # 0x15fa31
movl $0x170, %edx            # imm = 0x170
callq 0xdab0
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x165d9
movq 0x18(%rsp), %rax
addq $0x1, %rax
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
addq $0x8, %rdi
movq 0x8(%rsp), %rsi
callq 0x15580
cmpl $0x0, %eax
je 0x165bc
movq (%rsp), %rdi
leaq 0x149489(%rip), %rsi    # 0x15fa31
movl $0x177, %edx            # imm = 0x177
callq 0xdab0
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x165d9
movq (%rsp), %rdi
leaq 0x14946a(%rip), %rsi    # 0x15fa31
movl $0x17a, %edx            # imm = 0x17A
callq 0xdab0
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)