// File: ncbi[P]amr/seq.cpp
// Function: Seq_sp::KmerIndex::KmerIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
KmerIndex::KmerIndex (const string &name_arg)
: Named (name_arg)
, f (name, ios_base::in | ios_base::out | ios_base::binary)
, canRead (true)
, kmer_size (readKmerSize (f))
, code_max (powInt (2, 2 * kmer_size))
{
  checkFile (name);

  readBin (f, items);

  f. seekg (0, ios_base::end);
  addr_new = (Addr) f. tellg ();

  QC_ASSERT (f. good ());
}

// Assembly:
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdi, 0x1b0(%rsp)
movq %rsi, 0x1a8(%rsp)
movq 0x1b0(%rsp), %rdi
movq %rdi, 0x70(%rsp)
movq 0x1a8(%rsp), %rsi
callq 0x50ee0
movq 0x70(%rsp), %rdi
callq 0xd8fe0
jmp 0xcfbbd
movq 0x70(%rsp), %rax
leaq 0x4ff9f(%rip), %rcx     # 0x11fb68
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x28, %rcx
movq %rcx, 0x58(%rsp)
addq $0x8, %rax
movq %rax, 0x60(%rsp)
movl $0x8, %edi
movl $0x10, %esi
callq 0xd9070
movl %eax, 0x6c(%rsp)
jmp 0xcfbf6
movl 0x6c(%rsp), %edi
movl $0x4, %esi
callq 0xd9070
movl %eax, 0x54(%rsp)
jmp 0xcfc0a
movl 0x54(%rsp), %edx
movq 0x60(%rsp), %rsi
movq 0x58(%rsp), %rdi
callq 0xdc50
jmp 0xcfc1f
movq 0x70(%rsp), %rdi
movb $0x1, 0x238(%rdi)
movq %rdi, %rax
addq $0x240, %rax            # imm = 0x240
movq %rax, 0x40(%rsp)
addq $0x28, %rdi
callq 0xd0080
movq %rax, 0x48(%rsp)
jmp 0xcfc49
movq 0x70(%rsp), %rax
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x248, %rcx            # imm = 0x248
movq %rcx, 0x30(%rsp)
movq 0x240(%rax), %rsi
addq %rsi, %rsi
movl $0x2, %edi
callq 0x18370
movq %rax, 0x38(%rsp)
jmp 0xcfc85
movq 0x70(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
movq %rcx, (%rax)
movq $0x0, 0x250(%rdi)
movq $0x0, 0x258(%rdi)
addq $0x8, %rdi
callq 0xd90c0
jmp 0xcfcb8
movq 0x70(%rsp), %rsi
movq %rsi, %rdi
addq $0x28, %rdi
addq $0x250, %rsi            # imm = 0x250
callq 0xd8f80
jmp 0xcfcd2
movq 0x70(%rsp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0xda10
jmp 0xcfceb
movq 0x70(%rsp), %rdi
addq $0x28, %rdi
callq 0xdd10
movq %rdx, 0x20(%rsp)
movq %rax, 0x28(%rsp)
jmp 0xcfd05
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rcx, 0x188(%rsp)
movq %rax, 0x190(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x4d0b0
movq %rax, 0x18(%rsp)
jmp 0xcfd33
movq 0x70(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, 0x258(%rax)
callq 0xd0a0
movq %rax, %rcx
movq 0x70(%rsp), %rax
movl $0x0, (%rcx)
movq 0x28(%rax), %rcx
movq -0x18(%rcx), %rcx
leaq 0x28(%rax,%rcx), %rdi
callq 0xdcb0
movb %al, 0x17(%rsp)
jmp 0xcfd6f
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0xd0044
jmp 0xcfd7d
callq 0xd8c0
cmpl $0x0, %eax
jne 0xd003a
leaq 0xe7(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xdd50
movq 0x8(%rsp), %rdx
leaq 0x1869d(%rip), %rsi     # 0xe8446
leaq 0xe8(%rsp), %rdi
callq 0xfae0
jmp 0xcfdb8
leaq 0xc0(%rsp), %rdi
movl $0x12d4, %esi           # imm = 0x12D4
callq 0x11600
jmp 0xcfdcc
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x11510
jmp 0xcfdeb
leaq 0x133df(%rip), %rdx     # 0xe31d1
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x114c0
jmp 0xcfe09
leaq 0x7f(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xdd50
movq (%rsp), %rdx
leaq 0x19db3(%rip), %rsi     # 0xe9bd5
leaq 0x80(%rsp), %rdi
callq 0xfae0
jmp 0xcfe31
leaq 0x13b6c(%rip), %rdx     # 0xe39a4
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x114c0
jmp 0xcfe4f
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x11510
jmp 0xcfe6e
leaq 0x15173(%rip), %rdx     # 0xe4fe8
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x114c0
jmp 0xcfe8c
leaq 0x168(%rsp), %rdi
callq 0x173d0
jmp 0xcfe9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xd0060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xd0056
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xd004c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xd002b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xd001e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xd0011
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xd0004
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xcffed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xcffe0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xcffd3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0xcffc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
leaq 0x168(%rsp), %rdi
callq 0xdf08
leaq 0x148(%rsp), %rdi
callq 0xdf08
leaq 0xa0(%rsp), %rdi
callq 0xdf08
leaq 0x80(%rsp), %rdi
callq 0xdf08
leaq 0x7f(%rsp), %rdi
callq 0xd7a0
leaq 0x128(%rsp), %rdi
callq 0xdf08
leaq 0x108(%rsp), %rdi
callq 0xdf08
leaq 0xc0(%rsp), %rdi
callq 0xdf08
leaq 0xe8(%rsp), %rdi
callq 0xdf08
leaq 0xe7(%rsp), %rdi
callq 0xd7a0
jmp 0xd004c
movl $0x1, %edi
callq 0xd8e0
addq $0x1b8, %rsp            # imm = 0x1B8
retq
movq 0x58(%rsp), %rdi
callq 0xd160
movq 0x70(%rsp), %rdi
callq 0xd90b0
movq 0x70(%rsp), %rdi
callq 0x11050
movq 0x1a0(%rsp), %rdi
callq 0xdd40
nopw (%rax,%rax)