// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x250, %rsp            # imm = 0x250
movq %rdi, %rbx
leaq 0x48(%rsp), %rdi
callq 0x4360
leaq 0x1f329(%rip), %rdx     # 0x2a74a
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0xf2e5
leaq 0x2acab(%rip), %rdx     # 0x360e0
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x1b182
movq 0x8(%rsp), %rsi
leaq 0x48(%rsp), %rdi
pushq $0xc
popq %rdx
callq 0x4180
leaq 0x8(%rsp), %rdi
callq 0x46c8
leaq 0x28(%rsp), %rdi
callq 0x46c8
leaq 0xc0(%rsp), %rdi
callq 0x40a0
testb %al, %al
je 0xb55e
movq 0x48(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x68(%rsp,%rax)
jne 0xb5a5
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
pushq $0x4
popq %rdx
callq 0x43c0
cmpq $0x4, 0x50(%rsp)
jne 0xb5c4
movl 0x8(%rsp), %ebx
cmpq $0x1, %rbx
je 0xb4c7
cmpl $0x1000000, %ebx        # imm = 0x1000000
jne 0xb81b
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x43c0
cmpq $0x8, 0x50(%rsp)
jne 0xb6ee
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x48(%rsp), %rdi
callq 0xc4eb
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x48(%rsp), %rdi
callq 0xc4eb
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x48(%rsp), %rdi
callq 0xc4eb
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x48(%rsp), %rdi
callq 0xc4eb
xorl %esi, %esi
cmpl $0x1, %ebx
setne %sil
leaq 0x48(%rsp), %rdi
callq 0xc4eb
movl %eax, %ebx
leaq 0x48(%rsp), %rdi
callq 0x40d0
movl %ebx, %eax
addq $0x250, %rsp            # imm = 0x250
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x4140
movq %rax, %r14
leaq 0x1ee61(%rip), %rsi     # 0x2a3d1
leaq 0x8(%rsp), %rdi
movq %rbx, %rdx
callq 0x1d361
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x1d3d8
xorl %ebp, %ebp
leaq 0x2876a(%rip), %rsi     # 0x33d00
movq 0x28a13(%rip), %rdx     # 0x33fb0
movq %r14, %rdi
callq 0x45b0
leaq 0x1ef2b(%rip), %rdi     # 0x2a4d7
leaq 0x1cb4a(%rip), %rsi     # 0x280fd
leaq 0x1eefb(%rip), %rcx     # 0x2a4b5
movl $0xdeb, %edx            # imm = 0xDEB
callq 0x4190
movq 0x289ed(%rip), %rdi     # 0x33fb8
leaq 0x1cb87(%rip), %rsi     # 0x28159
callq 0x42d0
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x41a0
leaq 0x1cb86(%rip), %rsi     # 0x2816f
movq %rax, %rdi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x41a0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1cb47(%rip), %rsi     # 0x28174
movq %rax, %rdi
callq 0x42d0
movq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x42b0
leaq 0x1cb26(%rip), %rsi     # 0x2816f
movq %rax, %rdi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x42b0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1ed89(%rip), %rsi     # 0x2a418
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
callq 0x4130
movq 0x28912(%rip), %rdi     # 0x33fb8
leaq 0x1e5f2(%rip), %rsi     # 0x29c9f
callq 0x42d0
leaq 0x1e082(%rip), %rsi     # 0x2973b
movq %rax, %rdi
callq 0x42d0
pushq $0x37
popq %rsi
movq %rax, %rdi
callq 0x45d0
movq %rax, %rdi
callq 0x4130
leaq 0x1df40(%rip), %rdi     # 0x2961b
leaq 0x1e5bd(%rip), %rsi     # 0x29c9f
leaq 0x1edf8(%rip), %rcx     # 0x2a4e1
jmp 0xb813
movq 0x288c3(%rip), %rdi     # 0x33fb8
leaq 0x1ca5d(%rip), %rsi     # 0x28159
callq 0x42d0
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x41a0
leaq 0x1ca5c(%rip), %rsi     # 0x2816f
movq %rax, %rdi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x41a0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1ca1d(%rip), %rsi     # 0x28174
movq %rax, %rdi
callq 0x42d0
movq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x42b0
leaq 0x1c9fc(%rip), %rsi     # 0x2816f
movq %rax, %rdi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x42b0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1ec5f(%rip), %rsi     # 0x2a418
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
callq 0x4130
movq 0x287e8(%rip), %rdi     # 0x33fb8
leaq 0x1e4c8(%rip), %rsi     # 0x29c9f
callq 0x42d0
leaq 0x1df58(%rip), %rsi     # 0x2973b
movq %rax, %rdi
callq 0x42d0
pushq $0x37
popq %rsi
movq %rax, %rdi
callq 0x45d0
movq %rax, %rdi
callq 0x4130
leaq 0x1de16(%rip), %rdi     # 0x2961b
leaq 0x1e493(%rip), %rsi     # 0x29c9f
leaq 0x1ecff(%rip), %rcx     # 0x2a512
pushq $0x37
popq %rdx
callq 0x4190
movq 0x28796(%rip), %rdi     # 0x33fb8
leaq 0x1c930(%rip), %rsi     # 0x28159
callq 0x42d0
movl $0x1000000, %esi        # imm = 0x1000000
movq %rax, %rdi
callq 0x41a0
leaq 0x1c92d(%rip), %rsi     # 0x2816f
movq %rax, %rdi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movl $0x1000000, %esi        # imm = 0x1000000
movq %rax, %rdi
callq 0x41a0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1c8ec(%rip), %rsi     # 0x28174
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x41a0
leaq 0x1c8cd(%rip), %rsi     # 0x2816f
movq %rax, %rdi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x41a0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1eb32(%rip), %rsi     # 0x2a418
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
callq 0x4130
movq 0x286bb(%rip), %rdi     # 0x33fb8
leaq 0x1c7f9(%rip), %rsi     # 0x280fd
callq 0x42d0
leaq 0x1de2b(%rip), %rsi     # 0x2973b
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
movl $0xdef, %esi            # imm = 0xDEF
callq 0x45d0
movq %rax, %rdi
callq 0x4130
leaq 0x1dce7(%rip), %rdi     # 0x2961b
leaq 0x1c7c2(%rip), %rsi     # 0x280fd
leaq 0x1eb73(%rip), %rcx     # 0x2a4b5
movl $0xdef, %edx            # imm = 0xDEF
callq 0x4190
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x46c8
testb %bpl, %bpl
jne 0xb963
jmp 0xb992
movq %rax, %rbx
movq %r14, %rdi
callq 0x41e0
jmp 0xb992
jmp 0xb98f
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x46c8
jmp 0xb981
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x46c8
jmp 0xb992
jmp 0xb98f
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x40d0
movq %rbx, %rdi
callq 0x45e0