	.file	"call_swap.c"
	.text
	.globl	call_swap
	.type	call_swap, @function
call_swap:
.LFB18:
	.cfi_startproc
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$course2, %esi
	movl	$course1, %edi
	call	swap
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE18:
	.size	call_swap, .-call_swap
	.globl	swap_ele
	.type	swap_ele, @function
swap_ele:
.LFB19:
	.cfi_startproc
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	leaq	(%rdi,%rdx,8), %rsi
	leaq	(%rdi,%rax,8), %rdi
	call	swap
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE19:
	.size	swap_ele, .-swap_ele
	.globl	swap_ele_diff
	.type	swap_ele_diff, @function
swap_ele_diff:
.LFB20:
	.cfi_startproc
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	(%rdi,%rdx,8), %rdx
	leaq	(%rdi,%rsi,8), %rdi
	movq	(%rdx), %rbx
	subq	(%rdi), %rbx
	movq	%rdx, %rsi
	call	swap
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE20:
	.size	swap_ele_diff, .-swap_ele_diff
	.globl	swap_ele_l
	.type	swap_ele_l, @function
swap_ele_l:
.LFB21:
	.cfi_startproc
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rsi, %rax
	andl	$1, %eax
	leaq	(%rdi,%rsi,8), %rcx
	movq	%rcx, (%rsp,%rax,8)
	movl	$1, %ecx
	subq	%rax, %rcx
	leaq	(%rdi,%rdx,8), %rdx
	movq	%rdx, (%rsp,%rcx,8)
	movq	8(%rsp), %rsi
	movq	(%rsp), %rdi
	call	swap
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE21:
	.size	swap_ele_l, .-swap_ele_l
	.globl	swap_ele_l_diff
	.type	swap_ele_l_diff, @function
swap_ele_l_diff:
.LFB22:
	.cfi_startproc
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%rsi, %rcx
	andl	$1, %ecx
	leaq	(%rdi,%rdx,8), %rdx
	leaq	(%rdi,%rsi,8), %rsi
	movq	(%rdx), %rbx
	subq	(%rsi), %rbx
	movq	%rsi, (%rsp,%rcx,8)
	movl	$1, %eax
	subq	%rcx, %rax
	movq	%rdx, (%rsp,%rax,8)
	movq	8(%rsp), %rsi
	movq	(%rsp), %rdi
	call	swap
	movq	%rbx, %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE22:
	.size	swap_ele_l_diff, .-swap_ele_l_diff
	.globl	swap_ele_diff2
	.type	swap_ele_diff2, @function
swap_ele_diff2:
.LFB23:
	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	(%rdi,%rdx,8), %rbp
	leaq	(%rdi,%rsi,8), %rbx
	movq	0(%rbp), %r12
	subq	(%rbx), %r12
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	swap
	movq	%r12, %rax
	addq	0(%rbp), %rax
	subq	(%rbx), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE23:
	.size	swap_ele_diff2, .-swap_ele_diff2
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC0:
	.string	"Initially: course1 = %ld, course2 = %ld\n"
	.align 8
.LC1:
	.string	"Finally: course1 = %ld, course2 = %ld\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB24:
	.cfi_startproc
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	course2(%rip), %rdx
	movq	course1(%rip), %rsi
	movl	$.LC0, %edi
	movl	$0, %eax
	call	printf
	movl	$0, %eax
	call	call_swap
	movq	course2(%rip), %rdx
	movq	course1(%rip), %rsi
	movl	$.LC1, %edi
	movl	$0, %eax
	call	printf
	movl	$0, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE24:
	.size	main, .-main
	.globl	scount
	.bss
	.align 8
	.type	scount, @object
	.size	scount, 8
scount:
	.zero	8
	.globl	course2
	.data
	.align 8
	.type	course2, @object
	.size	course2, 8
course2:
	.quad	18213
	.globl	course1
	.align 8
	.type	course1, @object
	.size	course1, 8
course1:
	.quad	15213
	.ident	"GCC: (GNU) 4.8.1"
	.section	.note.GNU-stack,"",@progbits
