// File: /workspace/github_c_makefile_star2_O1/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 0x1e1773
movq %r9, %r15
movq %r8, %r13
movl %ecx, %r14d
movq %rdi, %r12
movb 0x98(%rsp), %bpl
movq %r8, %rdi
callq 0x120955
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
callq 0x12097f
movq %rbx, %rdi
callq 0x120d23
leaq 0x1bb559(%rip), %rsi    # 0x39ca31
leaq 0x1d744e(%rip), %rdx    # 0x3b892d
movq %rax, %rdi
movl $0xad5, %ecx            # imm = 0xAD5
callq 0x101dbd
testb %bpl, %bpl
je 0x1e160a
cmpb $0x0, 0xa0(%rsp)
je 0x1e16fe
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rbp
callq 0x1209e4
leaq 0x17ae6d(%rip), %rsi    # 0x35c385
movq %rbx, %rdi
callq 0x12097f
movq %rbx, %rdi
callq 0x120d23
leaq 0x1bb502(%rip), %r15    # 0x39ca31
leaq 0x1d73f7(%rip), %r14    # 0x3b892d
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0xae3, %ecx            # imm = 0xAE3
callq 0x101dbd
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1209e4
leaq 0x17ae2b(%rip), %rsi    # 0x35c38a
movq %rbx, %rdi
callq 0x12097f
movq %rbx, %rdi
callq 0x120d23
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0xae6, %ecx            # imm = 0xAE6
callq 0x101dbd
movq %rax, %r14
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1209e4
leaq 0x17adf8(%rip), %rsi    # 0x35c38f
movq %rbx, %rdi
callq 0x12097f
movq %rbx, %rdi
callq 0x120d23
movq %rax, %rdi
movq %r15, %rsi
leaq 0x1d7379(%rip), %rdx    # 0x3b892d
movl $0xae9, %ecx            # imm = 0xAE9
callq 0x101dbd
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 0x1e1778
addq $0x10, %rsp
movq %r12, %rdi
callq 0x101f02
movq %r14, %rdi
callq 0x101f02
movq %r15, %rdi
callq 0x101f02
jmp 0x1e1754
movq 0x90(%rsp), %r15
movq %rax, 0x10(%rsp)
movq %rax, %rdi
callq 0x103c55
movq %rax, %r13
movq %r12, %rdi
movq %r15, %rsi
callq 0x1d9490
movq %r15, %rdi
movq %r13, %rsi
callq 0x1d1210
movq %rax, 0x50(%rsp)
testb %r14b, %r14b
je 0x1e164a
movq %rax, %rdi
callq 0x1d12c8
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 0x20e8(%rip), %rsi      # 0x1e3772
leaq 0x2171(%rip), %rdx      # 0x1e3802
movq %r12, %rdi
movq %r14, %rcx
callq 0x1e3423
movq 0x38(%r14), %rdi
cmpq %r15, 0x8(%r14)
jb 0x1e16b4
cmpq %rbp, 0x30(%rsp)
jb 0x1e16b4
callq 0x1d1426
jmp 0x1e16b9
callq 0x1d13ee
movq 0xb0(%rsp), %r14
movq 0x18(%rsp), %rsi
leaq 0x1d85fe(%rip), %rdi    # 0x3b9ccb
xorl %eax, %eax
callq 0x108e02
movq 0x40(%rsp), %rsi
leaq 0x1d8601(%rip), %rdi    # 0x3b9ce1
xorl %eax, %eax
callq 0x108e02
cmpq $0x0, 0x40(%rsp)
je 0x1e172c
movq 0x50(%rsp), %rdi
movq %r14, %rsi
callq 0x1d19ed
jmp 0x1e173d
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 0x1e1778
addq $0x10, %rsp
jmp 0x1e1754
leaq 0x1d5ec2(%rip), %rsi    # 0x3b75f5
movq %r14, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x50(%rsp), %rdi
callq 0x1d1375
movq %r13, %rdi
callq 0x103ae6
movq 0x10(%rsp), %rbp
movq %rbx, %rdi
callq 0x121b03
movq %rbp, %rdi
callq 0x101f02
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x7345a