// File: ncbi[P]amr/common.cpp
// Function: Common_sp::IFStream::IFStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
IFStream::IFStream (const string &pathName)
{ 
  switch (getFiletype (pathName, true))
  {
    case Filetype::none: throw runtime_error ("Cannot open " + shellQuote (pathName));
    case Filetype::disk: throw runtime_error ("Cannot open a disk as a file: " + shellQuote (pathName));
    case Filetype::dir:  throw runtime_error ("Cannot open a directory as a file: " + shellQuote (pathName));
    case Filetype::link: ERROR; break;
    default: break;
  }
	open (pathName);
  if (! good ())
    throw runtime_error ("Cannot open file " + shellQuote (pathName));
}

// Assembly:
subq $0x328, %rsp            # imm = 0x328
movq %rdi, 0x320(%rsp)
movq %rsi, 0x318(%rsp)
movq 0x320(%rsp), %rdi
movq %rdi, 0x50(%rsp)
addq $0x100, %rdi            # imm = 0x100
callq 0xc2b0
movq 0x50(%rsp), %rdi
leaq 0xab2dc(%rip), %rsi     # 0x1044f8
callq 0xc070
jmp 0x59223
movq 0x50(%rsp), %rax
leaq 0xab289(%rip), %rcx     # 0x1044b8
movq %rcx, (%rax)
leaq 0xab2a7(%rip), %rcx     # 0x1044e0
movq %rcx, 0x100(%rax)
movq 0x318(%rsp), %rdi
movl $0x1, %esi
callq 0x43f40
movl %eax, 0x4c(%rsp)
jmp 0x59258
movl 0x4c(%rsp), %eax
movl %eax, %ecx
movq %rcx, 0x40(%rsp)
subl $0x6, %eax
ja 0x598d6
movq 0x40(%rsp), %rax
leaq 0x74404(%rip), %rcx     # 0xcd67c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59a55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59a40
movb $0x1, 0x2a7(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x38(%rsp)
movq 0x318(%rsp), %rsi
leaq 0x2a8(%rsp), %rdi
callq 0xc320
jmp 0x592e1
leaq 0x2c8(%rsp), %rdi
leaq 0x2a8(%rsp), %rsi
callq 0x2d3d0
jmp 0x592f8
leaq 0x7593e(%rip), %rsi     # 0xcec3d
leaq 0x2e8(%rsp), %rdi
leaq 0x2c8(%rsp), %rdx
callq 0x2a340
jmp 0x59316
movq 0x38(%rsp), %rdi
leaq 0x2e8(%rsp), %rsi
callq 0xcbb0
jmp 0x5932a
movq 0x38(%rsp), %rdi
movb $0x0, 0x2a7(%rsp)
movq 0xaccb2(%rip), %rsi     # 0x105ff0
movq 0xacc2b(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x59a73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x593cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x593bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x593b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
leaq 0x2e8(%rsp), %rdi
callq 0xce98
leaq 0x2c8(%rsp), %rdi
callq 0xce98
leaq 0x2a8(%rsp), %rdi
callq 0xce98
testb $0x1, 0x2a7(%rsp)
jne 0x593d8
jmp 0x593e2
movq 0x38(%rsp), %rdi
callq 0xc580
jmp 0x59a40
movb $0x1, 0x23f(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x30(%rsp)
movq 0x318(%rsp), %rsi
leaq 0x240(%rsp), %rdi
callq 0xc320
jmp 0x59415
leaq 0x260(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x2d3d0
jmp 0x5942c
leaq 0x75817(%rip), %rsi     # 0xcec4a
leaq 0x280(%rsp), %rdi
leaq 0x260(%rsp), %rdx
callq 0x2a340
jmp 0x5944a
movq 0x30(%rsp), %rdi
leaq 0x280(%rsp), %rsi
callq 0xcbb0
jmp 0x5945e
movq 0x30(%rsp), %rdi
movb $0x0, 0x23f(%rsp)
movq 0xacb7e(%rip), %rsi     # 0x105ff0
movq 0xacaf7(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x59a73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x594f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x594e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
leaq 0x280(%rsp), %rdi
callq 0xce98
leaq 0x260(%rsp), %rdi
callq 0xce98
leaq 0x240(%rsp), %rdi
callq 0xce98
testb $0x1, 0x23f(%rsp)
jne 0x5950c
jmp 0x59516
movq 0x30(%rsp), %rdi
callq 0xc580
jmp 0x59a40
movb $0x1, 0x1d7(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x28(%rsp)
movq 0x318(%rsp), %rsi
leaq 0x1d8(%rsp), %rdi
callq 0xc320
jmp 0x59549
leaq 0x1f8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x2d3d0
jmp 0x59560
leaq 0x75702(%rip), %rsi     # 0xcec69
leaq 0x218(%rsp), %rdi
leaq 0x1f8(%rsp), %rdx
callq 0x2a340
jmp 0x5957e
movq 0x28(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0xcbb0
jmp 0x59592
movq 0x28(%rsp), %rdi
movb $0x0, 0x1d7(%rsp)
movq 0xaca4a(%rip), %rsi     # 0x105ff0
movq 0xac9c3(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x59a73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59634
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59627
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x5961a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
leaq 0x218(%rsp), %rdi
callq 0xce98
leaq 0x1f8(%rsp), %rdi
callq 0xce98
leaq 0x1d8(%rsp), %rdi
callq 0xce98
testb $0x1, 0x1d7(%rsp)
jne 0x59640
jmp 0x5964a
movq 0x28(%rsp), %rdi
callq 0xc580
jmp 0x59a40
callq 0xc8c0
cmpl $0x0, %eax
jne 0x598cc
leaq 0x12f(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xcd00
movq 0x20(%rsp), %rdx
leaq 0x7439e(%rip), %rsi     # 0xcda19
leaq 0x130(%rsp), %rdi
callq 0x29fd0
jmp 0x5968a
leaq 0x108(%rsp), %rdi
movl $0xb6a, %esi            # imm = 0xB6A
callq 0x2ded0
jmp 0x5969e
leaq 0x150(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0x2dde0
jmp 0x596bd
leaq 0x724dd(%rip), %rdx     # 0xcbba1
leaq 0x170(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x2a2f0
jmp 0x596db
leaq 0xc7(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xcd00
movq 0x18(%rsp), %rdx
leaq 0x75594(%rip), %rsi     # 0xcec8d
leaq 0xc8(%rsp), %rdi
callq 0x29fd0
jmp 0x59708
leaq 0x74307(%rip), %rdx     # 0xcda16
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x2a2f0
jmp 0x59726
leaq 0x190(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x2dde0
jmp 0x59745
leaq 0x74a3d(%rip), %rdx     # 0xce189
leaq 0x1b0(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0x2a2f0
jmp 0x59763
leaq 0x1b0(%rsp), %rdi
callq 0x3e9b0
jmp 0x59772
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x598ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x598ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x598a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59893
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59879
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x5986c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x5985f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59852
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
leaq 0x1b0(%rsp), %rdi
callq 0xce98
leaq 0x190(%rsp), %rdi
callq 0xce98
leaq 0xe8(%rsp), %rdi
callq 0xce98
leaq 0xc8(%rsp), %rdi
callq 0xce98
leaq 0xc7(%rsp), %rdi
callq 0xc7a0
leaq 0x170(%rsp), %rdi
callq 0xce98
leaq 0x150(%rsp), %rdi
callq 0xce98
leaq 0x108(%rsp), %rdi
callq 0xce98
leaq 0x130(%rsp), %rdi
callq 0xce98
leaq 0x12f(%rsp), %rdi
callq 0xc7a0
jmp 0x59a40
movl $0x1, %edi
callq 0xc8d0
jmp 0x598d8
movq 0x50(%rsp), %rdi
movq 0x318(%rsp), %rsi
movl $0x8, %edx
callq 0xc630
jmp 0x598f1
movq 0x50(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xcc60
movb %al, 0x17(%rsp)
jmp 0x5990b
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x59a38
jmp 0x59919
movb $0x1, 0x5f(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x8(%rsp)
movq 0x318(%rsp), %rsi
leaq 0x60(%rsp), %rdi
callq 0xc320
jmp 0x59941
leaq 0x80(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2d3d0
jmp 0x59955
leaq 0x743c3(%rip), %rsi     # 0xcdd1f
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x2a340
jmp 0x59973
movq 0x8(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xcbb0
jmp 0x59987
movq 0x8(%rsp), %rdi
movb $0x0, 0x5f(%rsp)
movq 0xac658(%rip), %rsi     # 0x105ff0
movq 0xac5d1(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x59a73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59a23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59a19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
jmp 0x59a0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x310(%rsp)
movl %eax, 0x30c(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0xce98
leaq 0x80(%rsp), %rdi
callq 0xce98
leaq 0x60(%rsp), %rdi
callq 0xce98
testb $0x1, 0x5f(%rsp)
jne 0x59a2c
jmp 0x59a36
movq 0x8(%rsp), %rdi
callq 0xc580
jmp 0x59a40
addq $0x328, %rsp            # imm = 0x328
retq
movq 0x50(%rsp), %rdi
leaq 0xaaaa4(%rip), %rsi     # 0x1044f0
addq $0x8, %rsi
callq 0xcdb0
movq 0x50(%rsp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0xcd30
movq 0x310(%rsp), %rdi
callq 0xccf0
nopw %cs:(%rax,%rax)