// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/alignment.cpp
// Function: Alignment_sp::AmrMutation::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int&, unsigned long&, int&)
void AmrMutation::parse (const string &geneMutation_std,
                         string &reference,
                         string &allele,
                         string &gene,
                         int &pos_std,
                         size_t &frameshift,
                         int &frameshift_insertion)
{ 
  QC_ASSERT (! geneMutation_std. empty ());
  QC_ASSERT (reference. empty ());
  QC_ASSERT (allele. empty ());
  QC_ASSERT (frameshift == no_index);
  QC_ASSERT (! frameshift_insertion);
  
  
  string pureMutation (geneMutation_std);

  static const string fsInfix ("fsTer");  // ...fsTer<N>{ins|del}<M>
  const size_t fsInfix_pos = geneMutation_std. find (fsInfix);
  if (fsInfix_pos != no_index)
  {
    pureMutation. erase (fsInfix_pos);
    string suffix = geneMutation_std. substr (fsInfix_pos + fsInfix. size ());  // <N>{ins|del}<M>
    size_t indel_pos = suffix. find ("ins");
    bool ins = true;  // {ins|del}
    if (indel_pos == string::npos)
    {
      indel_pos = suffix. find ("del");
      ins = false;
    }
    QC_ASSERT (indel_pos != string::npos);      
    frameshift_insertion = str2<int> (suffix. substr (indel_pos + 3));  // <M>
    if (! ins)
      frameshift_insertion *= -1;
    QC_ASSERT (frameshift_insertion % 3);
    suffix. erase (indel_pos);  // <N>
    frameshift = str2<size_t> (suffix);
    QC_ASSERT (frameshift != no_index);
  }

  enum Type {inAllele, inPos, inRef};
  Type type = inAllele;
  string pos_stdS;
  FOR_REV (size_t, i, pureMutation. size ())
  {
    const char c = pureMutation [i];
    switch (type)
    {
      case inAllele:
        if (isAlpha (c))
          allele += c;
        else
        {
          pos_stdS = string (1, c);
          type = inPos;
        }
        break;
      case inPos:
        if (isAlpha (c))
        {
          type = inRef;
          reference = string (1, c);
        }
        else
          pos_stdS += c;
        break;
      case inRef:
        if (isAlpha (c))
          reference += c;
        else
        {
          QC_ASSERT (c == '_');
          QC_ASSERT (i);
          Common_sp::reverse (allele);
          Common_sp::reverse (reference);
          Common_sp::reverse (pos_stdS);
          gene = pureMutation. substr (0, i);
          pos_std = stoi (pos_stdS) - 1;
          return;
        }
        break;
    }
  }
  NEVER_CALL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq %r9, %rbp
movq %r8, 0x168(%rsp)
movq %rcx, 0x170(%rsp)
movq %rdx, 0x158(%rsp)
movq %rsi, %r14
movq %rdi, %rbx
callq 0xc070
movq %rax, 0xf0(%rsp)
andl $0x0, (%rax)
cmpq $0x0, 0x8(%rbx)
je 0x3c982
cmpq $0x0, 0x8(%r14)
jne 0x3ca5a
movq 0x158(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x3cb32
cmpq $-0x1, (%rbp)
jne 0x3cc0a
movq 0x1b0(%rsp), %r13
cmpl $0x0, (%r13)
jne 0x3cce2
movq %r14, 0x160(%rsp)
leaq 0x138(%rsp), %rdi
movq %rbx, %rsi
callq 0xc7e0
movb 0x4d675(%rip), %al      # 0x89bf0
testb %al, %al
je 0x3cdba
leaq 0x4d646(%rip), %rsi     # 0x89bd0
xorl %r14d, %r14d
movq %rbx, %rdi
xorl %edx, %edx
callq 0xcbb0
cmpq $-0x1, %rax
je 0x3c6cf
movq %rax, %r12
leaq 0x138(%rsp), %rdi
pushq $-0x1
popq %rdx
movq %rax, %rsi
callq 0xc120
addq 0x4d61a(%rip), %r12     # 0x89bd8
leaq 0xd0(%rsp), %rdi
pushq $-0x1
popq %rcx
movq %rbx, %rsi
movq %r12, %rdx
callq 0xc5f0
leaq 0x25bad(%rip), %rsi     # 0x62188
leaq 0xd0(%rsp), %rdi
xorl %edx, %edx
callq 0xcba0
movq %rax, %r12
cmpq $-0x1, %rax
je 0x3c603
movq 0xf0(%rsp), %rax
andl $0x0, (%rax)
movq %r12, %rbx
jmp 0x3c631
leaq 0x25ab6(%rip), %rsi     # 0x620c0
leaq 0xd0(%rsp), %rdi
xorl %edx, %edx
callq 0xcba0
movq %rax, %rbx
movq 0xf0(%rsp), %rax
andl $0x0, (%rax)
cmpq $-0x1, %rbx
je 0x3d160
leaq 0x3(%rbx), %rdx
leaq 0x10(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
pushq $-0x1
popq %rcx
callq 0xc5f0
leaq 0x10(%rsp), %rdi
callq 0x2aa12
movl %eax, (%r13)
leaq 0x10(%rsp), %rdi
callq 0xcbe8
cmpq $-0x1, %r12
jne 0x3c66c
negl (%r13)
movq 0xf0(%rsp), %rax
andl $0x0, (%rax)
movl (%r13), %eax
pushq $0x3
popq %rcx
cltd
idivl %ecx
testl %edx, %edx
je 0x3cfbc
leaq 0xd0(%rsp), %rdi
pushq $-0x1
popq %rdx
movq %rbx, %rsi
callq 0xc120
leaq 0xd0(%rsp), %rdi
callq 0x2c0e0
movq %rax, (%rbp)
movq 0xf0(%rsp), %rcx
andl $0x0, (%rcx)
cmpq $-0x1, %rax
je 0x3d08e
leaq 0xd0(%rsp), %rdi
callq 0xcbe8
leaq 0xe0(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x140(%rsp), %rbp
decq %rbp
leaq 0x10(%rsp), %rbx
pushq $0x2
popq %r13
cmpq $-0x1, %rbp
je 0x3c8ae
movq 0x138(%rsp), %rax
movb (%rax,%rbp), %r15b
movsbl %r15b, %r12d
movl %r12d, %edi
callq 0x2a2a7
testl %r14d, %r14d
je 0x3c760
cmpl $0x1, %r14d
jne 0x3c779
testb %al, %al
je 0x3c792
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
pushq $0x1
popq %rsi
movl %r12d, %edx
callq 0xc680
movq 0x160(%rsp), %rdi
movq %rbx, %rsi
callq 0xc710
movq %rbx, %rdi
callq 0xcbe8
movl %r13d, %r14d
jmp 0x3c7e0
testb %al, %al
je 0x3c7aa
xorl %r14d, %r14d
movq 0x158(%rsp), %rdi
movl %r12d, %esi
callq 0xc510
jmp 0x3c7e0
testb %al, %al
je 0x3c7e8
movq 0x160(%rsp), %rdi
movl %r12d, %esi
callq 0xc510
movl %r13d, %r14d
jmp 0x3c7e0
leaq 0xd0(%rsp), %rdi
movl %r12d, %esi
callq 0xc510
pushq $0x1
popq %rax
movl %eax, %r14d
jmp 0x3c7e0
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
pushq $0x1
popq %rsi
movl %r12d, %edx
callq 0xc680
leaq 0xd0(%rsp), %rdi
movq %rbx, %rsi
callq 0xc710
movq %rbx, %rdi
callq 0xcbe8
pushq $0x1
popq %rax
movl %eax, %r14d
decq %rbp
jmp 0x3c6f7
movq 0xf0(%rsp), %rax
andl $0x0, (%rax)
cmpb $0x5f, %r15b
jne 0x3ce14
testq %rbp, %rbp
movq 0x160(%rsp), %rbx
je 0x3cee8
movq 0x158(%rsp), %rdi
callq 0x12680
movq %rbx, %rdi
callq 0x12680
leaq 0xd0(%rsp), %rdi
callq 0x12680
leaq 0x10(%rsp), %rdi
leaq 0x138(%rsp), %rsi
xorl %edx, %edx
movq %rbp, %rcx
callq 0xc5f0
leaq 0x10(%rsp), %rbx
movq 0x170(%rsp), %rdi
movq %rbx, %rsi
callq 0xc710
movq %rbx, %rdi
callq 0xcbe8
leaq 0xd0(%rsp), %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x45c29
decl %eax
movq 0x168(%rsp), %rcx
movl %eax, (%rcx)
leaq 0xd0(%rsp), %rdi
callq 0xcbe8
leaq 0x138(%rsp), %rdi
callq 0xcbe8
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x25726(%rip), %rsi     # 0x61fe8
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x30(%rsp), %rdi
movl $0xa6, %esi
callq 0xe2d5
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0x218d6(%rip), %rdx     # 0x5e1d1
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xe24f
leaq 0x257b0(%rip), %rsi     # 0x620c4
leaq 0xf8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x21f9f(%rip), %rdx     # 0x5e8cc
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xe24f
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0xe26e
leaq 0x220e5(%rip), %rdx     # 0x5ea4b
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x25652(%rip), %rsi     # 0x61fe8
leaq 0x90(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
pushq $0x5b
popq %rsi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x217f8(%rip), %rdx     # 0x5e1d1
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x256d2(%rip), %rsi     # 0x620c4
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xdbbe
leaq 0x21ec1(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x256ff(%rip), %rdx     # 0x62137
leaq 0x138(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0x138(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x2557a(%rip), %rsi     # 0x61fe8
leaq 0x90(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
pushq $0x5c
popq %rsi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x21720(%rip), %rdx     # 0x5e1d1
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x255fa(%rip), %rsi     # 0x620c4
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xdbbe
leaq 0x21de9(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x2579c(%rip), %rdx     # 0x622ac
leaq 0x138(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0x138(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x254a2(%rip), %rsi     # 0x61fe8
leaq 0x90(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
pushq $0x5d
popq %rsi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x21648(%rip), %rdx     # 0x5e1d1
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x25522(%rip), %rsi     # 0x620c4
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xdbbe
leaq 0x21d11(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x256da(%rip), %rdx     # 0x622c2
leaq 0x138(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0x138(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x253ca(%rip), %rsi     # 0x61fe8
leaq 0x90(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
pushq $0x5e
popq %rsi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x21570(%rip), %rdx     # 0x5e1d1
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x2544a(%rip), %rsi     # 0x620c4
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xdbbe
leaq 0x21c39(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x25494(%rip), %rdx     # 0x62154
leaq 0x138(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0x138(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x252f2(%rip), %rsi     # 0x61fe8
leaq 0x90(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xdbbe
leaq 0x70(%rsp), %rdi
pushq $0x5f
popq %rsi
callq 0xe2d5
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x21498(%rip), %rdx     # 0x5e1d1
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x25372(%rip), %rsi     # 0x620c4
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xdbbe
leaq 0x21b61(%rip), %rdx     # 0x5e8cc
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x253d3(%rip), %rdx     # 0x6216b
leaq 0x138(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0x138(%rsp), %rdi
callq 0x101d0
leaq 0x4ce2f(%rip), %rdi     # 0x89bf0
callq 0xcad0
testl %eax, %eax
je 0x3c583
leaq 0x4cdfb(%rip), %rdi     # 0x89bd0
leaq 0x253a6(%rip), %rsi     # 0x62182
leaq 0xd0(%rsp), %rdx
callq 0xdbbe
movq 0x4c160(%rip), %rdi     # 0x88f50
leaq 0x4cdd9(%rip), %rsi     # 0x89bd0
leaq 0x4c7fa(%rip), %rdx     # 0x895f8
callq 0xc530
leaq 0x4cde6(%rip), %rdi     # 0x89bf0
callq 0xc3e0
jmp 0x3c583
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x251c0(%rip), %rsi     # 0x61fe8
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x30(%rsp), %rdi
movl $0x9a, %esi
callq 0xe2d5
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0x21370(%rip), %rdx     # 0x5e1d1
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xe24f
leaq 0x2524a(%rip), %rsi     # 0x620c4
leaq 0xf8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x21a39(%rip), %rdx     # 0x5e8cc
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xe24f
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0xe26e
leaq 0x2530a(%rip), %rdx     # 0x621d6
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x250ec(%rip), %rsi     # 0x61fe8
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x30(%rsp), %rdi
movl $0x9b, %esi
callq 0xe2d5
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0x2129c(%rip), %rdx     # 0x5e1d1
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xe24f
leaq 0x25176(%rip), %rsi     # 0x620c4
leaq 0xf8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x21965(%rip), %rdx     # 0x5e8cc
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xe24f
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0xe26e
leaq 0x25d5e(%rip), %rdx     # 0x62cfe
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x25018(%rip), %rsi     # 0x61fe8
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x30(%rsp), %rdi
pushq $0x75
popq %rsi
callq 0xe2d5
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0x211ca(%rip), %rdx     # 0x5e1d1
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xe24f
leaq 0x250a4(%rip), %rsi     # 0x620c4
leaq 0xf8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x21893(%rip), %rdx     # 0x5e8cc
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xe24f
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0xe26e
leaq 0x25134(%rip), %rdx     # 0x621a6
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x24f46(%rip), %rsi     # 0x61fe8
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x30(%rsp), %rdi
pushq $0x78
popq %rsi
callq 0xe2d5
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0x210f8(%rip), %rdx     # 0x5e1d1
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xe24f
leaq 0x24fd2(%rip), %rsi     # 0x620c4
leaq 0xf8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x217c1(%rip), %rdx     # 0x5e8cc
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xe24f
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0xe26e
leaq 0x2507b(%rip), %rdx     # 0x621bf
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3d232
leaq 0x24e74(%rip), %rsi     # 0x61fe8
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x30(%rsp), %rdi
pushq $0x71
popq %rsi
callq 0xe2d5
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0x21026(%rip), %rdx     # 0x5e1d1
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xe24f
leaq 0x24f00(%rip), %rsi     # 0x620c4
leaq 0xf8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x216ef(%rip), %rdx     # 0x5e8cc
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xe24f
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0xe26e
leaq 0x24f76(%rip), %rdx     # 0x6218c
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
callq 0x101d0
pushq $0x1
popq %rdi
callq 0xc6f0
movq %rax, %rbx
leaq 0x4c9ac(%rip), %rdi     # 0x89bf0
callq 0xc3d0
jmp 0x3d4b4
jmp 0x3d3e7
jmp 0x3d3f6
jmp 0x3d422
jmp 0x3d3e7
jmp 0x3d3f6
jmp 0x3d3e7
jmp 0x3d3f6
jmp 0x3d447
jmp 0x3d3e7
jmp 0x3d3f6
jmp 0x3d3e7
jmp 0x3d3f6
jmp 0x3d29a
jmp 0x3d2ac
jmp 0x3d29a
jmp 0x3d2ac
jmp 0x3d29a
jmp 0x3d2ac
jmp 0x3d29a
jmp 0x3d2ac
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0xcbe8
jmp 0x3d2af
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xcbe8
jmp 0x3d2e2
jmp 0x3d422
jmp 0x3d422
jmp 0x3d45d
jmp 0x3d422
jmp 0x3d422
jmp 0x3d2df
jmp 0x3d2df
jmp 0x3d2df
jmp 0x3d2df
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xcbe8
jmp 0x3d312
jmp 0x3d447
jmp 0x3d447
jmp 0x3d46f
jmp 0x3d447
jmp 0x3d447
jmp 0x3d30f
jmp 0x3d30f
jmp 0x3d30f
jmp 0x3d30f
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xcbe8
jmp 0x3d342
jmp 0x3d45d
jmp 0x3d45d
jmp 0x3d480
jmp 0x3d45d
jmp 0x3d45d
jmp 0x3d33f
jmp 0x3d33f
jmp 0x3d33f
jmp 0x3d33f
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xcbe8
jmp 0x3d372
jmp 0x3d46f
jmp 0x3d46f
jmp 0x3d48f
jmp 0x3d46f
jmp 0x3d46f
jmp 0x3d36f
jmp 0x3d36f
jmp 0x3d36f
jmp 0x3d36f
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xcbe8
jmp 0x3d3a5
jmp 0x3d480
jmp 0x3d480
jmp 0x3d4a4
jmp 0x3d480
jmp 0x3d480
jmp 0x3d3a2
jmp 0x3d3a2
jmp 0x3d3a2
jmp 0x3d3a2
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xcbe8
jmp 0x3d3d0
jmp 0x3d48f
jmp 0x3d48f
jmp 0x3d48f
jmp 0x3d48f
jmp 0x3d3cd
jmp 0x3d3cd
jmp 0x3d3cd
jmp 0x3d3cd
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0x3d4bc
jmp 0x3d4a4
jmp 0x3d4a4
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xcbe8
jmp 0x3d3f9
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xcbe8
jmp 0x3d425
jmp 0x3d4a4
jmp 0x3d4a4
jmp 0x3d41a
jmp 0x3d41a
jmp 0x3d41a
jmp 0x3d41a
movq %rax, %rbx
jmp 0x3d4c1
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0xcbe8
jmp 0x3d44a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x3d497
jmp 0x3d4a4
jmp 0x3d442
movq %rax, %rbx
jmp 0x3d4b4
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0xcbe8
jmp 0x3d460
jmp 0x3d4a4
jmp 0x3d4a4
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xcbe8
jmp 0x3d472
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xcbe8
jmp 0x3d483
jmp 0x3d4a4
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xcbe8
jmp 0x3d492
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xcbe8
jmp 0x3d4a7
jmp 0x3d4a4
jmp 0x3d4a4
jmp 0x3d4a4
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xcbe8
leaq 0x138(%rsp), %rdi
callq 0xcbe8
movq %rbx, %rdi
callq 0xcaa0
nop