// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/fasta.c
// Function: gt_fasta_show_entry_nt_with_suffix_str
void gt_fasta_show_entry_nt_with_suffix_str(const char *description,
                                            GtUword description_length,
                                            const char *sequence,
                                            GtUword sequence_length,
                                            const char *suffix, GtUword width,
                                            GtStr *outstr)
{
  GtUword i, current_length, suffix_length;
  gt_assert(sequence && outstr);
  gt_str_append_char(outstr, GT_FASTA_SEPARATOR);
  if (description != NULL) {
    for (i = 0;
         i < description_length && description[i] != '\0';
         ++i) {
      gt_str_append_char(outstr, description[i]);
    }
  }
  gt_str_append_char(outstr, '\n');
  for (i = 0, current_length = 0;
       i < sequence_length && sequence[i] != '\0';
       i++, current_length++) {
    if (width && current_length == width) {
      gt_str_append_char(outstr, '\n');
      current_length = 0;
    }
    gt_str_append_char(outstr, sequence[i]);
  }
  suffix_length = suffix ? strlen(suffix) : 0;
  for (i = 0;
       i < suffix_length;
       i++, current_length++) {
    if (width && current_length == width) {
      gt_str_append_char(outstr, '\n');
      current_length = 0;
    }
    gt_str_append_char(outstr, suffix[i]);
  }
  gt_str_append_char(outstr, '\n');
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
testq %rdx, %rdx
je 0x53b1d
movq 0x50(%rsp), %r15
testq %r15, %r15
je 0x53b1d
movq %r9, %rbx
movq %r8, %r14
movq %rdx, %r13
movq %rdi, %r12
pushq $0x3e
popq %rsi
movq %r15, %rdi
callq 0x140b1
testq %r12, %r12
je 0x53a5a
xorl %ebp, %ebp
cmpq %rbp, 0x8(%rsp)
je 0x53a5a
movb (%r12,%rbp), %al
testb %al, %al
je 0x53a5a
movsbl %al, %esi
movq %r15, %rdi
callq 0x140b1
incq %rbp
jmp 0x53a3b
pushq $0xa
popq %rsi
movq %r15, %rdi
callq 0x140b1
xorl %ebp, %ebp
xorl %r12d, %r12d
cmpq %r12, 0x10(%rsp)
je 0x53ab2
movb (%r13,%r12), %al
testb %al, %al
je 0x53ab2
testq %rbx, %rbx
setne %cl
cmpq %rbx, %rbp
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x53a9f
movq %r15, %rdi
pushq $0xa
popq %rsi
callq 0x140b1
movb (%r13,%r12), %al
xorl %ebp, %ebp
movsbl %al, %esi
movq %r15, %rdi
callq 0x140b1
incq %r12
incq %rbp
jmp 0x53a6a
testq %r14, %r14
je 0x53ac4
movq %r14, %rdi
callq 0xb260
movq %rax, %r12
jmp 0x53ac7
xorl %r12d, %r12d
xorl %r13d, %r13d
cmpq %r13, %r12
je 0x53b04
testq %rbx, %rbx
setne %al
cmpq %rbx, %rbp
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x53aef
movq %r15, %rdi
pushq $0xa
popq %rsi
callq 0x140b1
xorl %ebp, %ebp
movsbl (%r14,%r13), %esi
movq %r15, %rdi
callq 0x140b1
incq %r13
incq %rbp
jmp 0x53aca
pushq $0xa
popq %rsi
movq %r15, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x140b1
movq 0xda494(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x76538(%rip), %rsi     # 0xca066
leaq 0x86327(%rip), %rdx     # 0xd9e5c
leaq 0x86333(%rip), %rcx     # 0xd9e6f
leaq 0x86308(%rip), %r8      # 0xd9e4b
movl $0x85, %r9d
xorl %eax, %eax
callq 0xb8c0
callq 0xb300
nopl (%rax)