// File: /workspace/github_c_makefile_star2_O2/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 $0x68, %rsp
movq %rdx, 0x10(%rsp)
movq %rsi, 0x18(%rsp)
testq %rdi, %rdi
je 0x18615d
movq %r9, %r15
movq %r8, %r13
movl %ecx, %r14d
movq %rdi, %r12
movb 0xa8(%rsp), %bpl
movq %r8, %rdi
callq 0xacbd1
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
callq 0xacbfb
movq %rbx, %rdi
callq 0xad1fa
leaq 0x1ada50(%rip), %rsi    # 0x33390e
leaq 0x1c98b0(%rip), %rdx    # 0x34f775
movq %rax, %rdi
movl $0xad5, %ecx            # imm = 0xAD5
callq 0x8a3a7
testb %bpl, %bpl
je 0x185ff6
cmpb $0x0, 0xb0(%rsp)
je 0x1860e9
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rbp
callq 0xacc8b
leaq 0x16d45f(%rip), %rsi    # 0x2f335d
movq %rbx, %rdi
callq 0xacbfb
movq %rbx, %rdi
callq 0xad1fa
leaq 0x1ad9f9(%rip), %r15    # 0x33390e
leaq 0x1c9859(%rip), %r14    # 0x34f775
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0xae3, %ecx            # imm = 0xAE3
callq 0x8a3a7
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0xacc8b
leaq 0x16d41c(%rip), %rsi    # 0x2f3362
movq %rbx, %rdi
callq 0xacbfb
movq %rbx, %rdi
callq 0xad1fa
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0xae6, %ecx            # imm = 0xAE6
callq 0x8a3a7
movq %rax, %r14
movq %rbx, %rdi
movq %r13, %rsi
callq 0xacc8b
leaq 0x16d3e9(%rip), %rsi    # 0x2f3367
movq %rbx, %rdi
callq 0xacbfb
movq %rbx, %rdi
callq 0xad1fa
movq %rax, %rdi
movq %r15, %rsi
leaq 0x1c97da(%rip), %rdx    # 0x34f775
movl $0xae9, %ecx            # imm = 0xAE9
callq 0x8a3a7
movq %rax, %r15
movzbl 0xb8(%rsp), %eax
movl %eax, 0x8(%rsp)
movl $0x1, (%rsp)
movq %r12, %rdi
movq 0x18(%rsp), %rsi
movq %rbp, %rdx
movq 0x10(%rsp), %r12
movq %r12, %rcx
movq %r14, %r8
movq %r15, %r9
callq 0x186195
movq %r12, %rdi
callq 0x8a5e5
movq %r14, %rdi
callq 0x8a5e5
movq %r15, %rdi
callq 0x8a5e5
jmp 0x18613e
movq 0xa0(%rsp), %r15
movq %rax, 0x20(%rsp)
movq %rax, %rdi
callq 0x8d2a4
movq %rax, %r13
movq %r12, %rdi
movq %r15, %rsi
callq 0x1811ac
movq %r15, %rdi
movq %r13, %rsi
callq 0x17872c
movq %rax, 0x60(%rsp)
testb %r14b, %r14b
je 0x186036
movq %rax, %rdi
callq 0x178815
leaq 0x28(%rsp), %r14
movq %r12, 0x30(%r14)
pushq $0x1
popq %rax
movq %rax, (%r14)
movq %rax, 0x8(%r14)
andq $0x0, 0x18(%r14)
andq $0x0, 0x28(%r14)
movq 0x18(%rsp), %r15
movq %r15, 0x10(%r14)
movq 0x10(%rsp), %rbp
movq %rbp, 0x20(%r14)
movzbl 0xb8(%rsp), %r8d
leaq 0x1a96(%rip), %rsi      # 0x187b0b
leaq 0x1b1f(%rip), %rdx      # 0x187b9b
movq %r12, %rdi
movq %r14, %rcx
callq 0x18798d
movq 0x38(%r14), %rdi
cmpq %r15, 0x8(%r14)
jb 0x18609f
cmpq %rbp, 0x40(%rsp)
jb 0x18609f
callq 0x17899d
jmp 0x1860a4
callq 0x178934
movq 0xc0(%rsp), %r14
movq 0x28(%rsp), %rsi
leaq 0x1caa5b(%rip), %rdi    # 0x350b13
xorl %eax, %eax
callq 0x92a82
movq 0x50(%rsp), %rsi
leaq 0x1caa5e(%rip), %rdi    # 0x350b29
xorl %eax, %eax
callq 0x92a82
cmpq $0x0, 0x50(%rsp)
je 0x186116
movq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x179022
jmp 0x186127
andl $0x0, (%rsp)
movzbl 0xb8(%rsp), %ecx
movl %ecx, 0x8(%rsp)
movq %r12, %rdi
movq 0x18(%rsp), %rsi
movq %rax, %rbp
movq %rax, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x186195
jmp 0x18613e
leaq 0x1c8228(%rip), %rsi    # 0x34e345
movq %r14, %rdi
xorl %eax, %eax
callq 0x92e71
movq 0x60(%rsp), %rdi
callq 0x1788c2
movq %r13, %rdi
callq 0x8d080
movq 0x20(%rsp), %rbp
movq %rbx, %rdi
callq 0xae103
movq %rbp, %rdi
callq 0x8a5e5
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x2b1e04(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15eea5(%rip), %rsi    # 0x2e5013
leaq 0x1c96c4(%rip), %rdx    # 0x34f839
leaq 0x1ca0c9(%rip), %rcx    # 0x350245
leaq 0x1c95f2(%rip), %r8     # 0x34f775
movl $0xad1, %r9d            # imm = 0xAD1
xorl %eax, %eax
callq 0x17a50
callq 0x17390