	.file	"117327686.c"
	.intel_syntax noprefix
	.text
	.local	ctx
	.comm	ctx,2904,32
	.local	was_in_f1
	.comm	was_in_f1,4,4
	.local	was_in_f2
	.comm	was_in_f2,4,4
	.local	st2
	.comm	st2,32768,32
	.local	flag
	.comm	flag,4,4
	.section	.rodata
	.align 8
.LC0:
	.ascii	"start f1(a00=%08x,a01=%08x,a02=%08x,a03=%08x,\n         a04="
	.ascii	"%08x,a05=%08x,a06=%08x,a07=%08x,\n         a08=%08x,a09=%08x"
	.ascii	",a10=%08x,a11=%08x"
	.string	",\n         a12=%08x,a13=%08x,a14=%08x,a15=%08x,\n         a16=%08x,a17=%08x,a18=%08x,a19=%08x,\n         a20=%08x,a21=%08x,a22=%08x,a23=%08x,\n         a24=%08x,a25=%08x,a26=%08x,a27=%08x,\n         a28=%08x,a29=%08x,a30=%08x,a31=%08x,\n         a32=%08x) [%d]\n"
.LC1:
	.string	"arg mismatch"
.LC2:
	.string	"%s: swapcontext: %m\n"
.LC3:
	.string	"finish f1 [%d]\n"
	.text
	.type	f1, @function
f1:
.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, 32
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	DWORD PTR -16[rbp], ecx
	mov	DWORD PTR -20[rbp], r8d
	mov	DWORD PTR -24[rbp], r9d
	mov	esi, DWORD PTR flag[rip]
	mov	r8d, DWORD PTR -20[rbp]
	mov	edi, DWORD PTR -16[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -4[rbp]
	sub	rsp, 8
	push	rsi
	mov	esi, DWORD PTR 224[rbp]
	push	rsi
	mov	esi, DWORD PTR 216[rbp]
	push	rsi
	mov	esi, DWORD PTR 208[rbp]
	push	rsi
	mov	esi, DWORD PTR 200[rbp]
	push	rsi
	mov	esi, DWORD PTR 192[rbp]
	push	rsi
	mov	esi, DWORD PTR 184[rbp]
	push	rsi
	mov	esi, DWORD PTR 176[rbp]
	push	rsi
	mov	esi, DWORD PTR 168[rbp]
	push	rsi
	mov	esi, DWORD PTR 160[rbp]
	push	rsi
	mov	esi, DWORD PTR 152[rbp]
	push	rsi
	mov	esi, DWORD PTR 144[rbp]
	push	rsi
	mov	esi, DWORD PTR 136[rbp]
	push	rsi
	mov	esi, DWORD PTR 128[rbp]
	push	rsi
	mov	esi, DWORD PTR 120[rbp]
	push	rsi
	mov	esi, DWORD PTR 112[rbp]
	push	rsi
	mov	esi, DWORD PTR 104[rbp]
	push	rsi
	mov	esi, DWORD PTR 96[rbp]
	push	rsi
	mov	esi, DWORD PTR 88[rbp]
	push	rsi
	mov	esi, DWORD PTR 80[rbp]
	push	rsi
	mov	esi, DWORD PTR 72[rbp]
	push	rsi
	mov	esi, DWORD PTR 64[rbp]
	push	rsi
	mov	esi, DWORD PTR 56[rbp]
	push	rsi
	mov	esi, DWORD PTR 48[rbp]
	push	rsi
	mov	esi, DWORD PTR 40[rbp]
	push	rsi
	mov	esi, DWORD PTR 32[rbp]
	push	rsi
	mov	esi, DWORD PTR 24[rbp]
	push	rsi
	mov	esi, DWORD PTR 16[rbp]
	push	rsi
	mov	esi, DWORD PTR -24[rbp]
	push	rsi
	mov	r9d, r8d
	mov	r8d, edi
	mov	esi, eax
	lea	rdi, .LC0[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 240
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -4[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 4
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -8[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 18
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -12[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 72
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -16[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 291
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -20[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1165
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -24[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 4660
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 16[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 18641
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 24[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 74565
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 32[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 298261
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 40[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1193046
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 48[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 4772185
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 56[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 19088743
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 64[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 76354974
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 72[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 305419896
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 80[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1221679586
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 88[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 591751049
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 96[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1927963098
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR 104[rbp]
	cmp	edx, eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 878082202
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 112[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -782638486
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR 120[rbp]
	cmp	edx, eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1164413355
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 128[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 362686127
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 136[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1450744508
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 144[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1508010739
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 152[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1737075661
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 160[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1641631945
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR 168[rbp]
	cmp	edx, eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 2023406814
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 176[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -496307333
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR 184[rbp]
	cmp	edx, eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1985229329
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR 192[rbp]
	cmp	edx, eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 649017276
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 200[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1698898192
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR 208[rbp]
	cmp	edx, eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1794341827
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR 216[rbp], eax
	jne	.L2
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1412567281
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR 224[rbp]
	cmp	edx, eax
	je	.L3
.L2:
	lea	rdi, .LC1[rip]
	call	puts@PLT
	mov	edi, -1
	call	exit@PLT
.L3:
	mov	eax, DWORD PTR flag[rip]
	test	eax, eax
	je	.L4
	lea	rsi, ctx[rip+1936]
	lea	rdi, ctx[rip+968]
	call	swapcontext@PLT
	endbr64
	test	eax, eax
	je	.L4
	lea	rsi, __FUNCTION__.2[rip]
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L4:
	mov	eax, DWORD PTR flag[rip]
	mov	esi, eax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR flag[rip]
	add	eax, 1
	mov	DWORD PTR flag[rip], eax
	mov	eax, DWORD PTR was_in_f1[rip]
	add	eax, 1
	mov	DWORD PTR was_in_f1[rip], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	f1, .-f1
	.section	.rodata
.LC4:
	.string	"start f2"
.LC5:
	.string	"finish f2"
	.text
	.type	f2, @function
f2:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC4[rip]
	call	puts@PLT
	lea	rsi, ctx[rip+968]
	lea	rdi, ctx[rip+1936]
	call	swapcontext@PLT
	endbr64
	test	eax, eax
	je	.L6
	lea	rsi, __FUNCTION__.1[rip]
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L6:
	lea	rdi, .LC5[rip]
	call	puts@PLT
	mov	DWORD PTR was_in_f2[rip], 1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	f2, .-f2
	.globl	global
	.bss
	.align 4
	.type	global, @object
	.size	global, 4
global:
	.zero	4
	.local	back_in_main
	.comm	back_in_main,4,4
	.section	.rodata
	.align 8
.LC6:
	.string	"program did not reach main again"
	.text
	.type	check_called, @function
check_called:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR back_in_main[rip]
	test	eax, eax
	jne	.L9
	lea	rdi, .LC6[rip]
	call	puts@PLT
	mov	edi, 1
	call	_exit@PLT
.L9:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	check_called, .-check_called
	.section	.rodata
.LC7:
	.string	"making contexts"
.LC8:
	.string	"%s: getcontext: %m\n"
.LC9:
	.string	"makecontext not implemented"
.LC10:
	.string	"%s: setcontext: %m\n"
	.align 8
.LC11:
	.string	"%s: 'global' not incremented twice\n"
.LC12:
	.string	"%s: second getcontext: %m\n"
.LC13:
	.string	"swapping contexts"
.LC14:
	.string	"back at main program"
.LC15:
	.string	"didn't reach f1 twice"
.LC16:
	.string	"didn't reach f2"
.LC17:
	.string	"test succeeded"
	.text
	.globl	main
	.type	main, @function
main:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	lea	r11, -32768[rsp]
.LPSRL0:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL0
	sub	rsp, 120
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	lea	rdi, check_called[rip]
	call	atexit@PLT
	lea	rdi, .LC7[rip]
	call	puts@PLT
	lea	rdi, ctx[rip]
	call	getcontext@PLT
	endbr64
	test	eax, eax
	je	.L12
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	cmp	eax, 38
	jne	.L13
	mov	DWORD PTR back_in_main[rip], 1
	mov	edi, 0
	call	exit@PLT
.L13:
	lea	rsi, __FUNCTION__.0[rip]
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L12:
	lea	rdi, ctx[rip+968]
	call	getcontext@PLT
	endbr64
	test	eax, eax
	je	.L14
	lea	rsi, __FUNCTION__.0[rip]
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L14:
	lea	rax, -32832[rbp]
	mov	QWORD PTR ctx[rip+984], rax
	mov	QWORD PTR ctx[rip+1000], 32768
	lea	rax, ctx[rip]
	mov	QWORD PTR ctx[rip+976], rax
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1412567281
	mov	ecx, eax
	sal	edx, cl
	mov	DWORD PTR -32836[rbp], edx
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1794341827
	mov	ebx, edx
	mov	ecx, eax
	sal	ebx, cl
	mov	DWORD PTR -32840[rbp], ebx
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1698898192
	mov	esi, edx
	mov	ecx, eax
	sal	esi, cl
	mov	DWORD PTR -32844[rbp], esi
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 649017276
	mov	edi, edx
	mov	ecx, eax
	sal	edi, cl
	mov	DWORD PTR -32848[rbp], edi
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1985229329
	mov	r10d, edx
	mov	ecx, eax
	sal	r10d, cl
	mov	DWORD PTR -32852[rbp], r10d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -496307333
	mov	r11d, edx
	mov	ecx, eax
	sal	r11d, cl
	mov	DWORD PTR -32856[rbp], r11d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 2023406814
	mov	r14d, edx
	mov	ecx, eax
	sal	r14d, cl
	mov	DWORD PTR -32860[rbp], r14d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1641631945
	mov	r15d, edx
	mov	ecx, eax
	sal	r15d, cl
	mov	DWORD PTR -32864[rbp], r15d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1737075661
	mov	r8d, edx
	mov	ecx, eax
	sal	r8d, cl
	mov	DWORD PTR -32868[rbp], r8d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1508010739
	mov	r9d, edx
	mov	ecx, eax
	sal	r9d, cl
	mov	DWORD PTR -32872[rbp], r9d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1450744508
	mov	r12d, edx
	mov	ecx, eax
	sal	r12d, cl
	mov	DWORD PTR -32876[rbp], r12d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 362686127
	mov	r13d, edx
	mov	ecx, eax
	sal	r13d, cl
	mov	DWORD PTR -32880[rbp], r13d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1164413355
	mov	ebx, edx
	mov	ecx, eax
	sal	ebx, cl
	mov	DWORD PTR -32884[rbp], ebx
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -782638486
	mov	esi, edx
	mov	ecx, eax
	sal	esi, cl
	mov	DWORD PTR -32888[rbp], esi
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 878082202
	mov	edi, edx
	mov	ecx, eax
	sal	edi, cl
	mov	DWORD PTR -32892[rbp], edi
	mov	eax, DWORD PTR flag[rip]
	mov	edx, -1927963098
	mov	r10d, edx
	mov	ecx, eax
	sal	r10d, cl
	mov	DWORD PTR -32896[rbp], r10d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 591751049
	mov	r11d, edx
	mov	ecx, eax
	sal	r11d, cl
	mov	DWORD PTR -32900[rbp], r11d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1221679586
	mov	r14d, edx
	mov	ecx, eax
	sal	r14d, cl
	mov	DWORD PTR -32904[rbp], r14d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 305419896
	mov	r15d, edx
	mov	ecx, eax
	sal	r15d, cl
	mov	DWORD PTR -32908[rbp], r15d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 76354974
	mov	r8d, edx
	mov	ecx, eax
	sal	r8d, cl
	mov	DWORD PTR -32912[rbp], r8d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 19088743
	mov	r9d, edx
	mov	ecx, eax
	sal	r9d, cl
	mov	DWORD PTR -32916[rbp], r9d
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 4772185
	mov	r15d, edx
	mov	ecx, eax
	sal	r15d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1193046
	mov	r14d, edx
	mov	ecx, eax
	sal	r14d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 298261
	mov	r13d, edx
	mov	ecx, eax
	sal	r13d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 74565
	mov	r12d, edx
	mov	ecx, eax
	sal	r12d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 18641
	mov	ebx, edx
	mov	ecx, eax
	sal	ebx, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 4660
	mov	r11d, edx
	mov	ecx, eax
	sal	r11d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1165
	mov	r10d, edx
	mov	ecx, eax
	sal	r10d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 291
	mov	r9d, edx
	mov	ecx, eax
	sal	r9d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 72
	mov	edi, edx
	mov	ecx, eax
	sal	edi, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 18
	mov	r8d, edx
	mov	ecx, eax
	sal	r8d, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 4
	mov	esi, edx
	mov	ecx, eax
	sal	esi, cl
	mov	eax, DWORD PTR flag[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	edx, DWORD PTR -32836[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32840[rbp]
	push	rcx
	mov	ecx, DWORD PTR -32844[rbp]
	push	rcx
	mov	ecx, DWORD PTR -32848[rbp]
	push	rcx
	mov	edx, DWORD PTR -32852[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32856[rbp]
	push	rcx
	mov	edx, DWORD PTR -32860[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32864[rbp]
	push	rcx
	mov	edx, DWORD PTR -32868[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32872[rbp]
	push	rcx
	mov	edx, DWORD PTR -32876[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32880[rbp]
	push	rcx
	mov	edx, DWORD PTR -32884[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32888[rbp]
	push	rcx
	mov	edx, DWORD PTR -32892[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32896[rbp]
	push	rcx
	mov	edx, DWORD PTR -32900[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32904[rbp]
	push	rcx
	mov	edx, DWORD PTR -32908[rbp]
	push	rdx
	mov	ecx, DWORD PTR -32912[rbp]
	push	rcx
	mov	edx, DWORD PTR -32916[rbp]
	push	rdx
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	push	r11
	push	r10
	push	r9
	push	rdi
	mov	r9d, r8d
	mov	r8d, esi
	mov	ecx, eax
	mov	edx, 33
	lea	rsi, f1[rip]
	lea	rdi, ctx[rip+968]
	mov	eax, 0
	call	makecontext@PLT
	add	rsp, 240
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	cmp	eax, 38
	jne	.L15
	lea	rdi, .LC9[rip]
	call	puts@PLT
	mov	DWORD PTR back_in_main[rip], 1
	mov	eax, 0
	jmp	.L23
.L15:
	mov	eax, DWORD PTR global[rip]
	add	eax, 1
	mov	DWORD PTR global[rip], eax
	cmp	eax, 1
	jne	.L17
	lea	rdi, ctx[rip+968]
	call	setcontext@PLT
	test	eax, eax
	je	.L17
	lea	rsi, __FUNCTION__.0[rip]
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L17:
	mov	eax, DWORD PTR global[rip]
	cmp	eax, 2
	je	.L18
	lea	rsi, __FUNCTION__.0[rip]
	lea	rdi, .LC11[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L18:
	lea	rdi, ctx[rip+1936]
	call	getcontext@PLT
	endbr64
	test	eax, eax
	je	.L19
	lea	rsi, __FUNCTION__.0[rip]
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L19:
	lea	rax, st2[rip]
	mov	QWORD PTR ctx[rip+1952], rax
	mov	QWORD PTR ctx[rip+1968], 32768
	lea	rax, ctx[rip+968]
	mov	QWORD PTR ctx[rip+1944], rax
	mov	edx, 0
	lea	rsi, f2[rip]
	lea	rdi, ctx[rip+1936]
	mov	eax, 0
	call	makecontext@PLT
	lea	rdi, .LC13[rip]
	call	puts@PLT
	lea	rsi, ctx[rip+1936]
	lea	rdi, ctx[rip]
	call	swapcontext@PLT
	endbr64
	test	eax, eax
	je	.L20
	lea	rsi, __FUNCTION__.0[rip]
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L20:
	lea	rdi, .LC14[rip]
	call	puts@PLT
	mov	DWORD PTR back_in_main[rip], 1
	mov	eax, DWORD PTR was_in_f1[rip]
	cmp	eax, 1
	jg	.L21
	lea	rdi, .LC15[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
.L21:
	mov	eax, DWORD PTR was_in_f2[rip]
	test	eax, eax
	jne	.L22
	lea	rdi, .LC16[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
.L22:
	lea	rdi, .LC17[rip]
	call	puts@PLT
	mov	eax, 0
.L23:
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L24
	call	__stack_chk_fail@PLT
.L24:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	main, .-main
	.section	.rodata
	.type	__FUNCTION__.2, @object
	.size	__FUNCTION__.2, 3
__FUNCTION__.2:
	.string	"f1"
	.type	__FUNCTION__.1, @object
	.size	__FUNCTION__.1, 3
__FUNCTION__.1:
	.string	"f2"
	.type	__FUNCTION__.0, @object
	.size	__FUNCTION__.0, 5
__FUNCTION__.0:
	.string	"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	"117327686.c"
	.text
	.local	ctx
	.comm	ctx,2232,8
	.local	was_in_f1
	.comm	was_in_f1,4,4
	.local	was_in_f2
	.comm	was_in_f2,4,4
	.local	st2
	.comm	st2,32768,4
	.local	flag
	.comm	flag,4,4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"start f1(a00=%08x,a01=%08x,a02=%08x,a03=%08x,\012  "
	.ascii	"       a04=%08x,a05=%08x,a06=%08x,a07=%08x,\012    "
	.ascii	"     a08=%08x,a09=%08x,a10=%08x,a11=%08x,\012      "
	.ascii	"   a12=%08x,a13=%08x,a14=%08x,a15=%08x,\012        "
	.ascii	" a16=%08x,a17=%08x,a18=%08x,a19=%08x,\012         a"
	.ascii	"20=%08x,a21=%08x,a22=%08x,a23=%08x,\012         a24"
	.ascii	"=%08x,a25=%08x,a26=%08x,a27=%08x,\012         a28=%"
	.ascii	"08x,a29=%08x,a30=%08x,a31=%08x,\012         a32=%08"
	.ascii	"x) [%d]\012\000"
	.align	2
.LC1:
	.ascii	"arg mismatch\000"
	.align	2
.LC2:
	.ascii	"%s: swapcontext: %m\012\000"
	.align	2
.LC3:
	.ascii	"finish f1 [%d]\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	f1, %function
f1:
	@ args = 116, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #144
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, .L5
	ldr	r3, [r3]
	str	r3, [sp, #120]
	ldr	r3, [fp, #116]
	str	r3, [sp, #116]
	ldr	r3, [fp, #112]
	str	r3, [sp, #112]
	ldr	r3, [fp, #108]
	str	r3, [sp, #108]
	ldr	r3, [fp, #104]
	str	r3, [sp, #104]
	ldr	r3, [fp, #100]
	str	r3, [sp, #100]
	ldr	r3, [fp, #96]
	str	r3, [sp, #96]
	ldr	r3, [fp, #92]
	str	r3, [sp, #92]
	ldr	r3, [fp, #88]
	str	r3, [sp, #88]
	ldr	r3, [fp, #84]
	str	r3, [sp, #84]
	ldr	r3, [fp, #80]
	str	r3, [sp, #80]
	ldr	r3, [fp, #76]
	str	r3, [sp, #76]
	ldr	r3, [fp, #72]
	str	r3, [sp, #72]
	ldr	r3, [fp, #68]
	str	r3, [sp, #68]
	ldr	r3, [fp, #64]
	str	r3, [sp, #64]
	ldr	r3, [fp, #60]
	str	r3, [sp, #60]
	ldr	r3, [fp, #56]
	str	r3, [sp, #56]
	ldr	r3, [fp, #52]
	str	r3, [sp, #52]
	ldr	r3, [fp, #48]
	str	r3, [sp, #48]
	ldr	r3, [fp, #44]
	str	r3, [sp, #44]
	ldr	r3, [fp, #40]
	str	r3, [sp, #40]
	ldr	r3, [fp, #36]
	str	r3, [sp, #36]
	ldr	r3, [fp, #32]
	str	r3, [sp, #32]
	ldr	r3, [fp, #28]
	str	r3, [sp, #28]
	ldr	r3, [fp, #24]
	str	r3, [sp, #24]
	ldr	r3, [fp, #20]
	str	r3, [sp, #20]
	ldr	r3, [fp, #16]
	str	r3, [sp, #16]
	ldr	r3, [fp, #12]
	str	r3, [sp, #12]
	ldr	r3, [fp, #8]
	str	r3, [sp, #8]
	ldr	r3, [fp, #4]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-8]
	ldr	r0, .L5+4
	bl	printf
	ldr	r3, .L5
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	mov	r2, #4
	lsl	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	mov	r2, #18
	lsl	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	mov	r2, #72
	lsl	r3, r2, r3
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+8
	lsl	r3, r2, r3
	ldr	r2, [fp, #4]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+12
	lsl	r3, r2, r3
	ldr	r2, [fp, #8]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+16
	lsl	r3, r2, r3
	ldr	r2, [fp, #12]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+20
	lsl	r3, r2, r3
	ldr	r2, [fp, #16]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+24
	lsl	r3, r2, r3
	ldr	r2, [fp, #20]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+28
	lsl	r3, r2, r3
	ldr	r2, [fp, #24]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+32
	lsl	r3, r2, r3
	ldr	r2, [fp, #28]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+36
	lsl	r3, r2, r3
	ldr	r2, [fp, #32]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+40
	lsl	r3, r2, r3
	ldr	r2, [fp, #36]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+44
	lsl	r3, r2, r3
	ldr	r2, [fp, #40]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+48
	lsl	r3, r2, r3
	ldr	r2, [fp, #44]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+52
	lsl	r3, r2, r3
	ldr	r2, [fp, #48]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+56
	lsl	r3, r2, r3
	ldr	r2, [fp, #52]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+60
	lsl	r2, r2, r3
	ldr	r3, [fp, #56]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+64
	lsl	r3, r2, r3
	ldr	r2, [fp, #60]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+68
	lsl	r2, r2, r3
	ldr	r3, [fp, #64]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+72
	lsl	r3, r2, r3
	ldr	r2, [fp, #68]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+76
	lsl	r3, r2, r3
	ldr	r2, [fp, #72]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+80
	lsl	r3, r2, r3
	ldr	r2, [fp, #76]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+84
	lsl	r3, r2, r3
	ldr	r2, [fp, #80]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+88
	lsl	r3, r2, r3
	ldr	r2, [fp, #84]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+92
	lsl	r2, r2, r3
	ldr	r3, [fp, #88]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+96
	lsl	r3, r2, r3
	ldr	r2, [fp, #92]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+100
	lsl	r2, r2, r3
	ldr	r3, [fp, #96]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+104
	lsl	r2, r2, r3
	ldr	r3, [fp, #100]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+108
	lsl	r3, r2, r3
	ldr	r2, [fp, #104]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+112
	lsl	r2, r2, r3
	ldr	r3, [fp, #108]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+116
	lsl	r3, r2, r3
	ldr	r2, [fp, #112]
	cmp	r2, r3
	bne	.L2
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+120
	lsl	r2, r2, r3
	ldr	r3, [fp, #116]
	cmp	r2, r3
	beq	.L3
.L2:
	ldr	r0, .L5+124
	bl	puts
	mvn	r0, #0
	bl	exit
.L3:
	ldr	r3, .L5
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4
	ldr	r1, .L5+128
	ldr	r0, .L5+132
	bl	swapcontext
	mov	r3, r0
	cmp	r3, #0
	beq	.L4
	ldr	r1, .L5+136
	ldr	r0, .L5+140
	bl	printf
	mov	r0, #1
	bl	exit
.L4:
	ldr	r3, .L5
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L5+144
	bl	printf
	ldr	r3, .L5
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L5
	str	r3, [r2]
	ldr	r3, .L5+148
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L5+148
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L6:
	.align	2
.L5:
	.word	flag
	.word	.LC0
	.word	291
	.word	1165
	.word	4660
	.word	18641
	.word	74565
	.word	298261
	.word	1193046
	.word	4772185
	.word	19088743
	.word	76354974
	.word	305419896
	.word	1221679586
	.word	591751049
	.word	-1927963098
	.word	878082202
	.word	-782638486
	.word	1164413355
	.word	362686127
	.word	1450744508
	.word	1508010739
	.word	1737075661
	.word	-1641631945
	.word	2023406814
	.word	-496307333
	.word	-1985229329
	.word	649017276
	.word	-1698898192
	.word	1794341827
	.word	-1412567281
	.word	.LC1
	.word	ctx+1488
	.word	ctx+744
	.word	__FUNCTION__.6027
	.word	.LC2
	.word	.LC3
	.word	was_in_f1
	.size	f1, .-f1
	.section	.rodata
	.align	2
.LC4:
	.ascii	"start f2\000"
	.align	2
.LC5:
	.ascii	"finish f2\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	f2, %function
f2:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L9
	bl	puts
	ldr	r1, .L9+4
	ldr	r0, .L9+8
	bl	swapcontext
	mov	r3, r0
	cmp	r3, #0
	beq	.L8
	ldr	r1, .L9+12
	ldr	r0, .L9+16
	bl	printf
	mov	r0, #1
	bl	exit
.L8:
	ldr	r0, .L9+20
	bl	puts
	ldr	r3, .L9+24
	mov	r2, #1
	str	r2, [r3]
	nop
	pop	{fp, pc}
.L10:
	.align	2
.L9:
	.word	.LC4
	.word	ctx+744
	.word	ctx+1488
	.word	__FUNCTION__.6031
	.word	.LC2
	.word	.LC5
	.word	was_in_f2
	.size	f2, .-f2
	.comm	global,4,4
	.local	back_in_main
	.comm	back_in_main,4,4
	.section	.rodata
	.align	2
.LC6:
	.ascii	"program did not reach main again\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_called, %function
check_called:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L14
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L13
	ldr	r0, .L14+4
	bl	puts
	mov	r0, #1
	bl	_exit
.L13:
	nop
	pop	{fp, pc}
.L15:
	.align	2
.L14:
	.word	back_in_main
	.word	.LC6
	.size	check_called, .-check_called
	.section	.rodata
	.align	2
.LC7:
	.ascii	"making contexts\000"
	.align	2
.LC8:
	.ascii	"%s: getcontext: %m\012\000"
	.align	2
.LC9:
	.ascii	"makecontext not implemented\000"
	.align	2
.LC10:
	.ascii	"%s: setcontext: %m\012\000"
	.align	2
.LC11:
	.ascii	"%s: 'global' not incremented twice\012\000"
	.align	2
.LC12:
	.ascii	"%s: second getcontext: %m\012\000"
	.align	2
.LC13:
	.ascii	"swapping contexts\000"
	.align	2
.LC14:
	.ascii	"back at main program\000"
	.align	2
.LC15:
	.ascii	"didn't reach f1 twice\000"
	.align	2
.LC16:
	.ascii	"didn't reach f2\000"
	.align	2
.LC17:
	.ascii	"test succeeded\000"
	.align	2
.LC18:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 32864
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #32768
	sub	sp, sp, #228
	ldr	r3, .L31
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	ldr	r0, .L31+4
	bl	atexit
	ldr	r0, .L31+8
	bl	puts
	ldr	r0, .L31+12
	bl	getcontext
	mov	r3, r0
	cmp	r3, #0
	beq	.L18
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #38
	bne	.L19
	ldr	r3, .L31+16
	mov	r2, #1
	str	r2, [r3]
	mov	r0, #0
	bl	exit
.L19:
	ldr	r1, .L31+20
	ldr	r0, .L31+24
	bl	printf
	mov	r0, #1
	bl	exit
.L18:
	ldr	r0, .L31+28
	bl	getcontext
	mov	r3, r0
	cmp	r3, #0
	beq	.L20
	ldr	r1, .L31+20
	ldr	r0, .L31+24
	bl	printf
	mov	r0, #1
	bl	exit
.L20:
	ldr	r2, .L31+12
	sub	r3, fp, #32768
	sub	r3, r3, #36
	sub	r3, r3, #4
	str	r3, [r2, #752]
	ldr	r3, .L31+12
	mov	r2, #32768
	str	r2, [r3, #760]
	ldr	r3, .L31+12
	ldr	r2, .L31+12
	str	r2, [r3, #748]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	sub	r2, fp, #32768
	sub	r2, r2, #48
	str	r3, [r2]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	mov	r2, #4
	lsl	r2, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #52
	str	r2, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	mov	r2, #18
	lsl	r1, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #56
	str	r1, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	mov	r2, #72
	lsl	r0, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #60
	str	r0, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+36
	lsl	ip, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #64
	str	ip, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+40
	lsl	lr, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #68
	str	lr, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+44
	lsl	r4, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #72
	str	r4, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+48
	lsl	r5, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #76
	str	r5, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+52
	lsl	r6, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #80
	str	r6, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+56
	lsl	r7, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #84
	str	r7, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+60
	lsl	r8, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #88
	str	r8, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+64
	lsl	r9, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #92
	str	r9, [r3]
	ldr	r3, .L31+32
	ldr	r3, [r3]
	ldr	r2, .L31+68
	lsl	r10, r2, r3
	sub	r3, fp, #32768
	sub	r3, r3, #96
	str	r10, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+72
	lsl	r3, r3, r2
	sub	r2, fp, #32768
	sub	r2, r2, #100
	str	r3, [r2]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+76
	lsl	r2, r3, r2
	sub	r3, fp, #32768
	sub	r3, r3, #104
	str	r2, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+80
	lsl	r1, r3, r2
	sub	r3, fp, #32768
	sub	r3, r3, #108
	str	r1, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+84
	lsl	r0, r3, r2
	sub	r3, fp, #32768
	sub	r3, r3, #112
	str	r0, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+88
	lsl	ip, r3, r2
	sub	r3, fp, #32768
	sub	r3, r3, #116
	str	ip, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+92
	lsl	lr, r3, r2
	sub	r3, fp, #32768
	sub	r3, r3, #120
	str	lr, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+96
	lsl	r4, r3, r2
	sub	r3, fp, #32768
	sub	r3, r3, #124
	str	r4, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+100
	lsl	r5, r3, r2
	sub	r3, fp, #32768
	sub	r3, r3, #128
	str	r5, [r3]
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+104
	lsl	r10, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+108
	lsl	r9, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+112
	lsl	r8, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+116
	lsl	r7, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+120
	lsl	r6, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+124
	lsl	r5, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+128
	lsl	r4, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+132
	lsl	lr, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+136
	lsl	ip, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+140
	lsl	r0, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+144
	lsl	r1, r3, r2
	ldr	r3, .L31+32
	ldr	r2, [r3]
	ldr	r3, .L31+148
	lsl	r3, r3, r2
	str	r3, [sp, #124]
	str	r1, [sp, #120]
	str	r0, [sp, #116]
	str	ip, [sp, #112]
	str	lr, [sp, #108]
	str	r4, [sp, #104]
	str	r5, [sp, #100]
	str	r6, [sp, #96]
	str	r7, [sp, #92]
	str	r8, [sp, #88]
	str	r9, [sp, #84]
	str	r10, [sp, #80]
	sub	r3, fp, #32768
	sub	r3, r3, #128
	ldr	r5, [r3]
	str	r5, [sp, #76]
	sub	r3, fp, #32768
	sub	r3, r3, #124
	ldr	r4, [r3]
	str	r4, [sp, #72]
	sub	r3, fp, #32768
	sub	r3, r3, #120
	ldr	lr, [r3]
	str	lr, [sp, #68]
	sub	r3, fp, #32768
	sub	r3, r3, #116
	ldr	ip, [r3]
	str	ip, [sp, #64]
	sub	r3, fp, #32768
	sub	r3, r3, #112
	ldr	r0, [r3]
	str	r0, [sp, #60]
	sub	r3, fp, #32768
	sub	r3, r3, #108
	ldr	r1, [r3]
	str	r1, [sp, #56]
	sub	r3, fp, #32768
	sub	r3, r3, #104
	ldr	r2, [r3]
	str	r2, [sp, #52]
	sub	r3, fp, #32768
	sub	r3, r3, #100
	ldr	r3, [r3]
	str	r3, [sp, #48]
	sub	r3, fp, #32768
	sub	r3, r3, #96
	ldr	r10, [r3]
	str	r10, [sp, #44]
	sub	r3, fp, #32768
	sub	r3, r3, #92
	ldr	r9, [r3]
	str	r9, [sp, #40]
	sub	r3, fp, #32768
	sub	r3, r3, #88
	ldr	r8, [r3]
	str	r8, [sp, #36]
	sub	r3, fp, #32768
	sub	r3, r3, #84
	ldr	r7, [r3]
	str	r7, [sp, #32]
	sub	r3, fp, #32768
	sub	r3, r3, #80
	ldr	r6, [r3]
	str	r6, [sp, #28]
	sub	r3, fp, #32768
	sub	r3, r3, #76
	ldr	r5, [r3]
	str	r5, [sp, #24]
	sub	r3, fp, #32768
	sub	r3, r3, #72
	ldr	r4, [r3]
	str	r4, [sp, #20]
	sub	r3, fp, #32768
	sub	r3, r3, #68
	ldr	lr, [r3]
	str	lr, [sp, #16]
	sub	r3, fp, #32768
	sub	r3, r3, #64
	ldr	ip, [r3]
	str	ip, [sp, #12]
	sub	r3, fp, #32768
	sub	r3, r3, #60
	ldr	r0, [r3]
	str	r0, [sp, #8]
	sub	r3, fp, #32768
	sub	r3, r3, #56
	ldr	r1, [r3]
	str	r1, [sp, #4]
	sub	r3, fp, #32768
	sub	r3, r3, #52
	ldr	r2, [r3]
	str	r2, [sp]
	sub	r3, fp, #32768
	sub	r3, r3, #48
	ldr	r3, [r3]
	mov	r2, #33
	ldr	r1, .L31+152
	ldr	r0, .L31+28
	bl	makecontext
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #38
	bne	.L21
	ldr	r0, .L31+156
	bl	puts
	ldr	r3, .L31+16
	mov	r2, #1
	str	r2, [r3]
	mov	r3, #0
	b	.L29
.L21:
	ldr	r3, .L31+160
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L31+160
	str	r3, [r2]
	cmp	r3, #1
	bne	.L23
	ldr	r0, .L31+28
	bl	setcontext
	mov	r3, r0
	cmp	r3, #0
	beq	.L23
	ldr	r1, .L31+20
	ldr	r0, .L31+164
	bl	printf
	mov	r0, #1
	bl	exit
.L23:
	ldr	r3, .L31+160
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L24
	ldr	r1, .L31+20
	ldr	r0, .L31+168
	bl	printf
	mov	r0, #1
	bl	exit
.L24:
	ldr	r0, .L31+172
	bl	getcontext
	mov	r3, r0
	cmp	r3, #0
	beq	.L25
	ldr	r1, .L31+20
	ldr	r0, .L31+176
	bl	printf
	mov	r0, #1
	bl	exit
.L25:
	ldr	r3, .L31+12
	ldr	r2, .L31+180
	str	r2, [r3, #1496]
	ldr	r3, .L31+12
	mov	r2, #32768
	str	r2, [r3, #1504]
	ldr	r3, .L31+12
	ldr	r2, .L31+28
	str	r2, [r3, #1492]
	mov	r2, #0
	ldr	r1, .L31+184
	ldr	r0, .L31+172
	bl	makecontext
	ldr	r0, .L31+188
	bl	puts
	ldr	r1, .L31+172
	ldr	r0, .L31+12
	bl	swapcontext
	mov	r3, r0
	cmp	r3, #0
	beq	.L26
	ldr	r1, .L31+20
	ldr	r0, .L31+192
	bl	printf
	mov	r0, #1
	bl	exit
.L26:
	ldr	r0, .L31+196
	bl	puts
	ldr	r3, .L31+16
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L31+200
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L27
	ldr	r0, .L31+204
	bl	puts
	mov	r0, #1
	bl	exit
.L27:
	ldr	r3, .L31+208
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L28
	ldr	r0, .L31+212
	bl	puts
	mov	r0, #1
	bl	exit
.L28:
	ldr	r0, .L31+216
	bl	puts
	mov	r3, #0
.L29:
	ldr	r2, .L31
	ldr	r1, [r2]
	ldr	r2, [fp, #-40]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L30
	bl	__stack_chk_fail
.L30:
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L32:
	.align	2
.L31:
	.word	.LC18
	.word	check_called
	.word	.LC7
	.word	ctx
	.word	back_in_main
	.word	__FUNCTION__.6041
	.word	.LC8
	.word	ctx+744
	.word	flag
	.word	291
	.word	1165
	.word	4660
	.word	18641
	.word	74565
	.word	298261
	.word	1193046
	.word	4772185
	.word	19088743
	.word	76354974
	.word	305419896
	.word	1221679586
	.word	591751049
	.word	-1927963098
	.word	878082202
	.word	-782638486
	.word	1164413355
	.word	362686127
	.word	1450744508
	.word	1508010739
	.word	1737075661
	.word	-1641631945
	.word	2023406814
	.word	-496307333
	.word	-1985229329
	.word	649017276
	.word	-1698898192
	.word	1794341827
	.word	-1412567281
	.word	f1
	.word	.LC9
	.word	global
	.word	.LC10
	.word	.LC11
	.word	ctx+1488
	.word	.LC12
	.word	st2
	.word	f2
	.word	.LC13
	.word	.LC2
	.word	.LC14
	.word	was_in_f1
	.word	.LC15
	.word	was_in_f2
	.word	.LC16
	.word	.LC17
	.size	main, .-main
	.section	.rodata
	.align	2
	.type	__FUNCTION__.6027, %object
	.size	__FUNCTION__.6027, 3
__FUNCTION__.6027:
	.ascii	"f1\000"
	.align	2
	.type	__FUNCTION__.6031, %object
	.size	__FUNCTION__.6031, 3
__FUNCTION__.6031:
	.ascii	"f2\000"
	.align	2
	.type	__FUNCTION__.6041, %object
	.size	__FUNCTION__.6041, 5
__FUNCTION__.6041:
	.ascii	"main\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
