// File: ncbi[P]amr/seq.cpp
// Function: Seq_sp::Mutation::Mutation(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
Mutation::Mutation (bool prot_arg,
                    const string& line)
: prot (prot_arg)
{ 
  string s (line);
  trim (s);
  
  const size_t dash_pos = s. find ('-');
  
  // geneName
  if (dash_pos != string::npos)
  {
    geneName = s. substr (0, dash_pos);
    QC_ASSERT (! geneName. empty ());
  }

  // ref, pos, allele
  const size_t refStart = dash_pos == string::npos ? 0 : (dash_pos + 1);
  size_t posStart = no_index;
  size_t alleleStart = no_index;
  FFOR_START (size_t, i, refStart, s. size ())
    if (isDigit (s [i]))
    {
      if (posStart == no_index)
        posStart = i;
    }
    else
    {
      if (posStart != no_index)
        if (alleleStart == no_index)
        {
          alleleStart = i;
          break;
        }
    }
  QC_ASSERT (refStart < posStart);
  QC_ASSERT (posStart < alleleStart);
  QC_ASSERT (alleleStart < s. size ());
  ref    =                s. substr (refStart, posStart - refStart);
  pos    = (size_t) stoi (s. substr (posStart, alleleStart - posStart));
  allele =                s. substr (alleleStart);
  QC_ASSERT (pos);
  pos--;

  // frameshift, ambig 
  if (prot)
  {
    if (ref == "ins")
      ref. clear ();
    if (allele == "del")
      allele. clear ();
    if (allele == "fs")
    {
      frameshift = true;
      allele. clear ();
    }
  #if 0
    for (const char c : allele)
      if (isAmbigAa (c))
        ambig = true;
  #endif
  }
  else
  {
    if (ref == "INS")
      ref. clear ();
    if (allele == "DEL")
      allele. clear ();
  #if 0
    for (const char c : allele)
      if (isAmbigNucl (c))
        ambig = true;
  #endif
  }
  
  setAmbig ();
}

// Assembly:
subq $0x6f8, %rsp            # imm = 0x6F8
movb %sil, %al
movq %rdi, 0x6f0(%rsp)
andb $0x1, %al
movb %al, 0x6ef(%rsp)
movq %rdx, 0x6e0(%rsp)
movq 0x6f0(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x104a0
movq 0xa8(%rsp), %rdi
leaq 0x56859(%rip), %rax     # 0x11fb10
movq %rax, (%rdi)
movb 0x6ef(%rsp), %al
andb $0x1, %al
movb %al, 0x8(%rdi)
addq $0x10, %rdi
movq %rdi, 0x90(%rsp)
callq 0xda50
movq 0xa8(%rsp), %rdi
movq $-0x1, 0x30(%rdi)
addq $0x38, %rdi
movq %rdi, 0x98(%rsp)
callq 0xda50
movq 0xa8(%rsp), %rdi
addq $0x58, %rdi
movq %rdi, 0xa0(%rsp)
callq 0xda50
movq 0xa8(%rsp), %rax
movb $0x0, 0x78(%rax)
movb $0x0, 0x79(%rax)
movq 0x6e0(%rsp), %rsi
leaq 0x6c0(%rsp), %rdi
callq 0xd330
jmp 0xc9338
leaq 0x6c0(%rsp), %rdi
callq 0x4c970
jmp 0xc9347
leaq 0x6c0(%rsp), %rdi
movl $0x2d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0xd9b0
movq %rax, 0x6a8(%rsp)
cmpq $-0x1, 0x6a8(%rsp)
je 0xc96a9
movq 0x6a8(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq 0x688(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
callq 0xd740
jmp 0xc9397
movq 0xa8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x688(%rsp), %rsi
callq 0xd900
leaq 0x688(%rsp), %rdi
callq 0xdf08
callq 0xd0a0
movq 0xa8(%rsp), %rdi
movl $0x0, (%rax)
addq $0x10, %rdi
callq 0xdc60
testb $0x1, %al
jne 0xc93e2
jmp 0xc96a7
callq 0xd8c0
cmpl $0x0, %eax
jne 0xc969d
leaq 0x5e7(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0xdd50
movq 0x88(%rsp), %rdx
leaq 0x1f032(%rip), %rsi     # 0xe8446
leaq 0x5e8(%rsp), %rdi
callq 0xfae0
jmp 0xc9423
leaq 0x5c0(%rsp), %rdi
movl $0x11a1, %esi           # imm = 0x11A1
callq 0x11600
jmp 0xc9437
leaq 0x608(%rsp), %rdi
leaq 0x5e8(%rsp), %rsi
leaq 0x5c0(%rsp), %rdx
callq 0x11510
jmp 0xc9456
leaq 0x19d74(%rip), %rdx     # 0xe31d1
leaq 0x628(%rsp), %rdi
leaq 0x608(%rsp), %rsi
callq 0x114c0
jmp 0xc9474
leaq 0x57f(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0xdd50
movq 0x80(%rsp), %rdx
leaq 0x202c0(%rip), %rsi     # 0xe9758
leaq 0x580(%rsp), %rdi
callq 0xfae0
jmp 0xc94a7
leaq 0x1a4f6(%rip), %rdx     # 0xe39a4
leaq 0x5a0(%rsp), %rdi
leaq 0x580(%rsp), %rsi
callq 0x114c0
jmp 0xc94c5
leaq 0x648(%rsp), %rdi
leaq 0x628(%rsp), %rsi
leaq 0x5a0(%rsp), %rdx
callq 0x11510
jmp 0xc94e4
leaq 0x2029e(%rip), %rdx     # 0xe9789
leaq 0x668(%rsp), %rdi
leaq 0x648(%rsp), %rsi
callq 0x114c0
jmp 0xc9502
leaq 0x668(%rsp), %rdi
callq 0x173d0
jmp 0xc9511
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca51e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca511
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc968b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc967e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9671
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9664
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc964a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc963d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9630
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9623
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
leaq 0x668(%rsp), %rdi
callq 0xdf08
leaq 0x648(%rsp), %rdi
callq 0xdf08
leaq 0x5a0(%rsp), %rdi
callq 0xdf08
leaq 0x580(%rsp), %rdi
callq 0xdf08
leaq 0x57f(%rsp), %rdi
callq 0xd7a0
leaq 0x628(%rsp), %rdi
callq 0xdf08
leaq 0x608(%rsp), %rdi
callq 0xdf08
leaq 0x5c0(%rsp), %rdi
callq 0xdf08
leaq 0x5e8(%rsp), %rdi
callq 0xdf08
leaq 0x5e7(%rsp), %rdi
callq 0xd7a0
jmp 0xca511
movl $0x1, %edi
callq 0xd8e0
jmp 0xc96a9
cmpq $-0x1, 0x6a8(%rsp)
jne 0xc96bd
xorl %eax, %eax
movq %rax, 0x78(%rsp)
jmp 0xc96ce
movq 0x6a8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x570(%rsp)
movq $-0x1, 0x568(%rsp)
movq $-0x1, 0x560(%rsp)
movq 0x570(%rsp), %rax
movq %rax, 0x558(%rsp)
leaq 0x6c0(%rsp), %rdi
callq 0xd520
movq %rax, 0x550(%rsp)
movq 0x558(%rsp), %rax
cmpq 0x550(%rsp), %rax
jae 0xc97cb
movq 0x558(%rsp), %rsi
leaq 0x6c0(%rsp), %rdi
callq 0xdec0
movq %rax, 0x70(%rsp)
jmp 0xc974a
movq 0x70(%rsp), %rax
movsbl (%rax), %edi
callq 0x4c850
movb %al, 0x6f(%rsp)
jmp 0xc975d
movb 0x6f(%rsp), %al
testb $0x1, %al
jne 0xc9767
jmp 0xc9784
cmpq $-0x1, 0x568(%rsp)
jne 0xc9782
movq 0x558(%rsp), %rax
movq %rax, 0x568(%rsp)
jmp 0xc97b0
cmpq $-0x1, 0x568(%rsp)
je 0xc97ae
cmpq $-0x1, 0x560(%rsp)
jne 0xc97ac
movq 0x558(%rsp), %rax
movq %rax, 0x560(%rsp)
jmp 0xc97cb
jmp 0xc97ae
jmp 0xc97b0
jmp 0xc97b2
movq 0x558(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x558(%rsp)
jmp 0xc9718
callq 0xd0a0
movl $0x0, (%rax)
movq 0x570(%rsp), %rax
cmpq 0x568(%rsp), %rax
jb 0xc9a73
callq 0xd8c0
cmpl $0x0, %eax
jne 0xc9a69
leaq 0x4af(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xdd50
movq 0x60(%rsp), %rdx
leaq 0x1ec2e(%rip), %rsi     # 0xe8446
leaq 0x4b0(%rsp), %rdi
callq 0xfae0
jmp 0xc9827
leaq 0x488(%rsp), %rdi
movl $0x11b7, %esi           # imm = 0x11B7
callq 0x11600
jmp 0xc983b
leaq 0x4d0(%rsp), %rdi
leaq 0x4b0(%rsp), %rsi
leaq 0x488(%rsp), %rdx
callq 0x11510
jmp 0xc985a
leaq 0x19970(%rip), %rdx     # 0xe31d1
leaq 0x4f0(%rsp), %rdi
leaq 0x4d0(%rsp), %rsi
callq 0x114c0
jmp 0xc9878
leaq 0x447(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xdd50
movq 0x58(%rsp), %rdx
leaq 0x1fec2(%rip), %rsi     # 0xe9758
leaq 0x448(%rsp), %rdi
callq 0xfae0
jmp 0xc98a5
leaq 0x1a0f8(%rip), %rdx     # 0xe39a4
leaq 0x468(%rsp), %rdi
leaq 0x448(%rsp), %rsi
callq 0x114c0
jmp 0xc98c3
leaq 0x510(%rsp), %rdi
leaq 0x4f0(%rsp), %rsi
leaq 0x468(%rsp), %rdx
callq 0x11510
jmp 0xc98e2
leaq 0x1feb5(%rip), %rdx     # 0xe979e
leaq 0x530(%rsp), %rdi
leaq 0x510(%rsp), %rsi
callq 0x114c0
jmp 0xc9900
leaq 0x530(%rsp), %rdi
callq 0x173d0
jmp 0xc990f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9a57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9a4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9a3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9a30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9a16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9a09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc99fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc99ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
leaq 0x530(%rsp), %rdi
callq 0xdf08
leaq 0x510(%rsp), %rdi
callq 0xdf08
leaq 0x468(%rsp), %rdi
callq 0xdf08
leaq 0x448(%rsp), %rdi
callq 0xdf08
leaq 0x447(%rsp), %rdi
callq 0xd7a0
leaq 0x4f0(%rsp), %rdi
callq 0xdf08
leaq 0x4d0(%rsp), %rdi
callq 0xdf08
leaq 0x488(%rsp), %rdi
callq 0xdf08
leaq 0x4b0(%rsp), %rdi
callq 0xdf08
leaq 0x4af(%rsp), %rdi
callq 0xd7a0
jmp 0xca511
movl $0x1, %edi
callq 0xd8e0
callq 0xd0a0
movl $0x0, (%rax)
movq 0x568(%rsp), %rax
cmpq 0x560(%rsp), %rax
jb 0xc9d1b
callq 0xd8c0
cmpl $0x0, %eax
jne 0xc9d11
leaq 0x39f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xdd50
movq 0x50(%rsp), %rdx
leaq 0x1e986(%rip), %rsi     # 0xe8446
leaq 0x3a0(%rsp), %rdi
callq 0xfae0
jmp 0xc9acf
leaq 0x378(%rsp), %rdi
movl $0x11b8, %esi           # imm = 0x11B8
callq 0x11600
jmp 0xc9ae3
leaq 0x3c0(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
leaq 0x378(%rsp), %rdx
callq 0x11510
jmp 0xc9b02
leaq 0x196c8(%rip), %rdx     # 0xe31d1
leaq 0x3e0(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
callq 0x114c0
jmp 0xc9b20
leaq 0x337(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0xdd50
movq 0x48(%rsp), %rdx
leaq 0x1fc1a(%rip), %rsi     # 0xe9758
leaq 0x338(%rsp), %rdi
callq 0xfae0
jmp 0xc9b4d
leaq 0x19e50(%rip), %rdx     # 0xe39a4
leaq 0x358(%rsp), %rdi
leaq 0x338(%rsp), %rsi
callq 0x114c0
jmp 0xc9b6b
leaq 0x400(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
leaq 0x358(%rsp), %rdx
callq 0x11510
jmp 0xc9b8a
leaq 0x1fc21(%rip), %rdx     # 0xe97b2
leaq 0x420(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x114c0
jmp 0xc9ba8
leaq 0x420(%rsp), %rdi
callq 0x173d0
jmp 0xc9bb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9cff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9cf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9ce5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9cd8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9cbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9cb1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9ca4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9c97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
leaq 0x420(%rsp), %rdi
callq 0xdf08
leaq 0x400(%rsp), %rdi
callq 0xdf08
leaq 0x358(%rsp), %rdi
callq 0xdf08
leaq 0x338(%rsp), %rdi
callq 0xdf08
leaq 0x337(%rsp), %rdi
callq 0xd7a0
leaq 0x3e0(%rsp), %rdi
callq 0xdf08
leaq 0x3c0(%rsp), %rdi
callq 0xdf08
leaq 0x378(%rsp), %rdi
callq 0xdf08
leaq 0x3a0(%rsp), %rdi
callq 0xdf08
leaq 0x39f(%rsp), %rdi
callq 0xd7a0
jmp 0xca511
movl $0x1, %edi
callq 0xd8e0
callq 0xd0a0
movl $0x0, (%rax)
movq 0x560(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x6c0(%rsp), %rdi
callq 0xd520
movq %rax, %rcx
movq 0x40(%rsp), %rax
cmpq %rcx, %rax
jb 0xc9fd8
callq 0xd8c0
cmpl $0x0, %eax
jne 0xc9fce
leaq 0x28f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xdd50
movq 0x38(%rsp), %rdx
leaq 0x1e6c9(%rip), %rsi     # 0xe8446
leaq 0x290(%rsp), %rdi
callq 0xfae0
jmp 0xc9d8c
leaq 0x268(%rsp), %rdi
movl $0x11b9, %esi           # imm = 0x11B9
callq 0x11600
jmp 0xc9da0
leaq 0x2b0(%rsp), %rdi
leaq 0x290(%rsp), %rsi
leaq 0x268(%rsp), %rdx
callq 0x11510
jmp 0xc9dbf
leaq 0x1940b(%rip), %rdx     # 0xe31d1
leaq 0x2d0(%rsp), %rdi
leaq 0x2b0(%rsp), %rsi
callq 0x114c0
jmp 0xc9ddd
leaq 0x227(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xdd50
movq 0x30(%rsp), %rdx
leaq 0x1f95d(%rip), %rsi     # 0xe9758
leaq 0x228(%rsp), %rdi
callq 0xfae0
jmp 0xc9e0a
leaq 0x19b93(%rip), %rdx     # 0xe39a4
leaq 0x248(%rsp), %rdi
leaq 0x228(%rsp), %rsi
callq 0x114c0
jmp 0xc9e28
leaq 0x2f0(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
leaq 0x248(%rsp), %rdx
callq 0x11510
jmp 0xc9e47
leaq 0x1f97b(%rip), %rdx     # 0xe97c9
leaq 0x310(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
callq 0x114c0
jmp 0xc9e65
leaq 0x310(%rsp), %rdi
callq 0x173d0
jmp 0xc9e74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9fbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9faf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9fa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9f95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9f7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9f6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9f61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xc9f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
leaq 0x310(%rsp), %rdi
callq 0xdf08
leaq 0x2f0(%rsp), %rdi
callq 0xdf08
leaq 0x248(%rsp), %rdi
callq 0xdf08
leaq 0x228(%rsp), %rdi
callq 0xdf08
leaq 0x227(%rsp), %rdi
callq 0xd7a0
leaq 0x2d0(%rsp), %rdi
callq 0xdf08
leaq 0x2b0(%rsp), %rdi
callq 0xdf08
leaq 0x268(%rsp), %rdi
callq 0xdf08
leaq 0x290(%rsp), %rdi
callq 0xdf08
leaq 0x28f(%rsp), %rdi
callq 0xd7a0
jmp 0xca511
movl $0x1, %edi
callq 0xd8e0
movq 0x570(%rsp), %rdx
movq 0x568(%rsp), %rcx
subq %rdx, %rcx
leaq 0x200(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
callq 0xd740
jmp 0xca002
movq 0xa8(%rsp), %rdi
addq $0x38, %rdi
leaq 0x200(%rsp), %rsi
movq %rsi, 0x28(%rsp)
callq 0xd900
movq 0x28(%rsp), %rdi
callq 0xdf08
movq 0x568(%rsp), %rdx
movq 0x560(%rsp), %rcx
subq %rdx, %rcx
leaq 0x1e0(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
callq 0xd740
jmp 0xca054
xorl %eax, %eax
movl %eax, %esi
leaq 0x1e0(%rsp), %rdi
movl $0xa, %edx
callq 0xa3b90
movl %eax, 0x24(%rsp)
jmp 0xca070
movq 0xa8(%rsp), %rax
movl 0x24(%rsp), %ecx
movslq %ecx, %rcx
movq %rcx, 0x30(%rax)
leaq 0x1e0(%rsp), %rdi
callq 0xdf08
movq 0x560(%rsp), %rdx
leaq 0x1c0(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
movq $-0x1, %rcx
callq 0xd740
jmp 0xca0b6
movq 0xa8(%rsp), %rdi
addq $0x58, %rdi
leaq 0x1c0(%rsp), %rsi
callq 0xd900
leaq 0x1c0(%rsp), %rdi
callq 0xdf08
callq 0xd0a0
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movl $0x0, (%rcx)
cmpq $0x0, 0x30(%rax)
jne 0xca3aa
callq 0xd8c0
cmpl $0x0, %eax
jne 0xca3a0
leaq 0x11f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xdd50
movq 0x18(%rsp), %rdx
leaq 0x1e31d(%rip), %rsi     # 0xe8446
leaq 0x120(%rsp), %rdi
callq 0xfae0
jmp 0xca138
leaq 0xf8(%rsp), %rdi
movl $0x11bd, %esi           # imm = 0x11BD
callq 0x11600
jmp 0xca14c
leaq 0x140(%rsp), %rdi
leaq 0x120(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x11510
jmp 0xca16b
leaq 0x1905f(%rip), %rdx     # 0xe31d1
leaq 0x160(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x114c0
jmp 0xca189
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xdd50
movq 0x10(%rsp), %rdx
leaq 0x1f5b1(%rip), %rsi     # 0xe9758
leaq 0xb8(%rsp), %rdi
callq 0xfae0
jmp 0xca1b6
leaq 0x197e7(%rip), %rdx     # 0xe39a4
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x114c0
jmp 0xca1d4
leaq 0x180(%rsp), %rdi
leaq 0x160(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x11510
jmp 0xca1f3
leaq 0x1a85f(%rip), %rdx     # 0xe4a59
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x114c0
jmp 0xca211
leaq 0x1a0(%rsp), %rdi
callq 0x173d0
jmp 0xca220
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
leaq 0x1e0(%rsp), %rdi
callq 0xdf08
jmp 0xca511
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca38e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca381
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca374
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca367
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca34d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca340
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
jmp 0xca326
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x6b8(%rsp)
movl %eax, 0x6b4(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0xdf08
leaq 0x180(%rsp), %rdi
callq 0xdf08
leaq 0xd8(%rsp), %rdi
callq 0xdf08
leaq 0xb8(%rsp), %rdi
callq 0xdf08
leaq 0xb7(%rsp), %rdi
callq 0xd7a0
leaq 0x160(%rsp), %rdi
callq 0xdf08
leaq 0x140(%rsp), %rdi
callq 0xdf08
leaq 0xf8(%rsp), %rdi
callq 0xdf08
leaq 0x120(%rsp), %rdi
callq 0xdf08
leaq 0x11f(%rsp), %rdi
callq 0xd7a0
jmp 0xca511
movl $0x1, %edi
callq 0xd8e0
movq 0xa8(%rsp), %rax
movq 0x30(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x30(%rax)
testb $0x1, 0x8(%rax)
je 0xca479
movq 0xa8(%rsp), %rdi
addq $0x38, %rdi
leaq 0x1cf35(%rip), %rsi     # 0xe7310
callq 0x4d5d0
movb %al, 0xf(%rsp)
jmp 0xca3e6
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0xca3f0
jmp 0xca401
movq 0xa8(%rsp), %rdi
addq $0x38, %rdi
callq 0xd9c0
movq 0xa8(%rsp), %rdi
addq $0x58, %rdi
leaq 0x1ce34(%rip), %rsi     # 0xe7248
callq 0x4d5d0
movb %al, 0xe(%rsp)
jmp 0xca41f
movb 0xe(%rsp), %al
testb $0x1, %al
jne 0xca429
jmp 0xca43a
movq 0xa8(%rsp), %rdi
addq $0x58, %rdi
callq 0xd9c0
movq 0xa8(%rsp), %rdi
addq $0x58, %rdi
leaq 0x1f395(%rip), %rsi     # 0xe97e2
callq 0x4d5d0
movb %al, 0xd(%rsp)
jmp 0xca458
movb 0xd(%rsp), %al
testb $0x1, %al
jne 0xca462
jmp 0xca477
movq 0xa8(%rsp), %rdi
movb $0x1, 0x78(%rdi)
addq $0x58, %rdi
callq 0xd9c0
jmp 0xca4ed
movq 0xa8(%rsp), %rdi
addq $0x38, %rdi
leaq 0x1f359(%rip), %rsi     # 0xe97e5
callq 0x4d5d0
movb %al, 0xc(%rsp)
jmp 0xca497
movb 0xc(%rsp), %al
testb $0x1, %al
jne 0xca4a1
jmp 0xca4b2
movq 0xa8(%rsp), %rdi
addq $0x38, %rdi
callq 0xd9c0
movq 0xa8(%rsp), %rdi
addq $0x58, %rdi
leaq 0x1c35c(%rip), %rsi     # 0xe6821
callq 0x4d5d0
movb %al, 0xb(%rsp)
jmp 0xca4d0
movb 0xb(%rsp), %al
testb $0x1, %al
jne 0xca4da
jmp 0xca4eb
movq 0xa8(%rsp), %rdi
addq $0x58, %rdi
callq 0xd9c0
jmp 0xca4ed
movq 0xa8(%rsp), %rdi
callq 0xca560
jmp 0xca4fc
leaq 0x6c0(%rsp), %rdi
callq 0xdf08
addq $0x6f8, %rsp            # imm = 0x6F8
retq
leaq 0x6c0(%rsp), %rdi
callq 0xdf08
movq 0xa0(%rsp), %rdi
callq 0xdf08
movq 0x98(%rsp), %rdi
callq 0xdf08
movq 0x90(%rsp), %rdi
callq 0xdf08
movq 0xa8(%rsp), %rdi
callq 0x10510
movq 0x6b8(%rsp), %rdi
callq 0xdd40
nop