// File: /workspace/github_cpp_makefile_star2_O1/BenLangmead[P]bowtie/./ebwt.h
// Function: readFlags(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static inline int32_t readFlags(const string& instr) {
	ifstream in;
	// Initialize our primary and secondary input-stream fields
	in.open((instr + ".1." + gEbwt_ext).c_str(), ios_base::in | ios::binary);
	if(!in.is_open()) {
		throw EbwtFileOpenException("Cannot open file " + instr);
	}
	assert(in.is_open());
	assert(in.good());
	bool switchEndian = false;
	uint32_t one = readU<uint32_t>(in, switchEndian); // 1st word of primary stream
	if(one != 1) {
		assert_eq((1u<<24), one);
		assert_eq(1, endianSwapU32(one));
		switchEndian = true;
	}
	readU<TIndexOffU>(in, switchEndian);
	readI<int32_t>(in, switchEndian);
	readI<int32_t>(in, switchEndian);
	readI<int32_t>(in, switchEndian);
	readI<int32_t>(in, switchEndian);
	int32_t flags = readI<int32_t>(in, switchEndian);
	return flags;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
movq %rdi, %rbx
leaq 0x40(%rsp), %rdi
callq 0x43a0
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0x21b84
leaq 0x2281e(%rip), %rsi     # 0x2f647
leaq 0x20(%rsp), %rdi
callq 0x46a0
leaq 0x2c2b6(%rip), %rax     # 0x390f0
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
callq 0x4110
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xce71
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xce78
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
leaq 0x40(%rsp), %rdi
movl $0xc, %edx
callq 0x41b0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xceb9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xced0
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0xb8(%rsp), %rdi
callq 0x40b0
testb %al, %al
je 0xcfc5
movq 0x40(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x60(%rsp,%rax)
jne 0xd014
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
movl $0x4, %edx
callq 0x4410
cmpq $0x4, 0x48(%rsp)
jne 0xd033
movl (%rsp), %ebx
cmpq $0x1, %rbx
je 0xcf2c
cmpl $0x1000000, %ebx        # imm = 0x1000000
jne 0xd30e
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
movl $0x8, %edx
callq 0x4410
cmpq $0x8, 0x48(%rsp)
jne 0xd19e
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe899
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe899
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe899
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe899
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe899
movl %eax, %ebx
leaq 0x40(%rsp), %rdi
callq 0x40d0
movl %ebx, %eax
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x4160
movq %rax, %r14
leaq 0x222f5(%rip), %rsi     # 0x2f2ce
movq %rsp, %rdi
movq %rbx, %rdx
callq 0x214a9
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x4400
leaq 0x29d17(%rip), %rax     # 0x36d10
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x29ce3(%rip), %rsi     # 0x36ce8
movq 0x29fa4(%rip), %rdx     # 0x36fb0
movq %r14, %rdi
callq 0x45f0
leaq 0x223b9(%rip), %rdi     # 0x2f3d4
leaq 0x200b8(%rip), %rsi     # 0x2d0da
leaq 0x22389(%rip), %rcx     # 0x2f3b2
movl $0xdeb, %edx            # imm = 0xDEB
callq 0x41c0
movq 0x29f7e(%rip), %rdi     # 0x36fb8
leaq 0x200f5(%rip), %rsi     # 0x2d136
movl $0x15, %edx
callq 0x43b0
movq 0x29f66(%rip), %rdi     # 0x36fb8
movl $0x4, %esi
callq 0x41d0
movq %rax, %rbx
leaq 0x200e6(%rip), %rsi     # 0x2d14c
movl $0x4, %edx
movq %rax, %rdi
callq 0x43b0
movq (%rbx), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
movl $0x4, %esi
movq %rbx, %rdi
callq 0x41d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x2, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x2009d(%rip), %rsi     # 0x2d151
movl $0x7, %edx
movq %rbx, %rdi
callq 0x43b0
movq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x42e0
movq %rax, %rbx
leaq 0x20074(%rip), %rsi     # 0x2d14c
movl $0x4, %edx
movq %rax, %rdi
callq 0x43b0
movq (%rbx), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x42e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x2, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x221ef(%rip), %rsi     # 0x2f315
movl $0x1, %edx
movq %rbx, %rdi
callq 0x43b0
movq %rbx, %rdi
callq 0x4150
movq 0x29e76(%rip), %rdi     # 0x36fb8
leaq 0x21b33(%rip), %rsi     # 0x2ec7c
movl $0xb, %edx
callq 0x43b0
movq 0x29e5e(%rip), %rdi     # 0x36fb8
leaq 0x215b7(%rip), %rsi     # 0x2e718
movl $0x1, %edx
callq 0x43b0
movq 0x29e46(%rip), %rdi     # 0x36fb8
movl $0x37, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x2146d(%rip), %rdi     # 0x2e5f8
leaq 0x21aea(%rip), %rsi     # 0x2ec7c
leaq 0x22245(%rip), %rcx     # 0x2f3de
jmp 0xd304
movq 0x29e13(%rip), %rdi     # 0x36fb8
leaq 0x1ff8a(%rip), %rsi     # 0x2d136
movl $0x15, %edx
callq 0x43b0
movq 0x29dfb(%rip), %rdi     # 0x36fb8
movl $0x8, %esi
callq 0x41d0
movq %rax, %rbx
leaq 0x1ff7b(%rip), %rsi     # 0x2d14c
movl $0x4, %edx
movq %rax, %rdi
callq 0x43b0
movq (%rbx), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
movl $0x8, %esi
movq %rbx, %rdi
callq 0x41d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x2, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x1ff32(%rip), %rsi     # 0x2d151
movl $0x7, %edx
movq %rbx, %rdi
callq 0x43b0
movq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x42e0
movq %rax, %rbx
leaq 0x1ff09(%rip), %rsi     # 0x2d14c
movl $0x4, %edx
movq %rax, %rdi
callq 0x43b0
movq (%rbx), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x42e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x2, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x22084(%rip), %rsi     # 0x2f315
movl $0x1, %edx
movq %rbx, %rdi
callq 0x43b0
movq %rbx, %rdi
callq 0x4150
movq 0x29d0b(%rip), %rdi     # 0x36fb8
leaq 0x219c8(%rip), %rsi     # 0x2ec7c
movl $0xb, %edx
callq 0x43b0
movq 0x29cf3(%rip), %rdi     # 0x36fb8
leaq 0x2144c(%rip), %rsi     # 0x2e718
movl $0x1, %edx
callq 0x43b0
movq 0x29cdb(%rip), %rdi     # 0x36fb8
movl $0x37, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x21302(%rip), %rdi     # 0x2e5f8
leaq 0x2197f(%rip), %rsi     # 0x2ec7c
leaq 0x2210b(%rip), %rcx     # 0x2f40f
movl $0x37, %edx
callq 0x41c0
movq 0x29ca3(%rip), %rdi     # 0x36fb8
leaq 0x1fe1a(%rip), %rsi     # 0x2d136
movl $0x15, %edx
callq 0x43b0
movq 0x29c8b(%rip), %rdi     # 0x36fb8
movl $0x1000000, %esi        # imm = 0x1000000
callq 0x41d0
movq %rax, %r14
leaq 0x1fe0b(%rip), %rsi     # 0x2d14c
movl $0x4, %edx
movq %rax, %rdi
callq 0x43b0
movq (%r14), %rax
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%r14,%rax)
movl $0x1000000, %esi        # imm = 0x1000000
movq %r14, %rdi
callq 0x41d0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl $-0x4b, %ecx
orl $0x2, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x1fdbe(%rip), %rsi     # 0x2d151
movl $0x7, %edx
movq %r14, %rdi
callq 0x43b0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x41d0
movq %rax, %r14
leaq 0x1fd97(%rip), %rsi     # 0x2d14c
movl $0x4, %edx
movq %rax, %rdi
callq 0x43b0
movq (%r14), %rax
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%r14,%rax)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x41d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x2, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x21f12(%rip), %rsi     # 0x2f315
movl $0x1, %edx
movq %rbx, %rdi
callq 0x43b0
movq %rbx, %rdi
callq 0x4150
movq 0x29b99(%rip), %rdi     # 0x36fb8
leaq 0x1fcb4(%rip), %rsi     # 0x2d0da
movl $0x8, %edx
callq 0x43b0
movq 0x29b81(%rip), %rdi     # 0x36fb8
leaq 0x212da(%rip), %rsi     # 0x2e718
movl $0x1, %edx
callq 0x43b0
movq 0x29b69(%rip), %rdi     # 0x36fb8
movl $0xdef, %esi            # imm = 0xDEF
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x21190(%rip), %rdi     # 0x2e5f8
leaq 0x1fc6b(%rip), %rsi     # 0x2d0da
leaq 0x21f3c(%rip), %rcx     # 0x2f3b2
movl $0xdef, %edx            # imm = 0xDEF
callq 0x41c0
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd4a1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xd4a1
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0xd4f0
movq %r14, %rdi
callq 0x4210
jmp 0xd4f0
jmp 0xd4ed
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd4d2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xd4d2
jmp 0xd4cf
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xd4f0
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xd4f0
jmp 0xd4ed
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x40d0
movq %rbx, %rdi
callq 0x4620