// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_show
void gt_editscript_show(const GtEditscript *editscript, GtAlphabet *alphabet)
{
  GtEditscriptPos pos;
  GtBitsequence elem;
  uint32_t matchcount,
           elems_served = 0;

  editscript_pos_reset(&pos);

  printf("|");
  if (editscript->num_elems != 0) {
    elem = editscript_space_get_next(editscript, &pos);
    elems_served++;
    while (elems_served < editscript->num_elems) {
      gt_assert(elem <= GT_EDITSCRIPT_INS_SYM(editscript));
      matchcount = (uint32_t) editscript_space_get_length(editscript, &pos,
                                                          &elems_served);
      if (elem == GT_EDITSCRIPT_INS_SYM(editscript)) {
        if (matchcount != 0) {
          printf("M(%u)|Ins:|", matchcount);
        }
        else {
          printf("Ins:|");
        }
        while (elems_served < editscript->num_elems) {
          elem = editscript_space_get_next(editscript, &pos);
          elems_served++;
          gt_assert(elem != (GtBitsequence) editscript->del);
          if (elem > (GtBitsequence) editscript->del) {
            break;
          }
          elem = (elem == (GtBitsequence) editscript->del - 1) ?
            (GtBitsequence) GT_WILDCARD :
            elem;
          printf("%c|", (int) gt_alphabet_pretty_symbol(alphabet,
                                                        (uint32_t) elem));
        }
      }
      else {
        gt_assert(elem == GT_EDITSCRIPT_MISDEL_SYM(editscript));
        if (matchcount != 0) {
          printf("M(%u)|Misdel:|", matchcount);
        }
        else {
          printf("Misdel:|");
        }
        while (elems_served < editscript->num_elems) {
          elem = editscript_space_get_next(editscript, &pos);
          elems_served++;
          if (elem > (GtBitsequence) editscript->del) {
            break;
          }
          if (elem < (GtBitsequence) editscript->del) {
            elem = (elem == (GtBitsequence) editscript->del - 1) ?
              (GtBitsequence) GT_WILDCARD :
              elem;
            printf("%c|", (int) gt_alphabet_pretty_symbol(alphabet,
                                                          (uint32_t) elem));
          }
          else
            printf("-|");
        }
      }
    }
  }
  if (editscript->trailing_matches != 0) {
    printf("M(%u)|\n", editscript->trailing_matches);
  }
  else
    printf("\n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, 0x10(%rsp)
movq %rdi, %rbx
movl $0x0, 0x4(%rsp)
movabsq $0x4000000000, %rax     # imm = 0x4000000000
movq %rax, 0x8(%rsp)
movl $0x7c, %edi
callq 0x17a20
cmpl $0x0, 0xc(%rbx)
je 0x13fa5f
movl 0x8(%rsp), %esi
movl 0xc(%rsp), %eax
movq (%rbx), %rdi
movq (%rdi,%rsi,8), %r15
movl %eax, %ecx
negb %cl
shlq %cl, %r15
movzbl 0x15(%rbx), %edx
cmpl %edx, %eax
jae 0x13f829
incl %esi
movl %esi, 0x8(%rsp)
movq (%rdi,%rsi,8), %rsi
movl %eax, %ecx
shrq %cl, %rsi
orq %rsi, %r15
addl $0x40, %eax
subl %edx, %eax
movl %eax, 0xc(%rsp)
movl $0x1, 0x4(%rsp)
cmpl $0x2, 0xc(%rbx)
jb 0x13fa5f
negb %dl
movl %edx, %ecx
shrq %cl, %r15
movzbl 0x14(%rbx), %r14d
leaq 0x2(%r14), %r12
cmpq %r12, %r15
ja 0x13fae3
movq %rbx, %rdi
leaq 0x8(%rsp), %rsi
leaq 0x4(%rsp), %rdx
callq 0x13e5a1
cmpq %r12, %r15
jne 0x13f887
testl %eax, %eax
je 0x13f8b0
leaq 0x245388(%rip), %rdi    # 0x384c04
movl %eax, %esi
xorl %eax, %eax
callq 0x17070
jmp 0x13f8be
incq %r14
cmpq %r14, %r15
jne 0x13fae8
testl %eax, %eax
je 0x13f977
leaq 0x2453c7(%rip), %rdi    # 0x384c69
movl %eax, %esi
xorl %eax, %eax
callq 0x17070
jmp 0x13f985
leaq 0x245353(%rip), %rdi    # 0x384c0a
xorl %eax, %eax
callq 0x17070
movl 0x4(%rsp), %r12d
movl 0x8(%rsp), %ebp
movl 0xc(%rsp), %r13d
cmpl 0xc(%rbx), %r12d
jae 0x13fa47
movl %ebp, %eax
xorl %ebp, %ebp
testl %r13d, %r13d
sete %bpl
movl $0x40, %ecx
cmovel %ecx, %r13d
addl %eax, %ebp
movq (%rbx), %rdx
movq (%rdx,%rbp,8), %r15
movl %r13d, %ecx
negb %cl
shlq %cl, %r15
movl %r12d, %r14d
movzbl 0x15(%rbx), %eax
cmpl %eax, %r13d
jae 0x13f91a
incl %ebp
movq (%rdx,%rbp,8), %rdx
movl %r13d, %ecx
shrq %cl, %rdx
orq %rdx, %r15
addl $0x40, %r13d
subl %eax, %r13d
negb %al
movl %eax, %ecx
shrq %cl, %r15
leal 0x1(%r14), %r12d
movzbl 0x14(%rbx), %eax
cmpq %rax, %r15
je 0x13fa9a
ja 0x13fa41
decq %rax
cmpq %rax, %r15
movl $0xfe, %eax
cmoveq %rax, %r15
movq 0x10(%rsp), %rdi
movl %r15d, %esi
callq 0xd3ae2
movzbl %al, %esi
leaq 0x2452d7(%rip), %rdi    # 0x384c38
xorl %eax, %eax
callq 0x17070
cmpl 0xc(%rbx), %r12d
jb 0x13f8d6
jmp 0x13fa41
leaq 0x2452f1(%rip), %rdi    # 0x384c6f
xorl %eax, %eax
callq 0x17070
movl 0x4(%rsp), %r12d
movl 0x8(%rsp), %ebp
movl 0xc(%rsp), %r13d
cmpl 0xc(%rbx), %r12d
jae 0x13fa47
movl %ebp, %eax
xorl %ebp, %ebp
testl %r13d, %r13d
sete %bpl
movl $0x40, %ecx
cmovel %ecx, %r13d
addl %eax, %ebp
movq (%rbx), %rdx
movq (%rdx,%rbp,8), %r15
movl %r13d, %ecx
negb %cl
shlq %cl, %r15
movl %r12d, %r14d
movzbl 0x15(%rbx), %eax
cmpl %eax, %r13d
jae 0x13f9e1
incl %ebp
movq (%rdx,%rbp,8), %rdx
movl %r13d, %ecx
shrq %cl, %rdx
orq %rdx, %r15
addl $0x40, %r13d
subl %eax, %r13d
negb %al
movl %eax, %ecx
shrq %cl, %r15
leal 0x1(%r14), %r12d
movzbl 0x14(%rbx), %eax
cmpq %rax, %r15
ja 0x13fa41
jae 0x13fa29
decq %rax
cmpq %rax, %r15
movl $0xfe, %eax
cmoveq %rax, %r15
movq 0x10(%rsp), %rdi
movl %r15d, %esi
callq 0xd3ae2
movzbl %al, %esi
leaq 0x245218(%rip), %rdi    # 0x384c38
xorl %eax, %eax
callq 0x17070
jmp 0x13fa37
leaq 0x245248(%rip), %rdi    # 0x384c78
xorl %eax, %eax
callq 0x17070
cmpl 0xc(%rbx), %r12d
jb 0x13f99d
incl %r14d
movl %r14d, %r12d
movl %r12d, 0x4(%rsp)
movl %r13d, 0xc(%rsp)
movl %ebp, 0x8(%rsp)
cmpl 0xc(%rbx), %r12d
jb 0x13f848
movl 0x10(%rbx), %esi
testl %esi, %esi
je 0x13fa82
leaq 0x24520e(%rip), %rdi    # 0x384c7b
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17070
movl $0xa, %edi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17a20
incl %r14d
movl %r14d, 0x4(%rsp)
movl %r13d, 0xc(%rsp)
movl %ebp, 0x8(%rsp)
movq 0x3844ce(%rip), %rax    # 0x4c3f80
movq (%rax), %rdi
leaq 0x20e557(%rip), %rsi    # 0x34e013
leaq 0x24514d(%rip), %rdx    # 0x384c10
leaq 0x245127(%rip), %rcx    # 0x384bf1
leaq 0x244db7(%rip), %r8     # 0x384888
movl $0x315, %r9d            # imm = 0x315
xorl %eax, %eax
callq 0x17ab0
callq 0x173b0
callq 0x40c85
callq 0x40c4c