// File: /workspace/github_cpp_makefile_star2_O3/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 0x15e8c
movq %rsi, %r14
leaq 0x3c5c0(%rip), %rcx     # 0x52248
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rdx, %r15
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x575b5(%rip), %ecx     # 0x6d25c
movl 0x575aa(%rip), %r8d     # 0x6d258
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1f86c
leaq 0x53ca5(%rip), %rax     # 0x69968
jmp 0x15e4c
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x57581(%rip), %ecx     # 0x6d25c
movl 0x57576(%rip), %r8d     # 0x6d258
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1f86c
leaq 0x53cda(%rip), %rax     # 0x699d0
addq $0x10, %rax
movq %rax, (%rbx)
movw $0x0, 0x200a3(%rbx)
movb $0x0, 0x200a5(%rbx)
jmp 0x15e80
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x57537(%rip), %ecx     # 0x6d25c
movl 0x5752c(%rip), %r8d     # 0x6d258
movb 0x5753d(%rip), %bpl     # 0x6d270
movb 0x57537(%rip), %r15b    # 0x6d271
movb 0x57531(%rip), %r12b    # 0x6d272
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1f86c
leaq 0x53d4b(%rip), %rax     # 0x69aa0
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 0x15e80
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x574c5(%rip), %ecx     # 0x6d25c
movl 0x574ba(%rip), %r8d     # 0x6d258
movb 0x574cb(%rip), %bpl     # 0x6d270
movb 0x574c5(%rip), %r15b    # 0x6d271
movb 0x574bf(%rip), %r12b    # 0x6d272
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1f86c
leaq 0x53cd9(%rip), %rax     # 0x69aa0
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 0x15e80
movl $0x20518, %edi          # imm = 0x20518
callq 0x94b0
movq %rax, %rbx
movq 0x574fe(%rip), %rdx     # 0x6d308
movq 0x574ff(%rip), %rcx     # 0x6d310
movq %rax, %rdi
movq %r14, %rsi
callq 0x1f7b6
jmp 0x15e80
movl $0x200a8, %edi          # imm = 0x200A8
callq 0x94b0
movq %rax, %rbx
movl 0x5742b(%rip), %ecx     # 0x6d25c
movl 0x57420(%rip), %r8d     # 0x6d258
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1f86c
leaq 0x53cbc(%rip), %rax     # 0x69b08
addq $0x10, %rax
movq %rax, (%rbx)
movb $0x1, 0x200a3(%rbx)
jmp 0x15e80
movl $0x88, %edi
callq 0x94b0
movq %rax, %rbx
movl 0x573ed(%rip), %edx     # 0x6d25c
movl 0x573e3(%rip), %ecx     # 0x6d258
movq %rax, %rdi
movq %r14, %rsi
callq 0x4b6e6
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x5415d(%rip), %rdi     # 0x69ff0
leaq 0x3f572(%rip), %rsi     # 0x5540c
callq 0x9490
movq %rax, %rdi
movl %ebx, %esi
callq 0x9910
movq %rax, %rdi
callq 0x91f0
movl $0x4, %edi
callq 0x9200
movl $0x1, (%rax)
movq 0x54070(%rip), %rsi     # 0x69f38
movq %rax, %rdi
xorl %edx, %edx
callq 0x98f0
movq %rax, %r14
movl $0x88, %esi
jmp 0x15ef6
jmp 0x15eee
movq %rax, %r14
movl $0x20518, %esi          # imm = 0x20518
jmp 0x15ef6
jmp 0x15eee
jmp 0x15eee
jmp 0x15eee
movq %rax, %r14
movl $0x200a8, %esi          # imm = 0x200A8
movq %rbx, %rdi
callq 0x94c0
movq %r14, %rdi
callq 0x9930