	.file	"220765.c"
	.intel_syntax noprefix
	.text
	.globl	start
	.bss
	.align 8
	.type	start, @object
	.size	start, 8
start:
	.zero	8
	.globl	temp
	.align 8
	.type	temp, @object
	.size	temp, 8
temp:
	.zero	8
	.section	.rodata
	.align 8
.LC0:
	.string	"\n***SINGLE LINKED LIST OPERATIONS:****"
	.align 8
.LC1:
	.string	"\n                MENU                             "
	.align 8
.LC2:
	.string	"---------------------------------------"
.LC3:
	.string	"\n 1.Create     "
.LC4:
	.string	"\n 2.Display    "
	.align 8
.LC5:
	.string	"\n 3.Insert at the beginning    "
.LC6:
	.string	"\n 4.Insert at the end  "
	.align 8
.LC7:
	.string	"\n 5.Insert at specified position       "
	.align 8
.LC8:
	.string	"\n 6.Delete from beginning      "
	.align 8
.LC9:
	.string	"\n 7.Delete from the end        "
	.align 8
.LC10:
	.string	"\n 8.Delete from specified position     "
.LC11:
	.string	"\n 9.Reverse       "
.LC12:
	.string	"\n 10. Exit         "
	.align 8
.LC13:
	.string	"\n--------------------------------------"
.LC14:
	.string	"Enter your choice:\t"
.LC15:
	.string	"%d"
.LC16:
	.string	"\n Wrong Choice:"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
.L15:
	lea	rdi, .LC0[rip]
	call	puts@PLT
	lea	rdi, .LC1[rip]
	call	puts@PLT
	lea	rdi, .LC2[rip]
	call	puts@PLT
	lea	rdi, .LC3[rip]
	call	puts@PLT
	lea	rdi, .LC4[rip]
	call	puts@PLT
	lea	rdi, .LC5[rip]
	call	puts@PLT
	lea	rdi, .LC6[rip]
	call	puts@PLT
	lea	rdi, .LC7[rip]
	call	puts@PLT
	lea	rdi, .LC8[rip]
	call	puts@PLT
	lea	rdi, .LC9[rip]
	call	puts@PLT
	lea	rdi, .LC10[rip]
	call	puts@PLT
	lea	rdi, .LC11[rip]
	call	puts@PLT
	lea	rdi, .LC12[rip]
	call	puts@PLT
	lea	rdi, .LC13[rip]
	call	puts@PLT
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -12[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, 10
	ja	.L2
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L4[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L4:
	.long	.L2-.L4
	.long	.L13-.L4
	.long	.L12-.L4
	.long	.L11-.L4
	.long	.L10-.L4
	.long	.L9-.L4
	.long	.L8-.L4
	.long	.L7-.L4
	.long	.L6-.L4
	.long	.L5-.L4
	.long	.L3-.L4
	.text
.L13:
	mov	eax, 0
	call	create
	jmp	.L14
.L12:
	mov	eax, 0
	call	display
	jmp	.L14
.L11:
	mov	eax, 0
	call	insert_begin
	jmp	.L14
.L10:
	mov	eax, 0
	call	insert_end
	jmp	.L14
.L9:
	mov	eax, 0
	call	insert_pos
	jmp	.L14
.L8:
	mov	eax, 0
	call	delete_begin
	jmp	.L14
.L7:
	mov	eax, 0
	call	delete_end
	jmp	.L14
.L6:
	mov	eax, 0
	call	delete_pos
	jmp	.L14
.L5:
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR temp[rip], rax
	mov	rax, QWORD PTR temp[rip]
	mov	rdi, rax
	mov	eax, 0
	call	reverse
	jmp	.L14
.L3:
	mov	edi, 0
	call	exit@PLT
.L2:
	lea	rdi, .LC16[rip]
	call	puts@PLT
	nop
.L14:
	jmp	.L15
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.section	.rodata
.LC17:
	.string	"\nOut of Memory Space:"
	.align 8
.LC18:
	.string	"\nEnter the data value for the node:\t"
	.text
	.globl	create
	.type	create, @function
create:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edi, 16
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L18
	lea	rdi, .LC17[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L18:
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR start[rip]
	test	rax, rax
	jne	.L19
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR start[rip], rax
	jmp	.L23
.L19:
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L21
.L22:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
.L21:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L22
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
.L23:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	create, .-create
	.section	.rodata
.LC19:
	.string	"\nList is empty:"
.LC20:
	.string	"\nThe List elements are:"
.LC21:
	.string	"%d\t"
	.text
	.globl	display
	.type	display, @function
display:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	rax, QWORD PTR start[rip]
	test	rax, rax
	jne	.L25
	lea	rdi, .LC19[rip]
	call	puts@PLT
	jmp	.L24
.L25:
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -8[rbp], rax
	lea	rdi, .LC20[rip]
	call	puts@PLT
	jmp	.L27
.L28:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC21[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L27:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L28
.L24:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	display, .-display
	.globl	insert_begin
	.type	insert_begin, @function
insert_begin:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edi, 16
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L30
	lea	rdi, .LC17[rip]
	call	puts@PLT
	jmp	.L29
.L30:
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR start[rip]
	test	rax, rax
	jne	.L32
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR start[rip], rax
	jmp	.L29
.L32:
	mov	rdx, QWORD PTR start[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR start[rip], rax
.L29:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	insert_begin, .-insert_begin
	.globl	insert_end
	.type	insert_end, @function
insert_end:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edi, 16
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L34
	lea	rdi, .LC17[rip]
	call	puts@PLT
	jmp	.L33
.L34:
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR start[rip]
	test	rax, rax
	jne	.L36
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR start[rip], rax
	jmp	.L33
.L36:
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L37
.L38:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
.L37:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L38
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
.L33:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	insert_end, .-insert_end
	.section	.rodata
	.align 8
.LC22:
	.string	"\nEnter the position for the new node to be inserted:\t"
	.align 8
.LC23:
	.string	"\nEnter the data value of the node:\t"
	.align 8
.LC24:
	.string	"\nPosition not found:[Handle with care]"
	.text
	.globl	insert_pos
	.type	insert_pos, @function
insert_pos:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edi, 16
	call	malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L40
	lea	rdi, .LC17[rip]
	call	puts@PLT
	jmp	.L39
.L40:
	lea	rdi, .LC22[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	lea	rdi, .LC23[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	eax, DWORD PTR -32[rbp]
	test	eax, eax
	jne	.L42
	mov	rdx, QWORD PTR start[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR start[rip], rax
	jmp	.L39
.L42:
	mov	DWORD PTR -28[rbp], 0
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L44
.L46:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L45
	lea	rdi, .LC24[rip]
	call	puts@PLT
	jmp	.L39
.L45:
	add	DWORD PTR -28[rbp], 1
.L44:
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	cmp	DWORD PTR -28[rbp], eax
	jl	.L46
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
.L39:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L48
	call	__stack_chk_fail@PLT
.L48:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	insert_pos, .-insert_pos
	.section	.rodata
.LC25:
	.string	"\nList is Empty:"
.LC26:
	.string	"\nThe deleted element is :%d\t"
	.text
	.globl	delete_begin
	.type	delete_begin, @function
delete_begin:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	cmp	QWORD PTR -8[rbp], 0
	jne	.L50
	lea	rdi, .LC25[rip]
	call	puts@PLT
	jmp	.L49
.L50:
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR start[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR start[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC26[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L49:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	delete_begin, .-delete_begin
	.section	.rodata
.LC27:
	.string	"\nThe deleted element is:%d\t"
	.text
	.globl	delete_end
	.type	delete_end, @function
delete_end:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	rax, QWORD PTR start[rip]
	test	rax, rax
	jne	.L53
	lea	rdi, .LC25[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 0
	call	exit@PLT
.L53:
	mov	rax, QWORD PTR start[rip]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L54
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR start[rip], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	jmp	.L58
.L54:
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L56
.L57:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L56:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L57
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L58:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	delete_end, .-delete_end
	.section	.rodata
.LC28:
	.string	"\nThe List is Empty:"
	.align 8
.LC29:
	.string	"\nEnter the position of the node to be deleted:\t"
.LC30:
	.string	"\nPosition not Found:"
	.text
	.globl	delete_pos
	.type	delete_pos, @function
delete_pos:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR start[rip]
	test	rax, rax
	jne	.L60
	lea	rdi, .LC28[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L60:
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -32[rbp]
	test	eax, eax
	jne	.L61
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR start[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR start[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	jmp	.L59
.L61:
	mov	rax, QWORD PTR start[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -28[rbp], 0
	jmp	.L63
.L66:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L64
	lea	rdi, .LC30[rip]
	call	puts@PLT
	jmp	.L59
.L64:
	add	DWORD PTR -28[rbp], 1
.L63:
	mov	eax, DWORD PTR -32[rbp]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L66
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
.L59:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L67
	call	__stack_chk_fail@PLT
.L67:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	delete_pos, .-delete_pos
	.section	.rodata
.LC31:
	.string	"\n%d-->"
	.text
	.globl	reverse
	.type	reverse, @function
reverse:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L69
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	reverse
.L69:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	reverse, .-reverse
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"220765.c"
	.text
	.global	start
	.bss
	.align	2
	.type	start, %object
	.size	start, 4
start:
	.space	4
	.global	temp
	.align	2
	.type	temp, %object
	.size	temp, 4
temp:
	.space	4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"\012***SINGLE LINKED LIST OPERATIONS:****\000"
	.align	2
.LC1:
	.ascii	"\012                MENU                           "
	.ascii	"  \000"
	.align	2
.LC2:
	.ascii	"---------------------------------------\000"
	.align	2
.LC3:
	.ascii	"\012 1.Create     \000"
	.align	2
.LC4:
	.ascii	"\012 2.Display    \000"
	.align	2
.LC5:
	.ascii	"\012 3.Insert at the beginning    \000"
	.align	2
.LC6:
	.ascii	"\012 4.Insert at the end  \000"
	.align	2
.LC7:
	.ascii	"\012 5.Insert at specified position       \000"
	.align	2
.LC8:
	.ascii	"\012 6.Delete from beginning      \000"
	.align	2
.LC9:
	.ascii	"\012 7.Delete from the end        \000"
	.align	2
.LC10:
	.ascii	"\012 8.Delete from specified position     \000"
	.align	2
.LC11:
	.ascii	"\012 9.Reverse       \000"
	.align	2
.LC12:
	.ascii	"\012 10. Exit         \000"
	.align	2
.LC13:
	.ascii	"\012--------------------------------------\000"
	.align	2
.LC14:
	.ascii	"Enter your choice:\011\000"
	.align	2
.LC15:
	.ascii	"%d\000"
	.align	2
.LC16:
	.ascii	"\012 Wrong Choice:\000"
	.align	2
.LC17:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L17
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
.L15:
	ldr	r0, .L17+4
	bl	puts
	ldr	r0, .L17+8
	bl	puts
	ldr	r0, .L17+12
	bl	puts
	ldr	r0, .L17+16
	bl	puts
	ldr	r0, .L17+20
	bl	puts
	ldr	r0, .L17+24
	bl	puts
	ldr	r0, .L17+28
	bl	puts
	ldr	r0, .L17+32
	bl	puts
	ldr	r0, .L17+36
	bl	puts
	ldr	r0, .L17+40
	bl	puts
	ldr	r0, .L17+44
	bl	puts
	ldr	r0, .L17+48
	bl	puts
	ldr	r0, .L17+52
	bl	puts
	ldr	r0, .L17+56
	bl	puts
	ldr	r0, .L17+60
	bl	printf
	sub	r3, fp, #12
	mov	r1, r3
	ldr	r0, .L17+64
	bl	__isoc99_scanf
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	cmp	r3, #9
	ldrls	pc, [pc, r3, asl #2]
	b	.L2
.L4:
	.word	.L13
	.word	.L12
	.word	.L11
	.word	.L10
	.word	.L9
	.word	.L8
	.word	.L7
	.word	.L6
	.word	.L5
	.word	.L3
.L13:
	bl	create
	b	.L14
.L12:
	bl	display
	b	.L14
.L11:
	bl	insert_begin
	b	.L14
.L10:
	bl	insert_end
	b	.L14
.L9:
	bl	insert_pos
	b	.L14
.L8:
	bl	delete_begin
	b	.L14
.L7:
	bl	delete_end
	b	.L14
.L6:
	bl	delete_pos
	b	.L14
.L5:
	ldr	r3, .L17+68
	ldr	r3, [r3]
	ldr	r2, .L17+72
	str	r3, [r2]
	ldr	r3, .L17+72
	ldr	r3, [r3]
	mov	r0, r3
	bl	reverse
	b	.L14
.L3:
	mov	r0, #0
	bl	exit
.L2:
	ldr	r0, .L17+76
	bl	puts
	nop
.L14:
	b	.L15
.L18:
	.align	2
.L17:
	.word	.LC17
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	start
	.word	temp
	.word	.LC16
	.size	main, .-main
	.section	.rodata
	.align	2
.LC18:
	.ascii	"\012Out of Memory Space:\000"
	.align	2
.LC19:
	.ascii	"\012Enter the data value for the node:\011\000"
	.text
	.align	2
	.global	create
	.syntax unified
	.arm
	.fpu softvfp
	.type	create, %function
create:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r0, #8
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L20
	ldr	r0, .L26
	bl	puts
	mov	r0, #0
	bl	exit
.L20:
	ldr	r0, .L26+4
	bl	printf
	ldr	r3, [fp, #-8]
	mov	r1, r3
	ldr	r0, .L26+8
	bl	__isoc99_scanf
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, .L26+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L21
	ldr	r2, .L26+12
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	b	.L25
.L21:
	ldr	r3, .L26+12
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L23
.L24:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
.L23:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L24
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
.L25:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L27:
	.align	2
.L26:
	.word	.LC18
	.word	.LC19
	.word	.LC15
	.word	start
	.size	create, .-create
	.section	.rodata
	.align	2
.LC20:
	.ascii	"\012List is empty:\000"
	.align	2
.LC21:
	.ascii	"\012The List elements are:\000"
	.align	2
.LC22:
	.ascii	"%d\011\000"
	.text
	.align	2
	.global	display
	.syntax unified
	.arm
	.fpu softvfp
	.type	display, %function
display:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L33
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L29
	ldr	r0, .L33+4
	bl	puts
	b	.L28
.L29:
	ldr	r3, .L33
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, .L33+8
	bl	puts
	b	.L31
.L32:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L33+12
	bl	printf
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L31:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L32
.L28:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L34:
	.align	2
.L33:
	.word	start
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.size	display, .-display
	.align	2
	.global	insert_begin
	.syntax unified
	.arm
	.fpu softvfp
	.type	insert_begin, %function
insert_begin:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r0, #8
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L36
	ldr	r0, .L39
	bl	puts
	b	.L35
.L36:
	ldr	r0, .L39+4
	bl	printf
	ldr	r3, [fp, #-8]
	mov	r1, r3
	ldr	r0, .L39+8
	bl	__isoc99_scanf
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, .L39+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L38
	ldr	r2, .L39+12
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	b	.L35
.L38:
	ldr	r3, .L39+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r2, .L39+12
	ldr	r3, [fp, #-8]
	str	r3, [r2]
.L35:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L40:
	.align	2
.L39:
	.word	.LC18
	.word	.LC19
	.word	.LC15
	.word	start
	.size	insert_begin, .-insert_begin
	.align	2
	.global	insert_end
	.syntax unified
	.arm
	.fpu softvfp
	.type	insert_end, %function
insert_end:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r0, #8
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L42
	ldr	r0, .L47
	bl	puts
	b	.L41
.L42:
	ldr	r0, .L47+4
	bl	printf
	ldr	r3, [fp, #-8]
	mov	r1, r3
	ldr	r0, .L47+8
	bl	__isoc99_scanf
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, .L47+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L44
	ldr	r2, .L47+12
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	b	.L41
.L44:
	ldr	r3, .L47+12
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L45
.L46:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
.L45:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L46
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
.L41:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L48:
	.align	2
.L47:
	.word	.LC18
	.word	.LC19
	.word	.LC15
	.word	start
	.size	insert_end, .-insert_end
	.section	.rodata
	.align	2
.LC23:
	.ascii	"\012Enter the position for the new node to be inser"
	.ascii	"ted:\011\000"
	.align	2
.LC24:
	.ascii	"\012Enter the data value of the node:\011\000"
	.align	2
.LC25:
	.ascii	"\012Position not found:[Handle with care]\000"
	.align	2
.LC26:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	insert_pos
	.syntax unified
	.arm
	.fpu softvfp
	.type	insert_pos, %function
insert_pos:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L59
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r0, #8
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L50
	ldr	r0, .L59+4
	bl	puts
	b	.L49
.L50:
	ldr	r0, .L59+8
	bl	printf
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, .L59+12
	bl	__isoc99_scanf
	ldr	r0, .L59+16
	bl	printf
	ldr	r3, [fp, #-12]
	mov	r1, r3
	ldr	r0, .L59+12
	bl	__isoc99_scanf
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L52
	ldr	r3, .L59+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r2, .L59+20
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	b	.L49
.L52:
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, .L59+20
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L54
.L56:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L55
	ldr	r0, .L59+24
	bl	puts
	b	.L49
.L55:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L54:
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L56
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
.L49:
	ldr	r3, .L59
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L58
	bl	__stack_chk_fail
.L58:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L60:
	.align	2
.L59:
	.word	.LC26
	.word	.LC18
	.word	.LC23
	.word	.LC15
	.word	.LC24
	.word	start
	.word	.LC25
	.size	insert_pos, .-insert_pos
	.section	.rodata
	.align	2
.LC27:
	.ascii	"\012List is Empty:\000"
	.align	2
.LC28:
	.ascii	"\012The deleted element is :%d\011\000"
	.text
	.align	2
	.global	delete_begin
	.syntax unified
	.arm
	.fpu softvfp
	.type	delete_begin, %function
delete_begin:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L62
	ldr	r0, .L64
	bl	puts
	b	.L61
.L62:
	ldr	r3, .L64+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L64+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, .L64+4
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L64+8
	bl	printf
	ldr	r0, [fp, #-8]
	bl	free
.L61:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L65:
	.align	2
.L64:
	.word	.LC27
	.word	start
	.word	.LC28
	.size	delete_begin, .-delete_begin
	.section	.rodata
	.align	2
.LC29:
	.ascii	"\012The deleted element is:%d\011\000"
	.text
	.align	2
	.global	delete_end
	.syntax unified
	.arm
	.fpu softvfp
	.type	delete_end, %function
delete_end:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L73
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L67
	ldr	r0, .L73+4
	bl	printf
	mov	r0, #0
	bl	exit
.L67:
	ldr	r3, .L73
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L68
	ldr	r3, .L73
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L73
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L73+8
	bl	printf
	ldr	r0, [fp, #-8]
	bl	free
	b	.L72
.L68:
	ldr	r3, .L73
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L70
.L71:
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L70:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L71
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L73+8
	bl	printf
	ldr	r0, [fp, #-8]
	bl	free
.L72:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L74:
	.align	2
.L73:
	.word	start
	.word	.LC27
	.word	.LC29
	.size	delete_end, .-delete_end
	.section	.rodata
	.align	2
.LC30:
	.ascii	"\012The List is Empty:\000"
	.align	2
.LC31:
	.ascii	"\012Enter the position of the node to be deleted:\011"
	.ascii	"\000"
	.align	2
.LC32:
	.ascii	"\012Position not Found:\000"
	.align	2
.LC33:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	delete_pos
	.syntax unified
	.arm
	.fpu softvfp
	.type	delete_pos, %function
delete_pos:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L84
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L84+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L76
	ldr	r0, .L84+8
	bl	puts
	mov	r0, #0
	bl	exit
.L76:
	ldr	r0, .L84+12
	bl	printf
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, .L84+16
	bl	__isoc99_scanf
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L77
	ldr	r3, .L84+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, .L84+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, .L84+4
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L84+20
	bl	printf
	ldr	r0, [fp, #-12]
	bl	free
	b	.L75
.L77:
	ldr	r3, .L84+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L79
.L82:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L80
	ldr	r0, .L84+24
	bl	puts
	b	.L75
.L80:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L79:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L82
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L84+20
	bl	printf
	ldr	r0, [fp, #-12]
	bl	free
.L75:
	ldr	r3, .L84
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L83
	bl	__stack_chk_fail
.L83:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L85:
	.align	2
.L84:
	.word	.LC33
	.word	start
	.word	.LC30
	.word	.LC31
	.word	.LC15
	.word	.LC29
	.word	.LC32
	.size	delete_pos, .-delete_pos
	.section	.rodata
	.align	2
.LC34:
	.ascii	"\012%d-->\000"
	.text
	.align	2
	.global	reverse
	.syntax unified
	.arm
	.fpu softvfp
	.type	reverse, %function
reverse:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L87
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	reverse
.L87:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L89
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L90:
	.align	2
.L89:
	.word	.LC34
	.size	reverse, .-reverse
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
