// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/tools/gt_linspace_align.c
// Function: gt_linspace_align_runner
static int gt_linspace_align_runner(GT_UNUSED int argc,
                                    GT_UNUSED const char **argv,
                                    GT_UNUSED int parsed_args,
                                    void *tool_arguments,
                                    GtError *err)
{
  GtLinspaceArguments *arguments = tool_arguments;
  int had_err = 0;
  GtAlignment *align;
  GtWord left_dist = 0, right_dist = 0;
  GtSequenceTable *sequence_table1, *sequence_table2;
  GtLinspaceManagement *spacemanager;
  GtScoreHandler *scorehandler = NULL;
  GtTimer *linspacetimer = NULL;
  GtAlphabet *alphabet = NULL;

  gt_error_check(err);
  gt_assert(arguments);
  sequence_table1 = gt_sequence_table_new();
  sequence_table2 = gt_sequence_table_new();
  align = gt_alignment_new();
  spacemanager = gt_linspace_management_new();
  gt_linspace_management_set_TSfactor(spacemanager,arguments->timesquarefactor);

  /* get sequences */
  if (gt_str_array_size(arguments->strings) > 0)
  {
    get_onesequence(sequence_table1, arguments->strings, 0);
    sequence_table1->size++;
    get_onesequence(sequence_table2, arguments->strings, 1);
    sequence_table2->size++;
  }
  else if (gt_str_array_size(arguments->files) > 0)
  {
    had_err = get_fastasequences(sequence_table1,
                                 gt_str_array_get_str(arguments->files,0),err);
    if (!had_err)
    {
      had_err = get_fastasequences(sequence_table2,
                                  gt_str_array_get_str(arguments->files,1),err);
    }
  }
  if (arguments->dna)
  {
    alphabet = gt_alphabet_new_dna();
  } else
  {
    gt_assert(arguments->protein);
    alphabet = gt_alphabet_new_protein();
  }
  gt_encode_sequence_table(alphabet,sequence_table1);
  gt_encode_sequence_table(alphabet,sequence_table2);
  if (!had_err)
  {
    scorehandler = gt_arguments2scorehandler(arguments,err);
    if (scorehandler == NULL)
    {
      had_err = -1;
    } else
    {
      if (arguments->global && arguments->protein && !arguments->has_costmatrix)
      {
        GtScoreHandler *costhandler = gt_scorehandler2costhandler(scorehandler);
        gt_scorehandler_delete(scorehandler);
        scorehandler = costhandler;
      }
    }
  }
  /* get diagonal band */
  if (!had_err && arguments->diagonal)
  {
    if (gt_str_array_size(arguments->diagonalbonds) > 0)
    {
      had_err = gt_parse_score_value(__LINE__,&left_dist,
                                  gt_str_array_get(arguments->diagonalbonds,0),
                                  false, err);
      if (!had_err)
      {
        had_err = gt_parse_score_value(__LINE__,&right_dist,
                                  gt_str_array_get(arguments->diagonalbonds,1),
                                  false, err);
      }
    }
  }
  if (!had_err && arguments->spacetime)
  {
    linspacetimer = gt_timer_new();
  }

  /* alignment functions with linear gap costs */
  if (!had_err)
  {
    bool affine;

    if (gt_str_array_size(arguments->linearcosts) > 0)
    {
      affine = false;
    } else
    {
      gt_assert(gt_str_array_size(arguments->affinecosts) > 0);
      affine = true;
    }
    had_err = gt_all_against_all_alignment_check (
                            affine, align, arguments,
                            spacemanager,
                            scorehandler,
                            gt_alphabet_characters(alphabet),
                            gt_alphabet_wildcard_show(alphabet),
                            sequence_table1,
                            sequence_table2,
                            left_dist,
                            right_dist,
                            linspacetimer,err);
  }
  /*spacetime option*/
  if (!had_err && arguments->spacetime)
  {
    printf("# combined space peak in kilobytes: %f\n",
           GT_KILOBYTES(gt_linspace_management_get_spacepeak(spacemanager)));
    gt_timer_show_formatted(linspacetimer,"# TIME overall " GT_WD ".%02ld\n",
                            stdout);
  }
  gt_timer_delete(linspacetimer);
  gt_linspace_management_delete(spacemanager);
  gt_sequence_table_delete(sequence_table1);
  gt_sequence_table_delete(sequence_table2);
  gt_alignment_delete(align);
  gt_alphabet_delete(alphabet);
  gt_scorehandler_delete(scorehandler);
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %r8, %rbx
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %rax, 0x88(%rsp)
testq %r8, %r8
movq %rcx, (%rsp)
je 0xb0482
movq %rbx, %rdi
callq 0x101a9a
movq (%rsp), %rcx
testb %al, %al
jne 0xb0e91
movq %rbx, 0x8(%rsp)
testq %rcx, %rcx
je 0xb0e8c
movq %rcx, %rbx
callq 0xb1073
movq %rax, %r15
callq 0xb1073
movq %rax, 0x18(%rsp)
callq 0x126b24
movq %rax, 0x78(%rsp)
xorl %r13d, %r13d
xorl %eax, %eax
callq 0x1638ec
movq 0x48(%rbx), %rsi
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0x163c3b
movq 0x8(%rbx), %rdi
callq 0x121e78
testq %rax, %rax
je 0xb054c
movq 0x8(%rbx), %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0xb0eaa
incq 0x8(%r15)
movq 0x8(%rbx), %rsi
movl $0x1, %edx
movq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0xb0eaa
incq 0x8(%r14)
cmpb $0x1, 0x3b(%rbx)
jne 0xb0511
callq 0xd340f
jmp 0xb0520
cmpb $0x0, 0x3c(%rbx)
je 0xb0e96
callq 0xd3528
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
callq 0xb0f3e
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
callq 0xb0f3e
testl %r13d, %r13d
je 0xb05a4
xorl %r12d, %r12d
movq (%rsp), %rcx
jmp 0xb0831
movq 0x10(%rbx), %rdi
callq 0x121e78
testq %rax, %rax
je 0xb0504
movq 0x10(%rbx), %rdi
xorl %esi, %esi
callq 0x121d35
movq %r15, %rdi
movq %rax, %rsi
movq 0x8(%rsp), %rdx
callq 0xb0ef3
movl %eax, %r13d
testl %eax, %eax
jne 0xb0504
movq 0x10(%rbx), %rdi
movl $0x1, %esi
callq 0x121d35
movq 0x18(%rsp), %rdi
movq %rax, %rsi
movq 0x8(%rsp), %rdx
callq 0xb0ef3
movl %eax, %r13d
jmp 0xb0504
movq %rbx, %r12
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xb05be
callq 0x101a9a
testb %al, %al
jne 0xb0e9b
movq (%rsp), %rbp
movq 0x18(%rbp), %rdi
callq 0x121e78
movb 0x3c(%rbp), %bl
testq %rax, %rax
je 0xb061a
movq %r15, %r13
leaq 0x18(%rbp), %r14
movq (%r14), %rdi
xorl %r15d, %r15d
xorl %esi, %esi
callq 0x121cfa
testb %bl, %bl
je 0xb065b
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x118b09
movq %rax, %rbx
cmpq $0x1, %rax
movl $0x0, %eax
sbbl %eax, %eax
movq %r15, 0x40(%rsp)
movq %r15, 0x38(%rsp)
movl $0x1, %esi
jmp 0xb06e0
movq 0x20(%rbp), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0x121cfa
testb %bl, %bl
je 0xb0689
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x118b09
movq %rax, %rbx
cmpq $0x1, %rax
movl $0x0, %eax
sbbl %eax, %eax
movq %r14, 0x38(%rsp)
movq %r14, 0x40(%rsp)
movl $0x1, %esi
jmp 0xb072c
movzbl 0x38(%rbp), %ecx
leaq 0x40(%rsp), %rsi
movl $0x285, %edi            # imm = 0x285
movq %rax, %rdx
movq 0x8(%rsp), %rbx
movq %rbx, %r8
callq 0xb0f95
testl %eax, %eax
je 0xb06b2
movl $0x1, %esi
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0xb06de
movzbl 0x38(%rbp), %ecx
leaq 0x40(%rsp), %rsi
movl $0x2a9, %edi            # imm = 0x2A9
movq %rax, %rdx
movq 0x8(%rsp), %rbx
movq %rbx, %r8
callq 0xb0f95
testl %eax, %eax
je 0xb06fe
movl $0x1, %esi
jmp 0xb072a
movq 0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x121cfa
movzbl 0x38(%rbp), %ecx
leaq 0x38(%rsp), %rsi
movl $0x28b, %edi            # imm = 0x28B
movq %rax, %rdx
movq %rbx, %r8
callq 0xb0f95
movl $0x2, %esi
xorl %ebx, %ebx
movq %r13, %r15
testl %eax, %eax
jne 0xb07a2
movq $0x0, 0x98(%rsp)
movl $0x294, %ebp            # imm = 0x294
jmp 0xb077a
movq 0x20(%rbp), %rdi
movl $0x1, %esi
callq 0x121cfa
movzbl 0x38(%rbp), %ecx
leaq 0x38(%rsp), %rsi
movl $0x2af, %edi            # imm = 0x2AF
movq %rax, %rdx
movq %rbx, %r8
callq 0xb0f95
movl $0x2, %esi
xorl %ebx, %ebx
testl %eax, %eax
je 0xb0734
xorl %eax, %eax
jmp 0xb0769
movq (%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x1(%rsi), %r14
callq 0x121cfa
leaq 0x98(%rsp), %rsi
movl $0x2b7, %edi            # imm = 0x2B7
movq %rax, %rdx
xorl %ecx, %ecx
movq 0x8(%rsp), %r8
callq 0xb0f95
testl %eax, %eax
sete %al
movq %r14, %rsi
testb %al, %al
je 0xb07a2
movq (%rsp), %rax
leaq 0x20(%rax), %r14
movl $0x2be, %ebp            # imm = 0x2BE
movq (%r14), %rdi
callq 0x121cfa
leaq 0xc0(%rsp), %rsi
movl %ebp, %edi
movq %rax, %rdx
xorl %ecx, %ecx
movq 0x8(%rsp), %r8
callq 0xb0f95
testl %eax, %eax
sete %al
jmp 0xb07a4
xorl %eax, %eax
testb %al, %al
je 0xb07dc
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x98(%rsp), %rdx
movq 0xc0(%rsp), %rcx
callq 0x179740
movq %rax, %r14
testq %rbx, %rbx
je 0xb07df
movq %r14, %rdi
movq %rbx, %rsi
callq 0x179793
jmp 0xb07df
xorl %r14d, %r14d
movq (%rsp), %rcx
xorl %r13d, %r13d
testq %r14, %r14
movq %r12, %rbx
je 0xb0828
movq %r14, %rax
cmpb $0x1, 0x38(%rcx)
jne 0xb0823
cmpb $0x1, 0x3c(%rcx)
jne 0xb0823
cmpb $0x0, 0x3d(%rcx)
jne 0xb0823
movq %rax, %r14
movq %rax, %rdi
callq 0x1798c2
movq %rax, %rbx
movq %r14, %rdi
callq 0x1797c3
movq (%rsp), %rcx
movq %rbx, %rax
movq %r12, %rbx
movq %rax, %r12
jmp 0xb0831
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
xorl %r12d, %r12d
testl %r13d, %r13d
jne 0xb08bb
xorl %r13d, %r13d
cmpb $0x1, 0x3a(%rcx)
jne 0xb08bb
movq 0x28(%rcx), %rdi
callq 0x121e78
movq (%rsp), %rcx
testq %rax, %rax
je 0xb08bb
movq 0x28(%rcx), %rdi
xorl %esi, %esi
callq 0x121cfa
leaq 0x90(%rsp), %rsi
movl $0x328, %edi            # imm = 0x328
movq %rax, %rdx
xorl %ecx, %ecx
movq 0x8(%rsp), %r8
callq 0xb0f95
movq (%rsp), %rcx
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0xb08bb
movq 0x28(%rcx), %rdi
movl $0x1, %esi
callq 0x121cfa
leaq 0x88(%rsp), %rsi
movl $0x32d, %edi            # imm = 0x32D
movq %rax, %rdx
xorl %ecx, %ecx
movq 0x8(%rsp), %r8
callq 0xb0f95
movq (%rsp), %rcx
movl %eax, %r13d
testl %r13d, %r13d
jne 0xb08d4
cmpb $0x1, 0x42(%rcx)
jne 0xb08d4
callq 0x1226a4
movq (%rsp), %rcx
movq %rax, %rdi
jmp 0xb08d6
xorl %edi, %edi
testl %r13d, %r13d
movq %rdi, 0x20(%rsp)
jne 0xb0dcb
movq %rbx, 0x48(%rsp)
movq 0x18(%rcx), %rdi
callq 0x121e78
movq %rax, %rbx
testq %rax, %rax
jne 0xb0910
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x121e78
testq %rax, %rax
je 0xb0ea5
movq 0x48(%rsp), %r14
movq %r14, %rdi
callq 0xd3733
movq %rax, 0x80(%rsp)
movq %r14, %rdi
callq 0xd3746
movl %eax, %ebp
movq 0x90(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xb0960
callq 0x101a9a
testb %al, %al
jne 0xb0ea0
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xb096f
callq 0x122733
testq %rbx, %rbx
leaq 0xb06df(%rip), %rax     # 0x161058
cmoveq 0x413677(%rip), %rax    # 0x4c3ff8
movq %rax, 0xb8(%rsp)
leaq 0xb05c6(%rip), %rax     # 0x160f56
cmoveq 0x4135b0(%rip), %rax    # 0x4c3f48
movq %rax, 0xb0(%rsp)
leaq 0x8885f(%rip), %rax     # 0x139206
cmoveq 0x413601(%rip), %rax    # 0x4c3fb0
movq %rax, 0xa8(%rsp)
cmpq $0x0, 0x8(%r15)
movzbl %bpl, %eax
movq %rax, 0x50(%rsp)
je 0xb0d71
xorl %r14d, %r14d
movq %r15, 0x70(%rsp)
movq %r12, 0x58(%rsp)
movq (%r15), %rax
movq (%rax,%r14,8), %rdi
callq 0x120d4c
movq %rax, 0x10(%rsp)
movq (%r15), %rax
movq %r14, 0xa0(%rsp)
movq (%rax,%r14,8), %rdi
callq 0x120d23
movq %rax, 0x30(%rsp)
movq 0x18(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0xb0d4a
xorl %r13d, %r13d
xorl %r14d, %r14d
movq 0x78(%rsp), %r15
movq 0x18(%rsp), %rbx
movq (%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x120d4c
movq %rax, %rbp
movq (%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x120d23
movq %rax, %rbx
movq %r15, %rdi
callq 0x126d7c
movq (%rsp), %rax
cmpb $0x1, 0x38(%rax)
jne 0xb0b92
cmpb $0x1, 0x3a(%rax)
jne 0xb0bc1
movq 0x28(%rax), %rdi
callq 0x121e78
testq %rax, %rax
jne 0xb0b04
movsd 0x29e7ae(%rip), %xmm0   # 0x34f228
movq (%rsp), %rax
subsd 0x30(%rax), %xmm0
movq 0x10(%rsp), %rdx
movq %rdx, %rax
subq %rbp, %rax
movq %rbp, %rcx
cmovaq %rdx, %rcx
movq %rcx, %xmm1
punpckldq 0x29fe3e(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x29fe46(%rip), %xmm1   # 0x3508f0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
movq %rax, %rcx
sarq $0x3f, %rcx
andq %rax, %rcx
testq %rax, %rax
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
addsd %xmm2, %xmm0
xorpd 0x2a7fa5(%rip), %xmm0   # 0x358a80
cvttsd2si %xmm0, %rcx
movq %rcx, 0x68(%rsp)
movl $0x0, %ecx
cmovleq %rcx, %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
subsd %xmm0, %xmm2
cvttsd2si %xmm2, %rax
movq %rax, 0x60(%rsp)
movq %rbp, %rax
subq 0x10(%rsp), %rax
movq %rax, %rcx
sarq $0x3f, %rcx
andq %rax, %rcx
testq %rax, %rax
movl $0x0, %edx
cmovleq %rdx, %rax
cmpq %rcx, 0x68(%rsp)
jg 0xb0b30
cmpq %rax, 0x60(%rsp)
jge 0xb0b51
movq 0x8(%rsp), %rdi
leaq 0x2a87f5(%rip), %rsi    # 0x359331
movq 0x10(%rsp), %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %r13d
testl %r13d, %r13d
jne 0xb0bec
subq $0x8, %rsp
xorl %r13d, %r13d
movq 0x30(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq 0x38(%rsp), %rcx
xorl %r8d, %r8d
movq 0x18(%rsp), %r9
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq %rbp
pushq $0x0
pushq %rbx
callq *0xd8(%rsp)
addq $0x30, %rsp
jmp 0xb0bec
cmpb $0x1, 0x39(%rax)
jne 0xb0bec
subq $0x8, %rsp
movq 0x30(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq 0x38(%rsp), %rcx
xorl %r8d, %r8d
movq 0x18(%rsp), %r9
pushq %rbp
pushq $0x0
pushq %rbx
callq *0xd8(%rsp)
jmp 0xb0be8
subq $0x8, %rsp
movq 0x30(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq 0x38(%rsp), %rcx
xorl %r8d, %r8d
movq 0x18(%rsp), %r9
pushq %rbp
pushq $0x0
pushq %rbx
callq *0xd0(%rsp)
addq $0x20, %rsp
testl %r13d, %r13d
jne 0xb0d36
testq %r15, %r15
je 0xb0e87
movq %r15, %r12
movq (%rsp), %r13
movq (%r13), %rdi
callq 0x120d23
movq %rax, %rdi
leaq 0x3179a3(%rip), %rsi    # 0x3c85bb
callq 0x17a40
testl %eax, %eax
je 0xb0cc1
movq (%r13), %rdi
callq 0x120d23
movq %rax, %rdi
leaq 0x2bacd4(%rip), %rsi    # 0x36b90c
leaq 0x2a7e51(%rip), %rdx    # 0x358a90
movl $0x24b, %ecx            # imm = 0x24B
movq 0x8(%rsp), %r8
callq 0x101c23
testq %rax, %rax
je 0xb0d28
movq %rax, %r15
movzbl 0x3e(%r13), %eax
movzbl 0x40(%r13), %r10d
movzbl 0x3f(%r13), %r11d
movq %r12, %r8
movzbl 0x38(%r13), %r13d
subq $0x8, %rsp
xorl $0x1, %r10d
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %rbx, %rdx
movq %rbp, %rcx
movq 0x88(%rsp), %r9
pushq %r15
movq 0x68(%rsp), %r12
pushq %r12
pushq %r13
movq %r8, %rbx
pushq %r11
pushq %r10
pushq %rax
pushq 0x88(%rsp)
callq 0xb1123
addq $0x40, %rsp
movq %r15, %rdi
movq %rbx, %r15
callq 0x101e80
jmp 0xb0d23
movzbl 0x3e(%r13), %eax
movzbl 0x40(%r13), %r10d
movzbl 0x3f(%r13), %r11d
movzbl 0x38(%r13), %r13d
subq $0x8, %rsp
xorl $0x1, %r10d
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %rbx, %rdx
movq %rbp, %rcx
movq %r12, %r8
movq 0x88(%rsp), %r9
movq 0x4131e9(%rip), %r15    # 0x4c3ee8
pushq (%r15)
movq %r12, %r15
movq 0x68(%rsp), %r12
pushq %r12
pushq %r13
pushq %r11
pushq %r10
pushq %rax
pushq 0x88(%rsp)
callq 0xb1123
addq $0x40, %rsp
xorl %r13d, %r13d
jmp 0xb0d36
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movq %r12, %r15
movq 0x58(%rsp), %r12
incq %r14
movq 0x18(%rsp), %rax
cmpq 0x8(%rax), %r14
jb 0xb0a1d
jmp 0xb0d4d
xorl %r13d, %r13d
testl %r13d, %r13d
sete %bl
jne 0xb0d78
movq 0xa0(%rsp), %r14
incq %r14
movq 0x70(%rsp), %r15
cmpq 0x8(%r15), %r14
jb 0xb09d8
jmp 0xb0d7d
movb $0x1, %bl
xorl %r13d, %r13d
jmp 0xb0d7d
movq 0x70(%rsp), %r15
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xb0d91
callq 0x122778
movq 0x20(%rsp), %rdi
testb %bl, %bl
je 0xb0dc2
movq (%rsp), %rcx
cmpb $0x1, 0x41(%rcx)
movq 0x48(%rsp), %rbx
jne 0xb0dcb
leaq 0x2a8617(%rip), %rdi    # 0x3593c2
movq 0x50(%rsp), %rsi
xorl %eax, %eax
callq 0x17070
movq 0x20(%rsp), %rdi
movq (%rsp), %rcx
jmp 0xb0dcb
movq (%rsp), %rcx
movq 0x48(%rsp), %rbx
testl %r13d, %r13d
jne 0xb0e37
cmpb $0x1, 0x42(%rcx)
jne 0xb0e37
movq 0x28(%rsp), %rdi
callq 0x16399a
movq %rax, %xmm1
punpckldq 0x29faf3(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x29fafb(%rip), %xmm1   # 0x3508f0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x2a7c6f(%rip), %xmm0   # 0x358a78
leaq 0x2a83fb(%rip), %rdi    # 0x35920b
movb $0x1, %al
callq 0x17070
movq 0x4130ca(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x2a840b(%rip), %rsi    # 0x359233
movq 0x20(%rsp), %rdi
callq 0x1227b4
movq 0x20(%rsp), %rdi
callq 0x122d79
movq 0x28(%rsp), %rdi
callq 0x163927
movq %r15, %rdi
callq 0xb1019
movq 0x18(%rsp), %rdi
callq 0xb1019
movq 0x78(%rsp), %rdi
callq 0x127c25
movq %rbx, %rdi
callq 0xd335d
movq %r12, %rdi
callq 0x1797c3
movl %r13d, %eax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1c3ce
callq 0x1c440
callq 0x1c2ea
callq 0x1c323
callq 0x1c35c
callq 0x1c395
callq 0x1c407