// File: /workspace/github_cpp_makefile_star2_O1/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 %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %edi, %ebx
leal -0x1(%rbx), %eax
cmpl $0x6, %eax
ja 0x15fdc
movq %rsi, %r14
leaq 0x3d470(%rip), %rcx     # 0x53248
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rdx, %r15
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x58465(%rip), %ecx     # 0x6e25c
movl 0x5845a(%rip), %r8d     # 0x6e258
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1faac
leaq 0x54b8d(%rip), %rax     # 0x6a9a0
jmp 0x15f9c
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x58431(%rip), %ecx     # 0x6e25c
movl 0x58426(%rip), %r8d     # 0x6e258
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1faac
leaq 0x54bc2(%rip), %rax     # 0x6aa08
addq $0x10, %rax
movq %rax, (%rbx)
movw $0x0, 0x200a3(%rbx)
movb $0x0, 0x200a5(%rbx)
jmp 0x15fd0
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x583e7(%rip), %ecx     # 0x6e25c
movl 0x583dc(%rip), %r8d     # 0x6e258
movb 0x583ed(%rip), %bpl     # 0x6e270
movb 0x583e7(%rip), %r15b    # 0x6e271
movb 0x583e1(%rip), %r12b    # 0x6e272
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1faac
leaq 0x54c33(%rip), %rax     # 0x6aad8
addq $0x10, %rax
movq %rax, (%rbx)
movb $0x1, 0x200a3(%rbx)
movb %bpl, 0x200a4(%rbx)
movb %r15b, 0x200a5(%rbx)
movb %r12b, 0x200a6(%rbx)
movb $0x0, 0x200a7(%rbx)
jmp 0x15fd0
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x58375(%rip), %ecx     # 0x6e25c
movl 0x5836a(%rip), %r8d     # 0x6e258
movb 0x5837b(%rip), %bpl     # 0x6e270
movb 0x58375(%rip), %r15b    # 0x6e271
movb 0x5836f(%rip), %r12b    # 0x6e272
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1faac
leaq 0x54bc1(%rip), %rax     # 0x6aad8
addq $0x10, %rax
movq %rax, (%rbx)
movb $0x1, %al
movb %al, 0x200a3(%rbx)
movb %bpl, 0x200a4(%rbx)
movb %r15b, 0x200a5(%rbx)
movb %r12b, 0x200a6(%rbx)
movb %al, 0x200a7(%rbx)
jmp 0x15fd0
movl $0x20518, %edi          # imm = 0x20518
callq 0x94b0
movq %rax, %rbx
movq 0x583ae(%rip), %rdx     # 0x6e308
movq 0x583af(%rip), %rcx     # 0x6e310
movq %rax, %rdi
movq %r14, %rsi
callq 0x1f9f6
jmp 0x15fd0
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x582db(%rip), %ecx     # 0x6e25c
movl 0x582d0(%rip), %r8d     # 0x6e258
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1faac
leaq 0x54ba4(%rip), %rax     # 0x6ab40
addq $0x10, %rax
movq %rax, (%rbx)
movb $0x1, 0x200a3(%rbx)
jmp 0x15fd0
movl $0x88, %edi
callq 0x94b0
movq %rax, %rbx
movl 0x5829d(%rip), %edx     # 0x6e25c
movl 0x58293(%rip), %ecx     # 0x6e258
movq %rax, %rdi
movq %r14, %rsi
callq 0x4caae
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x5500d(%rip), %rdi     # 0x6aff0
leaq 0x40342(%rip), %rsi     # 0x5632c
callq 0x9490
movq %rax, %rdi
movl %ebx, %esi
callq 0x9910
movq %rax, %rdi
callq 0x91f0
movl $0x4, %edi
callq 0x9200
movl $0x1, (%rax)
movq 0x54f20(%rip), %rsi     # 0x6af38
movq %rax, %rdi
xorl %edx, %edx
callq 0x98f0
movq %rax, %r14
movl $0x88, %esi
jmp 0x16046
jmp 0x1603e
movq %rax, %r14
movl $0x20518, %esi          # imm = 0x20518
jmp 0x16046
jmp 0x1603e
jmp 0x1603e
jmp 0x1603e
movq %rax, %r14
movl $0x200a8, %esi          # imm = 0x200A8
movq %rbx, %rdi
callq 0x94c0
movq %r14, %rdi
callq 0x9930