// File: /workspace/github_c_makefile_star2_O0/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 %rbx
subq $0x80, %rsp
movq %rdx, 0x10(%rsp)
movq %rsi, %r10
movq %rdi, %r11
movq 0x10(%rsp), %rdi
movb %cl, %sil
movq 0xb0(%rsp), %rax
movb 0xa8(%rsp), %al
movb 0xa0(%rsp), %cl
movb 0x98(%rsp), %dl
movq 0x90(%rsp), %rbx
movq %r11, 0x78(%rsp)
movq %r10, 0x70(%rsp)
movq %rdi, 0x68(%rsp)
andb $0x1, %sil
movb %sil, 0x67(%rsp)
movq %r8, 0x58(%rsp)
movq %r9, 0x50(%rsp)
andb $0x1, %dl
movb %dl, 0x4f(%rsp)
andb $0x1, %cl
movb %cl, 0x4e(%rsp)
andb $0x1, %al
movb %al, 0x4d(%rsp)
movq $0x0, 0x40(%rsp)
cmpq $0x0, 0x78(%rsp)
jne 0x29b9df
movq 0x3a05f2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27a65b(%rip), %rsi    # 0x516013
leaq 0x2e6745(%rip), %rdx    # 0x582104
leaq 0x2e71a1(%rip), %rcx    # 0x582b67
leaq 0x2e6673(%rip), %r8     # 0x582040
movl $0xad1, %r9d            # imm = 0xAD1
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29b9e1
movq 0x58(%rsp), %rdi
callq 0x11d510
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x11d550
movq 0x38(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
leaq 0x2ca4b2(%rip), %rsi    # 0x565ec5
leaq 0x2e6626(%rip), %rdx    # 0x582040
movl $0xad5, %ecx            # imm = 0xAD5
callq 0xd91d0
movq %rax, 0x40(%rsp)
testb $0x1, 0x4f(%rsp)
jne 0x29ba97
movq 0x40(%rsp), %rdi
callq 0xdda20
movq %rax, 0x30(%rsp)
movq 0x78(%rsp), %rdi
movq 0x70(%rsp), %rsi
movq 0x68(%rsp), %rdx
movb 0x67(%rsp), %cl
movq 0x30(%rsp), %r8
movq 0x90(%rsp), %r9
movb 0x4d(%rsp), %r10b
movq 0xb0(%rsp), %rax
andb $0x1, %cl
andb $0x1, %r10b
movzbl %cl, %ecx
movzbl %r10b, %r10d
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x29bc30
movq 0x30(%rsp), %rdi
callq 0xdd730
jmp 0x29bc0e
testb $0x1, 0x4e(%rsp)
je 0x29bbd7
movq 0x38(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x11d650
movq 0x38(%rsp), %rdi
leaq 0x288971(%rip), %rsi    # 0x52442e
callq 0x11d550
movq 0x38(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
leaq 0x2ca3ef(%rip), %rsi    # 0x565ec5
leaq 0x2e6563(%rip), %rdx    # 0x582040
movl $0xae3, %ecx            # imm = 0xAE3
callq 0xd91d0
movq %rax, 0x28(%rsp)
movq 0x38(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x11d650
movq 0x38(%rsp), %rdi
leaq 0x28892c(%rip), %rsi    # 0x524433
callq 0x11d550
movq 0x38(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
leaq 0x2ca3a5(%rip), %rsi    # 0x565ec5
leaq 0x2e6519(%rip), %rdx    # 0x582040
movl $0xae6, %ecx            # imm = 0xAE6
callq 0xd91d0
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x11d650
movq 0x38(%rsp), %rdi
leaq 0x2888e7(%rip), %rsi    # 0x524438
callq 0x11d550
movq 0x38(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
leaq 0x2ca35b(%rip), %rsi    # 0x565ec5
leaq 0x2e64cf(%rip), %rdx    # 0x582040
movl $0xae9, %ecx            # imm = 0xAE9
callq 0xd91d0
movq %rax, 0x18(%rsp)
movq 0x78(%rsp), %rdi
movq 0x70(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq 0x20(%rsp), %r8
movq 0x18(%rsp), %r9
movb 0x4d(%rsp), %al
andb $0x1, %al
movl $0x1, (%rsp)
movzbl %al, %eax
movl %eax, 0x8(%rsp)
callq 0x29bda0
movq 0x28(%rsp), %rdi
callq 0xd9570
movq 0x20(%rsp), %rdi
callq 0xd9570
movq 0x18(%rsp), %rdi
callq 0xd9570
jmp 0x29bc0c
movq 0x78(%rsp), %rdi
movq 0x70(%rsp), %rsi
movq 0x40(%rsp), %rdx
movb 0x4d(%rsp), %al
xorl %ecx, %ecx
movl %ecx, %r9d
xorl %ecx, %ecx
andb $0x1, %al
movq %r9, %rcx
movq %r9, %r8
movl $0x0, (%rsp)
movzbl %al, %eax
movl %eax, 0x8(%rsp)
callq 0x29bda0
jmp 0x29bc0e
movq 0x38(%rsp), %rdi
callq 0x11f560
movq 0x40(%rsp), %rdi
callq 0xd9570
addq $0x80, %rsp
popq %rbx
retq
nopl (%rax,%rax)