// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_spell
void gt_strgraph_spell(GtStrgraph *strgraph, GtUword min_path_depth,
    GtUword min_contig_length, bool showpaths, const char *indexname,
    const char *suffix, const GtEncseq *encseq, bool delay_reads_mapping,
    bool show_contigs_info, bool show_progressbar, GtLogger *logger)
{
  FILE *main_file = NULL;
  GtStr *filename;

  gt_assert(strgraph != NULL);
  filename = gt_str_new_cstr(indexname);
  gt_str_append_cstr(filename, suffix);

  main_file = gt_fa_xfopen(gt_str_get(filename), "w");

  if (!delay_reads_mapping)
  {
    GtFile *gt_outfp = gt_file_new_from_fileptr(main_file);
    gt_strgraph_show_contigs(strgraph, min_path_depth, min_contig_length,
        showpaths, gt_outfp, encseq, show_progressbar, logger);
    gt_file_delete_without_handle(gt_outfp);
  }
  else if (show_contigs_info)
  {
    FILE *cjl_i_file, *cjl_o_file, *ji_file;
    gt_str_set(filename, indexname);
    gt_str_append_cstr(filename, GT_READJOINER_SUFFIX_CJ_I_LINKS);
    cjl_i_file = gt_fa_xfopen(gt_str_get(filename), "w");
    gt_str_set(filename, indexname);
    gt_str_append_cstr(filename, GT_READJOINER_SUFFIX_CJ_O_LINKS);
    cjl_o_file = gt_fa_xfopen(gt_str_get(filename), "w");
    gt_str_set(filename, indexname);
    gt_str_append_cstr(filename, GT_READJOINER_SUFFIX_JUNCTIONS);
    ji_file = gt_fa_xfopen(gt_str_get(filename), "w");
    gt_strgraph_show_contigpaths(strgraph, min_path_depth, main_file,
       cjl_i_file, cjl_o_file, ji_file, true, show_progressbar);
    gt_fa_xfclose(cjl_i_file);
    gt_fa_xfclose(cjl_o_file);
    gt_fa_xfclose(ji_file);
  }
  else
  {
    gt_strgraph_show_contigpaths(strgraph, min_path_depth, main_file,
       NULL, NULL, NULL, false, show_progressbar);
  }

  gt_str_delete(filename);
  gt_fa_xfclose(main_file);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, (%rsp)
movq %rsi, 0x8(%rsp)
testq %rdi, %rdi
je 0x1d8009
movq %r9, %r15
movq %r8, %r13
movl %ecx, %r14d
movq %rdi, %r12
movb 0x98(%rsp), %bpl
movq %r8, %rdi
callq 0x11acc9
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
callq 0x11acf3
movq %rbx, %rdi
callq 0x11b0a1
leaq 0x1bb847(%rip), %rsi    # 0x3935b5
leaq 0x1d75b8(%rip), %rdx    # 0x3af32d
movq %rax, %rdi
movl $0xad5, %ecx            # imm = 0xAD5
callq 0xfcf55
testb %bpl, %bpl
je 0x1d7ea0
cmpb $0x0, 0xa0(%rsp)
je 0x1d7f94
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rbp
callq 0x11ad62
leaq 0x17b59f(%rip), %rsi    # 0x35334d
movq %rbx, %rdi
callq 0x11acf3
movq %rbx, %rdi
callq 0x11b0a1
leaq 0x1bb7f0(%rip), %r15    # 0x3935b5
leaq 0x1d7561(%rip), %r14    # 0x3af32d
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0xae3, %ecx            # imm = 0xAE3
callq 0xfcf55
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x11ad62
leaq 0x17b55d(%rip), %rsi    # 0x353352
movq %rbx, %rdi
callq 0x11acf3
movq %rbx, %rdi
callq 0x11b0a1
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0xae6, %ecx            # imm = 0xAE6
callq 0xfcf55
movq %rax, %r14
movq %rbx, %rdi
movq %r13, %rsi
callq 0x11ad62
leaq 0x17b52a(%rip), %rsi    # 0x353357
movq %rbx, %rdi
callq 0x11acf3
movq %rbx, %rdi
callq 0x11b0a1
movq %rax, %rdi
movq %r15, %rsi
leaq 0x1d74e3(%rip), %rdx    # 0x3af32d
movl $0xae9, %ecx            # imm = 0xAE9
callq 0xfcf55
movq %rax, %r15
movzbl 0xa8(%rsp), %eax
movq %r12, %rdi
movq 0x8(%rsp), %rsi
movq %rbp, %rdx
movq (%rsp), %r12
movq %r12, %rcx
movq %r14, %r8
movq %r15, %r9
pushq %rax
pushq $0x1
callq 0x1d800e
addq $0x10, %rsp
movq %r12, %rdi
callq 0xfd09a
movq %r14, %rdi
callq 0xfd09a
movq %r15, %rdi
callq 0xfd09a
jmp 0x1d7fea
movq 0x90(%rsp), %r15
movq %rax, 0x10(%rsp)
movq %rax, %rdi
callq 0xfed85
movq %rax, %r13
movq %r12, %rdi
movq %r15, %rsi
callq 0x1cfd23
movq %r15, %rdi
movq %r13, %rsi
callq 0x1c7fb4
movq %rax, 0x50(%rsp)
testb %r14b, %r14b
je 0x1d7ee0
movq %rax, %rdi
callq 0x1c806c
leaq 0x18(%rsp), %r14
movq %r12, 0x30(%r14)
movl $0x1, %eax
movq %rax, (%r14)
movq %rax, 0x8(%r14)
xorl %eax, %eax
movq %rax, 0x18(%r14)
movq %rax, 0x28(%r14)
movq 0x8(%rsp), %r15
movq %r15, 0x10(%r14)
movq (%rsp), %rbp
movq %rbp, 0x20(%r14)
movzbl 0xa8(%rsp), %r8d
leaq 0x2024(%rip), %rsi      # 0x1d9f44
leaq 0x20ad(%rip), %rdx      # 0x1d9fd4
movq %r12, %rdi
movq %r14, %rcx
callq 0x1d9be8
movq 0x38(%r14), %rdi
cmpq %r15, 0x8(%r14)
jb 0x1d7f4a
cmpq %rbp, 0x30(%rsp)
jb 0x1d7f4a
callq 0x1c81ca
jmp 0x1d7f4f
callq 0x1c8192
movq 0xb0(%rsp), %r14
movq 0x18(%rsp), %rsi
leaq 0x1d8768(%rip), %rdi    # 0x3b06cb
xorl %eax, %eax
callq 0x103d72
movq 0x40(%rsp), %rsi
leaq 0x1d876b(%rip), %rdi    # 0x3b06e1
xorl %eax, %eax
callq 0x103d72
cmpq $0x0, 0x40(%rsp)
je 0x1d7fc2
movq 0x50(%rsp), %rdi
movq %r14, %rsi
callq 0x1c879e
jmp 0x1d7fd3
movzbl 0xa8(%rsp), %r10d
movq %r12, %rdi
movq 0x8(%rsp), %rsi
movq %rax, %rbp
movq %rax, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %r10
pushq $0x0
callq 0x1d800e
addq $0x10, %rsp
jmp 0x1d7fea
leaq 0x1d602c(%rip), %rsi    # 0x3adff5
movq %r14, %rdi
xorl %eax, %eax
callq 0x103fe1
movq 0x50(%rsp), %rdi
callq 0x1c8119
movq %r13, %rdi
callq 0xfec16
movq 0x10(%rsp), %rbp
movq %rbx, %rdi
callq 0x11bdbf
movq %rbp, %rdi
callq 0xfd09a
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x71853