// File: /workspace/github_cpp_makefile_star2_O2/BenLangmead[P]bowtie/ebwt_search.cpp
// Function: patsrcFromStrings(int, 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*)
static PatternSource*
patsrcFromStrings(int format,
                  const EList<string>& reads,
                  const EList<string>* quals)
{
	switch(format) {
		case FASTA:
			return new FastaPatternSource (reads, quals,
			                               trim3, trim5);
		case FASTA_CONT:
			return new FastaContinuousPatternSource (
			                               reads, fastaContLen,
			                               fastaContFreq);
		case RAW:
			return new RawPatternSource   (reads, trim3, trim5);
		case FASTQ:
			return new FastqPatternSource (reads, trim3, trim5,
			                               solexaQuals, phred64Quals,
			                               integerQuals);
		case INTERLEAVED:
			return new FastqPatternSource (reads, trim3, trim5,
			                               solexaQuals, phred64Quals,
			                               integerQuals, true /* is interleaved */);
		case TAB_MATE:
			return new TabbedPatternSource(reads, false, trim3, trim5);
		case CMDLINE:
			return new VectorPatternSource(reads, trim3, trim5);
		default: {
			cerr << "Internal error; bad patsrc format: " << format << endl;
			throw 1;
		}
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movl %edi, %ebx
leal -0x1(%rbx), %eax
cmpl $0x6, %eax
ja 0x12a8c
movq %rsi, %r14
leaq 0x34945(%rip), %rcx     # 0x47248
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rdx, %r15
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x9500
movq %rax, %rbx
movl 0x5294a(%rip), %ecx     # 0x6526c
movl 0x5293f(%rip), %r8d     # 0x65268
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x192fc
jmp 0x12a83
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x9500
movq %rax, %rbx
movl 0x5291d(%rip), %ecx     # 0x6526c
movl 0x52912(%rip), %r8d     # 0x65268
subq $0x10, %rsp
andl $0x0, 0x8(%rsp)
andl $0x0, (%rsp)
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %r9d, %r9d
callq 0x1944a
popq %rax
popq %rcx
jmp 0x12a83
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x9500
movq %rax, %rbx
movl 0x528df(%rip), %edx     # 0x6526c
movl 0x528d5(%rip), %ecx     # 0x65268
movzbl 0x528e5(%rip), %r8d     # 0x65280
movzbl 0x528de(%rip), %r9d     # 0x65281
movzbl 0x528d8(%rip), %eax     # 0x65282
subq $0x8, %rsp
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x0
pushq $0x0
pushq %rax
callq 0x193e8
addq $0x20, %rsp
jmp 0x12a83
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x9500
movq %rax, %rbx
movl 0x52892(%rip), %edx     # 0x6526c
movl 0x52888(%rip), %ecx     # 0x65268
movzbl 0x52898(%rip), %r8d     # 0x65280
movzbl 0x52891(%rip), %r9d     # 0x65281
movzbl 0x5288b(%rip), %eax     # 0x65282
subq $0x8, %rsp
movq %rbx, %rdi
movq %r14, %rsi
pushq $0x0
pushq $0x1
pushq %rax
callq 0x193e8
addq $0x20, %rsp
jmp 0x12a83
movl $0x20518, %edi          # imm = 0x20518
callq 0x9500
movq %rax, %rbx
movq 0x528f3(%rip), %rdx     # 0x65318
movq 0x528f4(%rip), %rcx     # 0x65320
movq %rax, %rdi
movq %r14, %rsi
callq 0x1931c
jmp 0x12a83
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x9500
movq %rax, %rbx
movl 0x52820(%rip), %edx     # 0x6526c
movl 0x52816(%rip), %ecx     # 0x65268
movq %rax, %rdi
movq %r14, %rsi
callq 0x193c0
jmp 0x12a83
movl $0x88, %edi
callq 0x9500
movq %rax, %rbx
movl 0x527fa(%rip), %edx     # 0x6526c
movl 0x527f0(%rip), %ecx     # 0x65268
movq %rax, %rdi
movq %r14, %rsi
callq 0x4180c
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
movq 0x4f55d(%rip), %rdi     # 0x61ff0
leaq 0x378dd(%rip), %rsi     # 0x4a377
callq 0x94e0
movq %rax, %rdi
movl %ebx, %esi
callq 0x9930
movq %rax, %rdi
callq 0x9210
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4f492(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
movq %rax, %r14
movl $0x88, %esi
jmp 0x12af4
jmp 0x12aec
movq %rax, %r14
movl $0x20518, %esi          # imm = 0x20518
jmp 0x12af4
jmp 0x12aec
jmp 0x12aec
jmp 0x12aec
movq %rax, %r14
movl $0x200a8, %esi          # imm = 0x200A8
movq %rbx, %rdi
callq 0x9510
movq %r14, %rdi
callq 0x9950