// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_skproto.c
// Function: removecomments
static void removecomments(GtStr *line, int *incomment)
{
  unsigned char *buffer;
  GtUword pos=0, bufpos=0;

  if (!line || !gt_str_length(line))
    return;

  buffer = gt_malloc((size_t) gt_str_length(line) + 1);

  /* remove comments, except for those used for splint: */
  while (pos < gt_str_length(line)) {
    if (*incomment) {
      if (!strncmp(gt_str_get(line) + pos, "*/", (size_t) 2)) {
        *incomment=0;
        pos+=2;
      }
      else
        pos++;
    }
    else {
      if (gt_str_length(line)     >  (GtUword) 2   &&
          gt_str_get(line)[pos]   == GT_PATH_SEPARATOR &&
          gt_str_get(line)[pos+1] == GT_PATH_SEPARATOR) {
        break;
      }
      else if (!strncmp(gt_str_get(line) + pos, "/*", (size_t) 2) &&
               (pos + 2 >= gt_str_length(line) ||
                gt_str_get(line)[pos+2] != '@')) {
        *incomment=1;
        pos+=2;
      }
      else
        buffer[bufpos++] = (unsigned char) gt_str_get(line)[pos++];
    }
  }

  /* remove white spaces */
  while (bufpos && buffer[bufpos-1] == ' ')
    bufpos--;
  buffer[bufpos]='\0';

  /* copy back into line */
  memcpy(gt_str_get(line), buffer, (size_t) (bufpos + 1));
  gt_str_set_length(line, bufpos);
  gt_free(buffer);
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq $0x0, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x70d48
movq 0x40(%rsp), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jne 0x70d4d
jmp 0x70f99
movq 0x40(%rsp), %rdi
callq 0x11dfa0
movq %rax, %rdi
addq $0x1, %rdi
leaq 0x4bb306(%rip), %rsi    # 0x52c06b
movl $0x47, %edx
callq 0xe80f0
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rdi
callq 0x11dfa0
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x70f00
movq 0x38(%rsp), %rax
cmpl $0x0, (%rax)
je 0x70df9
movq 0x40(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
addq 0x28(%rsp), %rdi
leaq 0x4bb329(%rip), %rsi    # 0x52c0e5
movl $0x2, %edx
callq 0x192f0
cmpl $0x0, %eax
jne 0x70de6
movq 0x38(%rsp), %rax
movl $0x0, (%rax)
movq 0x28(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x28(%rsp)
jmp 0x70df4
movq 0x28(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x28(%rsp)
jmp 0x70efb
movq 0x40(%rsp), %rdi
callq 0x11dfa0
cmpq $0x2, %rax
jbe 0x70e3f
movq 0x40(%rsp), %rdi
callq 0x11dee0
movq 0x28(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2f, %eax
jne 0x70e3f
movq 0x40(%rsp), %rdi
callq 0x11dee0
movq 0x28(%rsp), %rcx
movsbl 0x1(%rax,%rcx), %eax
cmpl $0x2f, %eax
jne 0x70e3f
jmp 0x70f00
movq 0x40(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
addq 0x28(%rsp), %rdi
leaq 0x4a6bfa(%rip), %rsi    # 0x517a52
movl $0x2, %edx
callq 0x192f0
cmpl $0x0, %eax
jne 0x70ec0
movq 0x28(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rdi
callq 0x11dfa0
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0x70ea5
movq 0x40(%rsp), %rdi
callq 0x11dee0
movq 0x28(%rsp), %rcx
movsbl 0x2(%rax,%rcx), %eax
cmpl $0x40, %eax
je 0x70ec0
movq 0x38(%rsp), %rax
movl $0x1, (%rax)
movq 0x28(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x28(%rsp)
jmp 0x70ef7
movq 0x40(%rsp), %rdi
callq 0x11dee0
movq 0x28(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x28(%rsp)
movb (%rax,%rcx), %dl
movq 0x30(%rsp), %rax
movq 0x20(%rsp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x20(%rsp)
movb %dl, (%rax,%rcx)
jmp 0x70ef9
jmp 0x70efb
jmp 0x70d74
jmp 0x70f02
xorl %eax, %eax
cmpq $0x0, 0x20(%rsp)
movb %al, 0xf(%rsp)
je 0x70f2c
movq 0x30(%rsp), %rax
movq 0x20(%rsp), %rcx
subq $0x1, %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x20, %eax
sete %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x70f36
jmp 0x70f46
movq 0x20(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x70f02
movq 0x30(%rsp), %rax
movq 0x20(%rsp), %rcx
movb $0x0, (%rax,%rcx)
movq 0x40(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x30(%rsp), %rsi
movq 0x20(%rsp), %rdx
addq $0x1, %rdx
callq 0x19610
movq 0x40(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x11dfd0
movq 0x30(%rsp), %rdi
leaq 0x4bb0dc(%rip), %rsi    # 0x52c06b
movl $0x6c, %edx
callq 0xe88c0
addq $0x48, %rsp
retq
nop