	.file	"932111.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 8
	.type	testdata, @object
	.size	testdata, 15
testdata:
	.string	"This is a test"
	.align 16
	.type	testdata2, @object
	.size	testdata2, 21
testdata2:
	.string	"And here we go again"
.LC0:
	.string	"TMPDIR"
.LC1:
	.string	"/tmp"
.LC2:
	.string	"cannot allocate file name"
.LC3:
	.string	"/forkXXXXXX"
.LC4:
	.string	"cannot open test file `%s'"
.LC5:
	.string	"cannot write test data"
.LC6:
	.string	"wrong file position"
	.align 8
.LC7:
	.string	"child and parent have same PID"
	.align 8
.LC8:
	.string	"getppid returned wrong PID (%ld, should be %ld)"
.LC9:
	.string	"wrong file position in child"
	.align 8
.LC10:
	.string	"cannot reset position in child"
.LC11:
	.string	"cannot read data in child"
	.align 8
.LC12:
	.string	"data comparison failed in child"
	.align 8
.LC13:
	.string	"cannot reset position again in child"
	.align 8
.LC14:
	.string	"cannot write new data in child"
.LC15:
	.string	"cannot fork"
	.align 8
.LC16:
	.string	"Oops, wrong test program terminated"
.LC17:
	.string	"Child terminated incorrectly"
.LC18:
	.string	"file position not changed"
.LC19:
	.string	"cannot reset file position"
.LC20:
	.string	"cannot read new data"
.LC21:
	.string	"new data not read correctly"
	.text
	.globl	main
	.type	main, @function
main:
.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, 464
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdi, .LC0[rip]
	call	getenv@PLT
	mov	QWORD PTR -296[rbp], rax
	cmp	QWORD PTR -296[rbp], 0
	je	.L2
	mov	rax, QWORD PTR -296[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3
.L2:
	lea	rax, .LC1[rip]
	mov	QWORD PTR -296[rbp], rax
.L3:
	mov	rax, QWORD PTR -296[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 12
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -280[rbp], rax
	cmp	QWORD PTR -280[rbp], 0
	jne	.L4
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -448[rbp], 1
	mov	DWORD PTR -444[rbp], eax
	lea	rax, .LC2[rip]
	mov	QWORD PTR -264[rbp], rax
	mov	rdx, QWORD PTR -264[rbp]
	mov	ecx, DWORD PTR -444[rbp]
	mov	eax, DWORD PTR -448[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L4:
	mov	rdx, QWORD PTR -288[rbp]
	mov	rcx, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mempcpy@PLT
	mov	edx, 12
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	call	mempcpy@PLT
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	call	mkstemp@PLT
	mov	DWORD PTR -460[rbp], eax
	cmp	DWORD PTR -460[rbp], -1
	jne	.L5
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -440[rbp], 1
	mov	DWORD PTR -436[rbp], eax
	lea	rax, .LC4[rip]
	mov	QWORD PTR -256[rbp], rax
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	esi, DWORD PTR -436[rbp]
	mov	eax, DWORD PTR -440[rbp]
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L5:
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	call	unlink@PLT
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 14
	lea	rsi, testdata[rip]
	mov	edi, eax
	call	write@PLT
	cmp	rax, 14
	je	.L6
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -432[rbp], 1
	mov	DWORD PTR -428[rbp], eax
	lea	rax, .LC5[rip]
	mov	QWORD PTR -248[rbp], rax
	mov	rdx, QWORD PTR -248[rbp]
	mov	ecx, DWORD PTR -428[rbp]
	mov	eax, DWORD PTR -432[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L6:
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 1
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	mov	QWORD PTR -272[rbp], rax
	cmp	QWORD PTR -272[rbp], -1
	je	.L7
	cmp	QWORD PTR -272[rbp], 14
	je	.L8
.L7:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -424[rbp], 1
	mov	DWORD PTR -420[rbp], eax
	lea	rax, .LC6[rip]
	mov	QWORD PTR -240[rbp], rax
	mov	rdx, QWORD PTR -240[rbp]
	mov	ecx, DWORD PTR -420[rbp]
	mov	eax, DWORD PTR -424[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L8:
	call	getpid@PLT
	mov	DWORD PTR -456[rbp], eax
	call	fork@PLT
	mov	DWORD PTR -452[rbp], eax
	cmp	DWORD PTR -452[rbp], 0
	jne	.L9
	call	getpid@PLT
	cmp	DWORD PTR -456[rbp], eax
	jne	.L10
	mov	DWORD PTR -416[rbp], 1
	mov	DWORD PTR -412[rbp], 0
	lea	rax, .LC7[rip]
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -232[rbp]
	mov	ecx, DWORD PTR -412[rbp]
	mov	eax, DWORD PTR -416[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L10:
	call	getppid@PLT
	mov	DWORD PTR -452[rbp], eax
	cmp	DWORD PTR -452[rbp], -1
	jne	.L11
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	cmp	eax, 38
	setne	al
	jmp	.L12
.L11:
	mov	eax, DWORD PTR -452[rbp]
	cmp	eax, DWORD PTR -456[rbp]
	setne	al
.L12:
	test	al, al
	je	.L13
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdi, eax
	mov	eax, DWORD PTR -452[rbp]
	movsx	rcx, eax
	mov	DWORD PTR -408[rbp], 1
	mov	DWORD PTR -404[rbp], 0
	lea	rax, .LC8[rip]
	mov	QWORD PTR -224[rbp], rax
	mov	rdx, QWORD PTR -224[rbp]
	mov	esi, DWORD PTR -404[rbp]
	mov	eax, DWORD PTR -408[rbp]
	mov	r8, rdi
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L13:
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 1
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	mov	QWORD PTR -272[rbp], rax
	cmp	QWORD PTR -272[rbp], -1
	je	.L14
	cmp	QWORD PTR -272[rbp], 14
	je	.L15
.L14:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -400[rbp], 1
	mov	DWORD PTR -396[rbp], eax
	lea	rax, .LC9[rip]
	mov	QWORD PTR -216[rbp], rax
	mov	rdx, QWORD PTR -216[rbp]
	mov	ecx, DWORD PTR -396[rbp]
	mov	eax, DWORD PTR -400[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L15:
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	test	rax, rax
	je	.L16
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -392[rbp], 1
	mov	DWORD PTR -388[rbp], eax
	lea	rax, .LC10[rip]
	mov	QWORD PTR -208[rbp], rax
	mov	rdx, QWORD PTR -208[rbp]
	mov	ecx, DWORD PTR -388[rbp]
	mov	eax, DWORD PTR -392[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L16:
	lea	rcx, -112[rbp]
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	cmp	rax, 14
	je	.L17
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -384[rbp], 1
	mov	DWORD PTR -380[rbp], eax
	lea	rax, .LC11[rip]
	mov	QWORD PTR -200[rbp], rax
	mov	rdx, QWORD PTR -200[rbp]
	mov	ecx, DWORD PTR -380[rbp]
	mov	eax, DWORD PTR -384[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L17:
	lea	rax, -112[rbp]
	mov	edx, 14
	lea	rsi, testdata[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	je	.L18
	mov	DWORD PTR -376[rbp], 1
	mov	DWORD PTR -372[rbp], 0
	lea	rax, .LC12[rip]
	mov	QWORD PTR -192[rbp], rax
	mov	rdx, QWORD PTR -192[rbp]
	mov	ecx, DWORD PTR -372[rbp]
	mov	eax, DWORD PTR -376[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L18:
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	test	rax, rax
	je	.L19
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -368[rbp], 1
	mov	DWORD PTR -364[rbp], eax
	lea	rax, .LC13[rip]
	mov	QWORD PTR -184[rbp], rax
	mov	rdx, QWORD PTR -184[rbp]
	mov	ecx, DWORD PTR -364[rbp]
	mov	eax, DWORD PTR -368[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L19:
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 20
	lea	rsi, testdata2[rip]
	mov	edi, eax
	call	write@PLT
	cmp	rax, 20
	je	.L20
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -360[rbp], 1
	mov	DWORD PTR -356[rbp], eax
	lea	rax, .LC14[rip]
	mov	QWORD PTR -176[rbp], rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	ecx, DWORD PTR -356[rbp]
	mov	eax, DWORD PTR -360[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L20:
	mov	eax, DWORD PTR -460[rbp]
	mov	edi, eax
	call	close@PLT
	mov	edi, 0
	call	_exit@PLT
.L9:
	cmp	DWORD PTR -452[rbp], 0
	jns	.L21
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -352[rbp], 1
	mov	DWORD PTR -348[rbp], eax
	lea	rax, .LC15[rip]
	mov	QWORD PTR -168[rbp], rax
	mov	rdx, QWORD PTR -168[rbp]
	mov	ecx, DWORD PTR -348[rbp]
	mov	eax, DWORD PTR -352[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L21:
	lea	rcx, -464[rbp]
	mov	eax, DWORD PTR -452[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	edi, eax
	call	waitpid@PLT
	cmp	DWORD PTR -452[rbp], eax
	je	.L22
	mov	DWORD PTR -344[rbp], 1
	mov	DWORD PTR -340[rbp], 0
	lea	rax, .LC16[rip]
	mov	QWORD PTR -160[rbp], rax
	mov	rdx, QWORD PTR -160[rbp]
	mov	ecx, DWORD PTR -340[rbp]
	mov	eax, DWORD PTR -344[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L22:
	mov	eax, DWORD PTR -464[rbp]
	and	eax, 127
	test	eax, eax
	je	.L23
	mov	DWORD PTR -336[rbp], 1
	mov	DWORD PTR -332[rbp], 0
	lea	rax, .LC17[rip]
	mov	QWORD PTR -152[rbp], rax
	mov	rdx, QWORD PTR -152[rbp]
	mov	ecx, DWORD PTR -332[rbp]
	mov	eax, DWORD PTR -336[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L23:
	mov	eax, DWORD PTR -464[rbp]
	sar	eax, 8
	movzx	eax, al
	mov	DWORD PTR -464[rbp], eax
	mov	eax, DWORD PTR -464[rbp]
	test	eax, eax
	jne	.L24
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 1
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	cmp	rax, 20
	je	.L25
	mov	DWORD PTR -328[rbp], 1
	mov	DWORD PTR -324[rbp], 0
	lea	rax, .LC18[rip]
	mov	QWORD PTR -144[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	ecx, DWORD PTR -324[rbp]
	mov	eax, DWORD PTR -328[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L25:
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	test	rax, rax
	je	.L26
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -320[rbp], 1
	mov	DWORD PTR -316[rbp], eax
	lea	rax, .LC19[rip]
	mov	QWORD PTR -136[rbp], rax
	mov	rdx, QWORD PTR -136[rbp]
	mov	ecx, DWORD PTR -316[rbp]
	mov	eax, DWORD PTR -320[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L26:
	lea	rcx, -112[rbp]
	mov	eax, DWORD PTR -460[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	cmp	rax, 20
	je	.L27
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -312[rbp], 1
	mov	DWORD PTR -308[rbp], eax
	lea	rax, .LC20[rip]
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -128[rbp]
	mov	ecx, DWORD PTR -308[rbp]
	mov	eax, DWORD PTR -312[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L27:
	lea	rax, -112[rbp]
	mov	edx, 20
	lea	rsi, testdata2[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	je	.L24
	mov	DWORD PTR -304[rbp], 1
	mov	DWORD PTR -300[rbp], 0
	lea	rax, .LC21[rip]
	mov	QWORD PTR -120[rbp], rax
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -300[rbp]
	mov	eax, DWORD PTR -304[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	error@PLT
	nop
.L24:
	mov	eax, DWORD PTR -464[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L29
	call	__stack_chk_fail@PLT
.L29:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	main, .-main
	.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	"932111.c"
	.text
	.section	.rodata
	.align	2
	.type	testdata, %object
	.size	testdata, 15
testdata:
	.ascii	"This is a test\000"
	.align	2
	.type	testdata2, %object
	.size	testdata2, 21
testdata2:
	.ascii	"And here we go again\000"
	.align	2
.LC0:
	.ascii	"TMPDIR\000"
	.align	2
.LC1:
	.ascii	"/tmp\000"
	.align	2
.LC2:
	.ascii	"cannot allocate file name\000"
	.align	2
.LC3:
	.ascii	"/forkXXXXXX\000"
	.align	2
.LC4:
	.ascii	"cannot open test file `%s'\000"
	.align	2
.LC5:
	.ascii	"cannot write test data\000"
	.align	2
.LC6:
	.ascii	"wrong file position\000"
	.align	2
.LC7:
	.ascii	"child and parent have same PID\000"
	.align	2
.LC8:
	.ascii	"getppid returned wrong PID (%ld, should be %ld)\000"
	.align	2
.LC9:
	.ascii	"wrong file position in child\000"
	.align	2
.LC10:
	.ascii	"cannot reset position in child\000"
	.align	2
.LC11:
	.ascii	"cannot read data in child\000"
	.align	2
.LC12:
	.ascii	"data comparison failed in child\000"
	.align	2
.LC13:
	.ascii	"cannot reset position again in child\000"
	.align	2
.LC14:
	.ascii	"cannot write new data in child\000"
	.align	2
.LC15:
	.ascii	"cannot fork\000"
	.align	2
.LC16:
	.ascii	"Oops, wrong test program terminated\000"
	.align	2
.LC17:
	.ascii	"Child terminated incorrectly\000"
	.align	2
.LC18:
	.ascii	"file position not changed\000"
	.align	2
.LC19:
	.ascii	"cannot reset file position\000"
	.align	2
.LC20:
	.ascii	"cannot read new data\000"
	.align	2
.LC21:
	.ascii	"new data not read correctly\000"
	.align	2
.LC22:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 368
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #376
	ldr	r3, .L30
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, .L30+4
	bl	getenv
	str	r0, [fp, #-364]
	ldr	r3, [fp, #-364]
	cmp	r3, #0
	beq	.L2
	ldr	r3, [fp, #-364]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3
.L2:
	ldr	r3, .L30+8
	str	r3, [fp, #-364]
.L3:
	ldr	r0, [fp, #-364]
	bl	strlen
	str	r0, [fp, #-360]
	ldr	r3, [fp, #-360]
	add	r3, r3, #12
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	cmp	r3, #0
	bne	.L4
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-336]
	str	r3, [fp, #-332]
	ldr	r3, .L30+12
	str	r3, [fp, #-328]
	ldr	r2, [fp, #-328]
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-336]
	bl	error
	nop
.L4:
	ldr	r2, [fp, #-360]
	ldr	r1, [fp, #-364]
	ldr	r0, [fp, #-356]
	bl	mempcpy
	mov	r3, r0
	mov	r2, #12
	ldr	r1, .L30+16
	mov	r0, r3
	bl	mempcpy
	ldr	r0, [fp, #-356]
	bl	mkstemp
	str	r0, [fp, #-352]
	ldr	r3, [fp, #-352]
	cmn	r3, #1
	bne	.L5
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-324]
	str	r3, [fp, #-320]
	ldr	r3, .L30+20
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-356]
	ldr	r2, [fp, #-316]
	ldr	r1, [fp, #-320]
	ldr	r0, [fp, #-324]
	bl	error
	nop
.L5:
	ldr	r0, [fp, #-356]
	bl	unlink
	mov	r2, #14
	ldr	r1, .L30+24
	ldr	r0, [fp, #-352]
	bl	write
	mov	r3, r0
	cmp	r3, #14
	beq	.L6
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-312]
	str	r3, [fp, #-308]
	ldr	r3, .L30+28
	str	r3, [fp, #-304]
	ldr	r2, [fp, #-304]
	ldr	r1, [fp, #-308]
	ldr	r0, [fp, #-312]
	bl	error
	nop
.L6:
	mov	r2, #1
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	lseek
	str	r0, [fp, #-348]
	ldr	r3, [fp, #-348]
	cmn	r3, #1
	beq	.L7
	ldr	r3, [fp, #-348]
	cmp	r3, #14
	beq	.L8
.L7:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	ldr	r3, .L30+32
	str	r3, [fp, #-292]
	ldr	r2, [fp, #-292]
	ldr	r1, [fp, #-296]
	ldr	r0, [fp, #-300]
	bl	error
	nop
.L8:
	bl	getpid
	str	r0, [fp, #-344]
	bl	fork
	mov	r3, r0
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	cmp	r3, #0
	bne	.L9
	bl	getpid
	mov	r2, r0
	ldr	r3, [fp, #-344]
	cmp	r3, r2
	bne	.L10
	mov	r3, #1
	str	r3, [fp, #-288]
	mov	r3, #0
	str	r3, [fp, #-284]
	ldr	r3, .L30+36
	str	r3, [fp, #-280]
	ldr	r2, [fp, #-280]
	ldr	r1, [fp, #-284]
	ldr	r0, [fp, #-288]
	bl	error
	nop
.L10:
	bl	getppid
	str	r0, [fp, #-340]
	ldr	r3, [fp, #-340]
	cmn	r3, #1
	bne	.L11
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #38
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	b	.L12
.L11:
	ldr	r2, [fp, #-340]
	ldr	r3, [fp, #-344]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
.L12:
	cmp	r3, #0
	beq	.L13
	mov	r3, #1
	str	r3, [fp, #-276]
	mov	r3, #0
	str	r3, [fp, #-272]
	ldr	r3, .L30+40
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-344]
	str	r3, [sp]
	ldr	r3, [fp, #-340]
	ldr	r2, [fp, #-268]
	ldr	r1, [fp, #-272]
	ldr	r0, [fp, #-276]
	bl	error
	nop
.L13:
	mov	r2, #1
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	lseek
	str	r0, [fp, #-348]
	ldr	r3, [fp, #-348]
	cmn	r3, #1
	beq	.L14
	ldr	r3, [fp, #-348]
	cmp	r3, #14
	beq	.L15
.L14:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-264]
	str	r3, [fp, #-260]
	ldr	r3, .L30+44
	str	r3, [fp, #-256]
	ldr	r2, [fp, #-256]
	ldr	r1, [fp, #-260]
	ldr	r0, [fp, #-264]
	bl	error
	nop
.L15:
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	lseek
	mov	r3, r0
	cmp	r3, #0
	beq	.L16
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	ldr	r3, .L30+48
	str	r3, [fp, #-244]
	ldr	r2, [fp, #-244]
	ldr	r1, [fp, #-248]
	ldr	r0, [fp, #-252]
	bl	error
	nop
.L16:
	sub	r3, fp, #108
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-352]
	bl	read
	mov	r3, r0
	cmp	r3, #14
	beq	.L17
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-240]
	str	r3, [fp, #-236]
	ldr	r3, .L30+52
	str	r3, [fp, #-232]
	ldr	r2, [fp, #-232]
	ldr	r1, [fp, #-236]
	ldr	r0, [fp, #-240]
	bl	error
	nop
.L17:
	sub	r3, fp, #108
	mov	r2, #14
	ldr	r1, .L30+24
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L18
	mov	r3, #1
	str	r3, [fp, #-228]
	mov	r3, #0
	str	r3, [fp, #-224]
	ldr	r3, .L30+56
	str	r3, [fp, #-220]
	ldr	r2, [fp, #-220]
	ldr	r1, [fp, #-224]
	ldr	r0, [fp, #-228]
	bl	error
	nop
.L18:
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	lseek
	mov	r3, r0
	cmp	r3, #0
	beq	.L19
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-216]
	str	r3, [fp, #-212]
	ldr	r3, .L30+60
	str	r3, [fp, #-208]
	ldr	r2, [fp, #-208]
	ldr	r1, [fp, #-212]
	ldr	r0, [fp, #-216]
	bl	error
	nop
.L19:
	mov	r2, #20
	ldr	r1, .L30+64
	ldr	r0, [fp, #-352]
	bl	write
	mov	r3, r0
	cmp	r3, #20
	beq	.L20
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	ldr	r3, .L30+68
	str	r3, [fp, #-196]
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-200]
	ldr	r0, [fp, #-204]
	bl	error
	nop
.L20:
	ldr	r0, [fp, #-352]
	bl	close
	mov	r0, #0
	bl	_exit
.L9:
	ldr	r3, [fp, #-340]
	cmp	r3, #0
	bge	.L21
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-192]
	str	r3, [fp, #-188]
	ldr	r3, .L30+72
	str	r3, [fp, #-184]
	ldr	r2, [fp, #-184]
	ldr	r1, [fp, #-188]
	ldr	r0, [fp, #-192]
	bl	error
	nop
.L21:
	sub	r3, fp, #368
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-340]
	bl	waitpid
	mov	r2, r0
	ldr	r3, [fp, #-340]
	cmp	r3, r2
	beq	.L22
	mov	r3, #1
	str	r3, [fp, #-180]
	mov	r3, #0
	str	r3, [fp, #-176]
	ldr	r3, .L30+76
	str	r3, [fp, #-172]
	ldr	r2, [fp, #-172]
	ldr	r1, [fp, #-176]
	ldr	r0, [fp, #-180]
	bl	error
	nop
.L22:
	ldr	r3, [fp, #-368]
	and	r3, r3, #127
	cmp	r3, #0
	beq	.L23
	mov	r3, #1
	str	r3, [fp, #-168]
	mov	r3, #0
	str	r3, [fp, #-164]
	ldr	r3, .L30+80
	str	r3, [fp, #-160]
	ldr	r2, [fp, #-160]
	ldr	r1, [fp, #-164]
	ldr	r0, [fp, #-168]
	bl	error
	nop
.L23:
	ldr	r3, [fp, #-368]
	asr	r3, r3, #8
	and	r3, r3, #255
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-368]
	cmp	r3, #0
	bne	.L24
	mov	r2, #1
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	lseek
	mov	r3, r0
	cmp	r3, #20
	beq	.L25
	mov	r3, #1
	str	r3, [fp, #-156]
	mov	r3, #0
	str	r3, [fp, #-152]
	ldr	r3, .L30+84
	str	r3, [fp, #-148]
	ldr	r2, [fp, #-148]
	ldr	r1, [fp, #-152]
	ldr	r0, [fp, #-156]
	bl	error
	nop
.L25:
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	lseek
	mov	r3, r0
	cmp	r3, #0
	beq	.L26
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-144]
	str	r3, [fp, #-140]
	ldr	r3, .L30+88
	str	r3, [fp, #-136]
	ldr	r2, [fp, #-136]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-144]
	bl	error
	nop
.L26:
	sub	r3, fp, #108
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-352]
	bl	read
	mov	r3, r0
	cmp	r3, #20
	beq	.L27
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r2, #1
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r3, .L30+92
	str	r3, [fp, #-124]
	ldr	r2, [fp, #-124]
	ldr	r1, [fp, #-128]
	ldr	r0, [fp, #-132]
	bl	error
	nop
.L27:
	sub	r3, fp, #108
	mov	r2, #20
	ldr	r1, .L30+64
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L24
	mov	r3, #1
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-116]
	ldr	r3, .L30+96
	str	r3, [fp, #-112]
	ldr	r2, [fp, #-112]
	ldr	r1, [fp, #-116]
	ldr	r0, [fp, #-120]
	bl	error
	nop
.L24:
	ldr	r3, [fp, #-368]
	ldr	r2, .L30
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L29
	bl	__stack_chk_fail
.L29:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L31:
	.align	2
.L30:
	.word	.LC22
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	testdata
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	testdata2
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
