	.file	"92366.c"
	.intel_syntax noprefix
	.text
	.globl	perf_dlfilter_fns
	.bss
	.align 32
	.type	perf_dlfilter_fns, @object
	.size	perf_dlfilter_fns, 1024
perf_dlfilter_fns:
	.zero	1024
	.local	verbose
	.comm	verbose,4,4
	.section	.rodata
.LC0:
	.string	"%s\n"
	.text
	.type	test_fail, @function
test_fail:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L2
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -8[rbp]
	lea	rsi, .LC0[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2:
	mov	eax, -1
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	test_fail, .-test_fail
	.local	filt_dat
	.comm	filt_dat,8,8
	.section	.rodata
	.align 8
.LC1:
	.string	"Check '!filt_dat && !called' failed\n"
.LC2:
	.string	"Failed to allocate memory"
.LC3:
	.string	"Check 'dlargc == 6' failed\n"
.LC4:
	.string	"first"
	.align 8
.LC5:
	.string	"Check '!strcmp(dlargv[0], \"first\")' failed\n"
.LC6:
	.string	"last"
	.align 8
.LC7:
	.string	"Check '!strcmp(dlargv[5], \"last\")' failed\n"
.LC8:
	.string	"%s API\n"
	.text
	.globl	start
	.type	start, @function
start:
.LFB37:
	.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	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR verbose[rip], 1
	mov	rax, QWORD PTR filt_dat[rip]
	test	rax, rax
	jne	.L5
	movzx	eax, BYTE PTR called.5[rip]
	test	al, al
	je	.L6
.L5:
	lea	rdi, .LC1[rip]
	call	test_fail
	jmp	.L13
.L6:
	mov	BYTE PTR called.5[rip], 1
	mov	esi, 32
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L8
	lea	rdi, .LC2[rip]
	call	test_fail
.L8:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR filt_dat[rip], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rcx, QWORD PTR perf_dlfilter_fns[rip+16]
	lea	rdx, -28[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 6
	je	.L9
	lea	rdi, .LC3[rip]
	call	test_fail
	jmp	.L13
.L9:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC4[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L10
	lea	rdi, .LC5[rip]
	call	test_fail
	jmp	.L13
.L10:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR verbose[rip], eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	strtoull@PLT
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	strtoull@PLT
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 32
	mov	rax, QWORD PTR [rax]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 40
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L11
	lea	rdi, .LC7[rip]
	call	test_fail
	jmp	.L13
.L11:
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L12
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, __func__.4[rip]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L12:
	mov	eax, 0
.L13:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	start, .-start
	.section	.rodata
	.align 8
.LC9:
	.string	"Check 'sample->size >= sizeof(struct perf_dlfilter_sample)' failed\n"
.LC10:
	.string	"'ip' not expected value\n"
.LC11:
	.string	"'pid' not expected value\n"
.LC12:
	.string	"'tid' not expected value\n"
.LC13:
	.string	"'time' not expected value\n"
.LC14:
	.string	"'addr' not expected value\n"
.LC15:
	.string	"'id' not expected value\n"
	.align 8
.LC16:
	.string	"'stream_id' not expected value\n"
.LC17:
	.string	"'period' not expected value\n"
.LC18:
	.string	"'cpu' not expected value\n"
.LC19:
	.string	"'cpumode' not expected value\n"
	.align 8
.LC20:
	.string	"'addr_correlates_sym' not expected value\n"
.LC21:
	.string	"'misc' not expected value\n"
	.align 8
.LC22:
	.string	"Check '!sample->raw_data' failed\n"
	.align 8
.LC23:
	.string	"'brstack_nr' not expected value\n"
	.align 8
.LC24:
	.string	"Check '!sample->brstack' failed\n"
	.align 8
.LC25:
	.string	"'raw_callchain_nr' not expected value\n"
	.align 8
.LC26:
	.string	"Check '!sample->raw_callchain' failed\n"
.LC27:
	.string	"branches:"
	.align 8
.LC28:
	.string	"Check '!strncmp(sample->event, EVENT_NAME, strlen(EVENT_NAME))' failed\n"
	.text
	.type	check_sample, @function
check_sample:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 224
	mov	QWORD PTR -216[rbp], rdi
	mov	QWORD PTR -224[rbp], rsi
	lea	rdx, -208[rbp]
	mov	eax, 0
	mov	ecx, 25
	mov	rdi, rdx
	rep stosq
	mov	rax, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -200[rbp], rax
	mov	DWORD PTR -192[rbp], 12345
	mov	DWORD PTR -188[rbp], 12346
	mov	QWORD PTR -184[rbp], 1234567890
	mov	rax, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -176[rbp], rax
	mov	QWORD PTR -168[rbp], 99
	mov	QWORD PTR -160[rbp], 101
	mov	QWORD PTR -152[rbp], 543212345
	mov	DWORD PTR -112[rbp], 31
	mov	BYTE PTR -64[rbp], 2
	mov	BYTE PTR -63[rbp], 1
	mov	WORD PTR -62[rbp], 2
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 199
	ja	.L16
	lea	rdi, .LC9[rip]
	call	test_fail
	jmp	.L36
.L16:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -200[rbp]
	cmp	rdx, rax
	je	.L18
	lea	rdi, .LC10[rip]
	call	test_fail
	jmp	.L36
.L18:
	mov	rax, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR 16[rax]
	mov	eax, DWORD PTR -192[rbp]
	cmp	edx, eax
	je	.L19
	lea	rdi, .LC11[rip]
	call	test_fail
	jmp	.L36
.L19:
	mov	rax, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	eax, DWORD PTR -188[rbp]
	cmp	edx, eax
	je	.L20
	lea	rdi, .LC12[rip]
	call	test_fail
	jmp	.L36
.L20:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -184[rbp]
	cmp	rdx, rax
	je	.L21
	lea	rdi, .LC13[rip]
	call	test_fail
	jmp	.L36
.L21:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -176[rbp]
	cmp	rdx, rax
	je	.L22
	lea	rdi, .LC14[rip]
	call	test_fail
	jmp	.L36
.L22:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -168[rbp]
	cmp	rdx, rax
	je	.L23
	lea	rdi, .LC15[rip]
	call	test_fail
	jmp	.L36
.L23:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -160[rbp]
	cmp	rdx, rax
	je	.L24
	lea	rdi, .LC16[rip]
	call	test_fail
	jmp	.L36
.L24:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -152[rbp]
	cmp	rdx, rax
	je	.L25
	lea	rdi, .LC17[rip]
	call	test_fail
	jmp	.L36
.L25:
	mov	rax, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR 96[rax]
	mov	eax, DWORD PTR -112[rbp]
	cmp	edx, eax
	je	.L26
	lea	rdi, .LC18[rip]
	call	test_fail
	jmp	.L36
.L26:
	mov	rax, QWORD PTR -224[rbp]
	movzx	edx, BYTE PTR 144[rax]
	movzx	eax, BYTE PTR -64[rbp]
	cmp	dl, al
	je	.L27
	lea	rdi, .LC19[rip]
	call	test_fail
	jmp	.L36
.L27:
	mov	rax, QWORD PTR -224[rbp]
	movzx	edx, BYTE PTR 145[rax]
	movzx	eax, BYTE PTR -63[rbp]
	cmp	dl, al
	je	.L28
	lea	rdi, .LC20[rip]
	call	test_fail
	jmp	.L36
.L28:
	mov	rax, QWORD PTR -224[rbp]
	movzx	edx, WORD PTR 146[rax]
	movzx	eax, WORD PTR -62[rbp]
	cmp	dx, ax
	je	.L29
	lea	rdi, .LC21[rip]
	call	test_fail
	jmp	.L36
.L29:
	mov	rax, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR 152[rax]
	test	rax, rax
	je	.L30
	lea	rdi, .LC22[rip]
	call	test_fail
	jmp	.L36
.L30:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	rax, QWORD PTR -48[rbp]
	cmp	rdx, rax
	je	.L31
	lea	rdi, .LC23[rip]
	call	test_fail
	jmp	.L36
.L31:
	mov	rax, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR 168[rax]
	test	rax, rax
	je	.L32
	lea	rdi, .LC24[rip]
	call	test_fail
	jmp	.L36
.L32:
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR 176[rax]
	mov	rax, QWORD PTR -32[rbp]
	cmp	rdx, rax
	je	.L33
	lea	rdi, .LC25[rip]
	call	test_fail
	jmp	.L36
.L33:
	mov	rax, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR 184[rax]
	test	rax, rax
	je	.L34
	lea	rdi, .LC26[rip]
	call	test_fail
	jmp	.L36
.L34:
	mov	rax, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR 192[rax]
	mov	edx, 9
	lea	rsi, .LC27[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L35
	lea	rdi, .LC28[rip]
	call	test_fail
	jmp	.L36
.L35:
	mov	eax, 0
.L36:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	check_sample, .-check_sample
	.section	.rodata
.LC29:
	.string	"resolve_ip() failed"
.LC30:
	.string	"foo"
	.align 8
.LC31:
	.string	"Check 'al->sym && !strcmp(\"foo\", al->sym)' failed\n"
.LC32:
	.string	"Check '!al->symoff' failed\n"
	.text
	.type	check_al, @function
check_al:
.LFB39:
	.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	QWORD PTR -24[rbp], rdi
	mov	rdx, QWORD PTR perf_dlfilter_fns[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L38
	lea	rdi, .LC29[rip]
	call	test_fail
	jmp	.L39
.L38:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L40
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	lea	rdi, .LC30[rip]
	call	strcmp@PLT
	test	eax, eax
	je	.L41
.L40:
	lea	rdi, .LC31[rip]
	call	test_fail
	jmp	.L39
.L41:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	je	.L42
	lea	rdi, .LC32[rip]
	call	test_fail
	jmp	.L39
.L42:
	mov	eax, 0
.L39:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	check_al, .-check_al
	.section	.rodata
.LC33:
	.string	"resolve_addr() failed"
.LC34:
	.string	"bar"
	.align 8
.LC35:
	.string	"Check 'addr_al->sym && !strcmp(\"bar\", addr_al->sym)' failed\n"
	.align 8
.LC36:
	.string	"Check '!addr_al->symoff' failed\n"
	.text
	.type	check_addr_al, @function
check_addr_al:
.LFB40:
	.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	QWORD PTR -24[rbp], rdi
	mov	rdx, QWORD PTR perf_dlfilter_fns[rip+8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L44
	lea	rdi, .LC33[rip]
	call	test_fail
	jmp	.L45
.L44:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L46
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	lea	rdi, .LC34[rip]
	call	strcmp@PLT
	test	eax, eax
	je	.L47
.L46:
	lea	rdi, .LC35[rip]
	call	test_fail
	jmp	.L45
.L47:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	je	.L48
	lea	rdi, .LC36[rip]
	call	test_fail
	jmp	.L45
.L48:
	mov	eax, 0
.L45:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	check_addr_al, .-check_addr_al
	.section	.rodata
.LC37:
	.string	"Check 'attr' failed\n"
	.align 8
.LC38:
	.string	"Check 'attr->type == PERF_TYPE_HARDWARE' failed\n"
	.align 8
.LC39:
	.string	"Check 'attr->config == PERF_COUNT_HW_BRANCH_INSTRUCTIONS' failed\n"
	.text
	.type	check_attr, @function
check_attr:
.LFB41:
	.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	QWORD PTR -24[rbp], rdi
	mov	rdx, QWORD PTR perf_dlfilter_fns[rip+48]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L50
	lea	rdi, .LC37[rip]
	call	test_fail
	jmp	.L51
.L50:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L52
	lea	rdi, .LC38[rip]
	call	test_fail
	jmp	.L51
.L52:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 4
	je	.L53
	lea	rdi, .LC39[rip]
	call	test_fail
	jmp	.L51
.L53:
	mov	eax, 0
.L51:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	check_attr, .-check_attr
	.section	.rodata
	.align 8
.LC40:
	.string	"Check 'data && filt_dat == data' failed\n"
	.align 8
.LC41:
	.string	"Check '!d->early_filter_cnt' failed\n"
	.align 8
.LC42:
	.string	"Check '!d->filter_cnt' failed\n"
	.align 8
.LC43:
	.string	"Check 'd->early_filter_cnt' failed\n"
	.align 8
.LC44:
	.string	"Check 'd->do_early != 2' failed\n"
	.text
	.type	do_checks, @function
do_checks:
.LFB42:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, ecx
	mov	BYTE PTR -44[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L55
	mov	rax, QWORD PTR filt_dat[rip]
	cmp	QWORD PTR -24[rbp], rax
	je	.L56
.L55:
	lea	rdi, .LC40[rip]
	call	test_fail
	jmp	.L57
.L56:
	cmp	BYTE PTR -44[rbp], 0
	je	.L58
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 20[rax]
	test	eax, eax
	je	.L59
	lea	rdi, .LC41[rip]
	call	test_fail
	jmp	.L57
.L59:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 20[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L60
.L58:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L61
	lea	rdi, .LC42[rip]
	call	test_fail
	jmp	.L57
.L61:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 20[rax]
	test	eax, eax
	jne	.L62
	lea	rdi, .LC43[rip]
	call	test_fail
	jmp	.L57
.L62:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 2
	jne	.L63
	lea	rdi, .LC44[rip]
	call	test_fail
	jmp	.L57
.L63:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], edx
.L60:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	check_sample
	test	eax, eax
	je	.L64
	mov	eax, -1
	jmp	.L57
.L64:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	check_attr
	test	eax, eax
	je	.L65
	mov	eax, -1
	jmp	.L57
.L65:
	cmp	BYTE PTR -44[rbp], 0
	je	.L66
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jne	.L66
	mov	eax, 0
	jmp	.L57
.L66:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	check_al
	test	eax, eax
	jne	.L67
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	check_addr_al
	test	eax, eax
	je	.L68
.L67:
	mov	eax, -1
	jmp	.L57
.L68:
	cmp	BYTE PTR -44[rbp], 0
	je	.L69
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 2
	sete	al
	movzx	eax, al
	jmp	.L57
.L69:
	mov	eax, 1
.L57:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	do_checks, .-do_checks
	.globl	filter_event_early
	.type	filter_event_early, @function
filter_event_early:
.LFB43:
	.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	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L71
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, __func__.3[rip]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L71:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	do_checks
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	filter_event_early, .-filter_event_early
	.globl	filter_event
	.type	filter_event, @function
filter_event:
.LFB44:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L74
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, __func__.2[rip]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L74:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	do_checks
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	filter_event, .-filter_event
	.section	.rodata
	.align 8
.LC45:
	.string	"Check 'data && filt_dat == data && !called' failed\n"
	.text
	.globl	stop
	.type	stop, @function
stop:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L77
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, __func__.1[rip]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L77:
	cmp	QWORD PTR -8[rbp], 0
	je	.L78
	mov	rax, QWORD PTR filt_dat[rip]
	cmp	QWORD PTR -8[rbp], rax
	jne	.L78
	movzx	eax, BYTE PTR called.0[rip]
	test	al, al
	je	.L79
.L78:
	lea	rdi, .LC45[rip]
	call	test_fail
	jmp	.L80
.L79:
	mov	BYTE PTR called.0[rip], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	QWORD PTR filt_dat[rip], 0
	mov	eax, 0
.L80:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	stop, .-stop
	.section	.rodata
	.align 8
.LC46:
	.string	"Filter used by the 'dlfilter C API' perf test"
.LC47:
	.string	"dlfilter to test v0 C API"
	.text
	.globl	filter_description
	.type	filter_description, @function
filter_description:
.LFB46:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, .LC46[rip]
	mov	QWORD PTR [rax], rdx
	lea	rax, .LC47[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	filter_description, .-filter_description
	.local	called.5
	.comm	called.5,1,1
	.section	.rodata
	.type	__func__.4, @object
	.size	__func__.4, 6
__func__.4:
	.string	"start"
	.align 16
	.type	__func__.3, @object
	.size	__func__.3, 19
__func__.3:
	.string	"filter_event_early"
	.align 8
	.type	__func__.2, @object
	.size	__func__.2, 13
__func__.2:
	.string	"filter_event"
	.type	__func__.1, @object
	.size	__func__.1, 5
__func__.1:
	.string	"stop"
	.local	called.0
	.comm	called.0,1,1
	.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	"92366.c"
	.text
	.comm	perf_dlfilter_fns,512,4
	.local	verbose
	.comm	verbose,4,4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"%s\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	test_fail, %function
test_fail:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2
	ldr	r3, .L4+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	ldr	r1, .L4+8
	mov	r0, r3
	bl	fprintf
.L2:
	mvn	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L5:
	.align	2
.L4:
	.word	verbose
	.word	stderr
	.word	.LC0
	.size	test_fail, .-test_fail
	.local	filt_dat
	.comm	filt_dat,4,4
	.section	.rodata
	.align	2
.LC1:
	.ascii	"Check '!filt_dat && !called' failed\012\000"
	.align	2
.LC2:
	.ascii	"Failed to allocate memory\000"
	.align	2
.LC3:
	.ascii	"Check 'dlargc == 6' failed\012\000"
	.align	2
.LC4:
	.ascii	"first\000"
	.align	2
.LC5:
	.ascii	"Check '!strcmp(dlargv[0], \"first\")' failed\012\000"
	.align	2
.LC6:
	.ascii	"last\000"
	.align	2
.LC7:
	.ascii	"Check '!strcmp(dlargv[5], \"last\")' failed\012\000"
	.align	2
.LC8:
	.ascii	"%s API\012\000"
	.align	2
.LC9:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	start
	.syntax unified
	.arm
	.fpu softvfp
	.type	start, %function
start:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, .L17
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L17+4
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L17+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L7
	ldr	r3, .L17+12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L8
.L7:
	ldr	r0, .L17+16
	bl	test_fail
	mov	r3, r0
	b	.L15
.L8:
	ldr	r3, .L17+12
	mov	r2, #1
	strb	r2, [r3]
	mov	r1, #32
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L10
	ldr	r0, .L17+20
	bl	test_fail
.L10:
	ldr	r2, .L17+8
	ldr	r3, [fp, #-16]
	str	r3, [r2]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, .L17+24
	ldr	r3, [r3, #8]
	sub	r2, fp, #20
	mov	r1, r2
	ldr	r0, [fp, #-28]
	blx	r3
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r3, #6
	beq	.L11
	ldr	r0, .L17+28
	bl	test_fail
	mov	r3, r0
	b	.L15
.L11:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r1, .L17+32
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L12
	ldr	r0, .L17+36
	bl	test_fail
	mov	r3, r0
	b	.L15
.L12:
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	mov	r3, r0
	ldr	r2, .L17+4
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	strtoull
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-16]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-12]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	strtoull
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-16]
	str	r2, [r1, #8]
	str	r3, [r1, #12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #20
	ldr	r3, [r3]
	ldr	r1, .L17+40
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L13
	ldr	r0, .L17+44
	bl	test_fail
	mov	r3, r0
	b	.L15
.L13:
	ldr	r3, .L17+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L14
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldr	r2, .L17+52
	ldr	r1, .L17+56
	mov	r0, r3
	bl	fprintf
.L14:
	mov	r3, #0
.L15:
	ldr	r2, .L17
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L16
	bl	__stack_chk_fail
.L16:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L18:
	.align	2
.L17:
	.word	.LC9
	.word	verbose
	.word	filt_dat
	.word	called.5882
	.word	.LC1
	.word	.LC2
	.word	perf_dlfilter_fns
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	stderr
	.word	__func__.5883
	.word	.LC8
	.size	start, .-start
	.section	.rodata
	.align	2
.LC10:
	.ascii	"Check 'sample->size >= sizeof(struct perf_dlfilter_"
	.ascii	"sample)' failed\012\000"
	.align	2
.LC11:
	.ascii	"'ip' not expected value\012\000"
	.align	2
.LC12:
	.ascii	"'pid' not expected value\012\000"
	.align	2
.LC13:
	.ascii	"'tid' not expected value\012\000"
	.align	2
.LC14:
	.ascii	"'time' not expected value\012\000"
	.align	2
.LC15:
	.ascii	"'addr' not expected value\012\000"
	.align	2
.LC16:
	.ascii	"'id' not expected value\012\000"
	.align	2
.LC17:
	.ascii	"'stream_id' not expected value\012\000"
	.align	2
.LC18:
	.ascii	"'period' not expected value\012\000"
	.align	2
.LC19:
	.ascii	"'cpu' not expected value\012\000"
	.align	2
.LC20:
	.ascii	"'cpumode' not expected value\012\000"
	.align	2
.LC21:
	.ascii	"'addr_correlates_sym' not expected value\012\000"
	.align	2
.LC22:
	.ascii	"'misc' not expected value\012\000"
	.align	2
.LC23:
	.ascii	"Check '!sample->raw_data' failed\012\000"
	.align	2
.LC24:
	.ascii	"'brstack_nr' not expected value\012\000"
	.align	2
.LC25:
	.ascii	"Check '!sample->brstack' failed\012\000"
	.align	2
.LC26:
	.ascii	"'raw_callchain_nr' not expected value\012\000"
	.align	2
.LC27:
	.ascii	"Check '!sample->raw_callchain' failed\012\000"
	.align	2
.LC28:
	.ascii	"branches:\000"
	.align	2
.LC29:
	.ascii	"Check '!strncmp(sample->event, EVENT_NAME, strlen(E"
	.ascii	"VENT_NAME))' failed\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_sample, %function
check_sample:
	@ args = 0, pretend = 0, frame = 200
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #200
	str	r0, [fp, #-200]
	str	r1, [fp, #-204]
	sub	r3, fp, #196
	mov	r2, #192
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-200]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
	ldr	r3, .L41+16
	str	r3, [fp, #-180]
	ldr	r3, .L41+20
	str	r3, [fp, #-176]
	adr	r3, .L41
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	mov	r2, #99
	mov	r3, #0
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	mov	r2, #101
	mov	r3, #0
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	adr	r3, .L41+8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	mov	r3, #31
	str	r3, [fp, #-100]
	mov	r3, #2
	strb	r3, [fp, #-52]
	mov	r3, #1
	strb	r3, [fp, #-51]
	mov	r3, #2
	strh	r3, [fp, #-50]	@ movhi
	ldr	r3, [fp, #-204]
	ldr	r3, [r3]
	cmp	r3, #191
	bhi	.L20
	ldr	r0, .L41+24
	bl	test_fail
	mov	r3, r0
	b	.L40
.L20:
	ldr	r3, [fp, #-204]
	add	r1, r3, #8
	ldmia	r1, {r0-r1}
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L22
	ldr	r0, .L41+28
	bl	test_fail
	mov	r3, r0
	b	.L40
.L22:
	ldr	r3, [fp, #-204]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-180]
	cmp	r2, r3
	beq	.L23
	ldr	r0, .L41+32
	bl	test_fail
	mov	r3, r0
	b	.L40
.L23:
	ldr	r3, [fp, #-204]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	beq	.L24
	ldr	r0, .L41+36
	bl	test_fail
	mov	r3, r0
	b	.L40
.L24:
	ldr	r3, [fp, #-204]
	add	r1, r3, #24
	ldmia	r1, {r0-r1}
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L25
	ldr	r0, .L41+40
	bl	test_fail
	mov	r3, r0
	b	.L40
.L25:
	ldr	r3, [fp, #-204]
	add	r1, r3, #32
	ldmia	r1, {r0-r1}
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L26
	ldr	r0, .L41+44
	bl	test_fail
	mov	r3, r0
	b	.L40
.L26:
	ldr	r3, [fp, #-204]
	add	r1, r3, #40
	ldmia	r1, {r0-r1}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L27
	ldr	r0, .L41+48
	bl	test_fail
	mov	r3, r0
	b	.L40
.L27:
	ldr	r3, [fp, #-204]
	add	r1, r3, #48
	ldmia	r1, {r0-r1}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L28
	ldr	r0, .L41+52
	bl	test_fail
	mov	r3, r0
	b	.L40
.L28:
	ldr	r3, [fp, #-204]
	add	r1, r3, #56
	ldmia	r1, {r0-r1}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L29
	ldr	r0, .L41+56
	bl	test_fail
	mov	r3, r0
	b	.L40
.L29:
	ldr	r3, [fp, #-204]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	beq	.L30
	ldr	r0, .L41+60
	bl	test_fail
	mov	r3, r0
	b	.L40
.L30:
	ldr	r3, [fp, #-204]
	ldrb	r2, [r3, #144]	@ zero_extendqisi2
	ldrb	r3, [fp, #-52]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L31
	ldr	r0, .L41+64
	bl	test_fail
	mov	r3, r0
	b	.L40
.L31:
	ldr	r3, [fp, #-204]
	ldrb	r2, [r3, #145]	@ zero_extendqisi2
	ldrb	r3, [fp, #-51]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L32
	ldr	r0, .L41+68
	bl	test_fail
	mov	r3, r0
	b	.L40
.L32:
	ldr	r3, [fp, #-204]
	ldrh	r2, [r3, #146]
	ldrh	r3, [fp, #-50]
	cmp	r2, r3
	beq	.L33
	ldr	r0, .L41+72
	bl	test_fail
	mov	r3, r0
	b	.L40
.L33:
	ldr	r3, [fp, #-204]
	ldr	r3, [r3, #152]
	cmp	r3, #0
	beq	.L34
	ldr	r0, .L41+76
	bl	test_fail
	mov	r3, r0
	b	.L40
.L34:
	ldr	r3, [fp, #-204]
	add	r1, r3, #160
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L35
	ldr	r0, .L41+80
	bl	test_fail
	mov	r3, r0
	b	.L40
.L35:
	ldr	r3, [fp, #-204]
	ldr	r3, [r3, #168]
	cmp	r3, #0
	beq	.L36
	ldr	r0, .L41+84
	bl	test_fail
	mov	r3, r0
	b	.L40
.L36:
	ldr	r3, [fp, #-204]
	add	r1, r3, #176
	ldmia	r1, {r0-r1}
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L37
	ldr	r0, .L41+88
	bl	test_fail
	mov	r3, r0
	b	.L40
.L37:
	ldr	r3, [fp, #-204]
	ldr	r3, [r3, #184]
	cmp	r3, #0
	beq	.L38
	ldr	r0, .L41+92
	bl	test_fail
	mov	r3, r0
	b	.L40
.L38:
	ldr	r3, [fp, #-204]
	ldr	r3, [r3, #188]
	mov	r2, #9
	ldr	r1, .L41+96
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L39
	ldr	r0, .L41+100
	bl	test_fail
	mov	r3, r0
	b	.L40
.L39:
	mov	r3, #0
.L40:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L42:
	.align	3
.L41:
	.word	1234567890
	.word	0
	.word	543212345
	.word	0
	.word	12345
	.word	12346
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.size	check_sample, .-check_sample
	.section	.rodata
	.align	2
.LC30:
	.ascii	"resolve_ip() failed\000"
	.align	2
.LC31:
	.ascii	"foo\000"
	.align	2
.LC32:
	.ascii	"Check 'al->sym && !strcmp(\"foo\", al->sym)' failed"
	.ascii	"\012\000"
	.align	2
.LC33:
	.ascii	"Check '!al->symoff' failed\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_al, %function
check_al:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L49
	ldr	r3, [r3]
	ldr	r0, [fp, #-16]
	blx	r3
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L44
	ldr	r0, .L49+4
	bl	test_fail
	mov	r3, r0
	b	.L45
.L44:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L46
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, .L49+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L47
.L46:
	ldr	r0, .L49+12
	bl	test_fail
	mov	r3, r0
	b	.L45
.L47:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L48
	ldr	r0, .L49+16
	bl	test_fail
	mov	r3, r0
	b	.L45
.L48:
	mov	r3, #0
.L45:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L50:
	.align	2
.L49:
	.word	perf_dlfilter_fns
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.size	check_al, .-check_al
	.section	.rodata
	.align	2
.LC34:
	.ascii	"resolve_addr() failed\000"
	.align	2
.LC35:
	.ascii	"bar\000"
	.align	2
.LC36:
	.ascii	"Check 'addr_al->sym && !strcmp(\"bar\", addr_al->sy"
	.ascii	"m)' failed\012\000"
	.align	2
.LC37:
	.ascii	"Check '!addr_al->symoff' failed\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_addr_al, %function
check_addr_al:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L57
	ldr	r3, [r3, #4]
	ldr	r0, [fp, #-16]
	blx	r3
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L52
	ldr	r0, .L57+4
	bl	test_fail
	mov	r3, r0
	b	.L53
.L52:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L54
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, .L57+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L55
.L54:
	ldr	r0, .L57+12
	bl	test_fail
	mov	r3, r0
	b	.L53
.L55:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L56
	ldr	r0, .L57+16
	bl	test_fail
	mov	r3, r0
	b	.L53
.L56:
	mov	r3, #0
.L53:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L58:
	.align	2
.L57:
	.word	perf_dlfilter_fns
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.size	check_addr_al, .-check_addr_al
	.section	.rodata
	.align	2
.LC38:
	.ascii	"Check 'attr' failed\012\000"
	.align	2
.LC39:
	.ascii	"Check 'attr->type == PERF_TYPE_HARDWARE' failed\012"
	.ascii	"\000"
	.align	2
.LC40:
	.ascii	"Check 'attr->config == PERF_COUNT_HW_BRANCH_INSTRUC"
	.ascii	"TIONS' failed\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_attr, %function
check_attr:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L64
	ldr	r3, [r3, #24]
	ldr	r0, [fp, #-16]
	blx	r3
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L60
	ldr	r0, .L64+4
	bl	test_fail
	mov	r3, r0
	b	.L61
.L60:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L62
	ldr	r0, .L64+8
	bl	test_fail
	mov	r3, r0
	b	.L61
.L62:
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #4
	beq	.L63
	ldr	r0, .L64+12
	bl	test_fail
	mov	r3, r0
	b	.L61
.L63:
	mov	r3, #0
.L61:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L65:
	.align	2
.L64:
	.word	perf_dlfilter_fns
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.size	check_attr, .-check_attr
	.section	.rodata
	.align	2
.LC41:
	.ascii	"Check 'data && filt_dat == data' failed\012\000"
	.align	2
.LC42:
	.ascii	"Check '!d->early_filter_cnt' failed\012\000"
	.align	2
.LC43:
	.ascii	"Check '!d->filter_cnt' failed\012\000"
	.align	2
.LC44:
	.ascii	"Check 'd->early_filter_cnt' failed\012\000"
	.align	2
.LC45:
	.ascii	"Check 'd->do_early != 2' failed\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_checks, %function
do_checks:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	strb	r3, [fp, #-25]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L67
	ldr	r3, .L82
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L68
.L67:
	ldr	r0, .L82+4
	bl	test_fail
	mov	r3, r0
	b	.L69
.L68:
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L70
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L71
	ldr	r0, .L82+8
	bl	test_fail
	mov	r3, r0
	b	.L69
.L71:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	add	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3, #20]
	b	.L72
.L70:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	beq	.L73
	ldr	r0, .L82+12
	bl	test_fail
	mov	r3, r0
	b	.L69
.L73:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L74
	ldr	r0, .L82+16
	bl	test_fail
	mov	r3, r0
	b	.L69
.L74:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L75
	ldr	r0, .L82+20
	bl	test_fail
	mov	r3, r0
	b	.L69
.L75:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	add	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3, #24]
.L72:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	check_sample
	mov	r3, r0
	cmp	r3, #0
	beq	.L76
	mvn	r3, #0
	b	.L69
.L76:
	ldr	r0, [fp, #-24]
	bl	check_attr
	mov	r3, r0
	cmp	r3, #0
	beq	.L77
	mvn	r3, #0
	b	.L69
.L77:
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L78
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L78
	mov	r3, #0
	b	.L69
.L78:
	ldr	r0, [fp, #-24]
	bl	check_al
	mov	r3, r0
	cmp	r3, #0
	bne	.L79
	ldr	r0, [fp, #-24]
	bl	check_addr_al
	mov	r3, r0
	cmp	r3, #0
	beq	.L80
.L79:
	mvn	r3, #0
	b	.L69
.L80:
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L81
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	b	.L69
.L81:
	mov	r3, #1
.L69:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L83:
	.align	2
.L82:
	.word	filt_dat
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.size	do_checks, .-do_checks
	.align	2
	.global	filter_event_early
	.syntax unified
	.arm
	.fpu softvfp
	.type	filter_event_early, %function
filter_event_early:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, .L87
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L85
	ldr	r3, .L87+4
	ldr	r3, [r3]
	ldr	r2, .L87+8
	ldr	r1, .L87+12
	mov	r0, r3
	bl	fprintf
.L85:
	mov	r3, #1
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	do_checks
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L88:
	.align	2
.L87:
	.word	verbose
	.word	stderr
	.word	__func__.5913
	.word	.LC8
	.size	filter_event_early, .-filter_event_early
	.align	2
	.global	filter_event
	.syntax unified
	.arm
	.fpu softvfp
	.type	filter_event, %function
filter_event:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, .L92
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L90
	ldr	r3, .L92+4
	ldr	r3, [r3]
	ldr	r2, .L92+8
	ldr	r1, .L92+12
	mov	r0, r3
	bl	fprintf
.L90:
	mov	r3, #0
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	do_checks
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L93:
	.align	2
.L92:
	.word	verbose
	.word	stderr
	.word	__func__.5920
	.word	.LC8
	.size	filter_event, .-filter_event
	.section	.rodata
	.align	2
.LC46:
	.ascii	"Check 'data && filt_dat == data && !called' failed\012"
	.ascii	"\000"
	.text
	.align	2
	.global	stop
	.syntax unified
	.arm
	.fpu softvfp
	.type	stop, %function
stop:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L99
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L95
	ldr	r3, .L99+4
	ldr	r3, [r3]
	ldr	r2, .L99+8
	ldr	r1, .L99+12
	mov	r0, r3
	bl	fprintf
.L95:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L96
	ldr	r3, .L99+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bne	.L96
	ldr	r3, .L99+20
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L97
.L96:
	ldr	r0, .L99+24
	bl	test_fail
	mov	r3, r0
	b	.L98
.L97:
	ldr	r3, .L99+20
	mov	r2, #1
	strb	r2, [r3]
	ldr	r0, [fp, #-8]
	bl	free
	ldr	r3, .L99+16
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
.L98:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L100:
	.align	2
.L99:
	.word	verbose
	.word	stderr
	.word	__func__.5926
	.word	.LC8
	.word	filt_dat
	.word	called.5925
	.word	.LC46
	.size	stop, .-stop
	.section	.rodata
	.align	2
.LC47:
	.ascii	"Filter used by the 'dlfilter C API' perf test\000"
	.align	2
.LC48:
	.ascii	"dlfilter to test v0 C API\000"
	.text
	.align	2
	.global	filter_description
	.syntax unified
	.arm
	.fpu softvfp
	.type	filter_description, %function
filter_description:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L103
	str	r2, [r3]
	ldr	r3, .L103+4
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L104:
	.align	2
.L103:
	.word	.LC47
	.word	.LC48
	.size	filter_description, .-filter_description
	.local	called.5882
	.comm	called.5882,1,1
	.section	.rodata
	.align	2
	.type	__func__.5883, %object
	.size	__func__.5883, 6
__func__.5883:
	.ascii	"start\000"
	.align	2
	.type	__func__.5913, %object
	.size	__func__.5913, 19
__func__.5913:
	.ascii	"filter_event_early\000"
	.align	2
	.type	__func__.5920, %object
	.size	__func__.5920, 13
__func__.5920:
	.ascii	"filter_event\000"
	.align	2
	.type	__func__.5926, %object
	.size	__func__.5926, 5
__func__.5926:
	.ascii	"stop\000"
	.local	called.5925
	.comm	called.5925,1,1
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
