// File: ncbi[P]amr/dna_mutation.cpp
// Function: (anonymous namespace)::BlastnAlignment::BlastnAlignment(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>> const&)
BlastnAlignment (const string &line,
                   const string &organism_arg)
    : Alignment (line, false, false)
    , organism (organism_arg)
    {
	    replace (organism, '_', ' ');
      try
      {
        // refName =      NC_022347.1@23S_ribosomal_RNA@23S@-159:1040292-1037381
        //           accesion_version@gene_name@gene_symbol@offset:start-stop
	      ASSERT (! refName. empty ());
	      // PD-3419
	      {
  	      string s (refName);
  	      refAccessionFrag =       findSplit (s, '@');
  	      product          =       findSplit (s, '@');
  	      gene             =       findSplit (s, ':');
  	    //ref_offset       = stoi (findSplit (s, ':'));
  	      refAccessionFrag += ":" + s;
  	    }
	      replace (product, '_', ' ');
	      qc ();
  	    if (const Vector<AmrMutation>* refMutations = findPtr (accession2mutations, refName))
  	      setSeqChanges (*refMutations, flankingLen);
		  }
		  catch (...)
		  {
		  	cout << line << endl;
		  	throw;
		  }
    }

// Assembly:
subq $0x248, %rsp            # imm = 0x248
movq %rdi, 0x240(%rsp)
movq %rsi, 0x238(%rsp)
movq %rdx, 0x230(%rsp)
movq 0x240(%rsp), %rdi
movq %rdi, 0x58(%rsp)
movq 0x238(%rsp), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0xa19e0
movq 0x58(%rsp), %rdi
leaq 0xd1767(%rip), %rax     # 0xe1360
movq %rax, (%rdi)
addq $0x238, %rdi            # imm = 0x238
movq %rdi, 0x60(%rsp)
movq 0x230(%rsp), %rsi
callq 0xc300
jmp 0xfc17
movq 0x58(%rsp), %rdi
addq $0x258, %rdi            # imm = 0x258
movq %rdi, 0x40(%rsp)
callq 0xc990
movq 0x58(%rsp), %rdi
addq $0x278, %rdi            # imm = 0x278
movq %rdi, 0x48(%rsp)
callq 0xc990
movq 0x58(%rsp), %rdi
addq $0x298, %rdi            # imm = 0x298
movq %rdi, 0x50(%rsp)
callq 0xc990
movq 0x58(%rsp), %rdi
addq $0x238, %rdi            # imm = 0x238
movl $0x5f, %esi
movl $0x20, %edx
callq 0x21b70
jmp 0xfc76
callq 0xc090
movq 0x58(%rsp), %rdi
movl $0x0, (%rax)
addq $0x78, %rdi
callq 0xcb90
testb $0x1, %al
jne 0xfc98
jmp 0xff51
callq 0xc860
cmpl $0x0, %eax
jne 0xff47
leaq 0x17f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xcc80
movq 0x38(%rsp), %rdx
leaq 0xa0625(%rip), %rsi     # 0xb02e9
leaq 0x180(%rsp), %rdi
callq 0x14240
jmp 0xfcd3
leaq 0x158(%rsp), %rdi
movl $0x4f, %esi
callq 0x15c70
jmp 0xfce7
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x15b80
jmp 0xfd06
leaq 0xa05f6(%rip), %rdx     # 0xb0303
leaq 0x1c0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x144a0
jmp 0xfd24
leaq 0x117(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xcc80
movq 0x30(%rsp), %rdx
leaq 0xa0720(%rip), %rsi     # 0xb0462
leaq 0x118(%rsp), %rdi
callq 0x14240
jmp 0xfd51
leaq 0xa119c(%rip), %rdx     # 0xb0ef4
leaq 0x138(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x144a0
jmp 0xfd6f
leaq 0x1e0(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x138(%rsp), %rdx
callq 0x15b80
jmp 0xfd8e
leaq 0xa0725(%rip), %rdx     # 0xb04ba
leaq 0x200(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x144a0
jmp 0xfdac
leaq 0x200(%rsp), %rdi
callq 0x1fbf0
jmp 0xfdbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x101dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x101b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xff35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xff28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xff1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xff0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xfef4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xfee7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xfeda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0xfecd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0x200(%rsp), %rdi
callq 0xce38
leaq 0x1e0(%rsp), %rdi
callq 0xce38
leaq 0x138(%rsp), %rdi
callq 0xce38
leaq 0x118(%rsp), %rdi
callq 0xce38
leaq 0x117(%rsp), %rdi
callq 0xc740
leaq 0x1c0(%rsp), %rdi
callq 0xce38
leaq 0x1a0(%rsp), %rdi
callq 0xce38
leaq 0x158(%rsp), %rdi
callq 0xce38
leaq 0x180(%rsp), %rdi
callq 0xce38
leaq 0x17f(%rsp), %rdi
callq 0xc740
jmp 0x1014c
movl $0x1, %edi
callq 0xc870
movq 0x58(%rsp), %rsi
addq $0x78, %rsi
leaq 0xf0(%rsp), %rdi
callq 0xc300
jmp 0xff69
leaq 0xd0(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
movl $0x40, %edx
callq 0x24180
jmp 0xff85
movq 0x58(%rsp), %rdi
addq $0x258, %rdi            # imm = 0x258
leaq 0xd0(%rsp), %rsi
movq %rsi, 0x28(%rsp)
callq 0xc890
movq 0x28(%rsp), %rdi
callq 0xce38
leaq 0xb0(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
movl $0x40, %edx
callq 0x24180
jmp 0xffc9
movq 0x58(%rsp), %rdi
addq $0x278, %rdi            # imm = 0x278
leaq 0xb0(%rsp), %rsi
movq %rsi, 0x20(%rsp)
callq 0xc890
movq 0x20(%rsp), %rdi
callq 0xce38
leaq 0x90(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
movl $0x3a, %edx
callq 0x24180
jmp 0x1000d
movq 0x58(%rsp), %rdi
addq $0x298, %rdi            # imm = 0x298
leaq 0x90(%rsp), %rsi
movq %rsi, 0x18(%rsp)
callq 0xc890
movq 0x18(%rsp), %rdi
callq 0xce38
leaq 0xa02ab(%rip), %rsi     # 0xb02e7
leaq 0x70(%rsp), %rdi
leaq 0xf0(%rsp), %rdx
callq 0x167f0
jmp 0x10050
movq 0x58(%rsp), %rdi
addq $0x258, %rdi            # imm = 0x258
leaq 0x70(%rsp), %rsi
callq 0xc8f0
jmp 0x10068
leaq 0x70(%rsp), %rdi
callq 0xce38
leaq 0xf0(%rsp), %rdi
callq 0xce38
movq 0x58(%rsp), %rdi
addq $0x278, %rdi            # imm = 0x278
movl $0x5f, %esi
movl $0x20, %edx
callq 0x21b70
jmp 0x1009c
movq 0x58(%rsp), %rdi
callq 0x10240
jmp 0x100a8
movq 0x58(%rsp), %rsi
addq $0x78, %rsi
leaq 0xd3ad8(%rip), %rdi     # 0xe3b90
callq 0x1af40
movq %rax, 0x10(%rsp)
jmp 0x100c4
movq 0x10(%rsp), %rax
movq %rax, 0x68(%rsp)
cmpq $0x0, 0x68(%rsp)
je 0x1018e
movq 0x58(%rsp), %rdi
movq 0x68(%rsp), %rsi
movl $0xc8, %edx
callq 0xa3aa0
jmp 0x100f0
jmp 0x1018e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1014c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1013f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0x70(%rsp), %rdi
callq 0xce38
leaq 0xf0(%rsp), %rdi
callq 0xce38
movq 0x228(%rsp), %rdi
callq 0xc2d0
movq 0x238(%rsp), %rsi
movq 0xd2e28(%rip), %rdi     # 0xe2f90
callq 0xc620
movq %rax, 0x8(%rsp)
jmp 0x10174
movq 0x8(%rsp), %rdi
movq 0xd2dd0(%rip), %rsi     # 0xe2f50
callq 0xc700
jmp 0x10187
callq 0xca20
jmp 0x101fc
jmp 0x101ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
callq 0xcb60
jmp 0x101ab
jmp 0x101b5
addq $0x248, %rsp            # imm = 0x248
retq
movq 0x50(%rsp), %rdi
callq 0xce38
movq 0x48(%rsp), %rdi
callq 0xce38
movq 0x40(%rsp), %rdi
callq 0xce38
movq 0x60(%rsp), %rdi
callq 0xce38
movq 0x58(%rsp), %rdi
callq 0x1a7c0
movq 0x228(%rsp), %rdi
callq 0xcc70
movq %rax, %rdi
callq 0x13c20
nopl (%rax)