// File: ncbi[P]amr/seq.cpp
// Function: Seq_sp::KmerIndex::IdRecord::IdRecord(std::basic_fstream<char, std::char_traits<char>>&, unsigned long, bool)
KmerIndex::IdRecord::IdRecord (fstream &f_arg,
                               Addr addr_arg,
                               bool isNew)
: f (f_arg)
, addr (addr_arg)
{ 
  ASSERT (addr != nil);
  
  if (isNew)
  {
    FOR (size_t, i, textSize)
      text [i] = no_char;
    ASSERT (! full ());
  }
  else
  {
    f. seekg ((streamoff) addr);
    readBin (f, prev);
    FOR (size_t, i, textSize)
      f. get (text [i]);
    start = getStart ();
    QC_ASSERT (start);
  }
}

// Assembly:
subq $0x3c8, %rsp            # imm = 0x3C8
movb %cl, %al
movq %rdi, 0x3c0(%rsp)
movq %rsi, 0x3b8(%rsp)
movq %rdx, 0x3b0(%rsp)
andb $0x1, %al
movb %al, 0x3af(%rsp)
movq 0x3c0(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x3b8(%rsp), %rcx
movq %rcx, (%rax)
movq 0x3b0(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq $-0x1, 0x10(%rax)
movq $0x0, 0x30(%rax)
callq 0xd0a0
movq %rax, %rcx
movq 0x40(%rsp), %rax
movl $0x0, (%rcx)
cmpq $-0x1, 0x8(%rax)
jne 0xccba3
callq 0xd8c0
cmpl $0x0, %eax
jne 0xccb99
leaq 0x307(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xdd50
movq 0x38(%rsp), %rdx
leaq 0x1bafe(%rip), %rsi     # 0xe8446
leaq 0x308(%rsp), %rdi
callq 0xfae0
jmp 0xcc957
leaq 0x2d0(%rsp), %rdi
movl $0x1241, %esi           # imm = 0x1241
callq 0x11600
jmp 0xcc96b
leaq 0x328(%rsp), %rdi
leaq 0x308(%rsp), %rsi
leaq 0x2d0(%rsp), %rdx
callq 0x11510
jmp 0xcc98a
leaq 0x16840(%rip), %rdx     # 0xe31d1
leaq 0x348(%rsp), %rdi
leaq 0x328(%rsp), %rsi
callq 0x114c0
jmp 0xcc9a8
leaq 0x28f(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xdd50
movq 0x30(%rsp), %rdx
leaq 0x1d026(%rip), %rsi     # 0xe99ec
leaq 0x290(%rsp), %rdi
callq 0xfae0
jmp 0xcc9d5
leaq 0x16fc8(%rip), %rdx     # 0xe39a4
leaq 0x2b0(%rsp), %rdi
leaq 0x290(%rsp), %rsi
callq 0x114c0
jmp 0xcc9f3
leaq 0x368(%rsp), %rdi
leaq 0x348(%rsp), %rsi
leaq 0x2b0(%rsp), %rdx
callq 0x11510
jmp 0xcca12
leaq 0x1d010(%rip), %rdx     # 0xe9a29
leaq 0x388(%rsp), %rdi
leaq 0x368(%rsp), %rsi
callq 0x114c0
jmp 0xcca30
leaq 0x388(%rsp), %rdi
callq 0x173d0
jmp 0xcca3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xccb1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
leaq 0x388(%rsp), %rdi
callq 0xdf08
leaq 0x368(%rsp), %rdi
callq 0xdf08
leaq 0x2b0(%rsp), %rdi
callq 0xdf08
leaq 0x290(%rsp), %rdi
callq 0xdf08
leaq 0x28f(%rsp), %rdi
callq 0xd7a0
leaq 0x348(%rsp), %rdi
callq 0xdf08
leaq 0x328(%rsp), %rdi
callq 0xdf08
leaq 0x2d0(%rsp), %rdi
callq 0xdf08
leaq 0x308(%rsp), %rdi
callq 0xdf08
leaq 0x307(%rsp), %rdi
callq 0xd7a0
jmp 0xcd1d3
movl $0x1, %edi
callq 0xd8e0
testb $0x1, 0x3af(%rsp)
je 0xcce9a
movq $0x0, 0x280(%rsp)
cmpq $0x18, 0x280(%rsp)
jae 0xccbf0
movq 0x40(%rsp), %rax
movq 0x280(%rsp), %rcx
movb $0x0, 0x18(%rax,%rcx)
movq 0x280(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x280(%rsp)
jmp 0xccbbd
callq 0xd0a0
movq 0x40(%rsp), %rdi
movl $0x0, (%rax)
callq 0xcd1e0
testb $0x1, %al
jne 0xccc0e
jmp 0xcce95
callq 0xd8c0
cmpl $0x0, %eax
jne 0xcce8b
leaq 0x1df(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xdd50
movq 0x28(%rsp), %rdx
leaq 0x1b80c(%rip), %rsi     # 0xe8446
leaq 0x1e0(%rsp), %rdi
callq 0xfae0
jmp 0xccc49
leaq 0x1b8(%rsp), %rdi
movl $0x1247, %esi           # imm = 0x1247
callq 0x11600
jmp 0xccc5d
leaq 0x200(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
callq 0x11510
jmp 0xccc7c
leaq 0x1654e(%rip), %rdx     # 0xe31d1
leaq 0x220(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x114c0
jmp 0xccc9a
leaq 0x177(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xdd50
movq 0x20(%rsp), %rdx
leaq 0x1cd34(%rip), %rsi     # 0xe99ec
leaq 0x178(%rsp), %rdi
callq 0xfae0
jmp 0xcccc7
leaq 0x16cd6(%rip), %rdx     # 0xe39a4
leaq 0x198(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x114c0
jmp 0xccce5
leaq 0x240(%rsp), %rdi
leaq 0x220(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x11510
jmp 0xccd04
leaq 0x1cd2a(%rip), %rdx     # 0xe9a35
leaq 0x260(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x114c0
jmp 0xccd22
leaq 0x260(%rsp), %rdi
callq 0x173d0
jmp 0xccd31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcce11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
leaq 0x260(%rsp), %rdi
callq 0xdf08
leaq 0x240(%rsp), %rdi
callq 0xdf08
leaq 0x198(%rsp), %rdi
callq 0xdf08
leaq 0x178(%rsp), %rdi
callq 0xdf08
leaq 0x177(%rsp), %rdi
callq 0xd7a0
leaq 0x220(%rsp), %rdi
callq 0xdf08
leaq 0x200(%rsp), %rdi
callq 0xdf08
leaq 0x1b8(%rsp), %rdi
callq 0xdf08
leaq 0x1e0(%rsp), %rdi
callq 0xdf08
leaq 0x1df(%rsp), %rdi
callq 0xd7a0
jmp 0xcd1d3
movl $0x1, %edi
callq 0xd8e0
jmp 0xcd1cb
movq 0x40(%rsp), %rax
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rsi
leaq 0x160(%rsp), %rdi
callq 0x4d0e0
movq 0x18(%rsp), %rdi
movq 0x160(%rsp), %rsi
movq 0x168(%rsp), %rdx
callq 0xd960
movq 0x40(%rsp), %rsi
movq (%rsi), %rdi
addq $0x10, %rsi
callq 0xd8f80
movq $0x0, 0x158(%rsp)
cmpq $0x18, 0x158(%rsp)
jae 0xccf29
movq 0x40(%rsp), %rsi
movq (%rsi), %rdi
addq $0x18, %rsi
addq 0x158(%rsp), %rsi
callq 0xda40
movq 0x158(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x158(%rsp)
jmp 0xcceef
movq 0x40(%rsp), %rdi
callq 0xcd4b0
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x30(%rax)
callq 0xd0a0
movq %rax, %rcx
movq 0x40(%rsp), %rax
movl $0x0, (%rcx)
cmpq $0x0, 0x30(%rax)
jne 0xcd1c9
callq 0xd8c0
cmpl $0x0, %eax
jne 0xcd1bf
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xdd50
movq 0x10(%rsp), %rdx
leaq 0x1b4bd(%rip), %rsi     # 0xe8446
leaq 0xb8(%rsp), %rdi
callq 0xfae0
jmp 0xccf98
leaq 0x90(%rsp), %rdi
movl $0x1250, %esi           # imm = 0x1250
callq 0x11600
jmp 0xccfac
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0x11510
jmp 0xccfcb
leaq 0x161ff(%rip), %rdx     # 0xe31d1
leaq 0xf8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x114c0
jmp 0xccfe9
leaq 0x4f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xdd50
movq 0x8(%rsp), %rdx
leaq 0x1c9e8(%rip), %rsi     # 0xe99ec
leaq 0x50(%rsp), %rdi
callq 0xfae0
jmp 0xcd010
leaq 0x1698d(%rip), %rdx     # 0xe39a4
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x114c0
jmp 0xcd028
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x11510
jmp 0xcd044
leaq 0x1c061(%rip), %rdx     # 0xe90ac
leaq 0x138(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x114c0
jmp 0xcd062
leaq 0x138(%rsp), %rdi
callq 0x173d0
jmp 0xcd071
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd1b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd1a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd196
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd189
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd172
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd168
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd15e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0xcd151
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
leaq 0x138(%rsp), %rdi
callq 0xdf08
leaq 0x118(%rsp), %rdi
callq 0xdf08
leaq 0x70(%rsp), %rdi
callq 0xdf08
leaq 0x50(%rsp), %rdi
callq 0xdf08
leaq 0x4f(%rsp), %rdi
callq 0xd7a0
leaq 0xf8(%rsp), %rdi
callq 0xdf08
leaq 0xd8(%rsp), %rdi
callq 0xdf08
leaq 0x90(%rsp), %rdi
callq 0xdf08
leaq 0xb8(%rsp), %rdi
callq 0xdf08
leaq 0xb7(%rsp), %rdi
callq 0xd7a0
jmp 0xcd1d3
movl $0x1, %edi
callq 0xd8e0
jmp 0xcd1cb
addq $0x3c8, %rsp            # imm = 0x3C8
retq
movq 0x2f8(%rsp), %rdi
callq 0xdd40