// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/tools/gt_condenseq_hmmsearch.c
// Function: gt_condenseq_hmmsearch_runner
static int gt_condenseq_hmmsearch_runner(GT_UNUSED int argc,
                                         GT_UNUSED const char **argv,
                                         GT_UNUSED int parsed_args,
                                         void *tool_arguments,
                                         GtError *err)
{
  GtCondenseqHmmsearchArguments *arguments = tool_arguments;
  GtCondenseq *ces = NULL;
  GtStr *table_filename = NULL;
  GtLogger *logger = NULL;
  GtTimer *timer = NULL;
  int had_err = 0;

  logger = gt_logger_new(gt_condenseq_search_arguments_verbose(arguments->csa),
                         GT_LOGGER_DEFLT_PREFIX, stderr);
  if (gt_showtime_enabled()) {
    timer = gt_timer_new_with_progress_description("initialization");
    gt_timer_start(timer);
  }

  gt_error_check(err);
  gt_assert(arguments);

  if (gt_str_length(arguments->outtable_filename) != 0) {
    table_filename = gt_str_clone(arguments->outtable_filename);
    gt_str_append_cstr(table_filename, "tabout.tsv");
  }
  else {
    table_filename = gt_condenseq_search_arguments_db_filename(arguments->csa,
                                                               "_tabout.tsv");
  }
  if (!had_err) {
    struct stat buf;
    if (stat(gt_str_get(table_filename), &buf) == 0 && !arguments->force_ow) {
      gt_error_set(err, "file %s already exists, use option -force_ow to "
                   "overwrite or delete", gt_str_get(table_filename));
      had_err = -1;
    }
  }

  if (timer != NULL)
    gt_timer_show_progress(timer, "read condenseq", stderr);
  if (!had_err) {
    ces = gt_condenseq_search_arguments_read_condenseq(arguments->csa,
                                                       logger, err);
    if (ces == NULL)
      had_err = -1;
  }
  if (!had_err) {
    had_err =
      hmmsearch_call_coarse_search(ces,
                                   gt_str_get(arguments->hmmsearch_path),
                                   gt_str_get(table_filename),
                                   gt_str_get(arguments->hmm),
                                   arguments->hmm_num_threads,
                                   timer, logger, err);
  }
  if (!had_err) {
    had_err = hmmsearch_process_coarse_hits(gt_str_get(table_filename),
                                            ces, arguments,
                                            timer, logger, err);
  }

  if (timer != NULL)
    gt_timer_show_progress(timer, "cleanup", stderr);
  gt_condenseq_delete(ces);
  gt_logger_delete(logger);
  gt_str_delete(table_filename);

  if (timer != NULL)
    gt_timer_show_progress_final(timer, stderr);
  gt_timer_delete(timer);
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %r8, %rbx
movq %rcx, %r12
movq (%rcx), %rdi
callq 0xc6da7
movq 0x41708f(%rip), %r14    # 0x437f68
movq (%r14), %rdx
movzbl %al, %edi
leaq 0x2c59ee(%rip), %rsi    # 0x2e68d4
callq 0x92b50
movq %rax, %rbp
callq 0xaaf34
testb %al, %al
je 0x20f10
leaq 0x2d720d(%rip), %rdi    # 0x2f810b
callq 0xaf4a5
movq %rax, %r15
movq %rax, %rdi
callq 0xaf4d6
jmp 0x20f13
xorl %r15d, %r15d
testq %rbx, %rbx
je 0x20f28
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x217ea
movq 0x18(%r12), %rdi
callq 0xad289
testq %rax, %rax
movq %rbx, 0x10(%rsp)
je 0x20f5a
movq 0x18(%r12), %rdi
callq 0xad442
movq %rax, %r13
leaq 0x2c8696(%rip), %rsi    # 0x2e95e6
movq %rax, %rdi
callq 0xacbfb
jmp 0x20f6d
movq (%r12), %rdi
leaq 0x2c8680(%rip), %rsi    # 0x2e95e5
callq 0xc6e0e
movq %rax, %r13
movq %r13, %rdi
callq 0xad1fa
leaq 0x88(%rsp), %rsi
movq %rax, %rdi
callq 0x17f60
movb $0x1, %bl
testl %eax, %eax
jne 0x20fb3
cmpb $0x0, 0x28(%r12)
jne 0x20fb3
movq %r13, %rdi
callq 0xad1fa
leaq 0x2c864f(%rip), %rsi    # 0x2e95f1
xorl %ebx, %ebx
movq 0x10(%rsp), %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
testq %r15, %r15
je 0x20fca
movq (%r14), %rdx
leaq 0x2c8673(%rip), %rsi    # 0x2e9635
movq %r15, %rdi
callq 0xaf86f
testb %bl, %bl
je 0x210f4
movq (%r12), %rdi
movq %rbp, %rsi
movq 0x10(%rsp), %rdx
callq 0xc6d80
testq %rax, %rax
je 0x210f4
movq %rax, %rbx
movq %rbp, 0x38(%rsp)
movq %r15, 0x20(%rsp)
movq 0x10(%r12), %rdi
callq 0xad1fa
movq %rbx, %r14
movq %rax, %rbx
movq %r13, %rdi
callq 0xad1fa
movq %rax, 0x48(%rsp)
movq 0x8(%r12), %rdi
callq 0xad1fa
movq %rax, 0x8(%rsp)
movl 0x24(%r12), %ebp
andq $0x0, 0x88(%rsp)
movq %r14, 0x30(%rsp)
movq %r14, %rdi
callq 0xc241c
movq %rax, %r14
callq 0xacb84
testq %r14, %r14
je 0x21811
movq %rax, %r15
movq %r12, 0x18(%rsp)
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x21079
movq 0x416efe(%rip), %rax    # 0x437f68
movq (%rax), %rdx
leaq 0x2c8600(%rip), %rsi    # 0x2e9674
callq 0xaf86f
leaq 0x2c823c(%rip), %rdx    # 0x2e92bc
pushq $0xa
popq %rdi
pushq $0x8
popq %rsi
movl $0x137, %ecx            # imm = 0x137
callq 0x9334a
movq %rax, %r12
movq %rbx, (%rax)
leaq 0x2c85ec(%rip), %rax    # 0x2e9689
movq %rax, 0x8(%r12)
leaq 0x2c85e8(%rip), %rax    # 0x2e9691
movq %rax, 0x10(%r12)
leaq 0x2c85e6(%rip), %rax    # 0x2e969b
movq %rax, 0x18(%r12)
movq 0x48(%rsp), %rax
movq %rax, 0x20(%r12)
cmpl $-0x1, %ebp
je 0x2116b
movq %r15, %rdi
movl %ebp, %esi
callq 0xad151
leaq 0x2c85c9(%rip), %rax    # 0x2e96a7
movq %rax, 0x28(%r12)
movq %r15, %rdi
callq 0xad1fa
movq %rax, 0x30(%r12)
pushq $0x7
jmp 0x2116d
xorl %ebx, %ebx
pushq $-0x1
popq %r12
testq %r15, %r15
je 0x21136
movq (%r14), %rdx
leaq 0x2c81ab(%rip), %rsi    # 0x2e92b4
movq %r15, %rdi
callq 0xaf86f
movq %rbx, %rdi
callq 0xc1b0c
movq %rbp, %rdi
callq 0x92fd0
movq %r13, %rdi
callq 0xae103
movq (%r14), %rsi
movq %r15, %rdi
callq 0xafb49
jmp 0x2114e
movq %rbx, %rdi
callq 0xc1b0c
movq %rbp, %rdi
callq 0x92fd0
movq %r13, %rdi
callq 0xae103
movq %r15, %rdi
callq 0xafc5b
movl %r12d, %eax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x5
popq %rbp
movq 0x8(%rsp), %rax
movq %rax, (%r12,%rbp,8)
movq %r14, %rdi
callq 0xad1fa
movq %rax, 0x8(%r12,%rbp,8)
cmpq $0x0, 0x10(%r12,%rbp,8)
jne 0x2183f
leaq 0x2c852b(%rip), %rsi    # 0x2e96c2
movq 0x38(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x92e71
leaq 0x88(%rsp), %rdx
movq %rbx, %rdi
movq %r12, %rsi
movq 0x10(%rsp), %rcx
callq 0x1128cc
movq %rax, %rbx
leaq 0x2c80f1(%rip), %rsi    # 0x2e92bc
movq %r12, %rdi
movl $0x14d, %edx            # imm = 0x14D
callq 0x936f9
movq %r14, %rdi
callq 0xae103
movq %r15, %rdi
callq 0xae103
testq %rbx, %rbx
je 0x212ba
callq 0xacb84
movq %rax, %r14
movq 0x20(%rsp), %r15
movq 0x18(%rsp), %r12
movq (%rbx), %rsi
movq %r14, %rdi
callq 0xad4de
testl %eax, %eax
jne 0x2121c
movq %r14, %rdi
callq 0xad357
jmp 0x21203
movq %r14, %rdi
callq 0xae103
movq %rbx, %rdi
callq 0x112afc
movq %r13, %rdi
callq 0xad1fa
movq %rax, %rbx
callq 0xab2f4
movq %rax, 0x8(%rsp)
callq 0xacb84
movq %rax, %rbp
callq 0xacb84
movq %rax, 0x60(%rsp)
leaq 0x2f8be7(%rip), %rdi    # 0x319e41
callq 0xacbd1
movq %rax, %r14
movq %rax, %rdi
callq 0xad289
movq %rax, 0x80(%rsp)
movq 0x18(%r12), %rdi
callq 0xad289
movq %rax, 0x58(%rsp)
testq %r15, %r15
je 0x212d0
movq 0x416cdb(%rip), %rax    # 0x437f68
movq (%rax), %rdx
leaq 0x2c8437(%rip), %rsi    # 0x2e96ce
movq %r15, %rdi
callq 0xaf86f
leaq 0x2c843f(%rip), %rdi    # 0x2e96e5
callq 0xaf4a5
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0xaf4d6
jmp 0x212d9
movq 0x416ca7(%rip), %r14    # 0x437f68
movq 0x20(%rsp), %r15
movq 0x30(%rsp), %rbx
jmp 0x210f6
movq $0x0, 0x28(%rsp)
leaq 0x2d9b4d(%rip), %rsi    # 0x2fae2d
movq %rbx, %rdi
callq 0xb2ee0
movq %rax, 0x48(%rsp)
leaq 0x583(%rip), %rdi       # 0x21877
leaq 0x5cc(%rip), %rsi       # 0x218c7
xorl %edx, %edx
callq 0x106594
movq %rax, 0x40(%rsp)
pushq $0x1
popq %rax
movq %rax, 0x70(%rsp)
movq %rax, 0x50(%rsp)
xorl %ebx, %ebx
xorl %r15d, %r15d
movq %r13, 0x68(%rsp)
movq %r14, 0x78(%rsp)
testl %r15d, %r15d
jne 0x21635
movq %rbp, %rdi
movq 0x48(%rsp), %rsi
callq 0xad4de
testl %eax, %eax
jne 0x2166e
movq %rbp, %rdi
callq 0xad1fa
xorl %r15d, %r15d
cmpb $0x23, (%rax)
jne 0x2135b
movq 0x18(%rsp), %r12
jmp 0x21628
movq %rax, %r12
movq %rbp, %rdi
callq 0xad289
movq 0x8(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
pushq $0x20
popq %rcx
callq 0xab43d
movq %r15, %rdi
callq 0xab625
cmpq $0x16, %rax
jbe 0x217b9
movq %r15, %rdi
xorl %esi, %esi
callq 0xab58d
movq %rax, %r15
movq %rax, %rdi
pushq $0x65
popq %rsi
callq 0x17260
leaq 0x1(%rax), %r12
testq %rax, %rax
cmoveq %r15, %r12
leaq 0x88(%rsp), %rdi
movq %r12, %rsi
callq 0x9bd05
testl %eax, %eax
jne 0x213e7
movq %r12, %rdi
leaq 0x325b15(%rip), %rsi    # 0x346ee4
leaq 0x88(%rsp), %rdx
xorl %eax, %eax
callq 0x177b0
cmpl $0x1, %eax
jne 0x21502
movq 0x60(%rsp), %r15
movq %r15, %rdi
callq 0xad289
testq %rax, %rax
movq 0x18(%rsp), %r12
je 0x2142a
movq %r15, %rdi
callq 0xad1fa
movq %rax, %r15
movq 0x8(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0xab58d
movq %r15, %rdi
movq 0x60(%rsp), %r15
movq %rax, %rsi
callq 0x179e0
testl %eax, %eax
je 0x21464
movq 0x8(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0xab58d
movq %r15, %rdi
movq %rax, %rsi
callq 0xacc8b
incl %ebx
movq %r15, %rdi
callq 0xad1fa
movq 0x38(%rsp), %rdi
leaq 0x2c82eb(%rip), %rsi    # 0x2e9743
movl %ebx, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x92e71
movl 0x20(%r12), %eax
testl %eax, %eax
je 0x215ee
cmpl %eax, %ebx
jbe 0x215ee
movq %r14, %rdi
movq 0x40(%rsp), %rsi
movq 0x30(%rsp), %rdx
callq 0x218d8
movq %r14, %rdi
callq 0xad1fa
movq 0x38(%rsp), %r13
movq %r13, %rdi
leaq 0x2c82b4(%rip), %rsi    # 0x2e9756
movq %rax, %rdx
xorl %eax, %eax
callq 0x92e71
cmpq $0x0, 0x58(%rsp)
je 0x21526
movq 0x18(%r12), %rdi
movq 0x50(%rsp), %rsi
leaq 0x1(%rsi), %r15
callq 0xace26
movq 0x18(%r12), %rdi
leaq 0x2c8292(%rip), %rsi    # 0x2e9765
callq 0xacbfb
movq 0x18(%r12), %rdi
callq 0xad1fa
movq %r13, %rdi
leaq 0x2c827e(%rip), %rsi    # 0x2e976a
movq %rax, %rdx
xorl %eax, %eax
callq 0x92e71
movq 0x18(%r12), %rbx
movq %r15, 0x50(%rsp)
jmp 0x21528
movq 0x10(%rsp), %rdi
leaq 0x2c6f81(%rip), %rsi    # 0x2e848f
movq %r12, %rdx
xorl %eax, %eax
callq 0x89dbb
pushq $-0x1
popq %r15
movq 0x18(%rsp), %r12
jmp 0x2161e
xorl %ebx, %ebx
movq %r14, %rdi
callq 0xad1fa
movq %rax, %r15
movq 0x10(%r12), %rdi
callq 0xad1fa
movq %rax, %r14
movq 0x8(%r12), %rdi
callq 0xad1fa
movl 0x24(%r12), %r8d
movq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rax, %rcx
movq %r13, %r9
callq 0x21998
movl %eax, %r12d
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2159e
movq 0x4169e8(%rip), %rax    # 0x437f68
movq (%rax), %rsi
movq 0x70(%rsp), %rcx
incq %rcx
leaq 0x2c81e6(%rip), %rdx    # 0x2e9778
movq %rcx, 0x70(%rsp)
xorl %eax, %eax
callq 0xaf886
movq 0x68(%rsp), %r13
movq 0x58(%rsp), %rbx
movq 0x40(%rsp), %rdi
callq 0x106628
movq 0x78(%rsp), %r14
movq %r14, %rdi
movq 0x80(%rsp), %rsi
callq 0xad296
testq %rbx, %rbx
je 0x215dd
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rdi
movq %rbx, %rsi
callq 0xad296
pushq $0x1
popq %rbx
pushq $-0x1
popq %r15
testl %r12d, %r12d
movq 0x18(%rsp), %r12
jne 0x2161e
movq 0x88(%rsp), %rsi
movq 0x30(%rsp), %rdi
leaq 0x53a(%rip), %rdx       # 0x21b3c
movq 0x40(%rsp), %rcx
movq 0x10(%rsp), %r8
callq 0xc2f29
cmpq $0x1, %rax
movl $0x0, %r15d
sbbl %r15d, %r15d
movq 0x8(%rsp), %rdi
callq 0xab5d7
movq %rbp, %rdi
callq 0xad357
jmp 0x21323
movq 0x8(%rsp), %rdi
callq 0xab666
movq %rbp, %rdi
callq 0xae103
movq 0x60(%rsp), %rdi
callq 0xae103
movq 0x48(%rsp), %rdi
callq 0xb2e04
pushq $-0x1
popq %r12
movq 0x20(%rsp), %r15
movq 0x38(%rsp), %rbp
jmp 0x21760
movq 0x8(%rsp), %rdi
callq 0xab666
movq %rbp, %rdi
callq 0xae103
movq 0x60(%rsp), %rdi
callq 0xae103
movq 0x48(%rsp), %rdi
callq 0xb2e04
movq %r14, %rdi
movq 0x40(%rsp), %rsi
movq 0x30(%rsp), %rdx
callq 0x218d8
movq %r14, %rdi
callq 0xad1fa
leaq 0x2c80a1(%rip), %rsi    # 0x2e9756
xorl %ebx, %ebx
movq 0x38(%rsp), %rbp
movq %rbp, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x92e71
cmpq $0x0, 0x58(%rsp)
je 0x21714
movq 0x18(%r12), %rdi
movq 0x50(%rsp), %rsi
callq 0xace26
movq 0x18(%r12), %rdi
leaq 0x2c8079(%rip), %rsi    # 0x2e9765
callq 0xacbfb
movq 0x18(%r12), %rdi
callq 0xad1fa
leaq 0x2c8068(%rip), %rsi    # 0x2e976a
movq %rbp, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x92e71
movq 0x18(%r12), %rbx
movq %r14, %rdi
callq 0xad1fa
movq %rax, %r14
movq 0x10(%r12), %rdi
callq 0xad1fa
movq %rax, %r15
movq 0x8(%r12), %rdi
callq 0xad1fa
movl 0x24(%r12), %r8d
movq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rax, %rcx
movq %rbp, %r9
callq 0x21998
movl %eax, %r12d
movq 0x20(%rsp), %r15
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
movq 0x4167f9(%rip), %r14    # 0x437f68
movq 0x30(%rsp), %rbx
je 0x21788
movq (%r14), %rsi
movq 0x28(%rsp), %rdi
callq 0xafb49
movq 0x28(%rsp), %rdi
callq 0xafc5b
leaq 0x2c7ffb(%rip), %rdi    # 0x2e978f
movq 0x50(%rsp), %rsi
xorl %eax, %eax
callq 0x92a82
movq 0x40(%rsp), %rdi
callq 0x10660a
movq 0x78(%rsp), %rdi
callq 0xae103
jmp 0x210fa
movq 0x4167a8(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2c3849(%rip), %rsi    # 0x2e5013
leaq 0x2c7f29(%rip), %rdx    # 0x2e96fa
leaq 0x2c7f4d(%rip), %rcx    # 0x2e9725
leaq 0x2c7add(%rip), %r8     # 0x2e92bc
movl $0x188, %r9d            # imm = 0x188
jmp 0x2186b
movq (%r14), %rdi
leaq 0x2c381f(%rip), %rsi    # 0x2e5013
leaq 0x2c39c4(%rip), %rdx    # 0x2e51bf
leaq 0x2c7dc5(%rip), %rcx    # 0x2e95c7
leaq 0x2c7ab3(%rip), %r8     # 0x2e92bc
movl $0x1ff, %r9d            # imm = 0x1FF
jmp 0x2186b
movq 0x416750(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2c37f1(%rip), %rsi    # 0x2e5013
leaq 0x2c7e1b(%rip), %rdx    # 0x2e9644
leaq 0x2c7e27(%rip), %rcx    # 0x2e9657
leaq 0x2c7a85(%rip), %r8     # 0x2e92bc
movl $0x131, %r9d            # imm = 0x131
jmp 0x2186b
movq 0x416722(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2c37c3(%rip), %rsi    # 0x2e5013
leaq 0x2c7e56(%rip), %rdx    # 0x2e96ad
leaq 0x2c7df9(%rip), %rcx    # 0x2e9657
leaq 0x2c7a57(%rip), %r8     # 0x2e92bc
movl $0x144, %r9d            # imm = 0x144
xorl %eax, %eax
callq 0x17a50
callq 0x17390