// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_chain2dim.c
// Function: gt_chain2dim_runner
static int gt_chain2dim_runner (GT_UNUSED int argc,
                                GT_UNUSED const char **argv,
                                GT_UNUSED int parsed_args,
                                void *tool_arguments,
                                GtError * err)
{
  GtChain2dimoptions *arguments = tool_arguments;
  GtChain2Dimmatchtable *matchtable;
  bool haserr = false;
  GtLogger *logger = NULL;

  gt_error_check (err);
  gt_assert (arguments != NULL);
  gt_assert (parsed_args == argc);

  matchtable = gt_chain_analyzeopenformatfile(arguments->weightfactor,
                                              gt_str_get(arguments->
                                                         matchfile),
                                              err);
  if (matchtable == NULL)
  {
    haserr = true;
  }
  if (!haserr)
  {
    unsigned int presortdim = 1U;
    GtChain2Dim *chain;
    Counter counter;

    logger = gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX, stdout);
    gt_chain_possiblysortmatches(logger, matchtable, presortdim);
    chain = gt_chain_chain_new();
    counter.chaincounter = 0;
    gt_chain_fastchaining(arguments->gtchainmode,
                          chain,
                          matchtable,
                          true,
                          presortdim,
                          true,
                          arguments->silent ? gt_outputformatchainsilent
                                            : gt_outputformatchain,
                          &counter,
                          logger);
    gt_chain_chain_delete(chain);
  }
  gt_chain_chainmode_delete(arguments->gtchainmode);
  gt_chain_matchtable_delete(matchtable);
  if (logger != NULL)
  {
    gt_logger_delete(logger);
  }
  return haserr ? -1 : 0;
}

// Assembly:
subq $0x88, %rsp
movl %edi, 0x84(%rsp)
movq %rsi, 0x78(%rsp)
movl %edx, 0x74(%rsp)
movq %rcx, 0x68(%rsp)
movq %r8, 0x60(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x58(%rsp)
movb $0x0, 0x4f(%rsp)
movq $0x0, 0x40(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0x1ed19
movq 0x60(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1ece1
jmp 0x1ed19
movq 0x61d2b8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4f7321(%rip), %rsi    # 0x516013
leaq 0x4f74c6(%rip), %rdx    # 0x5161bf
leaq 0x4f8bc4(%rip), %rcx    # 0x5178c4
leaq 0x4f8564(%rip), %r8     # 0x51726b
movl $0x103, %r9d            # imm = 0x103
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ed1b
jmp 0x1ed1d
cmpq $0x0, 0x58(%rsp)
jne 0x1ed5d
movq 0x61d274(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4f72dd(%rip), %rsi    # 0x516013
leaq 0x4f8547(%rip), %rdx    # 0x517284
leaq 0x4f8b80(%rip), %rcx    # 0x5178c4
leaq 0x4f8520(%rip), %r8     # 0x51726b
movl $0x104, %r9d            # imm = 0x104
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ed5f
jmp 0x1ed61
movl 0x74(%rsp), %eax
cmpl 0x84(%rsp), %eax
je 0x1eda6
movq 0x61d22b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4f7294(%rip), %rsi    # 0x516013
leaq 0x4f8b52(%rip), %rdx    # 0x5178d8
leaq 0x4f8b37(%rip), %rcx    # 0x5178c4
leaq 0x4f84d7(%rip), %r8     # 0x51726b
movl $0x105, %r9d            # imm = 0x105
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1eda8
movq 0x58(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x58(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dee0
movsd 0x20(%rsp), %xmm0
movq %rax, %rdi
movq 0x60(%rsp), %rsi
callq 0x20b4e0
movq %rax, 0x50(%rsp)
cmpq $0x0, 0x50(%rsp)
jne 0x1edeb
movb $0x1, 0x4f(%rsp)
testb $0x1, 0x4f(%rsp)
jne 0x1eeb0
movl $0x1, 0x3c(%rsp)
movq 0x58(%rsp), %rax
movb 0x1(%rax), %al
movq 0x61d12b(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
leaq 0x4f8ad5(%rip), %rsi    # 0x5178ec
andb $0x1, %al
movzbl %al, %edi
callq 0xe7870
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rdi
movq 0x50(%rsp), %rsi
movl 0x3c(%rsp), %edx
callq 0x208be0
callq 0x209190
movq %rax, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
movq 0x58(%rsp), %rax
movq 0x50(%rax), %rdi
movq 0x30(%rsp), %rsi
movq 0x50(%rsp), %rdx
movl 0x3c(%rsp), %r8d
movq 0x58(%rsp), %rax
movb (%rax), %cl
leaq -0x8b2(%rip), %r11      # 0x1e5c0
leaq -0xa39(%rip), %rax      # 0x1e440
testb $0x1, %cl
cmovneq %rax, %r11
movq 0x40(%rsp), %rax
movl $0x1, %r9d
leaq 0x28(%rsp), %r10
movl %r9d, %ecx
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x2079c0
movq 0x30(%rsp), %rdi
callq 0x2091e0
movq 0x58(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0x209160
movq 0x50(%rsp), %rdi
callq 0x2075d0
cmpq $0x0, 0x40(%rsp)
je 0x1eeda
movq 0x40(%rsp), %rdi
callq 0xe7ed0
movb 0x4f(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0x88, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)