// File: 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:
subq $0x718, %rsp            # imm = 0x718
movl %r8d, 0xbc(%rsp)
movl %ecx, %eax
movl 0xbc(%rsp), %ecx
movl %eax, 0xc0(%rsp)
movl %edx, %eax
movl 0xc0(%rsp), %edx
movl %eax, 0xc4(%rsp)
movq %rsi, %rax
movl 0xc4(%rsp), %esi
movq %rax, 0xc8(%rsp)
movq %rdi, %r8
movq 0xc8(%rsp), %rdi
movq %r8, 0xd0(%rsp)
movb %r9b, %al
movq %r8, %r9
movq %r9, 0xd8(%rsp)
movq 0x720(%rsp), %r9
movq %r8, 0x710(%rsp)
movq %rdi, 0x708(%rsp)
movb %sil, 0x707(%rsp)
movb %dl, 0x706(%rsp)
andb $0x1, %cl
movb %cl, 0x705(%rsp)
andb $0x1, %al
movb %al, 0x704(%rsp)
movq 0x708(%rsp), %rax
movq %rax, 0xe0(%rsp)
callq 0xd0a0
movl $0x0, (%rax)
movsbl 0x707(%rsp), %edi
callq 0xd8140
testb $0x1, %al
jne 0xb005f
callq 0xd8c0
cmpl $0x0, %eax
jne 0xb0055
leaq 0x65f(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0xdd50
movq 0xb0(%rsp), %rdx
leaq 0x38648(%rip), %rsi     # 0xe8446
leaq 0x660(%rsp), %rdi
callq 0xfae0
jmp 0xafe0d
leaq 0x628(%rsp), %rdi
movl $0x7d3, %esi            # imm = 0x7D3
callq 0x11600
jmp 0xafe21
leaq 0x680(%rsp), %rdi
leaq 0x660(%rsp), %rsi
leaq 0x628(%rsp), %rdx
callq 0x11510
jmp 0xafe40
leaq 0x3338a(%rip), %rdx     # 0xe31d1
leaq 0x6a0(%rsp), %rdi
leaq 0x680(%rsp), %rsi
callq 0x114c0
jmp 0xafe5e
leaq 0x5e7(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0xdd50
movq 0xa8(%rsp), %rdx
leaq 0x38a59(%rip), %rsi     # 0xe88db
leaq 0x5e8(%rsp), %rdi
callq 0xfae0
jmp 0xafe91
leaq 0x33b0c(%rip), %rdx     # 0xe39a4
leaq 0x608(%rsp), %rdi
leaq 0x5e8(%rsp), %rsi
callq 0x114c0
jmp 0xafeaf
leaq 0x6c0(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x608(%rsp), %rdx
callq 0x11510
jmp 0xafece
leaq 0x38a53(%rip), %rdx     # 0xe8928
leaq 0x6e0(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
callq 0x114c0
jmp 0xafeec
leaq 0x6e0(%rsp), %rdi
callq 0x173d0
jmp 0xafefb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0043
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0036
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0029
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb001c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xafff5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xaffe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xaffdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
leaq 0x6e0(%rsp), %rdi
callq 0xdf08
leaq 0x6c0(%rsp), %rdi
callq 0xdf08
leaq 0x608(%rsp), %rdi
callq 0xdf08
leaq 0x5e8(%rsp), %rdi
callq 0xdf08
leaq 0x5e7(%rsp), %rdi
callq 0xd7a0
leaq 0x6a0(%rsp), %rdi
callq 0xdf08
leaq 0x680(%rsp), %rdi
callq 0xdf08
leaq 0x628(%rsp), %rdi
callq 0xdf08
leaq 0x660(%rsp), %rdi
callq 0xdf08
leaq 0x65f(%rsp), %rdi
callq 0xd7a0
jmp 0xb0faa
movl $0x1, %edi
callq 0xd8e0
testb $0x1, 0x704(%rsp)
je 0xb031b
callq 0xd0a0
movl $0x0, (%rax)
testb $0x1, 0x705(%rsp)
jne 0xb0319
callq 0xd8c0
cmpl $0x0, %eax
jne 0xb030f
leaq 0x53f(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
callq 0xdd50
movq 0xa0(%rsp), %rdx
leaq 0x3838e(%rip), %rsi     # 0xe8446
leaq 0x540(%rsp), %rdi
callq 0xfae0
jmp 0xb00c7
leaq 0x518(%rsp), %rdi
movl $0x7d4, %esi            # imm = 0x7D4
callq 0x11600
jmp 0xb00db
leaq 0x560(%rsp), %rdi
leaq 0x540(%rsp), %rsi
leaq 0x518(%rsp), %rdx
callq 0x11510
jmp 0xb00fa
leaq 0x330d0(%rip), %rdx     # 0xe31d1
leaq 0x580(%rsp), %rdi
leaq 0x560(%rsp), %rsi
callq 0x114c0
jmp 0xb0118
leaq 0x4d7(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0xdd50
movq 0x98(%rsp), %rdx
leaq 0x3879f(%rip), %rsi     # 0xe88db
leaq 0x4d8(%rsp), %rdi
callq 0xfae0
jmp 0xb014b
leaq 0x33852(%rip), %rdx     # 0xe39a4
leaq 0x4f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
callq 0x114c0
jmp 0xb0169
leaq 0x5a0(%rsp), %rdi
leaq 0x580(%rsp), %rsi
leaq 0x4f8(%rsp), %rdx
callq 0x11510
jmp 0xb0188
leaq 0x387a9(%rip), %rdx     # 0xe8938
leaq 0x5c0(%rsp), %rdi
leaq 0x5a0(%rsp), %rsi
callq 0x114c0
jmp 0xb01a6
leaq 0x5c0(%rsp), %rdi
callq 0x173d0
jmp 0xb01b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb02fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb02f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb02e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb02d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb02bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb02af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb02a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0295
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
leaq 0x5c0(%rsp), %rdi
callq 0xdf08
leaq 0x5a0(%rsp), %rdi
callq 0xdf08
leaq 0x4f8(%rsp), %rdi
callq 0xdf08
leaq 0x4d8(%rsp), %rdi
callq 0xdf08
leaq 0x4d7(%rsp), %rdi
callq 0xd7a0
leaq 0x580(%rsp), %rdi
callq 0xdf08
leaq 0x560(%rsp), %rdi
callq 0xdf08
leaq 0x518(%rsp), %rdi
callq 0xdf08
leaq 0x540(%rsp), %rdi
callq 0xdf08
leaq 0x53f(%rsp), %rdi
callq 0xd7a0
jmp 0xb0faa
movl $0x1, %edi
callq 0xd8e0
jmp 0xb031b
movq 0xe0(%rsp), %rsi
leaq 0x470(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x11bc0
movq 0x90(%rsp), %rsi
leaq 0x3860d(%rip), %rdx     # 0xe8954
leaq 0x490(%rsp), %rdi
callq 0x114c0
jmp 0xb0356
movsbl 0x707(%rsp), %esi
leaq 0x450(%rsp), %rdi
callq 0x11600
jmp 0xb036d
leaq 0x4b0(%rsp), %rdi
leaq 0x490(%rsp), %rsi
leaq 0x450(%rsp), %rdx
callq 0x11510
jmp 0xb038c
leaq 0x450(%rsp), %rdi
callq 0xdf08
leaq 0x490(%rsp), %rdi
callq 0xdf08
leaq 0x470(%rsp), %rdi
callq 0xdf08
movsbl 0x707(%rsp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
cltq
subq $0x1, %rax
movq %rax, 0x448(%rsp)
callq 0xd0a0
movl $0x0, (%rax)
cmpq $0x2, 0x448(%rsp)
jbe 0xb06e9
callq 0xd8c0
cmpl $0x0, %eax
jne 0xb06df
leaq 0x3a7(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0xdd50
movq 0x88(%rsp), %rdx
leaq 0x3802a(%rip), %rsi     # 0xe8446
leaq 0x3a8(%rsp), %rdi
callq 0xfae0
jmp 0xb042b
leaq 0x380(%rsp), %rdi
movl $0x7d8, %esi            # imm = 0x7D8
callq 0x11600
jmp 0xb043f
leaq 0x3c8(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
leaq 0x380(%rsp), %rdx
callq 0x11510
jmp 0xb045e
leaq 0x32d6c(%rip), %rdx     # 0xe31d1
leaq 0x3e8(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
callq 0x114c0
jmp 0xb047c
leaq 0x33f(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0xdd50
movq 0x80(%rsp), %rdx
leaq 0x3843b(%rip), %rsi     # 0xe88db
leaq 0x340(%rsp), %rdi
callq 0xfae0
jmp 0xb04af
leaq 0x334ee(%rip), %rdx     # 0xe39a4
leaq 0x360(%rsp), %rdi
leaq 0x340(%rsp), %rsi
callq 0x114c0
jmp 0xb04cd
leaq 0x408(%rsp), %rdi
leaq 0x3e8(%rsp), %rsi
leaq 0x360(%rsp), %rdx
callq 0x11510
jmp 0xb04ec
leaq 0x38465(%rip), %rdx     # 0xe8958
leaq 0x428(%rsp), %rdi
leaq 0x408(%rsp), %rsi
callq 0x114c0
jmp 0xb050a
leaq 0x428(%rsp), %rdi
callq 0x173d0
jmp 0xb0519
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0573
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0566
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
leaq 0x450(%rsp), %rdi
callq 0xdf08
leaq 0x490(%rsp), %rdi
callq 0xdf08
leaq 0x470(%rsp), %rdi
callq 0xdf08
jmp 0xb0faa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb06cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb06c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb06b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb06a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb068c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb067f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0672
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0665
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
leaq 0x428(%rsp), %rdi
callq 0xdf08
leaq 0x408(%rsp), %rdi
callq 0xdf08
leaq 0x360(%rsp), %rdi
callq 0xdf08
leaq 0x340(%rsp), %rdi
callq 0xdf08
leaq 0x33f(%rsp), %rdi
callq 0xd7a0
leaq 0x3e8(%rsp), %rdi
callq 0xdf08
leaq 0x3c8(%rsp), %rdi
callq 0xdf08
leaq 0x380(%rsp), %rdi
callq 0xdf08
leaq 0x3a8(%rsp), %rdi
callq 0xdf08
leaq 0x3a7(%rsp), %rdi
callq 0xd7a0
jmp 0xb0f9d
movl $0x1, %edi
callq 0xd8e0
movq 0xe0(%rsp), %rdi
addq $0x28, %rdi
callq 0xd520
cmpq $0x3, %rax
jb 0xb072a
movq 0xe0(%rsp), %rdi
addq $0x28, %rdi
callq 0xd520
subq 0x448(%rsp), %rax
movl $0x3, %ecx
xorl %edx, %edx
divq %rcx
movq %rax, 0x78(%rsp)
jmp 0xb0733
xorl %eax, %eax
movq %rax, 0x78(%rsp)
jmp 0xb0733
movq 0xd0(%rsp), %rdi
movq 0x78(%rsp), %rax
movq %rax, 0x330(%rsp)
movb $0x0, 0x32f(%rsp)
movq 0x330(%rsp), %rdx
leaq 0x4b0(%rsp), %rsi
xorl %ecx, %ecx
callq 0xd8190
jmp 0xb0769
movq 0xd0(%rsp), %rax
movb $0x1, 0x49(%rax)
leaq 0x320(%rsp), %rdi
callq 0xd81f0
movsbl 0x707(%rsp), %eax
cmpl $0x0, %eax
jge 0xb07e9
movq 0xe0(%rsp), %rdi
callq 0xaf7f0
movq %rax, 0x70(%rsp)
jmp 0xb07a3
movq 0x70(%rsp), %rsi
leaq 0x320(%rsp), %rdi
callq 0xd8220
jmp 0xb07e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0f9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0f57
movsbl 0x707(%rsp), %eax
cmpl $0x0, %eax
jge 0xb080a
leaq 0x320(%rsp), %rdi
callq 0xd8250
movq %rax, 0x68(%rsp)
jmp 0xb0819
movq 0xe0(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0xb0819
movq 0x68(%rsp), %rax
movq %rax, 0x318(%rsp)
callq 0xd0a0
movl $0x0, (%rax)
movq 0x318(%rsp), %rdi
addq $0x28, %rdi
callq 0xd520
movq 0xe0(%rsp), %rdi
movq %rax, 0x60(%rsp)
addq $0x28, %rdi
callq 0xd520
movq %rax, %rcx
movq 0x60(%rsp), %rax
cmpq %rcx, %rax
je 0xb0af0
callq 0xd8c0
cmpl $0x0, %eax
jne 0xb0ae6
leaq 0x277(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xdd50
movq 0x58(%rsp), %rdx
leaq 0x37bb1(%rip), %rsi     # 0xe8446
leaq 0x278(%rsp), %rdi
callq 0xfae0
jmp 0xb08a4
leaq 0x250(%rsp), %rdi
movl $0x7e3, %esi            # imm = 0x7E3
callq 0x11600
jmp 0xb08b8
leaq 0x298(%rsp), %rdi
leaq 0x278(%rsp), %rsi
leaq 0x250(%rsp), %rdx
callq 0x11510
jmp 0xb08d7
leaq 0x328f3(%rip), %rdx     # 0xe31d1
leaq 0x2b8(%rsp), %rdi
leaq 0x298(%rsp), %rsi
callq 0x114c0
jmp 0xb08f5
leaq 0x20f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xdd50
movq 0x50(%rsp), %rdx
leaq 0x37fc8(%rip), %rsi     # 0xe88db
leaq 0x210(%rsp), %rdi
callq 0xfae0
jmp 0xb0922
leaq 0x3307b(%rip), %rdx     # 0xe39a4
leaq 0x230(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x114c0
jmp 0xb0940
leaq 0x2d8(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
leaq 0x230(%rsp), %rdx
callq 0x11510
jmp 0xb095f
leaq 0x38003(%rip), %rdx     # 0xe8969
leaq 0x2f8(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
callq 0x114c0
jmp 0xb097d
leaq 0x2f8(%rsp), %rdi
callq 0x173d0
jmp 0xb098c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0ad4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0ac7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0aba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0aad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0a93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0a86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0a79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0a6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
leaq 0x2f8(%rsp), %rdi
callq 0xdf08
leaq 0x2d8(%rsp), %rdi
callq 0xdf08
leaq 0x230(%rsp), %rdi
callq 0xdf08
leaq 0x210(%rsp), %rdi
callq 0xdf08
leaq 0x20f(%rsp), %rdi
callq 0xd7a0
leaq 0x2b8(%rsp), %rdi
callq 0xdf08
leaq 0x298(%rsp), %rdi
callq 0xdf08
leaq 0x250(%rsp), %rdi
callq 0xdf08
leaq 0x278(%rsp), %rdi
callq 0xdf08
leaq 0x277(%rsp), %rdi
callq 0xd7a0
jmp 0xb0f57
movl $0x1, %edi
callq 0xd8e0
movsbl 0x707(%rsp), %eax
cmpl $0x0, %eax
jle 0xb0b0c
movq 0x448(%rsp), %rax
movq %rax, 0x48(%rsp)
jmp 0xb0b2a
movq 0x318(%rsp), %rdi
addq $0x28, %rdi
callq 0xd520
subq 0x448(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rcx
movq 0x720(%rsp), %rax
movq %rcx, (%rax)
movq 0x318(%rsp), %rdi
addq $0x28, %rdi
callq 0xd310
addq 0x448(%rsp), %rax
movq %rax, 0x200(%rsp)
movq $0x0, 0x1f8(%rsp)
movq 0x1f8(%rsp), %rax
cmpq 0x330(%rsp), %rax
jae 0xb0bf7
movq 0x200(%rsp), %rdi
movzbl 0x706(%rsp), %esi
movzbl 0x705(%rsp), %edx
andl $0x1, %edx
callq 0xad450
movb %al, 0x47(%rsp)
jmp 0xb0b9f
movq 0xd0(%rsp), %rdi
addq $0x28, %rdi
movq 0x1f8(%rsp), %rsi
callq 0xdec0
movq %rax, 0x38(%rsp)
jmp 0xb0bbf
movq 0x38(%rsp), %rax
movb 0x47(%rsp), %cl
movb %cl, (%rax)
movq 0x200(%rsp), %rax
addq $0x3, %rax
movq %rax, 0x200(%rsp)
movq 0x1f8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x1f8(%rsp)
jmp 0xb0b67
callq 0xd0a0
movq 0xd0(%rsp), %rdi
movl $0x0, (%rax)
addq $0x28, %rdi
movq 0x330(%rsp), %rsi
callq 0xdec0
movq %rax, 0x30(%rsp)
jmp 0xb0c22
movq 0x30(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xb0eba
callq 0xd8c0
cmpl $0x0, %eax
jne 0xb0eb0
leaq 0x157(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xdd50
movq 0x28(%rsp), %rdx
leaq 0x377e7(%rip), %rsi     # 0xe8446
leaq 0x158(%rsp), %rdi
callq 0xfae0
jmp 0xb0c6e
leaq 0x130(%rsp), %rdi
movl $0x7ed, %esi            # imm = 0x7ED
callq 0x11600
jmp 0xb0c82
leaq 0x178(%rsp), %rdi
leaq 0x158(%rsp), %rsi
leaq 0x130(%rsp), %rdx
callq 0x11510
jmp 0xb0ca1
leaq 0x32529(%rip), %rdx     # 0xe31d1
leaq 0x198(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x114c0
jmp 0xb0cbf
leaq 0xef(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xdd50
movq 0x20(%rsp), %rdx
leaq 0x37bfe(%rip), %rsi     # 0xe88db
leaq 0xf0(%rsp), %rdi
callq 0xfae0
jmp 0xb0cec
leaq 0x32cb1(%rip), %rdx     # 0xe39a4
leaq 0x110(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x114c0
jmp 0xb0d0a
leaq 0x1b8(%rsp), %rdi
leaq 0x198(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0x11510
jmp 0xb0d29
leaq 0x37c5b(%rip), %rdx     # 0xe898b
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x114c0
jmp 0xb0d47
leaq 0x1d8(%rsp), %rdi
callq 0x173d0
jmp 0xb0d56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
jmp 0xb0e36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x650(%rsp)
movl %eax, 0x64c(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0xdf08
leaq 0x1b8(%rsp), %rdi
callq 0xdf08
leaq 0x110(%rsp), %rdi
callq 0xdf08
leaq 0xf0(%rsp), %rdi
callq 0xdf08
leaq 0xef(%rsp), %rdi
callq 0xd7a0
leaq 0x198(%rsp), %rdi
callq 0xdf08
leaq 0x178(%rsp), %rdi
callq 0xdf08
leaq 0x130(%rsp), %rdi
callq 0xdf08
leaq 0x158(%rsp), %rdi
callq 0xdf08
leaq 0x157(%rsp), %rdi
callq 0xd7a0
jmp 0xb0f57
movl $0x1, %edi
callq 0xd8e0
movq 0xd0(%rsp), %rdi
addq $0x28, %rdi
callq 0xdc60
testb $0x1, %al
jne 0xb0f36
testb $0x1, 0x704(%rsp)
je 0xb0f36
movq 0xd0(%rsp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xdec0
movq %rax, 0x18(%rsp)
jmp 0xb0ef5
movq 0x18(%rsp), %rax
movsbl (%rax), %edi
callq 0x4cb70
movb %al, 0x17(%rsp)
jmp 0xb0f08
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0xb0f12
jmp 0xb0f36
movq 0xd0(%rsp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xdec0
movq %rax, 0x8(%rsp)
jmp 0xb0f2e
movq 0x8(%rsp), %rax
movb $0x6d, (%rax)
movb $0x1, 0x32f(%rsp)
leaq 0x320(%rsp), %rdi
callq 0xd80e0
testb $0x1, 0x32f(%rsp)
jne 0xb0f80
jmp 0xb0f73
leaq 0x320(%rsp), %rdi
callq 0xd80e0
movq 0xd0(%rsp), %rdi
callq 0xd8280
jmp 0xb0f9d
movq 0xd0(%rsp), %rdi
callq 0xd8280
leaq 0x4b0(%rsp), %rdi
callq 0xdf08
movq 0xd8(%rsp), %rax
addq $0x718, %rsp            # imm = 0x718
retq
leaq 0x4b0(%rsp), %rdi
callq 0xdf08
movq 0x650(%rsp), %rdi
callq 0xdd40
nopw (%rax,%rax)