// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/seqid2file.c
// Function: gt_seqid2file_region_mapping_new
GtRegionMapping* gt_seqid2file_region_mapping_new(GtSeqid2FileInfo *s2fi,
                                                  GtError *err)
{
  GtRegionMapping *rm = NULL;
  gt_error_check(err);
  gt_assert(s2fi);

  s2fi->matchdesc = s2fi->matchdesc || s2fi->matchdescstart;
  /* create region mapping */
  if (gt_str_array_size(s2fi->seqfiles)) {
    rm = gt_region_mapping_new_seqfiles(s2fi->seqfiles, s2fi->matchdesc,
                                        s2fi->usedesc);
  } else if (gt_str_length(s2fi->encseq)) {
    GtEncseqLoader *el;
    GtEncseq *encseq;
    el = gt_encseq_loader_new();
    gt_encseq_loader_disable_autosupport(el);
    gt_encseq_loader_require_md5_support(el);
    gt_encseq_loader_require_lossless_support(el);
    gt_encseq_loader_require_description_support(el);
    encseq = gt_encseq_loader_load(el, gt_str_get(s2fi->encseq), err);
    gt_encseq_loader_delete(el);
    if (!encseq)
      rm = NULL;
    else {
      rm = gt_region_mapping_new_encseq(encseq, s2fi->matchdesc,
                                        s2fi->usedesc);
      gt_encseq_delete(encseq);
    }
  } else {
    rm = gt_region_mapping_new_mapping(s2fi->region_mapping, err);
  }
  if (rm && s2fi->matchdescstart)
    gt_region_mapping_enable_match_desc_start(rm);
  gt_assert(rm || gt_error_is_set(err));
  return rm;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
testq %rsi, %rsi
je 0x116b86
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x116cc3
testq %r14, %r14
je 0x116c95
movb $0x1, %al
cmpb $0x0, 0x8(%r14)
jne 0x116b9c
movb 0xa(%r14), %al
movb %al, 0x8(%r14)
movq (%r14), %rdi
callq 0xae61c
testq %rax, %rax
je 0x116be3
movq (%r14), %rdi
movzbl 0x8(%r14), %esi
movzbl 0x9(%r14), %edx
callq 0x10f851
movq %rax, %r15
testq %r15, %r15
je 0x116c66
cmpb $0x1, 0xa(%r14)
jne 0x116c75
movq %r15, %rdi
callq 0x10fa4a
jmp 0x116c75
movq 0x18(%r14), %rdi
callq 0xad289
testq %rax, %rax
je 0x116c84
callq 0x791cd
movq %rax, %r15
movq %rax, %rdi
callq 0x7d046
movq %r15, %rdi
callq 0x7cffe
movq %r15, %rdi
callq 0x7cff9
movq %r15, %rdi
callq 0x7d470
movq 0x18(%r14), %rdi
callq 0xad1fa
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x7921d
movq %rax, %r12
movq %r15, %rdi
callq 0x79f01
testq %r12, %r12
je 0x116c66
movzbl 0x8(%r14), %esi
movzbl 0x9(%r14), %edx
movq %r12, %rdi
callq 0x10f90a
movq %rax, %r15
movq %r12, %rdi
callq 0x735fd
jmp 0x116bc2
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
je 0x116cf1
xorl %r15d, %r15d
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0x20(%r14), %rdi
movq %rbx, %rsi
callq 0x10f714
jmp 0x116bbf
movq 0x3212cc(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1ce36d(%rip), %rsi    # 0x2e5013
leaq 0x21bcdb(%rip), %rdx    # 0x332988
leaq 0x21c038(%rip), %rcx    # 0x332cec
leaq 0x21bcad(%rip), %r8     # 0x332968
movl $0xca, %r9d
jmp 0x116d1d
movq 0x32129e(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1ce33f(%rip), %rsi    # 0x2e5013
leaq 0x1ce4e4(%rip), %rdx    # 0x2e51bf
leaq 0x21c00a(%rip), %rcx    # 0x332cec
leaq 0x21bc7f(%rip), %r8     # 0x332968
movl $0xc9, %r9d
jmp 0x116d1d
movq 0x321270(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1ce311(%rip), %rsi    # 0x2e5013
leaq 0x21c004(%rip), %rdx    # 0x332d0d
leaq 0x21bfdc(%rip), %rcx    # 0x332cec
leaq 0x21bc51(%rip), %r8     # 0x332968
movl $0xe7, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
nopl (%rax)