// File: /workspace/github_cpp_makefile_star2_O1/ncbi[P]amr/seq.cpp
// Function: Seq_sp::Dna::makePeptide(char, unsigned char, bool, bool, unsigned long&) const
Peptide Dna::makePeptide (Frame frame,
                          Gencode gencode,
                          bool lowercasePossibleStartCodon,
                          bool firstStartCodon2M,
                          size_t &translationStart) const
{
  ASSERT (isFrame (frame));
  IMPLY (firstStartCodon2M, lowercasePossibleStartCodon);

  const string peptideName (getId () + ".fr" + to_string ((int) frame));
  const size_t frameOffset = (size_t) abs (frame) - 1;
  ASSERT (frameOffset <= 2);
  const size_t aaSeqLen = seq. size () >= 3 ? (seq. size () - frameOffset) / 3 : 0;

  Peptide peptide (peptideName, aaSeqLen, false);
  peptide. pseudo = true;

  // dna
  unique_ptr<Dna> compDna;
  if (frame < 0)
    compDna. reset (makeComplementary ());
  const Dna* dna = (frame < 0) ? compDna. get () : this;
  ASSERT (dna->seq. size () == seq. size ());
  
  translationStart = frame > 0 ? frameOffset : dna->seq. size () - frameOffset;

  const char* s = dna->seq. c_str () + frameOffset;
  FOR (size_t, j, aaSeqLen)
  {
    peptide. seq [j] = codon2aa (s, gencode, lowercasePossibleStartCodon);
    s += 3;
  }
  ASSERT (peptide. seq [aaSeqLen] == '\0');
  
  if (   ! peptide. seq. empty () 
      && firstStartCodon2M 
      && isLower (peptide. seq [0])
     )
  	peptide. seq [0] = 'm';

  return peptide;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movl %r9d, %ebp
movl %r8d, %r12d
movl %ecx, %r14d
movl %edx, %r15d
movq %rsi, %r13
movq %rdi, %rbx
callq 0xb070
movq %rax, 0x108(%rsp)
movl $0x0, (%rax)
movq %r15, 0x110(%rsp)
leal 0x3(%r15), %eax
cmpl $0x6, %eax
ja 0x70b2b
cmpl $0x3, %eax
je 0x70b2b
testb %bpl, %bpl
je 0x70510
movq 0x108(%rsp), %rax
movl $0x0, (%rax)
testb %r12b, %r12b
je 0x70a96
movl %r14d, 0x120(%rsp)
movl %ebp, 0x124(%rsp)
leaq 0x8(%r13), %r14
movq %r14, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0xb760
cmpq $-0x1, %rax
jne 0x7053c
movq 0x10(%r13), %rax
leaq 0x40(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0xb5d0
leaq 0x28018(%rip), %rsi     # 0x98570
movq %r15, %rdi
callq 0xbb10
leaq 0x30(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movl %r12d, 0x11c(%rsp)
je 0x7058f
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x70595
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movsbl 0x110(%rsp), %ebp
movl %ebp, %r15d
negl %r15d
cmovsl %ebp, %r15d
cmpl $0x64, %r15d
movl $0x3, %eax
sbbl $0x0, %eax
cmpl $0xa, %r15d
movl $0x1, %r14d
cmovael %eax, %r14d
movl %ebp, %r12d
shrl $0x1f, %r12d
leal (%r14,%r12), %esi
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rsp, %rdi
movl $0x2d, %edx
callq 0xb670
movl %r12d, %edi
addq (%rsp), %rdi
movl %r14d, %esi
movl %r15d, %edx
callq 0xf02d
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq 0x30(%rsp), %r14
cmpq %r14, %rcx
je 0x70633
movq 0x30(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x70652
movl $0xf, %esi
leaq 0x10(%rsp), %rdi
cmpq %rdi, (%rsp)
je 0x7064d
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x70662
movq (%rsp), %rsi
leaq 0x20(%rsp), %rdi
callq 0xb1b0
jmp 0x7066e
movq %rsp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xb620
leaq 0x90(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x7069b
movq %rsi, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
jmp 0x706a1
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x88(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x706dc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb5a0
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x706f3
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xb5a0
leaq 0x50(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x7070e
movq 0x50(%rsp), %rsi
incq %rsi
callq 0xb5a0
movl %ebp, %r12d
negl %r12d
cmovsl %ebp, %r12d
decq %r12
movq 0x108(%rsp), %rax
movl $0x0, (%rax)
cmpq $0x3, %r12
jae 0x708aa
movq 0x30(%r13), %rax
cmpq $0x3, %rax
jb 0x70755
subq %r12, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rcx
movq %rdx, %r15
shrq %r15
jmp 0x70758
xorl %r15d, %r15d
leaq 0x80(%rsp), %rsi
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x8fe6a
leaq 0x482ac(%rip), %rax     # 0xb8a20
movq %rax, (%rbx)
movb $0x1, 0x49(%rbx)
cmpb $0x0, 0x110(%rsp)
js 0x70796
movq $0x0, 0xa0(%rsp)
movq %r13, %rax
jmp 0x707a6
movq %r13, %rdi
callq 0x6ffd8
movq %rax, 0xa0(%rsp)
movq 0x108(%rsp), %rcx
movl $0x0, (%rcx)
movq 0x30(%rax), %rcx
cmpq 0x30(%r13), %rcx
jne 0x70950
movq 0x180(%rsp), %rdx
subq %r12, %rcx
cmpb $0x0, 0x110(%rsp)
cmovgq %r12, %rcx
movq %rcx, (%rdx)
testq %r15, %r15
je 0x7081a
addq 0x28(%rax), %r12
xorl %ebp, %ebp
movzbl 0x120(%rsp), %r13d
movzbl 0x11c(%rsp), %r14d
movq %r12, %rdi
movl %r13d, %esi
movl %r14d, %edx
callq 0x6e68c
movq 0x28(%rbx), %rcx
movb %al, (%rcx,%rbp)
addq $0x3, %r12
incq %rbp
cmpq %rbp, %r15
jne 0x707f9
movq 0x108(%rsp), %rax
movl $0x0, (%rax)
movq 0x28(%rbx), %r14
cmpb $0x0, (%r14,%r15)
jne 0x709f3
cmpq $0x0, 0x30(%rbx)
sete %al
movl 0x124(%rsp), %ecx
xorb $0x1, %cl
orb %al, %cl
jne 0x70861
movsbl (%r14), %ebp
movl %ebp, %edi
callq 0xb840
cmpb %al, %bpl
jne 0x70861
movb $0x6d, (%r14)
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x70874
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70895
movq 0x90(%rsp), %rsi
incq %rsi
callq 0xb5a0
movq %rbx, %rax
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %r13
callq 0xb6b0
testl %eax, %eax
jne 0x70bc0
leaq 0xd8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x27795(%rip), %rsi     # 0x98062
leaq 0x2779e(%rip), %rdx     # 0x98072
leaq 0xc8(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x7d8, %esi            # imm = 0x7D8
callq 0xe1a8
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x228ba(%rip), %rsi     # 0x931d1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70bca
movups (%rcx), %xmm0
leaq 0x10(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x70bd6
callq 0xb6b0
testl %eax, %eax
jne 0x70bc0
leaq 0xd8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x276f2(%rip), %rsi     # 0x98062
leaq 0x276fb(%rip), %rdx     # 0x98072
leaq 0xc8(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x7e3, %esi            # imm = 0x7E3
callq 0xe1a8
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x22817(%rip), %rsi     # 0x931d1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70c53
movups (%rcx), %xmm0
leaq 0x10(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x70c5f
callq 0xb6b0
testl %eax, %eax
jne 0x70bc0
leaq 0xd8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2764f(%rip), %rsi     # 0x98062
leaq 0x27658(%rip), %rdx     # 0x98072
leaq 0xc8(%rsp), %rdi
callq 0xdc76
leaq 0xa8(%rsp), %rdi
movl $0x7ed, %esi            # imm = 0x7ED
callq 0xe1a8
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0xe100
leaq 0x22774(%rip), %rsi     # 0x931d1
leaq 0xe8(%rsp), %rdi
callq 0xbb10
leaq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70cdc
movups (%rcx), %xmm0
leaq 0x10(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x70ce8
callq 0xb6b0
testl %eax, %eax
jne 0x70bc0
leaq 0xf8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x275ac(%rip), %rsi     # 0x98062
leaq 0x275b5(%rip), %rdx     # 0x98072
leaq 0xe8(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x7d4, %esi            # imm = 0x7D4
callq 0xe1a8
movq %rsp, %rdi
leaq 0xe8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe100
leaq 0x226d6(%rip), %rsi     # 0x931d1
movq %rsp, %rdi
callq 0xbb10
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70d65
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x70d72
callq 0xb6b0
testl %eax, %eax
jne 0x70bc0
leaq 0xf8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x27517(%rip), %rsi     # 0x98062
leaq 0x27520(%rip), %rdx     # 0x98072
leaq 0xe8(%rsp), %rdi
callq 0xdc76
leaq 0xc8(%rsp), %rdi
movl $0x7d3, %esi            # imm = 0x7D3
callq 0xe1a8
movq %rsp, %rdi
leaq 0xe8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0xe100
leaq 0x22641(%rip), %rsi     # 0x931d1
movq %rsp, %rdi
callq 0xbb10
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70f45
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x70f52
movl $0x1, %edi
callq 0xb6d0
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x278f6(%rip), %rsi     # 0x984f7
leaq 0x2793b(%rip), %rdx     # 0x98543
leaq 0x128(%rsp), %rdi
callq 0xdc76
leaq 0x22c95(%rip), %rsi     # 0x938b1
leaq 0x128(%rsp), %rdi
callq 0xbb10
leaq 0x70(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70de9
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x70df6
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x138(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2786c(%rip), %rsi     # 0x984f7
leaq 0x278b1(%rip), %rdx     # 0x98543
leaq 0x128(%rsp), %rdi
callq 0xdc76
leaq 0x22c0b(%rip), %rsi     # 0x938b1
leaq 0x128(%rsp), %rdi
callq 0xbb10
leaq 0x70(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70e5d
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x70e6a
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x138(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x277e3(%rip), %rsi     # 0x984f7
leaq 0x27828(%rip), %rdx     # 0x98543
leaq 0x128(%rsp), %rdi
callq 0xdc76
leaq 0x22b82(%rip), %rsi     # 0x938b1
leaq 0x128(%rsp), %rdi
callq 0xbb10
leaq 0x70(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70ed1
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x70ede
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x70(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2775c(%rip), %rsi     # 0x984f7
leaq 0x277a1(%rip), %rdx     # 0x98543
leaq 0x60(%rsp), %rdi
callq 0xdc76
leaq 0x22afe(%rip), %rsi     # 0x938b1
leaq 0x60(%rsp), %rdi
callq 0xbb10
leaq 0xb8(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x70fc9
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x70fdc
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
movq 0x8(%rax), %rsi
leaq 0x60(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0xe100
leaq 0x2774e(%rip), %rsi     # 0x98574
leaq 0x40(%rsp), %rdi
callq 0xbb10
leaq 0x30(%rsp), %rcx
movq %rcx, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71046
movups (%rcx), %xmm0
leaq 0x30(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71053
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
movq 0x8(%rax), %rsi
leaq 0x60(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0xe100
leaq 0x276eb(%rip), %rsi     # 0x98585
leaq 0x40(%rsp), %rdi
callq 0xbb10
leaq 0x30(%rsp), %rcx
movq %rcx, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71074
movups (%rcx), %xmm0
leaq 0x30(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71081
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
movq 0x8(%rax), %rsi
leaq 0x60(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0xe100
leaq 0x27699(%rip), %rsi     # 0x985a7
leaq 0x40(%rsp), %rdi
callq 0xbb10
leaq 0x30(%rsp), %rcx
movq %rcx, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x710a2
movups (%rcx), %xmm0
leaq 0x30(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x710af
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x70(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2757c(%rip), %rsi     # 0x984f7
leaq 0x275c1(%rip), %rdx     # 0x98543
leaq 0x60(%rsp), %rdi
callq 0xdc76
leaq 0x2291e(%rip), %rsi     # 0x938b1
leaq 0x60(%rsp), %rdi
callq 0xbb10
leaq 0xb8(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x710d0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x710e3
movq %rdx, 0xa8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xb8(%rsp)
movq 0x8(%rax), %rsi
leaq 0xa8(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xe100
leaq 0x27543(%rip), %rsi     # 0x98554
leaq 0x20(%rsp), %rdi
callq 0xbb10
leaq 0x90(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71146
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x71159
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0xa8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xb8(%rsp)
movq 0x8(%rax), %rsi
leaq 0xa8(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xe100
leaq 0x2742c(%rip), %rsi     # 0x98544
leaq 0x20(%rsp), %rdi
callq 0xbb10
leaq 0x90(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x7117d
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x71190
movq %rdx, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
movq 0x8(%rax), %rdx
leaq 0x80(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
movq %rdx, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
movq 0x8(%rax), %rdx
leaq 0x80(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1151b
jmp 0x711bd
jmp 0x711df
jmp 0x7128e
movq %rax, %r14
movq 0x80(%rsp), %rdi
cmpq %rbp, %rdi
je 0x711e2
movq 0x90(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x711e2
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x71291
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71291
jmp 0x712ef
jmp 0x7120f
jmp 0x71230
movq %rax, %r14
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x71233
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71233
movq %rax, %r14
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x712ba
movq 0x50(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x712ba
movq %rax, %r14
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x71275
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71275
movq %rax, %r14
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x712d6
movq 0x50(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x712d6
movq %rax, %r14
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x712f2
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x712f2
jmp 0x71356
jmp 0x712b7
movq %rax, %r14
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x71315
movq 0x70(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71315
movq %rax, %r14
movq 0x60(%rsp), %rdi
cmpq %r12, %rdi
je 0x71337
movq 0x70(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71337
movq %rax, %r14
movq 0x60(%rsp), %rdi
cmpq %r12, %rdi
je 0x71359
movq 0x70(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71359
jmp 0x713b9
jmp 0x71312
movq %rax, %r14
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
je 0x7137c
movq 0x138(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x7137c
movq %rax, %r14
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x7139c
movq 0x138(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x7139c
movq %rax, %r14
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x713bc
movq 0x50(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x713bc
jmp 0x7142c
jmp 0x71379
movq %rax, %r14
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x713e3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x713e3
movq %rax, %r14
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x71409
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71409
movq %rax, %r14
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7142f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x7142f
jmp 0x714a5
jmp 0x713e0
movq %rax, %r14
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7145c
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x7145c
movq %rax, %r14
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x71482
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71482
movq %rax, %r14
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x714a8
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x714a8
jmp 0x7151a
jmp 0x71459
movq %rax, %r14
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x714cb
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x714cb
movq %rax, %r14
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x714f4
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x714f4
movq %rax, %r14
movq 0xe8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x715dc
movq 0xf8(%rsp), %rsi
jmp 0x715d4
jmp 0x714c8
movq %rax, %r14
movq 0xc8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7159a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x7159a
movq %rax, %r14
movq 0xc8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x715bb
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x715bb
movq %rax, %r14
jmp 0x715dc
jmp 0x71597
jmp 0x71597
jmp 0x71539
movq %rax, %r14
movq $0x0, 0xa0(%rsp)
jmp 0x7159a
movq %rax, %r14
jmp 0x715bb
movq %rax, %r14
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x71561
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71561
movq %rax, %r14
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x71582
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71582
movq %rax, %r14
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x715dc
movq 0x50(%rsp), %rsi
jmp 0x715d4
movq %rax, %r14
cmpq $0x0, 0xa0(%rsp)
je 0x715b3
movq 0xa0(%rsp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq %rbx, %rdi
callq 0x8fdca
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x715dc
movq 0x90(%rsp), %rsi
incq %rsi
callq 0xb5a0
movq %r14, %rdi
callq 0xba60