// File: /workspace/github_cpp_makefile_star2_O3/BenLangmead[P]bowtie/./multikey_qsort.h
// Function: void vecswap<unsigned long, unsigned long>(unsigned long*, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)
static inline void vecswap(TVal *s, size_t slen, TPos i, TPos j, TPos n, TPos begin, TPos end) {
	assert_geq(i, begin);
	assert_geq(j, begin);
	assert_lt(i, end);
	assert_lt(j, end);
	while(n-- > 0) {
		assert_geq(n, 0);
		TPos a = i+n;
		TPos b = j+n;
		assert_geq(a, begin);
		assert_geq(b, begin);
		assert_lt(a, end);
		assert_lt(b, end);
		swap(s, slen, a, b);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r9, %rbx
cmpq %r9, %rdx
jb 0xf152
movq %rcx, %r12
cmpq %rbx, %rcx
jb 0xf1f8
movq 0x50(%rsp), %r14
cmpq %r14, %rdx
jae 0xf29b
movq %rdx, 0x10(%rsp)
movq %r12, 0x8(%rsp)
cmpq %r14, %r12
jae 0xf341
movq %r8, %r13
testq %r8, %r8
je 0xee8e
movq %rsi, %rbp
movq %rdi, %r15
movq 0x8(%rsp), %rax
leaq -0x1(%rax), %r12
movq 0x10(%rsp), %rax
leaq -0x1(%rax), %r14
leaq (%r14,%r13), %rdx
cmpq %rbx, %rdx
jb 0xee9d
leaq (%r12,%r13), %rcx
cmpq %rbx, %rcx
movq 0x50(%rsp), %rax
jb 0xef49
cmpq %rax, %rdx
jae 0xf0a3
cmpq %rax, %rcx
jae 0xeff5
decq %r13
movq %r15, %rdi
movq %rbp, %rsi
callq 0xec66
testq %r13, %r13
jne 0xee4e
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x28114(%rip), %r14     # 0x36fb8
leaq 0x1d407(%rip), %rsi     # 0x2c2b2
movq %r14, %rdi
callq 0x4310
movq 0x10(%rsp), %rcx
leaq (%rcx,%r13), %rsi
decq %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0x1d3fb(%rip), %rsi     # 0x2c2c9
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40c0
leaq 0x1f4bd(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1fdab(%rip), %rbx     # 0x2ecaa
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4310
leaq 0x1e897(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x77, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e753(%rip), %rdi     # 0x2d688
leaq 0x20827(%rip), %rcx     # 0x2f763
movq %rbx, %rsi
movl $0x77, %edx
callq 0x41c0
movq 0x28068(%rip), %r14     # 0x36fb8
leaq 0x1d35b(%rip), %rsi     # 0x2c2b2
movq %r14, %rdi
callq 0x4310
movq 0x8(%rsp), %rcx
leaq (%rcx,%r13), %rsi
decq %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0x1d34f(%rip), %rsi     # 0x2c2c9
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40c0
leaq 0x1f411(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1fcff(%rip), %rbx     # 0x2ecaa
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4310
leaq 0x1e7eb(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x78, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e6a7(%rip), %rdi     # 0x2d688
leaq 0x2077b(%rip), %rcx     # 0x2f763
movq %rbx, %rsi
movl $0x78, %edx
callq 0x41c0
movq 0x27fbc(%rip), %rbx     # 0x36fb8
leaq 0x1d2f1(%rip), %rsi     # 0x2c2f4
movq %rbx, %rdi
callq 0x4310
movq 0x8(%rsp), %rcx
leaq (%rcx,%r13), %rsi
decq %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0x1d2e4(%rip), %rsi     # 0x2c30a
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq 0x50(%rsp), %rsi
callq 0x40c0
leaq 0x1f363(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1fc51(%rip), %r14     # 0x2ecaa
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
leaq 0x1e73d(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x7a, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e5f9(%rip), %rdi     # 0x2d688
leaq 0x206cd(%rip), %rcx     # 0x2f763
movq %r14, %rsi
movl $0x7a, %edx
callq 0x41c0
movq 0x27f0e(%rip), %rbx     # 0x36fb8
movq %rax, %r14
leaq 0x1d240(%rip), %rsi     # 0x2c2f4
movq %rbx, %rdi
callq 0x4310
movq 0x10(%rsp), %rcx
leaq (%rcx,%r13), %rsi
decq %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0x1d233(%rip), %rsi     # 0x2c30a
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %r14, %rsi
callq 0x40c0
leaq 0x1f2b4(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1fba2(%rip), %r14     # 0x2ecaa
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
leaq 0x1e68e(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x79, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e54a(%rip), %rdi     # 0x2d688
leaq 0x2061e(%rip), %rcx     # 0x2f763
movq %r14, %rsi
movl $0x79, %edx
callq 0x41c0
movq 0x27e5f(%rip), %r14     # 0x36fb8
leaq 0x1d152(%rip), %rsi     # 0x2c2b2
movq %r14, %rdi
movq %rdx, %r15
callq 0x4310
movq %rax, %rdi
movq %r15, %rsi
callq 0x40c0
leaq 0x1d14c(%rip), %rsi     # 0x2c2c9
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40c0
leaq 0x1f20e(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1fafc(%rip), %rbx     # 0x2ecaa
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4310
leaq 0x1e5e8(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x6f, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e4a4(%rip), %rdi     # 0x2d688
leaq 0x20578(%rip), %rcx     # 0x2f763
movq %rbx, %rsi
movl $0x6f, %edx
callq 0x41c0
movq 0x27db9(%rip), %r14     # 0x36fb8
leaq 0x1d0ac(%rip), %rsi     # 0x2c2b2
movq %r14, %rdi
callq 0x4310
movq %rax, %rdi
movq %r12, %rsi
callq 0x40c0
leaq 0x1d0a9(%rip), %rsi     # 0x2c2c9
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40c0
leaq 0x1f16b(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1fa59(%rip), %rbx     # 0x2ecaa
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4310
leaq 0x1e545(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x70, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e401(%rip), %rdi     # 0x2d688
leaq 0x204d5(%rip), %rcx     # 0x2f763
movq %rbx, %rsi
movl $0x70, %edx
callq 0x41c0
movq 0x27d16(%rip), %rbx     # 0x36fb8
leaq 0x1d04b(%rip), %rsi     # 0x2c2f4
movq %rbx, %rdi
movq %rdx, %r15
callq 0x4310
movq %rax, %rdi
movq %r15, %rsi
callq 0x40c0
leaq 0x1d044(%rip), %rsi     # 0x2c30a
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %r14, %rsi
callq 0x40c0
leaq 0x1f0c5(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1f9b3(%rip), %r14     # 0x2ecaa
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
leaq 0x1e49f(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x71, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e35b(%rip), %rdi     # 0x2d688
leaq 0x2042f(%rip), %rcx     # 0x2f763
movq %r14, %rsi
movl $0x71, %edx
callq 0x41c0
movq 0x27c70(%rip), %rbx     # 0x36fb8
leaq 0x1cfa5(%rip), %rsi     # 0x2c2f4
movq %rbx, %rdi
callq 0x4310
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x40c0
leaq 0x1cf9f(%rip), %rsi     # 0x2c30a
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq 0x50(%rsp), %rsi
callq 0x40c0
leaq 0x1f01e(%rip), %rsi     # 0x2e3a5
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x1f90c(%rip), %r14     # 0x2ecaa
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
leaq 0x1e3f8(%rip), %rsi     # 0x2d7a8
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x72, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1e2b4(%rip), %rdi     # 0x2d688
leaq 0x20388(%rip), %rcx     # 0x2f763
movq %r14, %rsi
movl $0x72, %edx
callq 0x41c0