	.file	"702788.c"
	.intel_syntax noprefix
	.text
	.globl	table
	.bss
	.align 32
	.type	table, @object
	.size	table, 1000
table:
	.zero	1000
	.globl	tabbits
	.data
	.align 4
	.type	tabbits, @object
	.size	tabbits, 4
tabbits:
	.long	8000
	.globl	fstart
	.bss
	.align 4
	.type	fstart, @object
	.size	fstart, 4
fstart:
	.zero	4
	.globl	start
	.align 4
	.type	start, @object
	.size	start, 4
start:
	.zero	4
	.globl	bittab
	.data
	.align 8
	.type	bittab, @object
	.size	bittab, 8
bittab:
	.ascii	"\001\002\004\b\020 @\200"
	.globl	pt
	.align 32
	.type	pt, @object
	.size	pt, 100
pt:
	.long	2
	.long	3
	.long	5
	.long	7
	.long	11
	.long	13
	.long	17
	.long	19
	.long	23
	.long	29
	.long	31
	.long	37
	.long	41
	.long	43
	.long	47
	.long	53
	.long	59
	.long	61
	.long	67
	.long	71
	.long	73
	.long	79
	.long	83
	.long	89
	.long	97
	.globl	factab
	.align 32
	.type	factab, @object
	.size	factab, 192
factab:
	.long	10
	.long	2
	.long	4
	.long	2
	.long	4
	.long	6
	.long	2
	.long	6
	.long	4
	.long	2
	.long	4
	.long	6
	.long	6
	.long	2
	.long	6
	.long	4
	.long	2
	.long	6
	.long	4
	.long	6
	.long	8
	.long	4
	.long	2
	.long	4
	.long	2
	.long	4
	.long	8
	.long	6
	.long	4
	.long	6
	.long	2
	.long	4
	.long	6
	.long	2
	.long	6
	.long	6
	.long	4
	.long	2
	.long	4
	.long	6
	.long	2
	.long	6
	.long	4
	.long	2
	.long	4
	.long	2
	.long	10
	.long	2
	.text
	.globl	sieve
	.type	sieve, @function
sieve:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	.cfi_offset 3, -24
	mov	DWORD PTR -28[rbp], edi
	mov	eax, DWORD PTR start[rip]
	mov	edx, 0
	div	DWORD PTR -28[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	imul	eax, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR start[rip]
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	test	eax, eax
	jns	.L3
	mov	eax, DWORD PTR -28[rbp]
	add	DWORD PTR -16[rbp], eax
	jmp	.L3
.L4:
	mov	ebx, DWORD PTR -16[rbp]
	mov	eax, ebx
	sar	eax, 3
	cdqe
	lea	rdx, table[rip]
	movzx	ecx, BYTE PTR [rax+rdx]
	mov	eax, ebx
	and	eax, 7
	cdqe
	lea	rdx, bittab[rip]
	movzx	edx, BYTE PTR [rax+rdx]
	mov	eax, ebx
	sar	eax, 3
	or	ecx, edx
	cdqe
	lea	rdx, table[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	eax, DWORD PTR -28[rbp]
	add	DWORD PTR -16[rbp], eax
.L3:
	mov	eax, DWORD PTR tabbits[rip]
	cmp	DWORD PTR -16[rbp], eax
	jb	.L4
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	sieve, .-sieve
	.section	.rodata
.LC0:
	.string	"Ouch.\n"
	.text
	.globl	ouch
	.type	ouch, @function
ouch:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 6
	mov	esi, 1
	lea	rdi, .LC0[rip]
	call	fwrite@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	ouch, .-ouch
	.section	.rodata
.LC1:
	.string	"%f"
.LC4:
	.string	"%u\n"
	.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
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	cmp	DWORD PTR -36[rbp], 1
	jle	.L11
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rdx, fstart[rip]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	cmp	eax, 1
	jne	.L8
	movss	xmm1, DWORD PTR fstart[rip]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	ja	.L8
	movss	xmm0, DWORD PTR fstart[rip]
	comiss	xmm0, DWORD PTR .LC3[rip]
	jb	.L9
.L8:
	mov	eax, 0
	call	ouch
	mov	edi, 1
	call	exit@PLT
.L13:
	cmp	ebx, -1
	jne	.L12
	mov	edi, 1
	call	exit@PLT
.L12:
	mov	eax, 0
	call	ouch
.L11:
	lea	rsi, fstart[rip]
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	ebx, eax
	cmp	ebx, 1
	jne	.L13
	movss	xmm1, DWORD PTR fstart[rip]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	ja	.L13
	movss	xmm0, DWORD PTR fstart[rip]
	comiss	xmm0, DWORD PTR .LC3[rip]
	jnb	.L13
.L9:
	movss	xmm0, DWORD PTR fstart[rip]
	cvttss2si	rax, xmm0
	mov	DWORD PTR start[rip], eax
	mov	eax, DWORD PTR start[rip]
	cmp	eax, 97
	ja	.L14
	lea	rbx, pt[rip]
	jmp	.L15
.L16:
	add	rbx, 4
.L15:
	mov	edx, DWORD PTR [rbx]
	mov	eax, DWORD PTR start[rip]
	cmp	edx, eax
	jb	.L16
.L17:
	mov	eax, DWORD PTR [rbx]
	mov	esi, eax
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	add	rbx, 4
	lea	rax, pt[rip+100]
	cmp	rbx, rax
	jb	.L17
	mov	DWORD PTR start[rip], 100
.L14:
	mov	eax, DWORD PTR start[rip]
	shr	eax
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, eax
	add	eax, 1
	mov	DWORD PTR start[rip], eax
.L27:
	lea	rbx, table[rip]
	jmp	.L18
.L19:
	mov	BYTE PTR [rbx], 0
	add	rbx, 1
.L18:
	lea	rax, table[rip+1000]
	cmp	rbx, rax
	jb	.L19
	mov	edx, DWORD PTR start[rip]
	mov	eax, DWORD PTR tabbits[rip]
	add	eax, edx
	mov	eax, eax
	test	rax, rax
	js	.L20
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rax
	jmp	.L21
.L20:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rdx
	addss	xmm0, xmm0
.L21:
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rax, xmm2
	movq	xmm0, rax
	call	sqrt@PLT
	cvttsd2si	rax, xmm0
	mov	DWORD PTR -20[rbp], eax
	mov	edi, 3
	mov	eax, 0
	call	sieve
	mov	edi, 5
	mov	eax, 0
	call	sieve
	mov	edi, 7
	mov	eax, 0
	call	sieve
	mov	DWORD PTR -28[rbp], 11
	lea	rbx, factab[rip+4]
.L23:
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	mov	eax, 0
	call	sieve
	mov	eax, DWORD PTR [rbx]
	add	DWORD PTR -28[rbp], eax
	add	rbx, 4
	lea	rax, factab[rip+192]
	cmp	rbx, rax
	jb	.L22
	lea	rbx, factab[rip]
.L22:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jbe	.L23
	mov	ebx, 0
	jmp	.L24
.L26:
	mov	eax, ebx
	sar	eax, 3
	cdqe
	lea	rdx, table[rip]
	movzx	ecx, BYTE PTR [rax+rdx]
	mov	eax, ebx
	and	eax, 7
	cdqe
	lea	rdx, bittab[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	and	eax, ecx
	test	al, al
	jne	.L25
	mov	eax, DWORD PTR start[rip]
	mov	esi, eax
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
.L25:
	mov	eax, DWORD PTR start[rip]
	add	eax, 2
	mov	DWORD PTR start[rip], eax
	add	ebx, 2
.L24:
	cmp	ebx, 7999
	jle	.L26
	jmp	.L27
	.cfi_endproc
.LFE8:
	.size	main, .-main
	.section	.rodata
	.align 4
.LC3:
	.long	1333788672
	.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	"702788.c"
	.text
	.comm	table,1000,4
	.global	tabbits
	.data
	.align	2
	.type	tabbits, %object
	.size	tabbits, 4
tabbits:
	.word	8000
	.comm	fstart,4,4
	.comm	start,4,4
	.global	bittab
	.align	2
	.type	bittab, %object
	.size	bittab, 8
bittab:
	.ascii	"\001\002\004\010\020 @\200"
	.global	pt
	.align	2
	.type	pt, %object
	.size	pt, 100
pt:
	.word	2
	.word	3
	.word	5
	.word	7
	.word	11
	.word	13
	.word	17
	.word	19
	.word	23
	.word	29
	.word	31
	.word	37
	.word	41
	.word	43
	.word	47
	.word	53
	.word	59
	.word	61
	.word	67
	.word	71
	.word	73
	.word	79
	.word	83
	.word	89
	.word	97
	.global	factab
	.align	2
	.type	factab, %object
	.size	factab, 192
factab:
	.word	10
	.word	2
	.word	4
	.word	2
	.word	4
	.word	6
	.word	2
	.word	6
	.word	4
	.word	2
	.word	4
	.word	6
	.word	6
	.word	2
	.word	6
	.word	4
	.word	2
	.word	6
	.word	4
	.word	6
	.word	8
	.word	4
	.word	2
	.word	4
	.word	2
	.word	4
	.word	8
	.word	6
	.word	4
	.word	6
	.word	2
	.word	4
	.word	6
	.word	2
	.word	6
	.word	6
	.word	4
	.word	2
	.word	4
	.word	6
	.word	2
	.word	6
	.word	4
	.word	2
	.word	4
	.word	2
	.word	10
	.word	2
	.global	__aeabi_uidiv
	.text
	.align	2
	.global	sieve
	.syntax unified
	.arm
	.fpu softvfp
	.type	sieve, %function
sieve:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	mul	r2, r3, r2
	ldr	r3, .L5
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L3
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	b	.L3
.L4:
	ldr	r4, [fp, #-20]
	asr	r3, r4, #3
	ldr	r2, .L5+4
	ldrb	r1, [r2, r3]	@ zero_extendqisi2
	and	r3, r4, #7
	ldr	r2, .L5+8
	ldrb	r2, [r2, r3]	@ zero_extendqisi2
	asr	r3, r4, #3
	orr	r2, r1, r2
	and	r1, r2, #255
	ldr	r2, .L5+4
	strb	r1, [r2, r3]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-20]
.L3:
	ldr	r3, .L5+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	cmp	r3, r2
	bcc	.L4
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L6:
	.align	2
.L5:
	.word	start
	.word	table
	.word	bittab
	.word	tabbits
	.size	sieve, .-sieve
	.section	.rodata
	.align	2
.LC0:
	.ascii	"Ouch.\012\000"
	.text
	.align	2
	.global	ouch
	.syntax unified
	.arm
	.fpu softvfp
	.type	ouch, %function
ouch:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L8
	ldr	r3, [r3]
	mov	r2, #6
	mov	r1, #1
	ldr	r0, .L8+4
	bl	fwrite
	nop
	pop	{fp, pc}
.L9:
	.align	2
.L8:
	.word	stderr
	.word	.LC0
	.size	ouch, .-ouch
	.section	.rodata
	.align	2
.LC1:
	.ascii	"%f\000"
	.global	__aeabi_fcmplt
	.global	__aeabi_fcmpge
	.global	__aeabi_f2uiz
	.align	2
.LC2:
	.ascii	"%u\012\000"
	.global	__aeabi_ui2f
	.global	__aeabi_f2d
	.global	__aeabi_d2uiz
	.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	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	ble	.L15
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, .L30
	ldr	r1, .L30+4
	mov	r0, r3
	bl	__isoc99_sscanf
	mov	r3, r0
	cmp	r3, #1
	bne	.L12
	ldr	r3, .L30
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L12
	ldr	r3, .L30
	ldr	r3, [r3]	@ float
	ldr	r1, .L30+8
	mov	r0, r3
	bl	__aeabi_fcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L13
.L12:
	bl	ouch
	mov	r0, #1
	bl	exit
.L17:
	cmn	r4, #1
	bne	.L16
	mov	r0, #1
	bl	exit
.L16:
	bl	ouch
.L15:
	ldr	r1, .L30
	ldr	r0, .L30+4
	bl	__isoc99_scanf
	mov	r4, r0
	cmp	r4, #1
	bne	.L17
	ldr	r3, .L30
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L17
	ldr	r3, .L30
	ldr	r3, [r3]	@ float
	ldr	r1, .L30+8
	mov	r0, r3
	bl	__aeabi_fcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L17
.L13:
	ldr	r3, .L30
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2uiz
	mov	r3, r0
	ldr	r2, .L30+12
	str	r3, [r2]
	ldr	r3, .L30+12
	ldr	r3, [r3]
	cmp	r3, #97
	bhi	.L18
	ldr	r4, .L30+16
	b	.L19
.L20:
	add	r4, r4, #4
.L19:
	ldr	r2, [r4]
	ldr	r3, .L30+12
	ldr	r3, [r3]
	cmp	r2, r3
	bcc	.L20
.L21:
	ldr	r3, [r4]
	mov	r1, r3
	ldr	r0, .L30+20
	bl	printf
	add	r4, r4, #4
	ldr	r3, .L30+24
	cmp	r4, r3
	bcc	.L21
	ldr	r3, .L30+12
	mov	r2, #100
	str	r2, [r3]
.L18:
	ldr	r3, .L30+12
	ldr	r3, [r3]
	lsr	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	add	r3, r3, #1
	ldr	r2, .L30+12
	str	r3, [r2]
.L29:
	ldr	r4, .L30+28
	b	.L22
.L23:
	mov	r3, #0
	strb	r3, [r4]
	add	r4, r4, #1
.L22:
	ldr	r3, .L30+32
	cmp	r4, r3
	bcc	.L23
	ldr	r3, .L30+12
	ldr	r3, [r3]
	ldr	r2, .L30+36
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r0, r3
	bl	__aeabi_ui2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2uiz
	mov	r3, r0
	str	r3, [fp, #-16]
	mov	r0, #3
	bl	sieve
	mov	r0, #5
	bl	sieve
	mov	r0, #7
	bl	sieve
	mov	r3, #11
	str	r3, [fp, #-24]
	ldr	r4, .L30+40
.L25:
	ldr	r0, [fp, #-24]
	bl	sieve
	ldr	r3, [r4]
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	add	r4, r4, #4
	ldr	r3, .L30+44
	cmp	r4, r3
	bcc	.L24
	ldr	r4, .L30+48
.L24:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bls	.L25
	mov	r4, #0
	b	.L26
.L28:
	asr	r3, r4, #3
	ldr	r2, .L30+28
	ldrb	r2, [r2, r3]	@ zero_extendqisi2
	and	r3, r4, #7
	ldr	r1, .L30+52
	ldrb	r3, [r1, r3]	@ zero_extendqisi2
	and	r3, r3, r2
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L27
	ldr	r3, .L30+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L30+20
	bl	printf
.L27:
	ldr	r3, .L30+12
	ldr	r3, [r3]
	add	r3, r3, #2
	ldr	r2, .L30+12
	str	r3, [r2]
	add	r4, r4, #2
.L26:
	cmp	r4, #8000
	blt	.L28
	b	.L29
.L31:
	.align	2
.L30:
	.word	fstart
	.word	.LC1
	.word	1333788672
	.word	start
	.word	pt
	.word	.LC2
	.word	pt+100
	.word	table
	.word	table+1000
	.word	tabbits
	.word	factab+4
	.word	factab+192
	.word	factab
	.word	bittab
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
