// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/test-mergeesa.c
// Function: gt_performtheindexmerging
int gt_performtheindexmerging(const GtStr *storeindex,
                           const GtStrArray *indexnametab,
                           GtLogger *logger,
                           GtError *err)
{
  Emissionmergedesa emmesa;
  unsigned int demand = SARR_ESQTAB | SARR_SUFTAB | SARR_LCPTAB;
  bool haserr = false;

  gt_error_check(err);
  if (gt_emissionmergedesa_init(&emmesa,
                             indexnametab,
                             demand,
                             logger,
                             err) != 0)
  {
    haserr = true;
  }
  if (!haserr)
  {
    if (gt_str_array_size(indexnametab) > 1UL)
    {
      if (mergeandstoreindex(storeindex,&emmesa,err) != 0)
      {
        haserr = true;
      }
    } else
    {
      gt_error_set(err,"merging requires more than one index");
      haserr = true;
    }
  }
  gt_emissionmergedesa_wrap(&emmesa);
  return haserr ? -1 : 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x40138, %rsp          # imm = 0x40138
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r14
testq %rcx, %rcx
je 0x1b430e
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x1b45e6
leaq 0x100d0(%rsp), %rdi
pushq $0x7
popq %rdx
movq %r15, %rsi
movq %r12, %rcx
movq %rbx, %r8
callq 0x2b0df5
pushq $-0x1
popq %rbp
testl %eax, %eax
jne 0x1b43fa
movl %eax, %r12d
movq %r15, %rdi
callq 0xae61c
cmpq $0x2, %rax
jb 0x1b43e9
testq %rbx, %rbx
je 0x1b435c
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x1b461e
leaq 0xa0(%rsp), %r13
leaq 0xb0(%rsp), %r15
xorps %xmm0, %xmm0
movaps %xmm0, (%r15)
movaps %xmm0, -0x10(%r15)
movaps %xmm0, -0x20(%r15)
leaq 0x1731e9(%rip), %rdx    # 0x32756d
leaq 0x90(%rsp), %rdi
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1b46a9
testl %eax, %eax
jne 0x1b43b4
leaq 0x19023f(%rip), %rdx    # 0x3445e1
movq %r13, %rdi
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1b46a9
testl %eax, %eax
je 0x1b441b
movb $0x0, 0x1(%rsp)
movb $0x1, %bpl
testl %r12d, %r12d
setne %bl
leaq 0x90(%rsp), %rdi
callq 0x1b4758
movq %r13, %rdi
callq 0x1b4758
movq %r15, %rdi
callq 0x1b4758
orb %bpl, %bl
movzbl %bl, %ebp
negl %ebp
jmp 0x1b43fa
leaq 0x1a8585(%rip), %rsi    # 0x35c975
movq %rbx, %rdi
xorl %eax, %eax
callq 0x89dbb
leaq 0x100d0(%rsp), %rdi
callq 0x2b10e8
movl %ebp, %eax
addq $0x40138, %rsp          # imm = 0x40138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x190200(%rip), %rdx    # 0x344622
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1b46a9
movb $0x0, 0x1(%rsp)
movb $0x1, %bpl
testl %eax, %eax
setne %al
jne 0x1b43bc
movb %al, 0x2(%rsp)
movl %r12d, 0x4(%rsp)
movq 0xa8(%rsp), %rcx
leaq 0x1(%rsp), %rdi
pushq $0x1
popq %rdx
movq %rdx, %rsi
callq 0xb302c
movq $0x1, 0xc0(%rsp)
movq 0x40128(%rsp), %rdx
movl 0x100dc(%rsp), %ecx
leaq 0x18(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x2aebd0
testq %rax, %rax
je 0x1b4678
movq %rax, %r12
leaq 0x3(%rsp), %r13
pushq $0x1
popq %r15
cmpl $0x0, 0x100d8(%rsp)
je 0x1b45ae
leaq 0x100d0(%rsp), %rdi
movq %rbx, %rsi
callq 0x2b09b0
testl %eax, %eax
jne 0x1b45b5
testq %rbx, %rbx
je 0x1b44de
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x1b464c
movl 0x100ec(%rsp), %edx
leaq (,%rdx,8), %rax
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0x1b4515
movl 0x200f0(%rsp,%rcx,2), %esi
movq 0x200f8(%rsp,%rcx,2), %rdi
addq (%r12,%rsi,8), %rdi
movq %rdi, 0xc8(%rsp,%rcx)
addq $0x8, %rcx
jmp 0x1b44ef
movq 0x98(%rsp), %rcx
leaq 0xc8(%rsp), %rdi
pushq $0x8
popq %rsi
callq 0xb302c
movzbl 0x400f0(%rsp), %eax
movl 0x100ec(%rsp), %r14d
subl %eax, %r14d
xorl %ebp, %ebp
cmpq %rbp, %r14
je 0x1b44a3
movq 0x100f0(%rsp,%rbp,8), %rax
cmpq $0xfe, %rax
jbe 0x1b4587
movq 0xb8(%rsp), %rcx
movq 0xc0(%rsp), %rdx
movq %rdx, 0x8(%rsp)
movq %rax, 0x10(%rsp)
leaq 0x8(%rsp), %rdi
pushq $0x10
popq %rsi
movq %r15, %rdx
callq 0xb302c
movb $-0x1, %al
movb %al, 0x3(%rsp)
movq 0xa8(%rsp), %rcx
movq %r13, %rdi
movq %r15, %rsi
movq %r15, %rdx
callq 0xb302c
incq 0xc0(%rsp)
incq %rbp
jmp 0x1b4542
movb 0x2(%rsp), %bpl
jmp 0x1b45b8
movb $0x1, %bpl
leaq 0x1a839c(%rip), %rsi    # 0x35c95b
movq %r12, %rdi
movl $0xbf, %edx
callq 0x936f9
movl 0x4(%rsp), %r12d
leaq 0xb0(%rsp), %r15
leaq 0xa0(%rsp), %r13
jmp 0x1b43bc
movq 0x28397b(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x130a1c(%rip), %rsi    # 0x2e5013
leaq 0x130bc1(%rip), %rdx    # 0x2e51bf
leaq 0x1a833c(%rip), %rcx    # 0x35c941
leaq 0x1a834f(%rip), %r8     # 0x35c95b
movl $0xd0, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x283943(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1309e4(%rip), %rsi    # 0x2e5013
leaq 0x130b89(%rip), %rdx    # 0x2e51bf
leaq 0x1a835d(%rip), %rcx    # 0x35c99a
leaq 0x1a8317(%rip), %r8     # 0x35c95b
movl $0x86, %r9d
jmp 0x1b4612
movq 0x283915(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1309b6(%rip), %rsi    # 0x2e5013
leaq 0x130b5b(%rip), %rdx    # 0x2e51bf
leaq 0x1a836e(%rip), %rcx    # 0x35c9d9
leaq 0x1a82e9(%rip), %r8     # 0x35c95b
pushq $0x54
popq %r9
jmp 0x1b4612
movq 0x2838e9(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x13098a(%rip), %rsi    # 0x2e5013
leaq 0x1a831d(%rip), %rdx    # 0x35c9ad
leaq 0x1a8303(%rip), %rcx    # 0x35c99a
leaq 0x1a82bd(%rip), %r8     # 0x35c95b
movl $0xad, %r9d
jmp 0x1b4612