// File: BenLangmead[P]bowtie/./pat.h
// Function: CFilePatternSource::CFilePatternSource(EList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 128> const&, EList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 128> const*, int, int)
CFilePatternSource(
		const EList<string>& infiles,
		const EList<string>* qinfiles,
		int trim3 = 0,
	    int trim5 = 0) :
		TrimmingPatternSource( trim3, trim5),
		infiles_(infiles),
		filecur_(0),
		fp_(NULL),
		qfp_(NULL),
		zfp_(NULL),
		is_open_(false),
		first_(true)
	{
		qinfiles_.clear();
		if(qinfiles != NULL) qinfiles_ = *qinfiles;
		assert_gt(infiles.size(), 0);
		errs_.resize(infiles_.size());
		errs_.fill(0, infiles_.size(), false);
		if(qinfiles_.size() > 0 &&
		   qinfiles_.size() != infiles_.size())
		{
			cerr << "Error: Different numbers of input FASTA/quality files ("
			     << infiles_.size() << "/" << qinfiles_.size() << ")" << endl;
			throw 1;
		}
		open(); // open first file in the list
		filecur_++;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x40(%rbp)
movl -0x1c(%rbp), %esi
movl -0x20(%rbp), %edx
callq 0x2bcd0
movq -0x40(%rbp), %rdi
leaq 0x7bf74(%rip), %rax     # 0xa7950
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x20, %rdi
movq %rdi, -0x38(%rbp)
movq -0x10(%rbp), %rsi
callq 0x2bd20
jmp 0x2b9f6
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
movq %rdi, -0x48(%rbp)
callq 0x27220
jmp 0x2ba09
movq -0x40(%rbp), %rdi
addq $0x60, %rdi
movq %rdi, -0x50(%rbp)
callq 0x2bd70
jmp 0x2ba1c
movq -0x40(%rbp), %rdi
movq $0x0, 0x80(%rdi)
movq $0x0, 0x88(%rdi)
movq $0x0, 0x90(%rdi)
movq $0x0, 0x98(%rdi)
movb $0x0, 0xa0(%rdi)
movb $0x1, 0xa1(%rdi)
addq $0x40, %rdi
callq 0x27dc0
cmpq $0x0, -0x18(%rbp)
je 0x2bacc
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x40, %rdi
callq 0x2bdb0
jmp 0x2ba7d
jmp 0x2bacc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2bcbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2bcb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2bcac
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x2bf80
jmp 0x2bcac
movq -0x40(%rbp), %rdi
movq %rdi, %rax
addq $0x60, %rax
movq %rax, -0x60(%rbp)
addq $0x20, %rdi
callq 0x26400
movq %rax, -0x58(%rbp)
jmp 0x2baea
movq -0x58(%rbp), %rsi
movq -0x60(%rbp), %rdi
callq 0x2bea0
jmp 0x2baf9
movq -0x40(%rbp), %rdi
movq %rdi, %rax
addq $0x60, %rax
movq %rax, -0x70(%rbp)
addq $0x20, %rdi
callq 0x26400
movq %rax, -0x68(%rbp)
jmp 0x2bb17
movq -0x68(%rbp), %rdx
movq -0x70(%rbp), %rdi
movb $0x0, -0x2d(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x2d(%rbp), %rcx
callq 0x2bf20
jmp 0x2bb32
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
callq 0x26400
movq %rax, -0x78(%rbp)
jmp 0x2bb45
movq -0x78(%rbp), %rax
cmpq $0x0, %rax
jbe 0x2bc82
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
callq 0x26400
movq %rax, -0x80(%rbp)
jmp 0x2bb66
movq -0x40(%rbp), %rdi
addq $0x20, %rdi
callq 0x26400
movq %rax, -0x88(%rbp)
jmp 0x2bb7c
movq -0x80(%rbp), %rax
movq -0x88(%rbp), %rcx
cmpq %rcx, %rax
je 0x2bc82
movq 0x7c459(%rip), %rdi     # 0xa7ff0
leaq 0x60adb(%rip), %rsi     # 0x8c679
callq 0xa5d0
movq %rax, -0x90(%rbp)
jmp 0x2bbac
movq -0x40(%rbp), %rdi
addq $0x20, %rdi
callq 0x26400
movq %rax, -0x98(%rbp)
jmp 0x2bbc2
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdi
callq 0xa130
movq %rax, -0xa0(%rbp)
jmp 0x2bbde
movq -0xa0(%rbp), %rdi
leaq 0x5ee69(%rip), %rsi     # 0x8aa55
callq 0xa5d0
movq %rax, -0xa8(%rbp)
jmp 0x2bbfa
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
callq 0x26400
movq %rax, -0xb0(%rbp)
jmp 0x2bc10
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0xa130
movq %rax, -0xb8(%rbp)
jmp 0x2bc2c
movq -0xb8(%rbp), %rdi
leaq 0x61920(%rip), %rsi     # 0x8d55a
callq 0xa5d0
movq %rax, -0xc0(%rbp)
jmp 0x2bc48
movq -0xc0(%rbp), %rdi
movq 0x7c312(%rip), %rsi     # 0xa7f68
callq 0xa640
jmp 0x2bc5d
movl $0x4, %edi
callq 0xa290
movq %rax, %rdi
movl $0x1, (%rdi)
movq 0x7c2d9(%rip), %rsi     # 0xa7f50
xorl %eax, %eax
movl %eax, %edx
callq 0xab10
jmp 0x2bcd0
movq -0x40(%rbp), %rdi
callq 0x7f0e0
jmp 0x2bc8d
movq -0x40(%rbp), %rax
movq 0x80(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x80(%rax)
addq $0xc0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x27260
movq -0x38(%rbp), %rdi
callq 0x27260
movq -0x40(%rbp), %rdi
callq 0x2bfe0
movq -0x28(%rbp), %rdi
callq 0xab60