// File: /workspace/github_cpp_makefile_star2_O1/ncbi[P]amr/alignment.cpp
// Function: Alignment_sp::Alignment::Alignment(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)
Alignment::Alignment (const string &line,
                      bool targetProt_arg,
                      bool refProt_arg)
: targetProt (targetProt_arg)
, refProt (refProt_arg)
, alProt (targetProt || refProt)
, al2ref_len    (alProt && ! refProt    ? 3 : 1)
, al2target_len (alProt && ! targetProt ? 3 : 1)
{
  try
  {
    istringstream iss (line);
    iss >> targetName >> refName >> targetStart >> targetEnd >> targetLen >> refStart >> refEnd >> refLen >> targetSeq >> refSeq;
    strUpper (targetSeq);
    strUpper (refSeq);
    
    QC_ASSERT (! refSeq. empty ());	
    QC_ASSERT (targetSeq. size () == refSeq. size ());    

    if (! targetProt && ! refProt)
    {
      QC_ASSERT (refStart != refEnd);
      const bool refStrand = refStart < refEnd;  
      if (! refStrand)
      {
        swap (refStart, refEnd);
      	reverseDna (targetSeq);
      	reverseDna (refSeq);
      	toggle (targetStrand);
      }
    }

    if (! targetProt && refProt)
    {
	    QC_ASSERT (targetStart != targetEnd);
	    targetStrand = targetStart < targetEnd;  
	    if (! targetStrand)
	      swap (targetStart, targetEnd);
	  }
    
    QC_ASSERT (refStart >= 1);
    QC_ASSERT (targetStart >= 1);
    refStart--;
    targetStart--;

    if (refProt)
    {
      if (   refEnd == refLen 
          && refSeq. back () == '*'
         )
      {
        targetStopCodon = toEbool (targetSeq. back () == '*');
        if (targetStopCodon == etrue)
        {
          nident--;        
        //if (targetProt)
          //targetLen -= al2target_len;
        }
        do
        {
          // Target
          targetSeq. erase (targetSeq. size () - 1);
          if (targetStrand)
            targetEnd -= al2target_len;
          else
            targetStart += al2target_len;
          // Reference
          refSeq. erase (refSeq. size () - 1);
          refEnd--;
          QC_ASSERT (! refSeq. empty ());
        }
        while (targetSeq. back () != refSeq. back ());
      //seqChanges ??
      }
      else if (   refEnd == refLen - 1 
               && targetTail (false) >= al2target_len
              )
        targetStopCodon = efalse;
      refLen--;
    }

    normalizeSeqs (targetSeq, refSeq);    
    set_nident ();
  }
  catch (...)
  {
  	cout << line << endl;
  	throw;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2d8, %rsp            # imm = 0x2D8
movq %rsi, %r12
movq %rdi, %r15
leaq 0x58402(%rip), %rax     # 0xb8768
movq %rax, (%rdi)
movb %dl, 0x8(%rdi)
leaq 0x10(%rdi), %r14
leaq 0x20(%rdi), %rax
movq %rax, 0x130(%rsp)
movq %rax, 0x10(%rdi)
xorl %ebx, %ebx
movq %rbx, 0x18(%rdi)
movb %bl, 0x20(%rdi)
leaq 0x30(%rdi), %rax
movq %rax, 0x110(%rsp)
leaq 0x40(%rdi), %rax
movq %rax, 0x128(%rsp)
movq %rax, 0x30(%rdi)
movq %rbx, 0x38(%rdi)
movb %bl, 0x40(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x50(%rdi)
movq %rbx, 0x60(%rdi)
movb $0x1, 0x68(%rdi)
movl $0x2, 0x6c(%rdi)
movb %cl, 0x70(%rdi)
leaq 0x78(%rdi), %rax
movq %rax, 0x138(%rsp)
leaq 0x88(%rdi), %rax
movq %rax, 0x120(%rsp)
movq %rax, 0x78(%rdi)
movq %rbx, 0x80(%rdi)
movb %bl, 0x88(%rdi)
leaq 0x98(%rdi), %rax
movq %rax, 0x108(%rsp)
leaq 0xa8(%rdi), %rax
movq %rax, 0x118(%rsp)
movq %rax, 0x98(%rdi)
movq %rbx, 0xa0(%rdi)
movb %bl, 0xa8(%rdi)
addq $0xd0, %rdi
movq %rbx, 0xc8(%r15)
movups %xmm0, 0xb8(%r15)
movq %rdi, 0x140(%rsp)
callq 0x68268
movzbl 0x8(%r15), %eax
movl 0x70(%r15), %ecx
testl %eax, %eax
movl $0x1, %edx
cmovel %ecx, %edx
movb %dl, 0x1f8(%r15)
movq %rbx, 0x200(%r15)
notb %cl
movzbl %cl, %ecx
andl $0x1, %ecx
leaq 0x1(,%rcx,2), %rcx
xorl $0x1, %eax
addl %eax, %eax
movl $0x1, %esi
orq %rsi, %rax
testb $0x1, %dl
cmoveq %rsi, %rcx
cmoveq %rsi, %rax
movq %rcx, 0x208(%r15)
movq %rax, 0x210(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x218(%r15)
movups %xmm0, 0x221(%r15)
leaq 0x158(%rsp), %rdi
movq %r12, 0x150(%rsp)
movq %r12, %rsi
movl $0x8, %edx
movq %r14, 0x148(%rsp)
callq 0xb9d0
leaq 0x158(%rsp), %rdi
movq %r14, %rsi
callq 0xb740
movq %rax, %rdi
movq 0x138(%rsp), %rsi
callq 0xb740
leaq 0x50(%r15), %r12
movq %rax, %rdi
movq %r12, %rsi
callq 0xb340
leaq 0x58(%r15), %rbp
movq %rax, %rdi
movq %rbp, %rsi
callq 0xb340
leaq 0x60(%r15), %rsi
movq %rax, %rdi
callq 0xb340
leaq 0xb8(%r15), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xb340
leaq 0xc0(%r15), %r13
movq %rax, %rdi
movq %r13, %rsi
callq 0xb340
leaq 0xc8(%r15), %rsi
movq %rax, %rdi
movq %rsi, (%rsp)
callq 0xb340
movq %rax, %rdi
movq 0x110(%rsp), %rsi
callq 0xb740
movq %rax, %rdi
movq 0x108(%rsp), %rsi
callq 0xb740
movq 0x110(%rsp), %rdi
callq 0x14899
movq 0x108(%rsp), %rdi
callq 0x14899
callq 0xb070
movq %rax, %r14
movl $0x0, (%rax)
movq 0xa0(%r15), %rax
testq %rax, %rax
je 0x60899
movl $0x0, (%r14)
cmpq %rax, 0x38(%r15)
jne 0x60938
cmpb $0x0, 0x8(%r15)
jne 0x6060c
cmpb $0x0, 0x70(%r15)
jne 0x6060c
movl $0x0, (%r14)
movq (%rbx), %rax
movq (%r13), %rcx
cmpq %rcx, %rax
je 0x60b15
jb 0x6060c
movq %rcx, (%rbx)
movq %rax, (%r13)
movq 0x110(%rsp), %rdi
callq 0x6173d
movq 0x108(%rsp), %rdi
callq 0x6173d
xorb $0x1, 0x68(%r15)
cmpb $0x0, 0x8(%r15)
jne 0x60641
cmpb $0x1, 0x70(%r15)
jne 0x60641
movl $0x0, (%r14)
movq (%r12), %rax
movq (%rbp), %rcx
cmpq %rcx, %rax
je 0x60bb4
setb 0x68(%r15)
jb 0x60641
movq %rcx, (%r12)
movq %rax, (%rbp)
movl $0x0, (%r14)
movq (%rbx), %rcx
testq %rcx, %rcx
je 0x609d7
movl $0x0, (%r14)
movq (%r12), %rax
testq %rax, %rax
je 0x60a76
decq %rcx
movq %rcx, 0xb8(%r15)
decq %rax
movq %rax, 0x50(%r15)
cmpb $0x1, 0x70(%r15)
jne 0x60795
movq (%r13), %rcx
movq (%rsp), %r8
movq (%r8), %rdx
cmpq %rdx, %rcx
jne 0x60768
movq 0x98(%r15), %rsi
movq 0xa0(%r15), %rdi
cmpb $0x2a, -0x1(%rsi,%rdi)
jne 0x60768
movq 0x30(%r15), %rax
movq 0x38(%r15), %rcx
xorl %edx, %edx
cmpb $0x2a, -0x1(%rax,%rcx)
sete %dl
movl %edx, 0x6c(%r15)
jne 0x606d0
decq 0x200(%r15)
movq 0x38(%r15), %rcx
movq %rcx, %rdx
subq $0x1, %rdx
jb 0x607e5
movq %rdx, 0x38(%r15)
movq 0x30(%r15), %rax
movb $0x0, (%rax,%rdx)
movq 0x210(%r15), %rax
cmpb $0x1, 0x68(%r15)
jne 0x60701
subq %rax, (%rbp)
jmp 0x60705
addq %rax, (%r12)
movq 0xa0(%r15), %rcx
movq %rcx, %rdx
subq $0x1, %rdx
jb 0x607e5
movq %rdx, 0xa0(%r15)
movq 0x98(%r15), %rax
movb $0x0, (%rax,%rdx)
decq 0xc0(%r15)
movl $0x0, (%r14)
movq 0xa0(%r15), %rax
testq %rax, %rax
je 0x607fa
movq 0x30(%r15), %rcx
movq 0x38(%r15), %rdx
movb -0x1(%rcx,%rdx), %cl
movq 0x98(%r15), %rdx
cmpb -0x1(%rdx,%rax), %cl
jne 0x606d0
jmp 0x60792
decq %rdx
cmpq %rdx, %rcx
jne 0x60792
movq 0x60(%r15), %rcx
subq 0x58(%r15), %rcx
cmpb $0x0, 0x68(%r15)
cmoveq %rax, %rcx
cmpq 0x210(%r15), %rcx
jb 0x60792
movl $0x0, 0x6c(%r15)
decq (%r8)
movq 0x110(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0x5f889
movq %r15, %rdi
callq 0x617f2
movq 0x587af(%rip), %rsi     # 0xb8f68
leaq 0x158(%rsp), %rdi
callq 0xb810
leaq 0x1d0(%rsp), %rdi
callq 0xb1e0
addq $0x2d8, %rsp            # imm = 0x2D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x35712(%rip), %rdi     # 0x95efe
leaq 0x3579f(%rip), %rsi     # 0x95f92
xorl %eax, %eax
callq 0xb8c0
callq 0xb6b0
testl %eax, %eax
jne 0x60c53
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x3680e(%rip), %rsi     # 0x97028
leaq 0x3681d(%rip), %rdx     # 0x9703e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x28b, %esi            # imm = 0x28B
callq 0xe1a8
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x3296d(%rip), %rsi     # 0x931d1
leaq 0xc8(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60c5d
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60c6a
callq 0xb6b0
testl %eax, %eax
jne 0x60c53
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x3676f(%rip), %rsi     # 0x97028
leaq 0x3677e(%rip), %rdx     # 0x9703e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x256, %esi            # imm = 0x256
callq 0xe1a8
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x328ce(%rip), %rsi     # 0x931d1
leaq 0xc8(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60cde
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60ceb
callq 0xb6b0
testl %eax, %eax
jne 0x60c53
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x366d0(%rip), %rsi     # 0x97028
leaq 0x366df(%rip), %rdx     # 0x9703e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x257, %esi            # imm = 0x257
callq 0xe1a8
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x3282f(%rip), %rsi     # 0x931d1
leaq 0xc8(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60d5f
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60d6c
callq 0xb6b0
testl %eax, %eax
jne 0x60c53
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x36631(%rip), %rsi     # 0x97028
leaq 0x36640(%rip), %rdx     # 0x9703e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x26e, %esi            # imm = 0x26E
callq 0xe1a8
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x32790(%rip), %rsi     # 0x931d1
leaq 0xc8(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60de0
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60ded
callq 0xb6b0
testl %eax, %eax
jne 0x60c53
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x36592(%rip), %rsi     # 0x97028
leaq 0x365a1(%rip), %rdx     # 0x9703e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x26f, %esi            # imm = 0x26F
callq 0xe1a8
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x326f1(%rip), %rsi     # 0x931d1
leaq 0xc8(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60e61
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60e6e
callq 0xb6b0
testl %eax, %eax
jne 0x60c53
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x364f3(%rip), %rsi     # 0x97028
leaq 0x36502(%rip), %rdx     # 0x9703e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x25b, %esi            # imm = 0x25B
callq 0xe1a8
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x32652(%rip), %rsi     # 0x931d1
leaq 0xc8(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x61047
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x61054
callq 0xb6b0
testl %eax, %eax
jne 0x60c53
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x36454(%rip), %rsi     # 0x97028
leaq 0x36463(%rip), %rdx     # 0x9703e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x268, %esi            # imm = 0x268
callq 0xe1a8
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x325b3(%rip), %rsi     # 0x931d1
leaq 0xc8(%rsp), %rdi
callq 0xbb10
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x610c8
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x610d5
movl $0x1, %edi
callq 0xb6d0
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x36b0f(%rip), %rsi     # 0x977a2
leaq 0x36b46(%rip), %rdx     # 0x977e0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32c06(%rip), %rsi     # 0x938b1
leaq 0x68(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60ee2
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x60eef
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x36a8e(%rip), %rsi     # 0x977a2
leaq 0x36ac5(%rip), %rdx     # 0x977e0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32b85(%rip), %rsi     # 0x938b1
leaq 0x68(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60f59
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x60f66
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x36a0d(%rip), %rsi     # 0x977a2
leaq 0x36a44(%rip), %rdx     # 0x977e0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32b04(%rip), %rsi     # 0x938b1
leaq 0x68(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x60fd0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x60fdd
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3698c(%rip), %rsi     # 0x977a2
leaq 0x369c3(%rip), %rdx     # 0x977e0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32a83(%rip), %rsi     # 0x938b1
leaq 0x68(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x61149
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x61156
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3690b(%rip), %rsi     # 0x977a2
leaq 0x36942(%rip), %rdx     # 0x977e0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32a02(%rip), %rsi     # 0x938b1
leaq 0x68(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x611c0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x611cd
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rsi
leaq 0x28(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe100
leaq 0x368bd(%rip), %rsi     # 0x977e1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x61237
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x61244
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rsi
leaq 0x28(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe100
leaq 0x36846(%rip), %rsi     # 0x977e1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x61265
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x61272
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rsi
leaq 0x28(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe100
leaq 0x367e2(%rip), %rsi     # 0x977f4
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x61293
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x612a0
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x36725(%rip), %rsi     # 0x977a2
leaq 0x3675c(%rip), %rdx     # 0x977e0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x3281c(%rip), %rsi     # 0x938b1
leaq 0x68(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x612c1
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x612ce
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x366a4(%rip), %rsi     # 0x977a2
leaq 0x366db(%rip), %rdx     # 0x977e0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x3279b(%rip), %rsi     # 0x938b1
leaq 0x68(%rsp), %rdi
callq 0xbb10
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x61338
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x61345
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rsi
leaq 0x28(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe100
leaq 0x366bb(%rip), %rsi     # 0x97846
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x613af
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x613bc
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rsi
leaq 0x28(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe100
leaq 0x36652(%rip), %rsi     # 0x97854
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x613dd
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x613ea
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rsi
leaq 0x28(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe100
leaq 0x36517(%rip), %rsi     # 0x9781a
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x6140b
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x61418
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rsi
leaq 0x28(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe100
leaq 0x364b3(%rip), %rsi     # 0x9782d
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x61439
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x61446
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
jmp 0x614a5
jmp 0x614c2
jmp 0x614a5
jmp 0x614c2
jmp 0x614fb
jmp 0x614fb
jmp 0x614a5
jmp 0x614c2
jmp 0x614a5
jmp 0x614c2
jmp 0x6152a
jmp 0x6152a
jmp 0x614a5
jmp 0x614c2
jmp 0x614a5
jmp 0x614c2
jmp 0x614fb
jmp 0x614fb
jmp 0x61559
jmp 0x61559
jmp 0x614fb
jmp 0x614fb
movq %rax, (%rsp)
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x614c6
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x614c6
movq %rax, (%rsp)
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x614ff
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x614ff
jmp 0x6152a
jmp 0x6152a
jmp 0x61588
jmp 0x61588
jmp 0x6152a
jmp 0x6152a
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x6152e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6152e
jmp 0x61559
jmp 0x61559
jmp 0x615b7
jmp 0x615b7
jmp 0x61559
jmp 0x61559
movq %rax, (%rsp)
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x6155d
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6155d
jmp 0x61588
jmp 0x61588
jmp 0x615e8
jmp 0x615e8
jmp 0x61588
jmp 0x61588
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6158c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6158c
jmp 0x615b7
jmp 0x615b7
jmp 0x61613
jmp 0x61613
jmp 0x615b7
jmp 0x615b7
movq %rax, (%rsp)
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x615bb
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x615bb
jmp 0x615e8
jmp 0x615e8
jmp 0x615e8
jmp 0x615e8
movq %rax, (%rsp)
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x615ec
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x615ec
jmp 0x61613
jmp 0x61613
jmp 0x61613
jmp 0x61613
jmp 0x61613
movq %rax, (%rsp)
movq 0x88(%rsp), %rdi
cmpq %rbx, %rdi
je 0x61617
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x61617
jmp 0x61613
movq %rax, (%rsp)
jmp 0x61638
movq %rax, (%rsp)
movq 0x5794a(%rip), %rsi     # 0xb8f68
leaq 0x158(%rsp), %rdi
callq 0xb810
leaq 0x1d0(%rsp), %rdi
callq 0xb1e0
addq $0x218, %r15            # imm = 0x218
movq (%rsp), %rdi
callq 0xb260
movq 0x150(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq 0x57942(%rip), %rdi     # 0xb8fa0
callq 0xb640
movq %rax, %rdi
callq 0xb2c0
callq 0xb850
movq %rax, %rbx
callq 0xb990
movq %r15, %rdi
callq 0x6833e
movq 0x140(%rsp), %rdi
callq 0xe2c6
movq 0x108(%rsp), %rax
movq (%rax), %rdi
cmpq 0x118(%rsp), %rdi
je 0x616b5
movq 0x118(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq 0x138(%rsp), %rax
movq (%rax), %rdi
cmpq 0x120(%rsp), %rdi
je 0x616dd
movq 0x120(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq 0x110(%rsp), %rax
movq (%rax), %rdi
cmpq 0x128(%rsp), %rdi
je 0x61705
movq 0x128(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq 0x148(%rsp), %rax
movq (%rax), %rdi
cmpq 0x130(%rsp), %rdi
je 0x6172d
movq 0x130(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq %rbx, %rdi
callq 0xba60
movq %rax, %rdi
callq 0xdd06