// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x1d49c7
movq 0x28(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d498f
jmp 0x1d49c7
movq 0x46760a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x341673(%rip), %rsi    # 0x516013
leaq 0x341818(%rip), %rdx    # 0x5161bf
leaq 0x3908a4(%rip), %rcx    # 0x565252
leaq 0x390519(%rip), %r8     # 0x564ece
movl $0xc9, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d49c9
jmp 0x1d49cb
cmpq $0x0, 0x30(%rsp)
jne 0x1d4a0b
movq 0x4675c6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x34162f(%rip), %rsi    # 0x516013
leaq 0x390503(%rip), %rdx    # 0x564eee
leaq 0x390860(%rip), %rcx    # 0x565252
leaq 0x3904d5(%rip), %r8     # 0x564ece
movl $0xca, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d4a0d
movq 0x30(%rsp), %rcx
movb $0x1, %al
testb $0x1, 0x8(%rcx)
movb %al, 0xf(%rsp)
jne 0x1d4a2a
movq 0x30(%rsp), %rax
movb 0xa(%rax), %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %cl
movq 0x30(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x8(%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
je 0x1d4a7e
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x30(%rsp), %rax
movb 0x8(%rax), %cl
movq 0x30(%rsp), %rax
movb 0x9(%rax), %al
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %esi
movzbl %al, %edx
callq 0x1c7c80
movq %rax, 0x20(%rsp)
jmp 0x1d4b62
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
je 0x1d4b48
callq 0xb7a40
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
callq 0xba760
movq 0x18(%rsp), %rdi
callq 0xba700
movq 0x18(%rsp), %rdi
callq 0xba6f0
movq 0x18(%rsp), %rdi
callq 0xbacc0
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dee0
movq (%rsp), %rdi
movq %rax, %rsi
movq 0x28(%rsp), %rdx
callq 0xb7aa0
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
callq 0xb7e50
cmpq $0x0, 0x10(%rsp)
jne 0x1d4b12
movq $0x0, 0x20(%rsp)
jmp 0x1d4b46
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rax
movb 0x8(%rax), %cl
movq 0x30(%rsp), %rax
movb 0x9(%rax), %al
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %esi
movzbl %al, %edx
callq 0x1c7d90
movq %rax, 0x20(%rsp)
movq 0x10(%rsp), %rdi
callq 0xae070
jmp 0x1d4b60
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x28(%rsp), %rsi
callq 0x1c7ab0
movq %rax, 0x20(%rsp)
jmp 0x1d4b62
cmpq $0x0, 0x20(%rsp)
je 0x1d4b7f
movq 0x30(%rsp), %rax
testb $0x1, 0xa(%rax)
je 0x1d4b7f
movq 0x20(%rsp), %rdi
callq 0x1c7f90
jmp 0x1d4b81
cmpq $0x0, 0x20(%rsp)
jne 0x1d4bcf
movq 0x28(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d4bcf
movq 0x467402(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x34146b(%rip), %rsi    # 0x516013
leaq 0x3906c4(%rip), %rdx    # 0x565273
leaq 0x39069c(%rip), %rcx    # 0x565252
leaq 0x390311(%rip), %r8     # 0x564ece
movl $0xe7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d4bd1
movq 0x20(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax,%rax)