// File: /workspace/github_cpp_makefile_star2_O3/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 0x584c4(%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 0x67ff8
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 0x1489c
movq 0x108(%rsp), %rdi
callq 0x1489c
callq 0xb070
movq %rax, %r14
movl $0x0, (%rax)
movq 0xa0(%r15), %rax
testq %rax, %rax
je 0x607c0
cmpq %rax, 0x38(%r15)
jne 0x6085f
movb 0x8(%r15), %al
testb %al, %al
jne 0x60541
cmpb $0x0, 0x70(%r15)
jne 0x60541
movq (%rbx), %rcx
movq (%r13), %rdx
cmpq %rdx, %rcx
je 0x60a3c
jb 0x60541
movq %rdx, (%rbx)
movq %rcx, (%r13)
movq 0x110(%rsp), %rdi
callq 0x61664
movq 0x108(%rsp), %rdi
callq 0x61664
xorb $0x1, 0x68(%r15)
movb 0x8(%r15), %al
testb $0x1, %al
jne 0x60573
cmpb $0x1, 0x70(%r15)
jne 0x60573
movl $0x0, (%r14)
movq (%r12), %rax
movq (%rbp), %rcx
cmpq %rcx, %rax
je 0x60adb
setb 0x68(%r15)
jb 0x60573
movq %rcx, (%r12)
movq %rax, (%rbp)
movl $0x0, (%r14)
movq (%rbx), %rax
testq %rax, %rax
je 0x608fe
movq (%r12), %rcx
testq %rcx, %rcx
je 0x6099d
decq %rax
movq %rax, 0xb8(%r15)
decq %rcx
movq %rcx, 0x50(%r15)
cmpb $0x1, 0x70(%r15)
jne 0x606ba
movq (%r13), %rdx
movq (%rsp), %r8
movq (%r8), %rax
cmpq %rax, %rdx
jne 0x6068d
movq 0x98(%r15), %rsi
movq 0xa0(%r15), %rdi
cmpb $0x2a, -0x1(%rsi,%rdi)
jne 0x6068d
movq 0x30(%r15), %rax
movq 0x38(%r15), %rdx
xorl %ecx, %ecx
cmpb $0x2a, -0x1(%rax,%rdx)
sete %cl
movl %ecx, 0x6c(%r15)
jne 0x605fb
decq 0x200(%r15)
subq $0x1, %rdx
jb 0x6070a
movq %rdx, 0x38(%r15)
movb $0x0, (%rax,%rdx)
movq 0x210(%r15), %rax
cmpb $0x1, 0x68(%r15)
jne 0x60621
subq %rax, (%rbp)
jmp 0x60625
addq %rax, (%r12)
movq 0xa0(%r15), %rdx
subq $0x1, %rdx
jb 0x6070a
movq %rdx, 0xa0(%r15)
movq 0x98(%r15), %rax
movb $0x0, (%rax,%rdx)
decq 0xc0(%r15)
movl $0x0, (%r14)
movq 0xa0(%r15), %rcx
testq %rcx, %rcx
je 0x60721
movq 0x30(%r15), %rax
movq 0x38(%r15), %rdx
movb -0x1(%rax,%rdx), %sil
movq 0x98(%r15), %rdi
cmpb -0x1(%rdi,%rcx), %sil
jne 0x605fb
movq (%r8), %rax
decq %rax
jmp 0x606b7
decq %rax
cmpq %rax, %rdx
jne 0x606b7
movq 0x60(%r15), %rdx
subq 0x58(%r15), %rdx
cmpb $0x0, 0x68(%r15)
cmoveq %rcx, %rdx
cmpq 0x210(%r15), %rdx
jb 0x606b7
movl $0x0, 0x6c(%r15)
movq %rax, (%r8)
movq 0x110(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0x5f7c2
movq %r15, %rdi
callq 0x6171e
movq 0x5888a(%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 0x357d7(%rip), %rdi     # 0x95ee8
leaq 0x35864(%rip), %rsi     # 0x95f7c
xorl %ecx, %ecx
xorl %eax, %eax
callq 0xb8c0
callq 0xb6b0
testl %eax, %eax
jne 0x60b7a
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x368d7(%rip), %rsi     # 0x97018
leaq 0x368e6(%rip), %rdx     # 0x9702e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x28b, %esi            # imm = 0x28B
callq 0xe1b2
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe10a
leaq 0x32a46(%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 0x60b84
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60b91
callq 0xb6b0
testl %eax, %eax
jne 0x60b7a
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x36838(%rip), %rsi     # 0x97018
leaq 0x36847(%rip), %rdx     # 0x9702e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x256, %esi            # imm = 0x256
callq 0xe1b2
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe10a
leaq 0x329a7(%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 0x60c05
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60c12
callq 0xb6b0
testl %eax, %eax
jne 0x60b7a
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x36799(%rip), %rsi     # 0x97018
leaq 0x367a8(%rip), %rdx     # 0x9702e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x257, %esi            # imm = 0x257
callq 0xe1b2
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe10a
leaq 0x32908(%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 0x60c86
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60c93
callq 0xb6b0
testl %eax, %eax
jne 0x60b7a
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x366fa(%rip), %rsi     # 0x97018
leaq 0x36709(%rip), %rdx     # 0x9702e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x26e, %esi            # imm = 0x26E
callq 0xe1b2
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe10a
leaq 0x32869(%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 0x60d07
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60d14
callq 0xb6b0
testl %eax, %eax
jne 0x60b7a
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x3665b(%rip), %rsi     # 0x97018
leaq 0x3666a(%rip), %rdx     # 0x9702e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x26f, %esi            # imm = 0x26F
callq 0xe1b2
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe10a
leaq 0x327ca(%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 0x60d88
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60d95
callq 0xb6b0
testl %eax, %eax
jne 0x60b7a
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x365bc(%rip), %rsi     # 0x97018
leaq 0x365cb(%rip), %rdx     # 0x9702e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x25b, %esi            # imm = 0x25B
callq 0xe1b2
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe10a
leaq 0x3272b(%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 0x60f6e
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60f7b
callq 0xb6b0
testl %eax, %eax
jne 0x60b7a
leaq 0x98(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x3651d(%rip), %rsi     # 0x97018
leaq 0x3652c(%rip), %rdx     # 0x9702e
leaq 0x88(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x268, %esi            # imm = 0x268
callq 0xe1b2
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe10a
leaq 0x3268c(%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 0x60fef
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x60ffc
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 0x36bd8(%rip), %rsi     # 0x97792
leaq 0x36c0f(%rip), %rdx     # 0x977d0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32cdf(%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 0x60e09
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x60e16
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 0x36b57(%rip), %rsi     # 0x97792
leaq 0x36b8e(%rip), %rdx     # 0x977d0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32c5e(%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 0x60e80
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x60e8d
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 0x36ad6(%rip), %rsi     # 0x97792
leaq 0x36b0d(%rip), %rdx     # 0x977d0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32bdd(%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 0x60ef7
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x60f04
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 0x36a55(%rip), %rsi     # 0x97792
leaq 0x36a8c(%rip), %rdx     # 0x977d0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32b5c(%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 0x61070
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x6107d
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 0x369d4(%rip), %rsi     # 0x97792
leaq 0x36a0b(%rip), %rdx     # 0x977d0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32adb(%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 0x610e7
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x610f4
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 0xe10a
leaq 0x36986(%rip), %rsi     # 0x977d1
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 0x6115e
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x6116b
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 0xe10a
leaq 0x3690f(%rip), %rsi     # 0x977d1
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 0x6118c
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x61199
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 0xe10a
leaq 0x368ab(%rip), %rsi     # 0x977e4
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 0x611ba
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x611c7
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 0x367ee(%rip), %rsi     # 0x97792
leaq 0x36825(%rip), %rdx     # 0x977d0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x328f5(%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 0x611e8
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x611f5
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 0x3676d(%rip), %rsi     # 0x97792
leaq 0x367a4(%rip), %rdx     # 0x977d0
leaq 0x68(%rsp), %rdi
callq 0xdc76
leaq 0x32874(%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 0x6125f
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x6126c
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 0xe10a
leaq 0x36784(%rip), %rsi     # 0x97836
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 0x612d6
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x612e3
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 0xe10a
leaq 0x3671b(%rip), %rsi     # 0x97844
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 0x61304
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x61311
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 0x1155a
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 0x1155a
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 0x1155a
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 0xe10a
leaq 0x365e0(%rip), %rsi     # 0x9780a
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 0x61332
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x6133f
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 0xe10a
leaq 0x3657c(%rip), %rsi     # 0x9781d
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 0x61360
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x6136d
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 0x1155a
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 0x1155a
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 0x1155a
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 0x1155a
jmp 0x613cc
jmp 0x613e9
jmp 0x613cc
jmp 0x613e9
jmp 0x61422
jmp 0x61422
jmp 0x613cc
jmp 0x613e9
jmp 0x613cc
jmp 0x613e9
jmp 0x61451
jmp 0x61451
jmp 0x613cc
jmp 0x613e9
jmp 0x613cc
jmp 0x613e9
jmp 0x61422
jmp 0x61422
jmp 0x61480
jmp 0x61480
jmp 0x61422
jmp 0x61422
movq %rax, (%rsp)
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x613ed
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x613ed
movq %rax, (%rsp)
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x61426
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x61426
jmp 0x61451
jmp 0x61451
jmp 0x614af
jmp 0x614af
jmp 0x61451
jmp 0x61451
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x61455
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x61455
jmp 0x61480
jmp 0x61480
jmp 0x614de
jmp 0x614de
jmp 0x61480
jmp 0x61480
movq %rax, (%rsp)
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x61484
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x61484
jmp 0x614af
jmp 0x614af
jmp 0x6150f
jmp 0x6150f
jmp 0x614af
jmp 0x614af
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x614b3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x614b3
jmp 0x614de
jmp 0x614de
jmp 0x6153a
jmp 0x6153a
jmp 0x614de
jmp 0x614de
movq %rax, (%rsp)
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x614e2
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x614e2
jmp 0x6150f
jmp 0x6150f
jmp 0x6150f
jmp 0x6150f
movq %rax, (%rsp)
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x61513
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x61513
jmp 0x6153a
jmp 0x6153a
jmp 0x6153a
jmp 0x6153a
jmp 0x6153a
movq %rax, (%rsp)
movq 0x88(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6153e
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x6153e
jmp 0x6153a
movq %rax, (%rsp)
jmp 0x6155f
movq %rax, (%rsp)
movq 0x57a23(%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 0x57a1b(%rip), %rdi     # 0xb8fa0
callq 0xb640
movq %rax, %rdi
callq 0xb2c0
callq 0xb850
movq %rax, %rbx
callq 0xb990
movq %r15, %rdi
callq 0x680ce
movq 0x140(%rsp), %rdi
callq 0xe2d0
movq 0x108(%rsp), %rax
movq (%rax), %rdi
cmpq 0x118(%rsp), %rdi
je 0x615dc
movq 0x118(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq 0x138(%rsp), %rax
movq (%rax), %rdi
cmpq 0x120(%rsp), %rdi
je 0x61604
movq 0x120(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq 0x110(%rsp), %rax
movq (%rax), %rdi
cmpq 0x128(%rsp), %rdi
je 0x6162c
movq 0x128(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq 0x148(%rsp), %rax
movq (%rax), %rdi
cmpq 0x130(%rsp), %rdi
je 0x61654
movq 0x130(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb5a0
movq %rbx, %rdi
callq 0xba60
movq %rax, %rdi
callq 0xdd0b