// File: /workspace/github_cpp_makefile_star2_O3/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 0x21612
leaq 0x21a19(%rip), %rsi     # 0x2e6d7
leaq 0x20(%rsp), %rdi
callq 0x46a0
leaq 0x2c421(%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 0xcd06
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xcd0d
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 0xcd4e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xcd65
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4340
leaq 0xb8(%rsp), %rdi
callq 0x40b0
testb %al, %al
je 0xce5a
movq 0x40(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x60(%rsp,%rax)
jne 0xcea9
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
movl $0x4, %edx
callq 0x4410
cmpq $0x4, 0x48(%rsp)
jne 0xcec8
movl (%rsp), %ebx
cmpq $0x1, %rbx
je 0xcdc1
cmpl $0x1000000, %ebx        # imm = 0x1000000
jne 0xd1a3
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
movl $0x8, %edx
callq 0x4410
cmpq $0x8, 0x48(%rsp)
jne 0xd033
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe71a
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe71a
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe71a
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe71a
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x40(%rsp), %rdi
callq 0xe71a
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 0x214f0(%rip), %rsi     # 0x2e35e
movq %rsp, %rdi
movq %rbx, %rdx
callq 0x20f79
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x4400
leaq 0x29e82(%rip), %rax     # 0x36d10
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x29e4e(%rip), %rsi     # 0x36ce8
movq 0x2a10f(%rip), %rdx     # 0x36fb0
movq %r14, %rdi
callq 0x45f0
leaq 0x215b4(%rip), %rdi     # 0x2e464
leaq 0x1f2b3(%rip), %rsi     # 0x2c16a
leaq 0x21584(%rip), %rcx     # 0x2e442
movl $0xdeb, %edx            # imm = 0xDEB
callq 0x41c0
movq 0x2a0e9(%rip), %rdi     # 0x36fb8
leaq 0x1f2f0(%rip), %rsi     # 0x2c1c6
movl $0x15, %edx
callq 0x43b0
movq 0x2a0d1(%rip), %rdi     # 0x36fb8
movl $0x4, %esi
callq 0x41d0
movq %rax, %rbx
leaq 0x1f2e1(%rip), %rsi     # 0x2c1dc
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 0x1f298(%rip), %rsi     # 0x2c1e1
movl $0x7, %edx
movq %rbx, %rdi
callq 0x43b0
movq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x42e0
movq %rax, %rbx
leaq 0x1f26f(%rip), %rsi     # 0x2c1dc
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 0x213ea(%rip), %rsi     # 0x2e3a5
movl $0x1, %edx
movq %rbx, %rdi
callq 0x43b0
movq %rbx, %rdi
callq 0x4150
movq 0x29fe1(%rip), %rdi     # 0x36fb8
leaq 0x20d2e(%rip), %rsi     # 0x2dd0c
movl $0xb, %edx
callq 0x43b0
movq 0x29fc9(%rip), %rdi     # 0x36fb8
leaq 0x207b2(%rip), %rsi     # 0x2d7a8
movl $0x1, %edx
callq 0x43b0
movq 0x29fb1(%rip), %rdi     # 0x36fb8
movl $0x37, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x20668(%rip), %rdi     # 0x2d688
leaq 0x20ce5(%rip), %rsi     # 0x2dd0c
leaq 0x21440(%rip), %rcx     # 0x2e46e
jmp 0xd199
movq 0x29f7e(%rip), %rdi     # 0x36fb8
leaq 0x1f185(%rip), %rsi     # 0x2c1c6
movl $0x15, %edx
callq 0x43b0
movq 0x29f66(%rip), %rdi     # 0x36fb8
movl $0x8, %esi
callq 0x41d0
movq %rax, %rbx
leaq 0x1f176(%rip), %rsi     # 0x2c1dc
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 0x1f12d(%rip), %rsi     # 0x2c1e1
movl $0x7, %edx
movq %rbx, %rdi
callq 0x43b0
movq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x42e0
movq %rax, %rbx
leaq 0x1f104(%rip), %rsi     # 0x2c1dc
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 0x2127f(%rip), %rsi     # 0x2e3a5
movl $0x1, %edx
movq %rbx, %rdi
callq 0x43b0
movq %rbx, %rdi
callq 0x4150
movq 0x29e76(%rip), %rdi     # 0x36fb8
leaq 0x20bc3(%rip), %rsi     # 0x2dd0c
movl $0xb, %edx
callq 0x43b0
movq 0x29e5e(%rip), %rdi     # 0x36fb8
leaq 0x20647(%rip), %rsi     # 0x2d7a8
movl $0x1, %edx
callq 0x43b0
movq 0x29e46(%rip), %rdi     # 0x36fb8
movl $0x37, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x204fd(%rip), %rdi     # 0x2d688
leaq 0x20b7a(%rip), %rsi     # 0x2dd0c
leaq 0x21306(%rip), %rcx     # 0x2e49f
movl $0x37, %edx
callq 0x41c0
movq 0x29e0e(%rip), %rdi     # 0x36fb8
leaq 0x1f015(%rip), %rsi     # 0x2c1c6
movl $0x15, %edx
callq 0x43b0
movq 0x29df6(%rip), %rdi     # 0x36fb8
movl $0x1000000, %esi        # imm = 0x1000000
callq 0x41d0
movq %rax, %r14
leaq 0x1f006(%rip), %rsi     # 0x2c1dc
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 0x1efb9(%rip), %rsi     # 0x2c1e1
movl $0x7, %edx
movq %r14, %rdi
callq 0x43b0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x41d0
movq %rax, %r14
leaq 0x1ef92(%rip), %rsi     # 0x2c1dc
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 0x2110d(%rip), %rsi     # 0x2e3a5
movl $0x1, %edx
movq %rbx, %rdi
callq 0x43b0
movq %rbx, %rdi
callq 0x4150
movq 0x29d04(%rip), %rdi     # 0x36fb8
leaq 0x1eeaf(%rip), %rsi     # 0x2c16a
movl $0x8, %edx
callq 0x43b0
movq 0x29cec(%rip), %rdi     # 0x36fb8
leaq 0x204d5(%rip), %rsi     # 0x2d7a8
movl $0x1, %edx
callq 0x43b0
movq 0x29cd4(%rip), %rdi     # 0x36fb8
movl $0xdef, %esi            # imm = 0xDEF
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x2038b(%rip), %rdi     # 0x2d688
leaq 0x1ee66(%rip), %rsi     # 0x2c16a
leaq 0x21137(%rip), %rcx     # 0x2e442
movl $0xdef, %edx            # imm = 0xDEF
callq 0x41c0
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd32e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
testb %bpl, %bpl
jne 0xd338
jmp 0xd382
movq %rax, %rbx
movq %r14, %rdi
callq 0x4210
jmp 0xd382
jmp 0xd37f
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd364
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xd364
jmp 0xd361
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xd382
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x4340
jmp 0xd382
jmp 0xd37f
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x40d0
movq %rbx, %rdi
callq 0x4620