	.file	"main.c"
	.text
	.globl	state
	.data
	.align 4
	.type	state, @object
	.size	state, 4
state:
	.long	1
	.globl	input
	.bss
	.align 32
	.type	input, @object
	.size	input, 100
input:
	.zero	100
	.section	.rodata
.LC0:
	.string	" "
.LC1:
	.string	"exit"
.LC2:
	.string	"test"
.LC3:
	.string	"clear"
.LC4:
	.string	"unix"
.LC5:
	.string	"ls"
.LC6:
	.string	"date"
.LC7:
	.string	"whoami"
.LC8:
	.string	"cat"
.LC9:
	.string	"Usage: cat <filename>"
.LC10:
	.string	"nl"
.LC11:
	.string	"Usage: nl <filename>"
.LC12:
	.string	"cd"
.LC13:
	.string	"help"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	addq	$-128, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L2
.L21:
	movl	$0, %eax
	call	print_shell@PLT
	movl	$0, %eax
	call	get_input@PLT
	leaq	.LC0(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strtok@PLT
	movq	%rax, -112(%rbp)
	leaq	.LC0(%rip), %rax
	movq	%rax, %rsi
	movl	$0, %edi
	call	strtok@PLT
	movq	%rax, -104(%rbp)
	cmpq	$0, -112(%rbp)
	je	.L24
	leaq	.LC1(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L5
	movl	$0, %eax
	call	do_exit@PLT
	jmp	.L2
.L5:
	leaq	.LC2(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L6
	movl	$0, %eax
	call	test@PLT
	jmp	.L2
.L6:
	leaq	.LC3(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L7
	movl	$0, %eax
	call	clear_screen@PLT
	jmp	.L2
.L7:
	leaq	.LC4(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L8
	movl	$0, %eax
	call	_unix@PLT
	jmp	.L2
.L8:
	leaq	.LC5(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L9
	movl	$0, %eax
	call	ls@PLT
	jmp	.L2
.L9:
	leaq	.LC6(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L10
	movl	$0, %eax
	call	date@PLT
	jmp	.L2
.L10:
	leaq	.LC7(%rip), %rax
	movq	%rax, %rsi
	leaq	input(%rip), %rax
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L11
	movl	$0, %eax
	call	whoami@PLT
	jmp	.L2
.L11:
	movq	-112(%rbp), %rax
	leaq	.LC8(%rip), %rdx
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L12
	cmpq	$0, -104(%rbp)
	je	.L13
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	call	cat@PLT
	jmp	.L2
.L13:
	leaq	.LC9(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L2
.L12:
	movq	-112(%rbp), %rax
	leaq	.LC10(%rip), %rdx
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L14
	cmpq	$0, -104(%rbp)
	je	.L15
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	call	nl@PLT
	jmp	.L2
.L15:
	leaq	.LC11(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L2
.L14:
	movq	-112(%rbp), %rax
	leaq	.LC12(%rip), %rdx
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L16
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	call	cd@PLT
	jmp	.L2
.L16:
	movq	-112(%rbp), %rax
	leaq	.LC13(%rip), %rdx
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L17
	movl	$0, %eax
	call	help@PLT
	jmp	.L2
.L17:
	movl	$0, -116(%rbp)
	movl	-116(%rbp), %eax
	leal	1(%rax), %edx
	movl	%edx, -116(%rbp)
	cltq
	movq	-112(%rbp), %rdx
	movq	%rdx, -96(%rbp,%rax,8)
	jmp	.L18
.L20:
	movl	-116(%rbp), %eax
	leal	1(%rax), %edx
	movl	%edx, -116(%rbp)
	cltq
	movq	-104(%rbp), %rdx
	movq	%rdx, -96(%rbp,%rax,8)
.L18:
	leaq	.LC0(%rip), %rax
	movq	%rax, %rsi
	movl	$0, %edi
	call	strtok@PLT
	movq	%rax, -104(%rbp)
	cmpq	$0, -104(%rbp)
	je	.L19
	cmpl	$8, -116(%rbp)
	jle	.L20
.L19:
	movl	-116(%rbp), %eax
	cltq
	movq	$0, -96(%rbp,%rax,8)
	leaq	-96(%rbp), %rdx
	movq	-112(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	execute_program@PLT
	jmp	.L2
.L24:
	nop
.L2:
	movl	state(%rip), %eax
	testl	%eax, %eax
	jne	.L21
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L23
	call	__stack_chk_fail@PLT
.L23:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.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:
