// File: /workspace/github_cpp_makefile_star2_O3/ncbi[P]amr/seq.cpp
// Function: Seq_sp::Dna::cds2prot(unsigned char, bool, bool, bool, bool) const
Peptide Dna::cds2prot (Gencode gencode,
                       bool trunc5,
                       bool trunc3,
	                     bool hasStopCodon,
	                     bool allowExtraStopCodon) const
{
  size_t translationStart = 0;
  Peptide pep (makePeptide (1 /*frame*/, gencode, true, true, translationStart));
  
  EXEC_ASSERT (trimSuffix (pep. name, ".fr1"));
  
  if (pep. seq. empty ())
    throw runtime_error (FUNC "empty sequence");
  if (! trunc5 && ! trunc3 && pep. seq. size () * 3 != seq. size ())
    throw runtime_error (FUNC "incomplete codon");  
  if (! trunc5 && pep. seq [0] != 'm')
    throw runtime_error (FUNC "no start codon");
    
  const size_t starPos = pep. seq. find ("*");
  if (hasStopCodon)
  {
  	if (starPos == string::npos)
  	{
  	  if (! trunc3)
        throw runtime_error (FUNC "no stop codon");
    }
    else
    {
  	  if (starPos == pep. seq. size () - 1)
  	  {
    	  EXEC_ASSERT (trimSuffix (pep. seq, "*"));
    	}
    	else
    	{
        if (allowExtraStopCodon)
          pep. seq. erase (starPos);
        else
          throw runtime_error (FUNC "stop codon at peptide position " + to_string (starPos + 1) + "\n" + seq. substr (starPos * 3));
      }
  	}
  }
  else
	  if (starPos != string::npos)
	    throw runtime_error (FUNC "has a stop codon");
  
  return pep;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movl %r9d, %r15d
movl %r8d, %ebp
movl %ecx, %r12d
movl %edx, %ecx
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x110(%rsp), %rax
movq $0x0, (%rax)
movq %rax, (%rsp)
movl $0x1, %edx
movl $0x1, %r8d
movl $0x1, %r9d
callq 0x70368
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x270de(%rip), %rsi     # 0x985b7
leaq 0x270db(%rip), %rdx     # 0x985bb
leaq 0x10(%rsp), %rdi
callq 0xdc76
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x13756
movl %eax, %r13d
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x71517
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xb5a0
testb %r13b, %r13b
je 0x717ab
movq 0x30(%rbx), %rax
testq %rax, %rax
je 0x71846
movl %r12d, %ecx
orb %bpl, %cl
jne 0x71543
leaq (%rax,%rax,2), %rax
cmpq 0x30(%r14), %rax
jne 0x718bd
leaq 0x28(%rbx), %r13
testb %r12b, %r12b
jne 0x71559
movq (%r13), %rax
cmpb $0x6d, (%rax)
jne 0x7192a
leaq 0x2230b(%rip), %rsi     # 0x9386b
movl $0x1, %ecx
movq %r13, %rdi
xorl %edx, %edx
callq 0xba30
movq %rax, %r12
testb %r15b, %r15b
je 0x71685
cmpq $-0x1, %r12
je 0x716fc
movq 0x30(%rbx), %rcx
leaq -0x1(%rcx), %rax
cmpq %rax, %r12
jne 0x71772
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x222c1(%rip), %rsi     # 0x9386b
leaq 0x222bb(%rip), %rdx     # 0x9386c
callq 0xdc76
leaq 0x10(%rsp), %rsi
movq %r13, %rdi
callq 0x13756
movl %eax, %ebp
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x715e1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xb5a0
testb %bpl, %bpl
jne 0x71796
callq 0xb6b0
testl %eax, %eax
jne 0x718b3
leaq 0x80(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x26a48(%rip), %rsi     # 0x98052
leaq 0x26a51(%rip), %rdx     # 0x98062
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0xd0(%rsp), %rdi
movl $0x818, %esi            # imm = 0x818
callq 0xe1b2
leaq 0xb0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0xe10a
leaq 0x21b83(%rip), %rsi     # 0x931d1
leaq 0xb0(%rsp), %rdi
callq 0xbb10
leaq 0x60(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71dcf
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x71ddc
cmpq $-0x1, %r12
je 0x71796
movl $0x10, %edi
callq 0xb2d0
movq %rax, %r15
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x26f0f(%rip), %rsi     # 0x985bc
leaq 0x26f4c(%rip), %rdx     # 0x98600
leaq 0x30(%rsp), %rdi
callq 0xdc76
leaq 0x26fdd(%rip), %rsi     # 0x986a2
leaq 0x30(%rsp), %rdi
callq 0xbb10
leaq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71b0f
movups (%rcx), %xmm0
leaq 0x20(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71b1c
testb %bpl, %bpl
jne 0x71796
movl $0x10, %edi
callq 0xb2d0
movq %rax, %r15
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x26e99(%rip), %rsi     # 0x985bc
leaq 0x26ed6(%rip), %rdx     # 0x98600
leaq 0x30(%rsp), %rdi
callq 0xdc76
leaq 0x26f1a(%rip), %rsi     # 0x98655
leaq 0x30(%rsp), %rdi
callq 0xbb10
leaq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71b60
movups (%rcx), %xmm0
leaq 0x20(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71b6d
cmpb $0x0, 0x150(%rsp)
je 0x71997
cmpq %r12, %rcx
jb 0x71a04
movq %r12, 0x30(%rbx)
movq 0x28(%rbx), %rax
movb $0x0, (%rax,%r12)
movq %rbx, %rax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xb6b0
testl %eax, %eax
jne 0x718b3
leaq 0x80(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x26887(%rip), %rsi     # 0x98052
leaq 0x26890(%rip), %rdx     # 0x98062
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0xd0(%rsp), %rdi
movl $0x803, %esi            # imm = 0x803
callq 0xe1b2
leaq 0xb0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0xe10a
leaq 0x219c2(%rip), %rsi     # 0x931d1
leaq 0xb0(%rsp), %rdi
callq 0xbb10
leaq 0x60(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71c48
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x71c55
movl $0x10, %edi
callq 0xb2d0
movq %rax, %r15
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x26d58(%rip), %rsi     # 0x985bc
leaq 0x26d95(%rip), %rdx     # 0x98600
leaq 0x30(%rsp), %rdi
callq 0xdc76
leaq 0x26da4(%rip), %rsi     # 0x98620
leaq 0x30(%rsp), %rdi
callq 0xbb10
leaq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71a1c
movups (%rcx), %xmm0
leaq 0x20(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71a29
movl $0x1, %edi
callq 0xb6d0
movl $0x10, %edi
callq 0xb2d0
movq %rax, %r15
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x26ce1(%rip), %rsi     # 0x985bc
leaq 0x26d1e(%rip), %rdx     # 0x98600
leaq 0x30(%rsp), %rdi
callq 0xdc76
leaq 0x26d3e(%rip), %rsi     # 0x98631
leaq 0x30(%rsp), %rdi
callq 0xbb10
leaq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71a6d
movups (%rcx), %xmm0
leaq 0x20(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71a7a
movl $0x10, %edi
callq 0xb2d0
movq %rax, %r15
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x26c74(%rip), %rsi     # 0x985bc
leaq 0x26cb1(%rip), %rdx     # 0x98600
leaq 0x30(%rsp), %rdi
callq 0xdc76
leaq 0x26ce4(%rip), %rsi     # 0x98644
leaq 0x30(%rsp), %rdi
callq 0xbb10
leaq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71abe
movups (%rcx), %xmm0
leaq 0x20(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71acb
movl $0x10, %edi
callq 0xb2d0
movq %rax, %r15
leaq 0x80(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x26c05(%rip), %rsi     # 0x985bc
leaq 0x26c42(%rip), %rdx     # 0x98600
leaq 0x70(%rsp), %rdi
callq 0xdc76
leaq 0x26cb1(%rip), %rsi     # 0x98680
leaq 0x70(%rsp), %rdi
callq 0xbb10
leaq 0xc0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71bb1
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x71bc4
leaq 0x244dd(%rip), %rdi     # 0x95ee8
leaq 0x2456a(%rip), %rsi     # 0x95f7c
movq %r12, %rdx
xorl %eax, %eax
callq 0xb8c0
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r15, %rdi
callq 0xb960
xorl %ebp, %ebp
movq 0x47597(%rip), %rsi     # 0xb8ff0
movq 0x47510(%rip), %rdx     # 0xb8f70
movq %r15, %rdi
callq 0xba00
jmp 0x71dcf
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r15, %rdi
callq 0xb960
xorl %ebp, %ebp
movq 0x47546(%rip), %rsi     # 0xb8ff0
movq 0x474bf(%rip), %rdx     # 0xb8f70
movq %r15, %rdi
callq 0xba00
jmp 0x71dcf
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r15, %rdi
callq 0xb960
xorl %ebp, %ebp
movq 0x474f5(%rip), %rsi     # 0xb8ff0
movq 0x4746e(%rip), %rdx     # 0xb8f70
movq %r15, %rdi
callq 0xba00
jmp 0x71dcf
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r15, %rdi
callq 0xb960
xorl %ebp, %ebp
movq 0x474a4(%rip), %rsi     # 0xb8ff0
movq 0x4741d(%rip), %rdx     # 0xb8f70
movq %r15, %rdi
callq 0xba00
jmp 0x71dcf
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r15, %rdi
callq 0xb960
xorl %ebp, %ebp
movq 0x47453(%rip), %rsi     # 0xb8ff0
movq 0x473cc(%rip), %rdx     # 0xb8f70
movq %r15, %rdi
callq 0xba00
jmp 0x71dcf
movq %rdx, 0xb0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0xb8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1(%r12), %rsi
leaq 0xd0(%rsp), %rdi
callq 0xeb82
leaq 0x50(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0xe10a
leaq 0x23c69(%rip), %rsi     # 0x9587b
leaq 0x50(%rsp), %rdi
callq 0xbb10
leaq 0x40(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71d4b
movups (%rcx), %xmm0
leaq 0x40(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71d58
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x100(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2693c(%rip), %rsi     # 0x985bc
leaq 0x26979(%rip), %rdx     # 0x98600
leaq 0xf0(%rsp), %rdi
callq 0xdc76
leaq 0x21c16(%rip), %rsi     # 0x938b1
leaq 0xf0(%rsp), %rdi
callq 0xbb10
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71ccc
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x71cdf
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
movq 0x8(%rax), %rsi
leaq 0x90(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xe10a
leaq 0x268ed(%rip), %rsi     # 0x98601
leaq 0x30(%rsp), %rdi
callq 0xbb10
leaq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71e53
movups (%rcx), %xmm0
leaq 0x20(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71e60
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
addq $0x28, %r14
leaq (%r12,%r12,2), %rdx
leaq 0x90(%rsp), %rdi
movq %r14, %rsi
movq $-0x1, %rcx
callq 0xb5d0
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0xe10a
movb $0x1, %r12b
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
callq 0xb960
xorl %r12d, %r12d
movq 0x47230(%rip), %rsi     # 0xb8ff0
movq 0x471a9(%rip), %rdx     # 0xb8f70
movq %r15, %rdi
callq 0xba00
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x100(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x267b5(%rip), %rsi     # 0x985bc
leaq 0x267f2(%rip), %rdx     # 0x98600
leaq 0xf0(%rsp), %rdi
callq 0xdc76
leaq 0x21a8f(%rip), %rsi     # 0x938b1
leaq 0xf0(%rsp), %rdi
callq 0xbb10
leaq 0xa0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71e81
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x71e94
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1155a
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
movq 0x8(%rax), %rsi
leaq 0x90(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xe10a
leaq 0x2679c(%rip), %rsi     # 0x98665
leaq 0x30(%rsp), %rdi
callq 0xbb10
leaq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x71ef9
movups (%rcx), %xmm0
leaq 0x20(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x71f06
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x1155a
jmp 0x71f7f
jmp 0x71fa0
jmp 0x71fe9
jmp 0x72033
movq %rax, %r14
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x71f5c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71f5c
movq %rax, %r14
movb $0x1, %r12b
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x71fcb
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71fcb
movq %rax, %r14
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x71fa3
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71fa3
movq %rax, %r14
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x71fec
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x71fec
jmp 0x72083
movq %rax, %r14
movb $0x1, %r12b
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x72016
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x72016
movq %rax, %r14
movq 0x90(%rsp), %rdi
cmpq %rbp, %rdi
je 0x72036
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x72036
jmp 0x720ef
movq %rax, %r14
movb $0x1, %r12b
leaq 0x60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72060
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x72060
movq %rax, %r14
movq 0xf0(%rsp), %rdi
cmpq %r13, %rdi
je 0x72086
movq 0x100(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x72086
jmp 0x7213f
movq %rax, %r14
movb $0x1, %r12b
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x720aa
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x720aa
movq %rax, %r14
movq 0x50(%rsp), %rdi
cmpq %r12, %rdi
je 0x720f2
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x720f2
jmp 0x7217b
movq %rax, %r14
movb $0x1, %r12b
movq 0xb0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x720c7
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xb5a0
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x720e1
movq 0x80(%rsp), %rsi
incq %rsi
callq 0xb5a0
testb %r12b, %r12b
jne 0x72209
jmp 0x72237
movq %rax, %r14
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72142
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x72142
jmp 0x72234
movq %rax, %r14
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x72209
movq 0x80(%rsp), %rsi
jmp 0x721fa
jmp 0x721ab
jmp 0x721e8
movq %rax, %r14
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7217e
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x7217e
jmp 0x72206
jmp 0x72206
jmp 0x721ab
jmp 0x721e8
jmp 0x721ab
jmp 0x721e8
jmp 0x721ab
jmp 0x721e8
movq %rax, %r14
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x72237
movq 0x80(%rsp), %rsi
jmp 0x7222a
jmp 0x72234
jmp 0x72213
jmp 0x72234
jmp 0x72206
jmp 0x72206
jmp 0x72206
movq %rax, %r14
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x721ca
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xb5a0
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x721e1
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xb5a0
testb %bpl, %bpl
jne 0x72209
jmp 0x72237
movq %rax, %r14
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x72209
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x72209
jmp 0x72234
movq %rax, %r14
movq %r15, %rdi
callq 0xb440
jmp 0x72237
movq %rax, %r14
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x72237
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xb5a0
jmp 0x72237
movq %rax, %r14
movq %rbx, %rdi
callq 0x8fa26
movq %r14, %rdi
callq 0xba60
nop