// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/seq.cpp
// Function: Seq_sp::KmerIndex::IdRecord::put(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void KmerIndex::IdRecord::put (string &s)
{ 
  ASSERT (! s. empty ());
  ASSERT (! contains (s, no_char));
  
  size_t i = s. size ();
  while (i-- > 0)
  {
    if (full ())
    {
      s. erase (i + 1);
      return;
    }
    ASSERT (text [start] == no_char);
    text [start] = s [i];
    start++;
  }
  s. clear ();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x110, %rsp            # imm = 0x110
movq %rsi, %rbx
movq %rdi, %r14
callq 0xc070
andl $0x0, (%rax)
cmpq $0x0, 0x8(%rbx)
je 0x577cd
movq %rax, %r15
movq %rbx, %rdi
xorl %esi, %esi
callq 0x29e49
testb %al, %al
jne 0x578a1
movq 0x8(%rbx), %r12
movq %r12, %r13
subq $0x1, %r13
jb 0x576bf
movq %r14, %rdi
callq 0x570a4
testb %al, %al
jne 0x576db
andl $0x0, (%r15)
movq 0x30(%r14), %rax
cmpb $0x0, 0x18(%r14,%rax)
jne 0x576f9
movq (%rbx), %rcx
movb -0x1(%rcx,%r12), %cl
movb %cl, 0x18(%r14,%rax)
incq 0x30(%r14)
movq %r13, %r12
jmp 0x57687
andq $0x0, 0x8(%rbx)
movq (%rbx), %rax
movb $0x0, (%rax)
addq $0x110, %rsp            # imm = 0x110
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r12, %rsi
addq $0x110, %rsp            # imm = 0x110
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xc120
callq 0xc6d0
testl %eax, %eax
jne 0x57975
leaq 0xb905(%rip), %rsi      # 0x63012
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x50(%rsp), %rdi
movl $0x1292, %esi           # imm = 0x1292
callq 0xe2d5
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x6a88(%rip), %rdx      # 0x5e1d1
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xe24f
leaq 0xcef3(%rip), %rsi      # 0x64658
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x7151(%rip), %rdx      # 0x5e8cc
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0xcf03(%rip), %rdx      # 0x646ae
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0xf0(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x57975
leaq 0xb831(%rip), %rsi      # 0x63012
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x50(%rsp), %rdi
movl $0x1287, %esi           # imm = 0x1287
callq 0xe2d5
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x69b4(%rip), %rdx      # 0x5e1d1
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xe24f
leaq 0xce1f(%rip), %rsi      # 0x64658
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x707d(%rip), %rdx      # 0x5e8cc
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0xce09(%rip), %rdx      # 0x64688
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0xf0(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x57975
leaq 0xb75d(%rip), %rsi      # 0x63012
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x50(%rsp), %rdi
movl $0x1288, %esi           # imm = 0x1288
callq 0xe2d5
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xe26e
leaq 0x68e0(%rip), %rdx      # 0x5e1d1
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xe24f
leaq 0xcd4b(%rip), %rsi      # 0x64658
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x6fa9(%rip), %rdx      # 0x5e8cc
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe24f
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xe26e
leaq 0xcd43(%rip), %rdx      # 0x64696
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0xf0(%rsp), %rdi
callq 0x101d0
pushq $0x1
popq %rdi
callq 0xc6f0
jmp 0x57991
jmp 0x579a3
jmp 0x57991
jmp 0x579a3
jmp 0x579b9
jmp 0x579b9
jmp 0x579cc
jmp 0x579cc
jmp 0x579df
jmp 0x579df
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0xcbe8
jmp 0x579a6
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xcbe8
jmp 0x579bc
jmp 0x579f5
jmp 0x579f5
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xcbe8
jmp 0x579cf
jmp 0x57a07
jmp 0x57a07
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xcbe8
jmp 0x579e2
jmp 0x57a16
jmp 0x57a16
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xcbe8
jmp 0x579f8
jmp 0x57a25
jmp 0x57a25
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xcbe8
jmp 0x57a0a
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xcbe8
jmp 0x57a19
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xcbe8
jmp 0x57a28
movq %rax, %rbx
movq %rbx, %rdi
callq 0xcaa0