// File: /workspace/github_c_makefile_star2_O1/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 $0x128, %rsp            # imm = 0x128
movq %r8, %rbx
movq %rcx, %r14
movq (%rcx), %rdi
callq 0x136fd5
movq 0x4222f6(%rip), %r13    # 0x4c3f80
movq (%r13), %rdx
movzbl %al, %edi
leaq 0x2adc3c(%rip), %rsi    # 0x34f8d4
callq 0x108ed0
movq %rax, %r12
callq 0x11ed94
testb %al, %al
je 0xa1cc2
leaq 0x2bf49e(%rip), %rdi    # 0x36114e
callq 0x1226d6
movq %rax, %rbp
movq %rax, %rdi
callq 0x122733
jmp 0xa1cc4
xorl %ebp, %ebp
testq %rbx, %rbx
je 0xa1cd9
movq %rbx, %rdi
callq 0x101a9a
testb %al, %al
jne 0xa25fd
movq 0x18(%r14), %rdi
callq 0x120d4c
testq %rax, %rax
movq %r14, 0x10(%rsp)
movq %rbx, 0x30(%rsp)
je 0xa1d0e
movq 0x18(%r14), %rdi
callq 0x120e13
movq %rax, %r15
leaq 0x2b08f2(%rip), %rsi    # 0x3525f6
movq %rax, %rdi
callq 0x12097f
jmp 0xa1d20
movq (%r14), %rdi
leaq 0x2b08dd(%rip), %rsi    # 0x3525f5
callq 0x13703c
movq %rax, %r15
movq %r15, %rdi
callq 0x120d23
leaq 0x98(%rsp), %rsi
movq %rax, %rdi
callq 0x18000
movb $0x1, %bl
testl %eax, %eax
jne 0xa1d69
movq 0x10(%rsp), %rax
cmpb $0x0, 0x28(%rax)
jne 0xa1d69
movq %r15, %rdi
callq 0x120d23
leaq 0x2b08a9(%rip), %rsi    # 0x352601
xorl %ebx, %ebx
movq 0x30(%rsp), %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1019cf
testq %rbp, %rbp
je 0xa1d81
movq (%r13), %rdx
leaq 0x2b08cc(%rip), %rsi    # 0x352645
movq %rbp, %rdi
callq 0x1229c8
testb %bl, %bl
je 0xa1da7
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq %r12, %rsi
movq 0x30(%rsp), %rdx
callq 0x136fae
movq %rax, 0x20(%rsp)
testq %rax, %rax
setne %al
jmp 0xa1db2
movq $0x0, 0x20(%rsp)
xorl %eax, %eax
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testb %al, %al
movq %r12, 0x28(%rsp)
je 0xa1f87
movq 0x10(%rsp), %rbx
movq 0x10(%rbx), %rdi
callq 0x120d23
movq %rax, %r14
movq %r15, 0x78(%rsp)
movq %r15, %rdi
callq 0x120d23
movq %rax, 0x58(%rsp)
movq 0x8(%rbx), %rdi
callq 0x120d23
movq %rax, 0x18(%rsp)
movl 0x24(%rbx), %ebx
movq $0x0, 0x98(%rsp)
movq 0x20(%rsp), %rdi
callq 0x132fe1
movq %rax, %r15
callq 0x1208f8
testq %r15, %r15
je 0xa2602
movq %rax, %r12
testq %rbp, %rbp
je 0xa1e3a
movq (%r13), %rdx
leaq 0x2b0852(%rip), %rsi    # 0x352684
movq %rbp, %rdi
callq 0x1229c8
movq %rbp, 0x48(%rsp)
leaq 0x2b0486(%rip), %rdx    # 0x3522cc
movl $0xa, %edi
movl $0x8, %esi
movl $0x137, %ecx            # imm = 0x137
callq 0x1093ef
movq %rax, %rbp
movq %r14, (%rax)
leaq 0x2b0832(%rip), %rax    # 0x352699
movq %rax, 0x8(%rbp)
leaq 0x2b082f(%rip), %rax    # 0x3526a1
movq %rax, 0x10(%rbp)
leaq 0x2b082e(%rip), %rax    # 0x3526ab
movq %rax, 0x18(%rbp)
movq 0x58(%rsp), %rax
movq %rax, 0x20(%rbp)
cmpl $-0x1, %ebx
je 0xa1eb7
movq %r12, %rdi
movl %ebx, %esi
callq 0x120cd6
leaq 0x2b0817(%rip), %rax    # 0x3526b7
movq %rax, 0x28(%rbp)
movq %r12, %rdi
callq 0x120d23
movq %rax, 0x30(%rbp)
movl $0x7, %ebx
jmp 0xa1ebc
movl $0x5, %ebx
movq 0x18(%rsp), %rax
movq %rax, (%rbp,%rbx,8)
movq %r15, %rdi
callq 0x120d23
movq %rax, 0x8(%rbp,%rbx,8)
cmpq $0x0, 0x10(%rbp,%rbx,8)
jne 0xa2607
leaq 0x2b07ec(%rip), %rsi    # 0x3526d2
xorl %ebx, %ebx
movq 0x28(%rsp), %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10906e
leaq 0x98(%rsp), %rdx
movq %r14, %rdi
movq %rbp, %rsi
movq 0x30(%rsp), %rcx
callq 0x1780dc
movq %rax, %r14
leaq 0x2b03b3(%rip), %rsi    # 0x3522cc
movq %rbp, %rdi
movl $0x14d, %edx            # imm = 0x14D
callq 0x109670
movq %r15, %rdi
callq 0x121b03
movq %r12, %rdi
callq 0x121b03
testq %r14, %r14
movq 0x48(%rsp), %rbp
je 0xa1f77
callq 0x1208f8
movq %rax, %r15
movq (%r14), %rsi
movq %rax, %rdi
callq 0x120e88
testl %eax, %eax
jne 0xa1f67
movq %r15, %rdi
callq 0x120db4
movq (%r14), %rsi
movq %r15, %rdi
jmp 0xa1f4e
movq %r15, %rdi
callq 0x121b03
movq %r14, %rdi
callq 0x178317
cmpq $0x1, %r14
sbbl %ebx, %ebx
movq 0x28(%rsp), %r12
movq 0x78(%rsp), %r15
testl %ebx, %ebx
jne 0xa2582
movq %r15, %rdi
callq 0x120d23
movq %rax, %rbx
callq 0x11f0ac
movq %rax, 0x58(%rsp)
callq 0x1208f8
movq %rbp, %r14
movq %rax, %rbp
callq 0x1208f8
movq %rax, 0x80(%rsp)
leaq 0x2e0e4e(%rip), %rdi    # 0x382e11
callq 0x120955
movq %rax, 0x38(%rsp)
movq %rax, %rdi
callq 0x120d4c
movq %rax, 0x90(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x120d4c
movq %rax, 0x68(%rsp)
testq %r14, %r14
movq %r14, 0x48(%rsp)
movq %r15, 0x78(%rsp)
je 0xa2033
movq 0x421f7a(%rip), %rax    # 0x4c3f80
movq (%rax), %rdx
leaq 0x2b06ce(%rip), %rsi    # 0x3526de
movq %r14, %rdi
callq 0x1229c8
leaq 0x2b06d6(%rip), %rdi    # 0x3526f5
callq 0x1226d6
movq %rax, 0x50(%rsp)
movq %rax, %rdi
callq 0x122733
jmp 0xa203c
movq $0x0, 0x50(%rsp)
leaq 0x2c1e86(%rip), %rsi    # 0x363ec9
movq %rbx, %rdi
callq 0x1255be
movq %rax, %r15
leaq 0x5b7(%rip), %rdi       # 0xa260c
leaq 0x5cf(%rip), %rsi       # 0xa262b
xorl %edx, %edx
callq 0x16dec0
movq %rax, 0x40(%rsp)
movl $0x1, %eax
movq %rax, 0x60(%rsp)
leaq 0x98(%rsp), %r12
movl $0x0, 0x18(%rsp)
movq %rax, 0x88(%rsp)
movq %r15, 0x70(%rsp)
movq 0x58(%rsp), %rbx
movq %rbp, %rdi
movq %r15, %rsi
callq 0x120e88
testl %eax, %eax
jne 0xa2417
movq %rbp, %rdi
callq 0x120d23
movb $0x1, %r13b
cmpb $0x23, (%rax)
je 0xa23c6
movq %rax, %r14
movq %rbp, %rdi
callq 0x120d4c
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
movl $0x20, %ecx
callq 0x11f1b0
movq %rbx, %rdi
callq 0x11f2e4
cmpq $0x16, %rax
jbe 0xa25f8
movq %rbx, %rdi
xorl %esi, %esi
callq 0x11f2a8
movq %rax, %r13
movq %rax, %rdi
movl $0x65, %esi
callq 0x17280
leaq 0x1(%rax), %r14
testq %rax, %rax
cmoveq %r13, %r14
movq %r12, %rbx
movq %r12, %rdi
movq %r14, %rsi
callq 0x11043f
movb $0x1, %r13b
testl %eax, %eax
jne 0xa2157
movq %r14, %rdi
leaq 0x30dfd9(%rip), %rsi    # 0x3b0108
movq %rbx, %rdx
xorl %eax, %eax
callq 0x177f0
cmpl $0x1, %eax
je 0xa2157
xorl %r13d, %r13d
movq 0x30(%rsp), %rdi
leaq 0x2af354(%rip), %rsi    # 0x3514a1
movq %r14, %rdx
xorl %eax, %eax
callq 0x1019cf
testb %r13b, %r13b
movq 0x58(%rsp), %rbx
je 0xa21ec
movq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x120d4c
testq %rax, %rax
je 0xa21a1
movq %r15, %rdi
callq 0x120d23
movq %rax, %r14
movl $0x3, %esi
movq %rbx, %rdi
callq 0x11f2a8
movq %r14, %rdi
movq %rax, %rsi
callq 0x17a40
testl %eax, %eax
je 0xa21e7
movl $0x3, %esi
movq %rbx, %rdi
callq 0x11f2a8
movq %r15, %rdi
movq %rax, %rsi
callq 0x1209e4
movl 0x18(%rsp), %r14d
incl %r14d
movq %r15, %rdi
callq 0x120d23
movq 0x28(%rsp), %rdi
leaq 0x2b057e(%rip), %rsi    # 0x352753
movl %r14d, 0x18(%rsp)
movl %r14d, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x10906e
movq 0x70(%rsp), %r15
testb %r13b, %r13b
je 0xa22b6
movq 0x10(%rsp), %rax
movl 0x20(%rax), %eax
testl %eax, %eax
setne %cl
cmpl %eax, 0x18(%rsp)
seta %dl
andb %cl, %dl
movb $0x1, %al
cmpb $0x1, %dl
jne 0xa238b
movq 0x38(%rsp), %rbx
movq %rbx, %rdi
movq 0x40(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0xa263c
movq %rbx, %rdi
callq 0x120d23
movq 0x28(%rsp), %r14
movq %r14, %rdi
leaq 0x2b0522(%rip), %rsi    # 0x352766
movq %rax, %rdx
xorl %eax, %eax
callq 0x10906e
movq 0x68(%rsp), %rax
testq %rax, %rax
je 0xa22a6
movq 0x10(%rsp), %r15
movq 0x18(%r15), %rdi
movq 0x60(%rsp), %rsi
leaq 0x1(%rsi), %rbx
callq 0x120af4
movq 0x18(%r15), %rdi
leaq 0x2b04fb(%rip), %rsi    # 0x352775
callq 0x12097f
movq 0x18(%r15), %rdi
callq 0x120d23
movq %r14, %rdi
leaq 0x2b04e8(%rip), %rsi    # 0x35277a
movq %rax, %rdx
xorl %eax, %eax
callq 0x10906e
movq 0x68(%rsp), %rax
movq %rbx, 0x60(%rsp)
testq %rax, %rax
je 0xa22bd
movq 0x10(%rsp), %r15
movq 0x18(%r15), %rbx
jmp 0xa22c4
xorl %eax, %eax
jmp 0xa238b
xorl %ebx, %ebx
movq 0x10(%rsp), %r15
movq 0x38(%rsp), %rdi
callq 0x120d23
movq %rax, %r14
movq 0x10(%r15), %rdi
callq 0x120d23
movq %rax, %r13
movq 0x8(%r15), %rdi
callq 0x120d23
movl 0x24(%r15), %r8d
movq 0x30(%rsp), %rcx
movq %rcx, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rax, %rcx
movq 0x28(%rsp), %r9
callq 0xa2704
movl %eax, %ebx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0xa2340
movq 0x421c64(%rip), %rax    # 0x4c3f80
movq (%rax), %rsi
movq 0x88(%rsp), %rcx
incq %rcx
leaq 0x2b0457(%rip), %rdx    # 0x352788
movq %rcx, 0x88(%rsp)
xorl %eax, %eax
callq 0x1229df
movq 0x40(%rsp), %rdi
movq 0x70(%rsp), %r15
callq 0x16df27
movq 0x38(%rsp), %rdi
movq 0x90(%rsp), %rsi
callq 0x120d59
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0xa2379
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x120d59
testl %ebx, %ebx
sete %al
movl $0x1, 0x18(%rsp)
movq 0x58(%rsp), %rbx
testb %al, %al
je 0xa23bb
movq 0x98(%rsp), %rsi
movq 0x20(%rsp), %rdi
leaq 0x4e5(%rip), %rdx       # 0xa2888
movq 0x40(%rsp), %rcx
movq 0x30(%rsp), %r8
callq 0x133700
testq %rax, %rax
setne %r13b
jmp 0xa23be
xorl %r13d, %r13d
movq %rbx, %rdi
callq 0x11f2c1
movq %rbp, %rdi
callq 0x120db4
testb %r13b, %r13b
jne 0xa2094
movq %rbx, %rdi
callq 0x11f2f4
movq %rbp, %rdi
callq 0x121b03
movq 0x80(%rsp), %rdi
callq 0x121b03
movq %r15, %rdi
callq 0x12552d
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq 0x421b78(%rip), %r13    # 0x4c3f80
movq 0x48(%rsp), %rbp
movq 0x28(%rsp), %r12
jmp 0xa2534
movq %rbx, %rdi
callq 0x11f2f4
movq %rbp, %rdi
callq 0x121b03
movq 0x80(%rsp), %rdi
callq 0x121b03
movq %r15, %rdi
callq 0x12552d
movq 0x38(%rsp), %rbx
movq %rbx, %rdi
movq 0x40(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0xa263c
movq %rbx, %rdi
callq 0x120d23
leaq 0x2b0304(%rip), %rsi    # 0x352766
movq 0x28(%rsp), %r12
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10906e
cmpq $0x0, 0x68(%rsp)
je 0xa24d3
movq 0x10(%rsp), %r15
movq 0x18(%r15), %rdi
movq 0x60(%rsp), %rsi
callq 0x120af4
movq 0x18(%r15), %rdi
leaq 0x2b02db(%rip), %rsi    # 0x352775
callq 0x12097f
movq 0x18(%r15), %rdi
callq 0x120d23
leaq 0x2b02cb(%rip), %rsi    # 0x35277a
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10906e
movq 0x18(%r15), %rax
movq %rax, 0x18(%rsp)
movq 0x421ab4(%rip), %r13    # 0x4c3f80
movq 0x48(%rsp), %rbp
jmp 0xa24ed
movq 0x421aa6(%rip), %r13    # 0x4c3f80
movq 0x48(%rsp), %rbp
movq 0x10(%rsp), %r15
movq $0x0, 0x18(%rsp)
movq 0x38(%rsp), %rdi
callq 0x120d23
movq %rax, %r14
movq 0x10(%r15), %rdi
callq 0x120d23
movq %rax, %rbx
movq 0x8(%r15), %rdi
callq 0x120d23
movl 0x24(%r15), %r8d
movq 0x30(%rsp), %rcx
movq %rcx, (%rsp)
movq 0x18(%rsp), %rdi
movq %r14, %rsi
movq %rbx, %rdx
movq %rax, %rcx
movq %r12, %r9
callq 0xa2704
movl %eax, %ebx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
movq 0x78(%rsp), %r15
je 0xa2556
movq (%r13), %rsi
movq 0x50(%rsp), %rdi
callq 0x122c67
movq 0x50(%rsp), %rdi
callq 0x122d79
leaq 0x2b023d(%rip), %rdi    # 0x35279f
movq 0x60(%rsp), %rsi
xorl %eax, %eax
callq 0x108e02
movq 0x40(%rsp), %rdi
callq 0x16df09
movq 0x38(%rsp), %rdi
callq 0x121b03
testq %rbp, %rbp
je 0xa25c2
movq (%r13), %rdx
leaq 0x2afd32(%rip), %rsi    # 0x3522c4
movq %rbp, %rdi
callq 0x1229c8
movq 0x20(%rsp), %rdi
callq 0x1323d6
movq %r12, %rdi
callq 0x10916a
movq %r15, %rdi
callq 0x121b03
movq (%r13), %rsi
movq %rbp, %rdi
callq 0x122c67
jmp 0xa25dc
movq 0x20(%rsp), %rdi
callq 0x1323d6
movq %r12, %rdi
callq 0x10916a
movq %r15, %rdi
callq 0x121b03
movq %rbp, %rdi
callq 0x122d79
movl %ebx, %eax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x195ed
callq 0x1957b
callq 0x19626
callq 0x195b4