	.file	"787027.c"
	.intel_syntax noprefix
	.text
	.globl	prova
	.data
	.align 8
	.type	prova, @object
	.size	prova, 10
prova:
	.string	"012345678"
	.section	.rodata
.LC0:
	.string	"/usr/bin/cat"
.LC1:
	.string	"/proc/%d/maps"
	.align 8
.LC2:
	.string	"il comando che il processo figlio eseguir\303\240 \303\251:\n%s %s\n\n"
.LC3:
	.string	"fork"
	.align 8
.LC4:
	.string	"address (start-end)       perms offset  dev   inode                       pathname"
.LC5:
	.string	"execve"
.LC6:
	.string	"indirizzo di main(): %p\n"
	.align 8
.LC7:
	.string	"indirizzo della variabile 'prova' (initialized data segment): %p\n"
.LC8:
	.string	"sizeof(prova) = %lu bytes\n"
	.align 8
.LC9:
	.string	"indirizzo della variabile 'param' (uninitialized data segment): %p\n"
.LC10:
	.string	"sizeof(param) = %lu bytes\n"
	.align 8
.LC11:
	.string	"indirizzo della variabile 'program_filename' [stack]: %p\n"
.LC12:
	.string	"indirizzo di etext: %p\n"
.LC13:
	.string	"indirizzo di edata: %p\n"
.LC14:
	.string	"indirizzo di end: %p\n"
.LC15:
	.string	"&edata - &prova: %lu\n"
	.align 8
.LC16:
	.ascii	"\netext  This is the fi"
	.string	"rst address past the end of the text segment (the program code).\nedata  This is the first address past the end of the initialized data segment.\nend    This is the first address past the end of the uninitialized data segment (also known as the BSS segment)."
	.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, 48
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, .LC0[rip]
	mov	QWORD PTR -40[rbp], rax
	call	getpid@PLT
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	ecx, eax
	lea	rdx, .LC1[rip]
	mov	esi, 256
	lea	rdi, param.0[rip]
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, param.0[rip]
	mov	rsi, rax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	call	fork@PLT
	cmp	eax, -1
	je	.L2
	test	eax, eax
	je	.L3
	jmp	.L8
.L2:
	lea	rdi, .LC3[rip]
	call	perror@PLT
	mov	edi, 1
	call	exit@PLT
.L3:
	lea	rdi, .LC4[rip]
	call	puts@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, param.0[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR environ[rip]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	execve@PLT
	lea	rdi, .LC5[rip]
	call	perror@PLT
	mov	eax, 1
	jmp	.L6
.L8:
	mov	edi, 1
	call	sleep@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rsi, main[rip]
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rsi, prova[rip]
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	mov	esi, 10
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rsi, param.0[rip]
	lea	rdi, .LC9[rip]
	mov	eax, 0
	call	printf@PLT
	mov	esi, 256
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rax, -40[rbp]
	mov	rsi, rax
	lea	rdi, .LC11[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rsi, etext[rip]
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, edata[rip]
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, end[rip]
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rax, edata[rip]
	lea	rdx, prova[rip]
	sub	rax, rdx
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC16[rip]
	call	puts@PLT
	mov	eax, 0
.L6:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L7
	call	__stack_chk_fail@PLT
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.local	param.0
	.comm	param.0,256,32
	.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	"787027.c"
	.text
	.global	prova
	.data
	.align	2
	.type	prova, %object
	.size	prova, 10
prova:
	.ascii	"012345678\000"
	.section	.rodata
	.align	2
.LC0:
	.ascii	"/usr/bin/cat\000"
	.align	2
.LC1:
	.ascii	"/proc/%d/maps\000"
	.align	2
.LC2:
	.ascii	"il comando che il processo figlio eseguir\303\240 \303"
	.ascii	"\251:\012%s %s\012\012\000"
	.align	2
.LC3:
	.ascii	"fork\000"
	.align	2
.LC4:
	.ascii	"address (start-end)       perms offset  dev   inode"
	.ascii	"                       pathname\000"
	.align	2
.LC5:
	.ascii	"execve\000"
	.align	2
.LC6:
	.ascii	"indirizzo di main(): %p\012\000"
	.align	2
.LC7:
	.ascii	"indirizzo della variabile 'prova' (initialized data"
	.ascii	" segment): %p\012\000"
	.align	2
.LC8:
	.ascii	"sizeof(prova) = %lu bytes\012\000"
	.align	2
.LC9:
	.ascii	"indirizzo della variabile 'param' (uninitialized da"
	.ascii	"ta segment): %p\012\000"
	.align	2
.LC10:
	.ascii	"sizeof(param) = %lu bytes\012\000"
	.align	2
.LC11:
	.ascii	"indirizzo della variabile 'program_filename' [stack"
	.ascii	"]: %p\012\000"
	.align	2
.LC12:
	.ascii	"indirizzo di etext: %p\012\000"
	.align	2
.LC13:
	.ascii	"indirizzo di edata: %p\012\000"
	.align	2
.LC14:
	.ascii	"indirizzo di end: %p\012\000"
	.align	2
.LC15:
	.ascii	"&edata - &prova: %lu\012\000"
	.align	2
.LC16:
	.ascii	"\012etext  This is the first address past the end o"
	.ascii	"f the text segment (the program code).\012edata  Th"
	.ascii	"is is the first address past the end of the initial"
	.ascii	"ized data segment.\012end    This is the first addr"
	.ascii	"ess past the end of the uninitialized data segment "
	.ascii	"(also known as the BSS segment).\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 = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L9
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L9+4
	str	r3, [fp, #-28]
	bl	getpid
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r2, .L9+8
	mov	r1, #256
	ldr	r0, .L9+12
	bl	snprintf
	ldr	r3, [fp, #-28]
	ldr	r2, .L9+12
	mov	r1, r3
	ldr	r0, .L9+16
	bl	printf
	bl	fork
	mov	r3, r0
	cmn	r3, #1
	beq	.L2
	cmp	r3, #0
	beq	.L3
	b	.L8
.L2:
	ldr	r0, .L9+20
	bl	perror
	mov	r0, #1
	bl	exit
.L3:
	ldr	r0, .L9+24
	bl	puts
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-20]
	ldr	r3, .L9+12
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r2, .L9+28
	ldr	r2, [r2]
	sub	r1, fp, #20
	mov	r0, r3
	bl	execve
	ldr	r0, .L9+32
	bl	perror
	mov	r3, #1
	b	.L6
.L8:
	mov	r0, #1
	bl	sleep
	mov	r0, #10
	bl	putchar
	ldr	r1, .L9+36
	ldr	r0, .L9+40
	bl	printf
	mov	r0, #10
	bl	putchar
	ldr	r1, .L9+44
	ldr	r0, .L9+48
	bl	printf
	mov	r1, #10
	ldr	r0, .L9+52
	bl	printf
	mov	r0, #10
	bl	putchar
	ldr	r1, .L9+12
	ldr	r0, .L9+56
	bl	printf
	mov	r1, #256
	ldr	r0, .L9+60
	bl	printf
	mov	r0, #10
	bl	putchar
	sub	r3, fp, #28
	mov	r1, r3
	ldr	r0, .L9+64
	bl	printf
	mov	r0, #10
	bl	putchar
	ldr	r1, .L9+68
	ldr	r0, .L9+72
	bl	printf
	ldr	r1, .L9+76
	ldr	r0, .L9+80
	bl	printf
	ldr	r1, .L9+84
	ldr	r0, .L9+88
	bl	printf
	mov	r0, #10
	bl	putchar
	ldr	r2, .L9+76
	ldr	r3, .L9+44
	sub	r3, r2, r3
	mov	r1, r3
	ldr	r0, .L9+92
	bl	printf
	ldr	r0, .L9+96
	bl	puts
	mov	r3, #0
.L6:
	ldr	r2, .L9
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L7
	bl	__stack_chk_fail
.L7:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L10:
	.align	2
.L9:
	.word	.LC17
	.word	.LC0
	.word	.LC1
	.word	param.5962
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	environ
	.word	.LC5
	.word	main
	.word	.LC6
	.word	prova
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	etext
	.word	.LC12
	.word	edata
	.word	.LC13
	.word	end
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.size	main, .-main
	.local	param.5962
	.comm	param.5962,256,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
