	.file	"586476.c"
	.intel_syntax noprefix
	.text
	.local	bpf_image
	.comm	bpf_image,32776,32
	.local	bpf_prog_len
	.comm	bpf_prog_len,4,4
	.local	bpf_breakpoints
	.comm	bpf_breakpoints,256,32
	.local	bpf_regs
	.comm	bpf_regs,327760,32
	.local	bpf_curr
	.comm	bpf_curr,80,32
	.local	bpf_regs_len
	.comm	bpf_regs_len,4,4
	.data
	.align 4
	.type	pcap_fd, @object
	.size	pcap_fd, 4
pcap_fd:
	.long	-1
	.local	pcap_packet
	.comm	pcap_packet,4,4
	.local	pcap_map_size
	.comm	pcap_map_size,8,8
	.local	pcap_ptr_va_start
	.comm	pcap_ptr_va_start,8,8
	.local	pcap_ptr_va_curr
	.comm	pcap_ptr_va_curr,8,8
	.section	.rodata
.LC0:
	.string	"ld"
.LC1:
	.string	"ldx"
.LC2:
	.string	"st"
.LC3:
	.string	"stx"
.LC4:
	.string	"add"
.LC5:
	.string	"ja"
.LC6:
	.string	"ret"
.LC7:
	.string	"tax"
.LC8:
	.string	"ldh"
.LC9:
	.string	"ldb"
.LC10:
	.string	"ldxb"
.LC11:
	.string	"sub"
.LC12:
	.string	"jeq"
.LC13:
	.string	"mul"
.LC14:
	.string	"jgt"
.LC15:
	.string	"div"
.LC16:
	.string	"jge"
.LC17:
	.string	"or"
.LC18:
	.string	"jset"
.LC19:
	.string	"and"
.LC20:
	.string	"lsh"
.LC21:
	.string	"rsh"
.LC22:
	.string	"neg"
.LC23:
	.string	"txa"
.LC24:
	.string	"mod"
.LC25:
	.string	"xor"
	.section	.data.rel.ro.local,"aw"
	.align 32
	.type	op_table, @object
	.size	op_table, 1320
op_table:
	.quad	.LC0
	.quad	.LC1
	.quad	.LC2
	.quad	.LC3
	.quad	.LC4
	.quad	.LC5
	.quad	.LC6
	.quad	.LC7
	.quad	.LC8
	.zero	56
	.quad	.LC9
	.quad	.LC10
	.zero	16
	.quad	.LC11
	.quad	.LC12
	.zero	112
	.quad	.LC13
	.quad	.LC14
	.zero	112
	.quad	.LC15
	.quad	.LC16
	.zero	112
	.quad	.LC17
	.quad	.LC18
	.zero	112
	.quad	.LC19
	.zero	120
	.quad	.LC20
	.zero	120
	.quad	.LC21
	.zero	120
	.quad	.LC22
	.zero	16
	.quad	.LC23
	.zero	96
	.quad	.LC24
	.zero	120
	.quad	.LC25
	.text
	.type	rl_printf, @function
rl_printf:
.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, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -168[rbp], rsi
	mov	QWORD PTR -160[rbp], rdx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -144[rbp], r8
	mov	QWORD PTR -136[rbp], r9
	test	al, al
	je	.L2
	movaps	XMMWORD PTR -128[rbp], xmm0
	movaps	XMMWORD PTR -112[rbp], xmm1
	movaps	XMMWORD PTR -96[rbp], xmm2
	movaps	XMMWORD PTR -80[rbp], xmm3
	movaps	XMMWORD PTR -64[rbp], xmm4
	movaps	XMMWORD PTR -48[rbp], xmm5
	movaps	XMMWORD PTR -32[rbp], xmm6
	movaps	XMMWORD PTR -16[rbp], xmm7
.L2:
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -184[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -208[rbp], 8
	mov	DWORD PTR -204[rbp], 48
	lea	rax, 16[rbp]
	mov	QWORD PTR -200[rbp], rax
	lea	rax, -176[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR rl_outstream[rip]
	lea	rdx, -208[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vfprintf@PLT
	mov	DWORD PTR -212[rbp], eax
	mov	eax, DWORD PTR -212[rbp]
	mov	rsi, QWORD PTR -184[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L4
	call	__stack_chk_fail@PLT
.L4:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	rl_printf, .-rl_printf
	.type	matches, @function
matches:
.LFB7:
	.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	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	movsx	rbx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	strlen@PLT
	cmp	rbx, rax
	jbe	.L6
	mov	eax, -1
	jmp	.L7
.L6:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcmp@PLT
.L7:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	matches, .-matches
	.section	.rodata
.LC26:
	.string	"%3u: "
.LC27:
	.string	"\n%3u: "
.LC28:
	.string	"%02x "
.LC29:
	.string	"\n"
	.text
	.type	hex_dump, @function
hex_dump:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	esi, 0
	lea	rdi, .LC26[rip]
	mov	eax, 0
	call	rl_printf
	mov	DWORD PTR -4[rbp], 0
	jmp	.L9
.L11:
	cmp	DWORD PTR -4[rbp], 0
	je	.L10
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 15
	test	eax, eax
	jne	.L10
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	rl_printf
.L10:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	rl_printf
	add	DWORD PTR -4[rbp], 1
.L9:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	cmp	QWORD PTR -32[rbp], rax
	ja	.L11
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	rl_printf
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	hex_dump, .-hex_dump
	.section	.rodata
.LC30:
	.string	"no bpf program loaded!\n"
	.text
	.type	bpf_prog_loaded, @function
bpf_prog_loaded:
.LFB9:
	.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 bpf_prog_len[rip]
	test	eax, eax
	jne	.L13
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	rl_printf
.L13:
	mov	eax, DWORD PTR bpf_prog_len[rip]
	test	eax, eax
	setne	al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	bpf_prog_loaded, .-bpf_prog_loaded
	.section	.rodata
.LC31:
	.string	"#%#x"
.LC32:
	.string	"a"
.LC33:
	.string	"x"
.LC34:
	.string	""
.LC35:
	.string	"M[%d]"
.LC36:
	.string	"[%d]"
.LC37:
	.string	"#len"
.LC38:
	.string	"[x+%d]"
.LC39:
	.string	"4*([%d]&0xf)"
.LC40:
	.string	"%d"
.LC41:
	.string	"#%d"
.LC42:
	.string	"nosup"
.LC43:
	.string	"%#x"
.LC44:
	.string	"l%d:\t%s %s, l%d, l%d\n"
.LC45:
	.string	"l%d:\t%s %s\n"
	.text
	.type	bpf_disasm, @function
bpf_disasm:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 320
	mov	QWORD PTR -312[rbp], rdi
	mov	DWORD PTR -316[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -308[rbp]
	mov	DWORD PTR -292[rbp], eax
	movzx	eax, WORD PTR -312[rbp]
	movzx	eax, ax
	cmp	eax, 177
	ja	.L16
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L18[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L18[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L18:
	.long	.L66-.L18
	.long	.L65-.L18
	.long	.L64-.L18
	.long	.L63-.L18
	.long	.L62-.L18
	.long	.L61-.L18
	.long	.L60-.L18
	.long	.L59-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L58-.L18
	.long	.L16-.L18
	.long	.L57-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L56-.L18
	.long	.L55-.L18
	.long	.L54-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L53-.L18
	.long	.L52-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L51-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L50-.L18
	.long	.L49-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L48-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L47-.L18
	.long	.L46-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L45-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L44-.L18
	.long	.L43-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L42-.L18
	.long	.L41-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L40-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L39-.L18
	.long	.L38-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L37-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L36-.L18
	.long	.L35-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L34-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L33-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L32-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L31-.L18
	.long	.L30-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L29-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L28-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L27-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L26-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L25-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L24-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L23-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L22-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L21-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L20-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L19-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L16-.L18
	.long	.L17-.L18
	.text
.L60:
	lea	rax, .LC6[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L54:
	lea	rax, .LC6[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC32[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L57:
	lea	rax, .LC6[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L59:
	lea	rax, .LC7[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC34[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L23:
	lea	rax, .LC23[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC34[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L64:
	lea	rax, .LC2[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC35[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L63:
	lea	rax, .LC3[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC35[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L51:
	lea	rax, .LC0[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC36[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L48:
	lea	rax, .LC8[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC36[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L45:
	lea	rax, .LC9[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC36[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L25:
	lea	rax, .LC0[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC37[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L40:
	lea	rax, .LC0[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC38[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L37:
	lea	rax, .LC8[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC38[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L34:
	lea	rax, .LC9[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC38[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L66:
	lea	rax, .LC0[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L65:
	lea	rax, .LC1[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L17:
	lea	rax, .LC10[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC39[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L31:
	lea	rax, .LC0[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC35[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L30:
	lea	rax, .LC1[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC35[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L61:
	lea	rax, .LC5[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC40[rip]
	mov	QWORD PTR -280[rbp], rax
	mov	edx, DWORD PTR -308[rbp]
	mov	eax, DWORD PTR -316[rbp]
	add	eax, edx
	add	eax, 1
	mov	DWORD PTR -292[rbp], eax
	jmp	.L67
.L46:
	lea	rax, .LC14[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L49:
	lea	rax, .LC14[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L41:
	lea	rax, .LC16[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L43:
	lea	rax, .LC16[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L52:
	lea	rax, .LC12[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L55:
	lea	rax, .LC12[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L35:
	lea	rax, .LC18[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L38:
	lea	rax, .LC18[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L24:
	lea	rax, .LC22[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC34[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L28:
	lea	rax, .LC20[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L29:
	lea	rax, .LC20[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC41[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L26:
	lea	rax, .LC21[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L27:
	lea	rax, .LC21[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC41[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L58:
	lea	rax, .LC4[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L62:
	lea	rax, .LC4[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC41[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L53:
	lea	rax, .LC11[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L56:
	lea	rax, .LC11[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC41[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L47:
	lea	rax, .LC13[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L50:
	lea	rax, .LC13[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC41[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L42:
	lea	rax, .LC15[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L44:
	lea	rax, .LC15[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC41[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L21:
	lea	rax, .LC24[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L22:
	lea	rax, .LC24[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC41[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L32:
	lea	rax, .LC19[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L33:
	lea	rax, .LC19[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L36:
	lea	rax, .LC17[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L39:
	lea	rax, .LC17[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L19:
	lea	rax, .LC25[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC33[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L20:
	lea	rax, .LC25[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC31[rip]
	mov	QWORD PTR -280[rbp], rax
	jmp	.L67
.L16:
	lea	rax, .LC42[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, .LC43[rip]
	mov	QWORD PTR -280[rbp], rax
	movzx	eax, WORD PTR -312[rbp]
	movzx	eax, ax
	mov	DWORD PTR -292[rbp], eax
	nop
.L67:
	lea	rax, -272[rbp]
	mov	edx, 256
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	ecx, DWORD PTR -292[rbp]
	mov	rdx, QWORD PTR -280[rbp]
	lea	rax, -272[rbp]
	mov	esi, 256
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	BYTE PTR -17[rbp], 0
	movzx	eax, WORD PTR -312[rbp]
	movzx	eax, ax
	and	eax, 7
	cmp	eax, 5
	jne	.L68
	movzx	eax, WORD PTR -312[rbp]
	movzx	eax, ax
	and	eax, 240
	test	eax, eax
	je	.L68
	movzx	eax, BYTE PTR -309[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR -316[rbp]
	add	eax, edx
	lea	edi, 1[rax]
	movzx	eax, BYTE PTR -310[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR -316[rbp]
	add	eax, edx
	lea	esi, 1[rax]
	lea	rcx, -272[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	mov	eax, DWORD PTR -316[rbp]
	mov	r9d, edi
	mov	r8d, esi
	mov	esi, eax
	lea	rdi, .LC44[rip]
	mov	eax, 0
	call	rl_printf
	jmp	.L69
.L68:
	lea	rcx, -272[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	mov	eax, DWORD PTR -316[rbp]
	mov	esi, eax
	lea	rdi, .LC45[rip]
	mov	eax, 0
	call	rl_printf
.L69:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L70
	call	__stack_chk_fail@PLT
.L70:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	bpf_disasm, .-bpf_disasm
	.section	.rodata
.LC46:
	.string	"pc:       [%u]\n"
	.align 8
.LC47:
	.string	"code:     [%u] jt[%u] jf[%u] k[%u]\n"
.LC48:
	.string	"curr:     "
.LC49:
	.string	"jt:       "
.LC50:
	.string	"jf:       "
.LC51:
	.string	"A:        [%#08x][%u]\n"
.LC52:
	.string	"X:        [%#08x][%u]\n"
.LC53:
	.string	"ret:      [%#08x][%u]!\n"
.LC54:
	.string	"M[%d]: [%#08x][%u]\n"
.LC55:
	.string	"M[0,%d]:  [%#08x][%u]\n"
	.text
	.type	bpf_dump_curr, @function
bpf_dump_curr:
.LFB11:
	.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	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 78[rax]
	movzx	eax, ax
	mov	esi, eax
	lea	rdi, .LC46[rip]
	mov	eax, 0
	call	rl_printf
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	mov	r8d, esi
	mov	esi, eax
	lea	rdi, .LC47[rip]
	mov	eax, 0
	call	rl_printf
	lea	rdi, .LC48[rip]
	mov	eax, 0
	call	rl_printf
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 78[rax]
	movzx	eax, ax
	mov	rdx, QWORD PTR -32[rbp]
	mov	esi, eax
	mov	rdi, QWORD PTR [rdx]
	call	bpf_disasm
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	test	al, al
	jne	.L72
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	test	al, al
	je	.L73
.L72:
	lea	rdi, .LC49[rip]
	mov	eax, 0
	call	rl_printf
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 78[rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	add	eax, edx
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	add	rax, 1
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	mov	esi, edx
	mov	rdi, QWORD PTR [rax]
	call	bpf_disasm
	lea	rdi, .LC50[rip]
	mov	eax, 0
	call	rl_printf
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 78[rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	add	eax, edx
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	add	rax, 1
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	mov	esi, edx
	mov	rdi, QWORD PTR [rax]
	call	bpf_disasm
.L73:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC51[rip]
	mov	eax, 0
	call	rl_printf
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	esi, eax
	lea	rdi, .LC52[rip]
	mov	eax, 0
	call	rl_printf
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 76[rax]
	test	al, al
	je	.L74
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 72[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 72[rax]
	mov	esi, eax
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	rl_printf
.L74:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L75
.L77:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR 8[rax+rdx*4]
	test	eax, eax
	je	.L76
	add	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	mov	ecx, DWORD PTR 8[rax+rdx*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	mov	edx, DWORD PTR 8[rax+rdx*4]
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC54[rip]
	mov	eax, 0
	call	rl_printf
.L76:
	add	DWORD PTR -8[rbp], 1
.L75:
	cmp	DWORD PTR -8[rbp], 15
	jle	.L77
	cmp	DWORD PTR -4[rbp], 0
	jne	.L79
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 15
	lea	rdi, .LC55[rip]
	mov	eax, 0
	call	rl_printf
.L79:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	bpf_dump_curr, .-bpf_dump_curr
	.section	.rodata
.LC56:
	.string	"cap: %u, len: %u\n"
.LC57:
	.string	"len: %u\n"
	.text
	.type	bpf_dump_pkt, @function
bpf_dump_pkt:
.LFB12:
	.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	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	je	.L81
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, eax
	lea	rdi, .LC56[rip]
	mov	eax, 0
	call	rl_printf
	jmp	.L82
.L81:
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, eax
	lea	rdi, .LC57[rip]
	mov	eax, 0
	call	rl_printf
.L82:
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hex_dump
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	bpf_dump_pkt, .-bpf_dump_pkt
	.type	bpf_disasm_all, @function
bpf_disasm_all:
.LFB13:
	.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	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L84
.L85:
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	rdi, QWORD PTR [rdx]
	call	bpf_disasm
	add	DWORD PTR -4[rbp], 1
.L84:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jb	.L85
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	bpf_disasm_all, .-bpf_disasm_all
	.section	.rodata
.LC58:
	.string	"/* { op, jt, jf, k }, */\n"
.LC59:
	.string	"{ %#04x, %2u, %2u, %#010x },\n"
	.text
	.type	bpf_dump_all, @function
bpf_dump_all:
.LFB14:
	.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	DWORD PTR -28[rbp], esi
	lea	rdi, .LC58[rip]
	mov	eax, 0
	call	rl_printf
	mov	DWORD PTR -4[rbp], 0
	jmp	.L87
.L88:
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	esi, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR 3[rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR 2[rax]
	movzx	edx, al
	mov	eax, DWORD PTR -4[rbp]
	lea	rdi, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdi
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	mov	r8d, esi
	mov	esi, eax
	lea	rdi, .LC59[rip]
	mov	eax, 0
	call	rl_printf
	add	DWORD PTR -4[rbp], 1
.L87:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jb	.L88
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	bpf_dump_all, .-bpf_dump_all
	.section	.rodata
.LC60:
	.string	"cannot open socket!\n"
	.align 8
.LC61:
	.string	"program not allowed to run by kernel!\n"
	.align 8
.LC62:
	.string	"extensions currently not supported!\n"
	.text
	.type	bpf_runnable, @function
bpf_runnable:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -60[rbp]
	mov	WORD PTR -32[rbp], ax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	edx, 0
	mov	esi, 2
	mov	edi, 2
	call	socket@PLT
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	jns	.L90
	lea	rdi, .LC60[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 0
	jmp	.L96
.L90:
	lea	rdx, -32[rbp]
	mov	eax, DWORD PTR -40[rbp]
	mov	r8d, 16
	mov	rcx, rdx
	mov	edx, 26
	mov	esi, 1
	mov	edi, eax
	call	setsockopt@PLT
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	close@PLT
	cmp	DWORD PTR -36[rbp], 0
	jns	.L92
	lea	rdi, .LC61[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 0
	jmp	.L96
.L92:
	mov	DWORD PTR -44[rbp], 0
	jmp	.L93
.L95:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 7
	test	eax, eax
	jne	.L94
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, -4096
	jbe	.L94
	lea	rdi, .LC62[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 0
	jmp	.L96
.L94:
	add	DWORD PTR -44[rbp], 1
.L93:
	mov	eax, DWORD PTR -44[rbp]
	cmp	DWORD PTR -60[rbp], eax
	ja	.L95
	mov	eax, 1
.L96:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L97
	call	__stack_chk_fail@PLT
.L97:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	bpf_runnable, .-bpf_runnable
	.type	bpf_reset_breakpoints, @function
bpf_reset_breakpoints:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], 0
	jmp	.L99
.L100:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bpf_breakpoints[rip]
	mov	DWORD PTR [rdx+rax], -1
	add	DWORD PTR -4[rbp], 1
.L99:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 63
	jbe	.L100
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	bpf_reset_breakpoints, .-bpf_reset_breakpoints
	.section	.rodata
.LC63:
	.string	"breakpoint already set!\n"
	.align 8
.LC64:
	.string	"too many breakpoints set, reset first!\n"
	.text
	.type	bpf_set_breakpoints, @function
bpf_set_breakpoints:
.LFB17:
	.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 -20[rbp], edi
	mov	BYTE PTR -5[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L102
.L106:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bpf_breakpoints[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -20[rbp]
	cmp	edx, eax
	jne	.L103
	lea	rdi, .LC63[rip]
	mov	eax, 0
	call	rl_printf
	mov	BYTE PTR -5[rbp], 1
	jmp	.L104
.L103:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bpf_breakpoints[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cmp	eax, -1
	jne	.L105
	movzx	eax, BYTE PTR -5[rbp]
	xor	eax, 1
	test	al, al
	je	.L105
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, bpf_breakpoints[rip]
	mov	DWORD PTR [rcx+rdx], eax
	mov	BYTE PTR -5[rbp], 1
.L105:
	add	DWORD PTR -4[rbp], 1
.L102:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 63
	jbe	.L106
.L104:
	movzx	eax, BYTE PTR -5[rbp]
	xor	eax, 1
	test	al, al
	je	.L108
	lea	rdi, .LC64[rip]
	mov	eax, 0
	call	rl_printf
.L108:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	bpf_set_breakpoints, .-bpf_set_breakpoints
	.section	.rodata
.LC65:
	.string	"breakpoints: "
.LC66:
	.string	"%d "
	.text
	.type	bpf_dump_breakpoints, @function
bpf_dump_breakpoints:
.LFB18:
	.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
	lea	rdi, .LC65[rip]
	mov	eax, 0
	call	rl_printf
	mov	DWORD PTR -4[rbp], 0
	jmp	.L110
.L113:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bpf_breakpoints[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	js	.L114
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bpf_breakpoints[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	esi, eax
	lea	rdi, .LC66[rip]
	mov	eax, 0
	call	rl_printf
	jmp	.L112
.L114:
	nop
.L112:
	add	DWORD PTR -4[rbp], 1
.L110:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 63
	jbe	.L113
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	rl_printf
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	bpf_dump_breakpoints, .-bpf_dump_breakpoints
	.type	bpf_reset, @function
bpf_reset:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR bpf_regs_len[rip], 0
	mov	edx, 327760
	mov	esi, 0
	lea	rdi, bpf_regs[rip]
	call	memset@PLT
	mov	edx, 80
	mov	esi, 0
	lea	rdi, bpf_curr[rip]
	call	memset@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	bpf_reset, .-bpf_reset
	.type	bpf_safe_regs, @function
bpf_safe_regs:
.LFB20:
	.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 bpf_regs_len[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR bpf_regs_len[rip], edx
	mov	edx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, bpf_regs[rip]
	add	rax, rdx
	mov	edx, 80
	lea	rsi, bpf_curr[rip]
	mov	rdi, rax
	call	memcpy@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	bpf_safe_regs, .-bpf_safe_regs
	.section	.rodata
	.align 8
.LC67:
	.string	"reached bottom of register history stack!\n"
	.text
	.type	bpf_restore_regs, @function
bpf_restore_regs:
.LFB21:
	.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 -20[rbp], edi
	mov	edx, DWORD PTR bpf_regs_len[rip]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	sub	eax, 1
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L118
	call	bpf_reset
	mov	eax, 1
	jmp	.L119
.L118:
	mov	eax, DWORD PTR bpf_regs_len[rip]
	cmp	DWORD PTR -4[rbp], eax
	jnb	.L120
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, bpf_regs[rip]
	add	rax, rdx
	mov	edx, 80
	mov	rsi, rax
	lea	rdi, bpf_curr[rip]
	call	memcpy@PLT
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR bpf_regs_len[rip], eax
	mov	eax, 1
	jmp	.L119
.L120:
	lea	rdi, .LC67[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 0
.L119:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	bpf_restore_regs, .-bpf_restore_regs
	.type	extract_u32, @function
extract_u32:
.LFB22:
	.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	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	edi, eax
	call	ntohl@PLT
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L123
	call	__stack_chk_fail@PLT
.L123:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	extract_u32, .-extract_u32
	.type	extract_u16, @function
extract_u16:
.LFB23:
	.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	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -10[rbp], ax
	movzx	eax, WORD PTR -10[rbp]
	movzx	eax, ax
	mov	edi, eax
	call	ntohs@PLT
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L126
	call	__stack_chk_fail@PLT
.L126:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	extract_u16, .-extract_u16
	.type	extract_u8, @function
extract_u8:
.LFB24:
	.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	DWORD PTR -12[rbp], esi
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	extract_u8, .-extract_u8
	.type	set_return, @function
set_return:
.LFB25:
	.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]
	mov	DWORD PTR 72[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 76[rax], 1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	set_return, .-set_return
	.type	bpf_single_step, @function
bpf_single_step:
.LFB26:
	.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	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -48[rbp], r8d
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	eax, 177
	ja	.L216
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L133[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L133[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L133:
	.long	.L180-.L133
	.long	.L179-.L133
	.long	.L178-.L133
	.long	.L177-.L133
	.long	.L176-.L133
	.long	.L175-.L133
	.long	.L174-.L133
	.long	.L173-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L172-.L133
	.long	.L216-.L133
	.long	.L171-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L170-.L133
	.long	.L169-.L133
	.long	.L168-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L167-.L133
	.long	.L166-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L165-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L164-.L133
	.long	.L163-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L162-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L161-.L133
	.long	.L160-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L159-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L137-.L133
	.long	.L158-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L136-.L133
	.long	.L157-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L156-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L155-.L133
	.long	.L154-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L153-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L152-.L133
	.long	.L151-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L150-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L149-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L148-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L147-.L133
	.long	.L146-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L145-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L144-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L143-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L142-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L141-.L133
	.long	.L140-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L139-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L138-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L137-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L136-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L135-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L134-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L216-.L133
	.long	.L132-.L133
	.text
.L174:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR 72[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 76[rax], 1
	jmp	.L131
.L168:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 72[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 76[rax], 1
	jmp	.L131
.L171:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 72[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 76[rax], 1
	jmp	.L131
.L173:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L131
.L138:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L178:
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax+rdx*4], ecx
	jmp	.L131
.L177:
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax+rdx*4], ecx
	jmp	.L131
.L165:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 3
	jbe	.L181
	mov	edx, DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extract_u32
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L131
.L181:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L162:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 1
	jbe	.L183
	mov	edx, DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extract_u16
	movzx	edx, ax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L183:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L159:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L185
	mov	edx, DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extract_u8
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L185:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L156:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 3
	jbe	.L217
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extract_u32
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L217
.L153:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 1
	jbe	.L188
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extract_u16
	movzx	edx, ax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L188:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L150:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, edx
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L190
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extract_u8
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L190:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L132:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L192
	mov	edx, DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extract_u8
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	sal	eax, 2
	and	eax, 60
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L131
.L192:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L141:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L140:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L180:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L179:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L131
.L147:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	edx, DWORD PTR 8[rax+rdx*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L146:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	edx, DWORD PTR 8[rax+rdx*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L131
.L175:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 78[rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L160:
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jbe	.L194
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L195
.L194:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L195:
	lea	edx, [rax+rcx]
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L163:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jnb	.L196
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L197
.L196:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L197:
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L157:
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jb	.L198
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L199
.L198:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L199:
	lea	edx, [rax+rcx]
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L158:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	ja	.L200
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L201
.L200:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L201:
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L166:
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jne	.L202
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L203
.L202:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L203:
	lea	edx, [rax+rcx]
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L169:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jne	.L204
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L205
.L204:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L205:
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L151:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	and	eax, ecx
	test	eax, eax
	je	.L206
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L207
.L206:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L207:
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L154:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 78[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, DWORD PTR -8[rbp]
	test	eax, eax
	je	.L208
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	jmp	.L209
.L208:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
.L209:
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 78[rax], dx
	jmp	.L131
.L139:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	neg	eax
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L144:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L145:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L142:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L143:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L172:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L176:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L167:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	sub	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L170:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L161:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L164:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	imul	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L136:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jne	.L218
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L137:
	cmp	DWORD PTR -8[rbp], 0
	jne	.L219
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	set_return
	jmp	.L131
.L218:
	nop
	jmp	.L211
.L219:
	nop
.L211:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	eax, 156
	je	.L212
	cmp	eax, 156
	jg	.L220
	cmp	eax, 148
	je	.L214
	cmp	eax, 148
	jg	.L220
	cmp	eax, 52
	je	.L215
	cmp	eax, 60
	jne	.L220
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 4[rdx]
	mov	edx, 0
	div	esi
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L213
.L215:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, 0
	div	DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L213
.L212:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR 4[rdx]
	mov	edx, 0
	div	ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L213
.L214:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, 0
	div	DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	nop
.L213:
	jmp	.L220
.L148:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	and	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L149:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L152:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	or	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L155:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L134:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L135:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	xor	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L131
.L217:
	nop
	jmp	.L216
.L220:
	nop
.L131:
.L216:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	bpf_single_step, .-bpf_single_step
	.type	bpf_pc_has_breakpoint, @function
bpf_pc_has_breakpoint:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	WORD PTR -20[rbp], ax
	mov	DWORD PTR -4[rbp], 0
	jmp	.L222
.L226:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bpf_breakpoints[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	js	.L227
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bpf_breakpoints[rip]
	mov	edx, DWORD PTR [rdx+rax]
	movzx	eax, WORD PTR -20[rbp]
	cmp	edx, eax
	jne	.L224
	mov	eax, 1
	jmp	.L225
.L227:
	nop
.L224:
	add	DWORD PTR -4[rbp], 1
.L222:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, 63
	jbe	.L226
	mov	eax, 0
.L225:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	bpf_pc_has_breakpoint, .-bpf_pc_has_breakpoint
	.section	.rodata
.LC68:
	.string	"-- register dump --\n"
.LC69:
	.string	"-- packet dump --\n"
.LC70:
	.string	"(breakpoint)\n"
	.text
	.type	bpf_handle_breakpoint, @function
bpf_handle_breakpoint:
.LFB28:
	.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	DWORD PTR -28[rbp], ecx
	mov	DWORD PTR -32[rbp], r8d
	lea	rdi, .LC68[rip]
	mov	eax, 0
	call	rl_printf
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 78[rax]
	movzx	eax, ax
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	bpf_dump_curr
	lea	rdi, .LC69[rip]
	mov	eax, 0
	call	rl_printf
	mov	edx, DWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	bpf_dump_pkt
	lea	rdi, .LC70[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	bpf_handle_breakpoint, .-bpf_handle_breakpoint
	.type	bpf_run_all, @function
bpf_run_all:
.LFB29:
	.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	eax, esi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -44[rbp], r8d
	mov	WORD PTR -28[rbp], ax
	mov	BYTE PTR -1[rbp], 0
	jmp	.L231
.L234:
	call	bpf_safe_regs
	movzx	eax, WORD PTR bpf_curr[rip+78]
	movzx	eax, ax
	mov	edi, eax
	call	bpf_pc_has_breakpoint
	test	al, al
	je	.L232
	mov	esi, DWORD PTR -44[rbp]
	mov	ecx, DWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, esi
	mov	rsi, rax
	lea	rdi, bpf_curr[rip]
	call	bpf_handle_breakpoint
	mov	BYTE PTR -1[rbp], al
.L232:
	movzx	eax, WORD PTR bpf_curr[rip+78]
	movzx	eax, ax
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, [rdx+rax]
	mov	ecx, DWORD PTR -44[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rax
	lea	rdi, bpf_curr[rip]
	call	bpf_single_step
	movzx	eax, WORD PTR bpf_curr[rip+78]
	add	eax, 1
	mov	WORD PTR bpf_curr[rip+78], ax
.L231:
	movzx	eax, BYTE PTR bpf_curr[rip+76]
	xor	eax, 1
	test	al, al
	je	.L233
	movzx	eax, BYTE PTR -1[rbp]
	xor	eax, 1
	test	al, al
	jne	.L234
.L233:
	cmp	BYTE PTR -1[rbp], 0
	je	.L235
	mov	eax, -1
	jmp	.L237
.L235:
	mov	eax, DWORD PTR bpf_curr[rip+72]
.L237:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	bpf_run_all, .-bpf_run_all
	.type	bpf_run_stepping, @function
bpf_run_stepping:
.LFB30:
	.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	eax, esi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -44[rbp], r8d
	mov	DWORD PTR -48[rbp], r9d
	mov	WORD PTR -28[rbp], ax
	mov	BYTE PTR -5[rbp], 0
	mov	DWORD PTR -4[rbp], 1
	jmp	.L239
.L242:
	call	bpf_safe_regs
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	cmp	DWORD PTR -48[rbp], eax
	jne	.L240
	mov	esi, DWORD PTR -44[rbp]
	mov	ecx, DWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, esi
	mov	rsi, rax
	lea	rdi, bpf_curr[rip]
	call	bpf_handle_breakpoint
	mov	BYTE PTR -5[rbp], al
.L240:
	movzx	eax, WORD PTR bpf_curr[rip+78]
	movzx	eax, ax
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, [rdx+rax]
	mov	ecx, DWORD PTR -44[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rax
	lea	rdi, bpf_curr[rip]
	call	bpf_single_step
	movzx	eax, WORD PTR bpf_curr[rip+78]
	add	eax, 1
	mov	WORD PTR bpf_curr[rip+78], ax
.L239:
	movzx	eax, BYTE PTR bpf_curr[rip+76]
	xor	eax, 1
	test	al, al
	je	.L241
	movzx	eax, BYTE PTR -5[rbp]
	xor	eax, 1
	test	al, al
	jne	.L242
.L241:
	cmp	BYTE PTR -5[rbp], 0
	je	.L243
	mov	eax, -1
	jmp	.L245
.L243:
	mov	eax, DWORD PTR bpf_curr[rip+72]
.L245:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	bpf_run_stepping, .-bpf_run_stepping
	.section	.rodata
.LC71:
	.string	"no pcap file loaded!\n"
	.text
	.type	pcap_loaded, @function
pcap_loaded:
.LFB31:
	.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 pcap_fd[rip]
	test	eax, eax
	jns	.L247
	lea	rdi, .LC71[rip]
	mov	eax, 0
	call	rl_printf
.L247:
	mov	eax, DWORD PTR pcap_fd[rip]
	not	eax
	shr	eax, 31
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	pcap_loaded, .-pcap_loaded
	.type	pcap_curr_pkt, @function
pcap_curr_pkt:
.LFB32:
	.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 pcap_ptr_va_curr[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	pcap_curr_pkt, .-pcap_curr_pkt
	.type	pcap_next_pkt, @function
pcap_next_pkt:
.LFB33:
	.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
	call	pcap_curr_pkt
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR pcap_ptr_va_curr[rip]
	add	rax, 16
	mov	rdx, QWORD PTR pcap_ptr_va_start[rip]
	sub	rax, rdx
	mov	rdx, rax
	mov	rax, QWORD PTR pcap_map_size[rip]
	cmp	rdx, rax
	jb	.L252
	mov	eax, 0
	jmp	.L253
.L252:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	test	eax, eax
	je	.L254
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 12[rax]
	test	eax, eax
	je	.L254
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	edx, eax
	jbe	.L255
.L254:
	mov	eax, 0
	jmp	.L253
.L255:
	mov	rdx, QWORD PTR pcap_ptr_va_curr[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	eax, eax
	add	rax, 16
	add	rax, rdx
	mov	rdx, QWORD PTR pcap_ptr_va_start[rip]
	sub	rax, rdx
	mov	rdx, rax
	mov	rax, QWORD PTR pcap_map_size[rip]
	cmp	rdx, rax
	jb	.L256
	mov	eax, 0
	jmp	.L253
.L256:
	mov	rdx, QWORD PTR pcap_ptr_va_curr[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	eax, eax
	add	rax, 16
	add	rax, rdx
	mov	QWORD PTR pcap_ptr_va_curr[rip], rax
	mov	eax, 1
.L253:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	pcap_next_pkt, .-pcap_next_pkt
	.type	pcap_reset_pkt, @function
pcap_reset_pkt:
.LFB34:
	.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 pcap_ptr_va_start[rip]
	add	rax, 24
	mov	QWORD PTR pcap_ptr_va_curr[rip], rax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	pcap_reset_pkt, .-pcap_reset_pkt
	.section	.rodata
.LC72:
	.string	"cannot open pcap [%s]!\n"
.LC73:
	.string	"cannot fstat pcap file!\n"
	.align 8
.LC74:
	.string	"not a regular pcap file, duh!\n"
.LC75:
	.string	"pcap file too small!\n"
.LC76:
	.string	"mmap of file failed!"
.LC77:
	.string	"wrong pcap magic!\n"
	.text
	.type	try_load_pcap, @function
try_load_pcap:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	QWORD PTR -184[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -184[rbp]
	mov	esi, 0
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR pcap_fd[rip], eax
	mov	eax, DWORD PTR pcap_fd[rip]
	test	eax, eax
	jns	.L259
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rsi, rax
	lea	rdi, .LC72[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L266
.L259:
	mov	eax, DWORD PTR pcap_fd[rip]
	lea	rdx, -160[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	fstat@PLT
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 0
	jns	.L261
	lea	rdi, .LC73[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L266
.L261:
	mov	eax, DWORD PTR -136[rbp]
	and	eax, 61440
	cmp	eax, 32768
	je	.L262
	lea	rdi, .LC74[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L266
.L262:
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR pcap_map_size[rip], rax
	mov	rax, QWORD PTR pcap_map_size[rip]
	cmp	rax, 24
	ja	.L263
	lea	rdi, .LC75[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L266
.L263:
	mov	edx, DWORD PTR pcap_fd[rip]
	mov	rax, QWORD PTR pcap_map_size[rip]
	mov	r9d, 0
	mov	r8d, edx
	mov	ecx, 8193
	mov	edx, 1
	mov	rsi, rax
	mov	edi, 0
	call	mmap@PLT
	mov	QWORD PTR pcap_ptr_va_start[rip], rax
	mov	rax, QWORD PTR pcap_ptr_va_start[rip]
	cmp	rax, -1
	jne	.L264
	lea	rdi, .LC76[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L266
.L264:
	mov	rax, QWORD PTR pcap_ptr_va_start[rip]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, -1582119980
	je	.L265
	lea	rdi, .LC77[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L266
.L265:
	call	pcap_reset_pkt
	mov	eax, 0
.L266:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L267
	call	__stack_chk_fail@PLT
.L267:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	try_load_pcap, .-try_load_pcap
	.type	try_close_pcap, @function
try_close_pcap:
.LFB36:
	.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 pcap_fd[rip]
	test	eax, eax
	js	.L270
	mov	rdx, QWORD PTR pcap_map_size[rip]
	mov	rax, QWORD PTR pcap_ptr_va_start[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	munmap@PLT
	mov	eax, DWORD PTR pcap_fd[rip]
	mov	edi, eax
	call	close@PLT
	mov	QWORD PTR pcap_ptr_va_curr[rip], 0
	mov	rax, QWORD PTR pcap_ptr_va_curr[rip]
	mov	QWORD PTR pcap_ptr_va_start[rip], rax
	mov	QWORD PTR pcap_map_size[rip], 0
	mov	DWORD PTR pcap_packet[rip], 0
	mov	DWORD PTR pcap_fd[rip], -1
.L270:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	try_close_pcap, .-try_close_pcap
	.section	.rodata
.LC78:
	.string	"%hu%c"
	.align 8
.LC79:
	.string	"syntax error in head length encoding!\n"
	.align 8
.LC80:
	.string	"program exceeds encoded length!\n"
.LC81:
	.string	"%hu %hhu %hhu %u,"
	.align 8
.LC82:
	.string	"syntax error at instruction %d!\n"
	.align 8
.LC83:
	.string	"syntax error exceeding encoded length!\n"
	.text
	.type	cmd_load_bpf, @function
cmd_load_bpf:
.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	BYTE PTR -29[rbp], 44
	mov	WORD PTR -26[rbp], 0
	mov	DWORD PTR bpf_prog_len[rip], 0
	mov	edx, 32776
	mov	esi, 0
	lea	rdi, bpf_image[rip]
	call	memset@PLT
	lea	rcx, -30[rbp]
	lea	rdx, -28[rbp]
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC78[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	cmp	eax, 2
	jne	.L272
	movzx	eax, BYTE PTR -30[rbp]
	cmp	BYTE PTR -29[rbp], al
	jne	.L272
	movzx	eax, WORD PTR -28[rbp]
	cmp	ax, 4096
	ja	.L272
	movzx	eax, WORD PTR -28[rbp]
	test	ax, ax
	jne	.L273
.L272:
	lea	rdi, .LC79[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L282
.L273:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L275
.L279:
	movzx	eax, WORD PTR -28[rbp]
	cmp	WORD PTR -26[rbp], ax
	jb	.L276
	lea	rdi, .LC80[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L282
.L276:
	lea	rax, -16[rbp]
	lea	rdi, 4[rax]
	lea	rax, -16[rbp]
	lea	rsi, 3[rax]
	lea	rax, -16[rbp]
	lea	rcx, 2[rax]
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r9, rdi
	mov	r8, rsi
	lea	rsi, .LC81[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	cmp	eax, 4
	je	.L277
	movzx	eax, WORD PTR -26[rbp]
	mov	esi, eax
	lea	rdi, .LC82[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L282
.L277:
	movzx	edx, WORD PTR -26[rbp]
	movzx	eax, WORD PTR -16[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, bpf_image[rip]
	mov	WORD PTR [rcx+rdx], ax
	movzx	edx, WORD PTR -26[rbp]
	movzx	eax, BYTE PTR -14[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, bpf_image[rip+2]
	mov	BYTE PTR [rcx+rdx], al
	movzx	edx, WORD PTR -26[rbp]
	movzx	eax, BYTE PTR -13[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, bpf_image[rip+3]
	mov	BYTE PTR [rcx+rdx], al
	movzx	edx, WORD PTR -26[rbp]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, bpf_image[rip+4]
	mov	DWORD PTR [rcx+rdx], eax
	movzx	eax, WORD PTR -26[rbp]
	add	eax, 1
	mov	WORD PTR -26[rbp], ax
.L275:
	movsx	edx, BYTE PTR -29[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L278
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L279
.L278:
	movzx	eax, WORD PTR -28[rbp]
	cmp	WORD PTR -26[rbp], ax
	je	.L280
	lea	rdi, .LC83[rip]
	mov	eax, 0
	call	rl_printf
	mov	eax, 1
	jmp	.L282
.L280:
	movzx	eax, WORD PTR -28[rbp]
	movzx	eax, ax
	mov	DWORD PTR bpf_prog_len[rip], eax
	mov	eax, DWORD PTR bpf_prog_len[rip]
	mov	esi, eax
	lea	rdi, bpf_image[rip]
	call	bpf_runnable
	xor	eax, 1
	test	al, al
	je	.L281
	mov	DWORD PTR bpf_prog_len[rip], 0
.L281:
	mov	eax, 0
.L282:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L283
	call	__stack_chk_fail@PLT
.L283:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	cmd_load_bpf, .-cmd_load_bpf
	.section	.rodata
.LC84:
	.string	" "
	.text
	.type	cmd_load_pcap, @function
cmd_load_pcap:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC84[rip]
	mov	rdi, rax
	call	strtok_r@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L285
	mov	eax, 1
	jmp	.L287
.L285:
	call	try_close_pcap
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	try_load_pcap
.L287:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L288
	call	__stack_chk_fail@PLT
.L288:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	cmd_load_pcap, .-cmd_load_pcap
	.section	.rodata
.LC85:
	.string	"bpf"
.LC86:
	.string	"pcap"
.LC87:
	.string	"bpf <code>:  load bpf code\n"
.LC88:
	.string	"pcap <file>: load pcap file\n"
	.text
	.type	cmd_load, @function
cmd_load:
.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, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	strdup@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -36[rbp], 0
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC84[rip]
	mov	rdi, rax
	call	strtok_r@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	je	.L297
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC85[rip]
	mov	rdi, rax
	call	matches
	test	eax, eax
	jne	.L292
	call	bpf_reset
	call	bpf_reset_breakpoints
	mov	rax, QWORD PTR -32[rbp]
	test	rax, rax
	jne	.L293
	mov	DWORD PTR -36[rbp], 1
	jmp	.L294
.L293:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	cmd_load_bpf
	mov	DWORD PTR -36[rbp], eax
	jmp	.L294
.L292:
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC86[rip]
	mov	rdi, rax
	call	matches
	test	eax, eax
	jne	.L298
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	cmd_load_pcap
	mov	DWORD PTR -36[rbp], eax
	jmp	.L294
.L297:
	nop
	jmp	.L291
.L298:
	nop
.L291:
	lea	rdi, .LC87[rip]
	mov	eax, 0
	call	rl_printf
	lea	rdi, .LC88[rip]
	mov	eax, 0
	call	rl_printf
	mov	DWORD PTR -36[rbp], 1
.L294:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L296
	call	__stack_chk_fail@PLT
.L296:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	cmd_load, .-cmd_load
	.section	.rodata
.LC89:
	.string	"(going back to first packet)\n"
.LC90:
	.string	"(next packet)\n"
	.text
	.type	cmd_step, @function
cmd_step:
.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
	call	bpf_prog_loaded
	xor	eax, 1
	test	al, al
	jne	.L300
	call	pcap_loaded
	xor	eax, 1
	test	al, al
	je	.L301
.L300:
	mov	eax, 1
	jmp	.L302
.L301:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L303
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L304
.L303:
	mov	DWORD PTR -16[rbp], 1
.L304:
	cmp	DWORD PTR -16[rbp], 0
	jns	.L305
	mov	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	bpf_restore_regs
	xor	eax, 1
	test	al, al
	je	.L306
	mov	eax, 1
	jmp	.L302
.L306:
	mov	DWORD PTR -16[rbp], 1
.L305:
	call	pcap_curr_pkt
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, 16[rax]
	mov	eax, DWORD PTR bpf_prog_len[rip]
	movzx	eax, ax
	mov	edi, DWORD PTR -16[rbp]
	mov	r9d, edi
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rsi
	mov	esi, eax
	lea	rdi, bpf_image[rip]
	call	bpf_run_stepping
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jns	.L307
	movzx	eax, BYTE PTR bpf_curr[rip+76]
	test	al, al
	je	.L308
.L307:
	call	bpf_reset
	call	pcap_next_pkt
	xor	eax, 1
	test	al, al
	je	.L309
	lea	rdi, .LC89[rip]
	mov	eax, 0
	call	rl_printf
	call	pcap_reset_pkt
	jmp	.L308
.L309:
	lea	rdi, .LC90[rip]
	mov	eax, 0
	call	rl_printf
.L308:
	mov	eax, 0
.L302:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	cmd_step, .-cmd_step
	.section	.rodata
	.align 8
.LC91:
	.string	"packet count starts with 1, clamping!\n"
.LC92:
	.string	"no packet #%u available!\n"
	.text
	.type	cmd_select, @function
cmd_select:
.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	BYTE PTR -9[rbp], 1
	call	pcap_loaded
	xor	eax, 1
	test	al, al
	jne	.L311
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L312
.L311:
	mov	eax, 1
	jmp	.L313
.L312:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtoul@PLT
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	jne	.L314
	lea	rdi, .LC91[rip]
	mov	eax, 0
	call	rl_printf
	mov	DWORD PTR -8[rbp], 1
.L314:
	call	pcap_reset_pkt
	call	bpf_reset
	mov	DWORD PTR -4[rbp], 0
	jmp	.L315
.L317:
	add	DWORD PTR -4[rbp], 1
.L315:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jnb	.L316
	call	pcap_next_pkt
	mov	BYTE PTR -9[rbp], al
	cmp	BYTE PTR -9[rbp], 0
	jne	.L317
.L316:
	movzx	eax, BYTE PTR -9[rbp]
	xor	eax, 1
	test	al, al
	jne	.L318
	call	pcap_curr_pkt
	test	rax, rax
	jne	.L319
.L318:
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC92[rip]
	mov	eax, 0
	call	rl_printf
	call	pcap_reset_pkt
	mov	eax, 1
	jmp	.L313
.L319:
	mov	eax, 0
.L313:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	cmd_select, .-cmd_select
	.section	.rodata
.LC93:
	.string	"reset"
.LC94:
	.string	"breakpoint at: "
	.text
	.type	cmd_breakpoint, @function
cmd_breakpoint:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	call	bpf_prog_loaded
	xor	eax, 1
	test	al, al
	je	.L321
	mov	eax, 1
	jmp	.L322
.L321:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L323
	call	bpf_dump_breakpoints
	jmp	.L324
.L323:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC93[rip]
	mov	rdi, rax
	call	matches
	test	eax, eax
	jne	.L325
	call	bpf_reset_breakpoints
	jmp	.L324
.L325:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtoul@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR bpf_prog_len[rip]
	cmp	DWORD PTR -4[rbp], eax
	jnb	.L324
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	bpf_set_breakpoints
	lea	rdi, .LC94[rip]
	mov	eax, 0
	call	rl_printf
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -4[rbp]
	lea	rcx, 0[0+rax*8]
	lea	rax, bpf_image[rip]
	mov	rax, QWORD PTR [rcx+rax]
	mov	esi, edx
	mov	rdi, rax
	call	bpf_disasm
.L324:
	mov	eax, 0
.L322:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	cmd_breakpoint, .-cmd_breakpoint
	.section	.rodata
.LC95:
	.string	"bpf passes:%u fails:%u\n"
	.text
	.type	cmd_run, @function
cmd_run:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	BYTE PTR -21[rbp], 1
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	call	bpf_prog_loaded
	xor	eax, 1
	test	al, al
	jne	.L327
	call	pcap_loaded
	xor	eax, 1
	test	al, al
	je	.L328
.L327:
	mov	eax, 1
	jmp	.L329
.L328:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L330
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L336
.L330:
	mov	BYTE PTR -21[rbp], 0
.L336:
	call	pcap_curr_pkt
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, 16[rax]
	mov	eax, DWORD PTR bpf_prog_len[rip]
	movzx	eax, ax
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rsi
	mov	esi, eax
	lea	rdi, bpf_image[rip]
	call	bpf_run_all
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jle	.L332
	mov	eax, DWORD PTR pass.3[rip]
	add	eax, 1
	mov	DWORD PTR pass.3[rip], eax
	jmp	.L333
.L332:
	cmp	DWORD PTR -12[rbp], 0
	jne	.L334
	mov	eax, DWORD PTR fail.2[rip]
	add	eax, 1
	mov	DWORD PTR fail.2[rip], eax
	jmp	.L333
.L334:
	mov	eax, 0
	jmp	.L329
.L333:
	call	bpf_reset
	call	pcap_next_pkt
	test	al, al
	je	.L335
	movzx	eax, BYTE PTR -21[rbp]
	xor	eax, 1
	test	al, al
	jne	.L336
	cmp	BYTE PTR -21[rbp], 0
	je	.L335
	add	DWORD PTR -20[rbp], 1
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	jl	.L336
.L335:
	mov	edx, DWORD PTR fail.2[rip]
	mov	eax, DWORD PTR pass.3[rip]
	mov	esi, eax
	lea	rdi, .LC95[rip]
	mov	eax, 0
	call	rl_printf
	call	pcap_reset_pkt
	call	bpf_reset
	mov	DWORD PTR fail.2[rip], 0
	mov	eax, DWORD PTR fail.2[rip]
	mov	DWORD PTR pass.3[rip], eax
	mov	eax, 0
.L329:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	cmd_run, .-cmd_run
	.type	cmd_disassemble, @function
cmd_disassemble:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	BYTE PTR -9[rbp], 0
	call	bpf_prog_loaded
	xor	eax, 1
	test	al, al
	je	.L338
	mov	eax, 1
	jmp	.L339
.L338:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L340
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtoul@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR bpf_prog_len[rip]
	mov	eax, eax
	cmp	QWORD PTR -8[rbp], rax
	jnb	.L340
	mov	BYTE PTR -9[rbp], 1
.L340:
	cmp	BYTE PTR -9[rbp], 0
	je	.L341
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	lea	rax, bpf_image[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	esi, ecx
	mov	rdi, rax
	call	bpf_disasm
	jmp	.L342
.L341:
	mov	eax, DWORD PTR bpf_prog_len[rip]
	mov	esi, eax
	lea	rdi, bpf_image[rip]
	call	bpf_disasm_all
.L342:
	mov	eax, 0
.L339:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	cmd_disassemble, .-cmd_disassemble
	.type	cmd_dump, @function
cmd_dump:
.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
	call	bpf_prog_loaded
	xor	eax, 1
	test	al, al
	je	.L344
	mov	eax, 1
	jmp	.L345
.L344:
	mov	eax, DWORD PTR bpf_prog_len[rip]
	mov	esi, eax
	lea	rdi, bpf_image[rip]
	call	bpf_dump_all
	mov	eax, 0
.L345:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	cmd_dump, .-cmd_dump
	.type	cmd_quit, @function
cmd_quit:
.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	eax, 2
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	cmd_quit, .-cmd_quit
	.section	.rodata
.LC96:
	.string	"load"
.LC97:
	.string	"select"
.LC98:
	.string	"step"
.LC99:
	.string	"run"
.LC100:
	.string	"breakpoint"
.LC101:
	.string	"disassemble"
.LC102:
	.string	"dump"
.LC103:
	.string	"quit"
	.section	.data.rel.ro.local
	.align 32
	.type	cmds, @object
	.size	cmds, 128
cmds:
	.quad	.LC96
	.quad	cmd_load
	.quad	.LC97
	.quad	cmd_select
	.quad	.LC98
	.quad	cmd_step
	.quad	.LC99
	.quad	cmd_run
	.quad	.LC100
	.quad	cmd_breakpoint
	.quad	.LC101
	.quad	cmd_disassemble
	.quad	.LC102
	.quad	cmd_dump
	.quad	.LC103
	.quad	cmd_quit
	.text
	.type	execf, @function
execf:
.LFB47:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	strdup@PLT
	mov	QWORD PTR -40[rbp], rax
	mov	DWORD PTR -56[rbp], 0
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC84[rip]
	mov	rdi, rax
	call	strtok_r@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	je	.L357
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -52[rbp], eax
	mov	DWORD PTR -60[rbp], 0
	jmp	.L351
.L354:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rbx, eax
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cmds[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	strlen@PLT
	cmp	rbx, rax
	jne	.L358
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 4
	mov	rcx, rax
	lea	rax, cmds[rip]
	mov	rax, QWORD PTR [rcx+rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L353
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cmds[rip+8]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -56[rbp], eax
	jmp	.L350
.L358:
	nop
.L353:
	add	DWORD PTR -60[rbp], 1
.L351:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, 7
	jbe	.L354
	jmp	.L350
.L357:
	nop
.L350:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, DWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L356
	call	__stack_chk_fail@PLT
.L356:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	execf, .-execf
	.type	shell_comp_gen, @function
shell_comp_gen:
.LFB48:
	.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	DWORD PTR -28[rbp], esi
	cmp	DWORD PTR -28[rbp], 0
	jne	.L361
	mov	DWORD PTR list_index.1[rip], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR len.0[rip], eax
	jmp	.L361
.L363:
	mov	eax, DWORD PTR list_index.1[rip]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cmds[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR list_index.1[rip]
	add	eax, 1
	mov	DWORD PTR list_index.1[rip], eax
	mov	eax, DWORD PTR len.0[rip]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L361
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	strdup@PLT
	jmp	.L362
.L361:
	mov	eax, DWORD PTR list_index.1[rip]
	cmp	eax, 7
	jbe	.L363
	mov	eax, 0
.L362:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	shell_comp_gen, .-shell_comp_gen
	.type	shell_completion, @function
shell_completion:
.LFB49:
	.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	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	QWORD PTR -8[rbp], 0
	cmp	DWORD PTR -28[rbp], 0
	jne	.L365
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, shell_comp_gen[rip]
	mov	rdi, rax
	call	rl_completion_matches@PLT
	mov	QWORD PTR -8[rbp], rax
.L365:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	shell_completion, .-shell_completion
	.type	intr_shell, @function
intr_shell:
.LFB50:
	.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	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR rl_end[rip]
	test	eax, eax
	je	.L368
	mov	esi, 0
	mov	edi, -1
	call	rl_kill_line@PLT
.L368:
	call	rl_crlf@PLT
	mov	esi, 0
	mov	edi, 0
	call	rl_refresh_line@PLT
	call	rl_free_line_state@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	intr_shell, .-intr_shell
	.section	.rodata
.LC104:
	.string	"HOME"
.LC105:
	.string	"%s/.bpf_dbg_history"
.LC106:
	.string	"bpf_dbg"
.LC107:
	.string	"TERM"
.LC108:
	.string	"%s/.bpf_dbg_init"
	.text
	.type	init_shell, @function
init_shell:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -152[rbp], rdi
	mov	QWORD PTR -160[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdi, .LC104[rip]
	call	getenv@PLT
	mov	rdx, rax
	lea	rax, -144[rbp]
	mov	rcx, rdx
	lea	rdx, .LC105[rip]
	mov	esi, 128
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	read_history@PLT
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR rl_instream[rip], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	QWORD PTR rl_outstream[rip], rax
	lea	rax, .LC106[rip]
	mov	QWORD PTR rl_readline_name[rip], rax
	lea	rdi, .LC107[rip]
	call	getenv@PLT
	mov	QWORD PTR rl_terminal_name[rip], rax
	mov	DWORD PTR rl_catch_signals[rip], 0
	mov	DWORD PTR rl_catch_sigwinch[rip], 1
	lea	rax, shell_completion[rip]
	mov	QWORD PTR rl_attempted_completion_function[rip], rax
	mov	rax, QWORD PTR rl_complete@GOTPCREL[rip]
	mov	rsi, rax
	mov	edi, 9
	call	rl_bind_key@PLT
	lea	rdx, emacs_meta_keymap[rip]
	mov	rax, QWORD PTR rl_complete@GOTPCREL[rip]
	mov	rsi, rax
	mov	edi, 9
	call	rl_bind_key_in_map@PLT
	lea	rdx, emacs_meta_keymap[rip]
	mov	rax, QWORD PTR rl_complete@GOTPCREL[rip]
	mov	rsi, rax
	mov	edi, 27
	call	rl_bind_key_in_map@PLT
	lea	rdi, .LC104[rip]
	call	getenv@PLT
	mov	rdx, rax
	lea	rax, -144[rbp]
	mov	rcx, rdx
	lea	rdx, .LC108[rip]
	mov	esi, 128
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	rl_read_init_file@PLT
	mov	edi, 0
	call	rl_prep_terminal@PLT
	call	rl_set_signals@PLT
	lea	rsi, intr_shell[rip]
	mov	edi, 2
	call	signal@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L370
	call	__stack_chk_fail@PLT
.L370:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	init_shell, .-init_shell
	.type	exit_shell, @function
exit_shell:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -152[rbp], rdi
	mov	QWORD PTR -160[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdi, .LC104[rip]
	call	getenv@PLT
	mov	rdx, rax
	lea	rax, -144[rbp]
	mov	rcx, rdx
	lea	rdx, .LC105[rip]
	mov	esi, 128
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	write_history@PLT
	call	clear_history@PLT
	call	rl_deprep_terminal@PLT
	call	try_close_pcap
	mov	rax, QWORD PTR stdin[rip]
	cmp	QWORD PTR -152[rbp], rax
	je	.L372
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	fclose@PLT
.L372:
	mov	rax, QWORD PTR stdout[rip]
	cmp	QWORD PTR -160[rbp], rax
	je	.L375
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	fclose@PLT
.L375:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L374
	call	__stack_chk_fail@PLT
.L374:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	exit_shell, .-exit_shell
	.section	.rodata
.LC109:
	.string	"> "
	.text
	.type	run_shell_loop, @function
run_shell_loop:
.LFB53:
	.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	QWORD PTR -32[rbp], rsi
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	init_shell
	jmp	.L377
.L381:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	execf
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 2
	je	.L383
	cmp	DWORD PTR -12[rbp], 0
	jne	.L380
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L380
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	add_history@PLT
.L380:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L377:
	lea	rdi, .LC109[rip]
	call	readline@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L381
	jmp	.L379
.L383:
	nop
.L379:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	exit_shell
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	run_shell_loop, .-run_shell_loop
	.section	.rodata
.LC110:
	.string	"r"
.LC111:
	.string	"w"
	.text
	.globl	main
	.type	main, @function
main:
.LFB54:
	.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 -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	cmp	DWORD PTR -20[rbp], 1
	jle	.L385
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC110[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -16[rbp], rax
.L385:
	cmp	DWORD PTR -20[rbp], 2
	jle	.L386
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC111[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
.L386:
	mov	rdx, QWORD PTR -8[rbp]
	test	rdx, rdx
	jne	.L388
	mov	rdx, QWORD PTR stdout[rip]
.L388:
	mov	rax, QWORD PTR -16[rbp]
	test	rax, rax
	jne	.L390
	mov	rax, QWORD PTR stdin[rip]
.L390:
	mov	rsi, rdx
	mov	rdi, rax
	call	run_shell_loop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	main, .-main
	.local	pass.3
	.comm	pass.3,4,4
	.local	fail.2
	.comm	fail.2,4,4
	.local	list_index.1
	.comm	list_index.1,4,4
	.local	len.0
	.comm	len.0,4,4
	.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	"586476.c"
	.text
	.local	bpf_image
	.comm	bpf_image,32776,4
	.local	bpf_prog_len
	.comm	bpf_prog_len,4,4
	.local	bpf_breakpoints
	.comm	bpf_breakpoints,256,4
	.local	bpf_regs
	.comm	bpf_regs,327760,4
	.local	bpf_curr
	.comm	bpf_curr,80,4
	.local	bpf_regs_len
	.comm	bpf_regs_len,4,4
	.data
	.align	2
	.type	pcap_fd, %object
	.size	pcap_fd, 4
pcap_fd:
	.word	-1
	.local	pcap_packet
	.comm	pcap_packet,4,4
	.local	pcap_map_size
	.comm	pcap_map_size,4,4
	.local	pcap_ptr_va_start
	.comm	pcap_ptr_va_start,4,4
	.local	pcap_ptr_va_curr
	.comm	pcap_ptr_va_curr,4,4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"ld\000"
	.align	2
.LC1:
	.ascii	"ldx\000"
	.align	2
.LC2:
	.ascii	"st\000"
	.align	2
.LC3:
	.ascii	"stx\000"
	.align	2
.LC4:
	.ascii	"add\000"
	.align	2
.LC5:
	.ascii	"ja\000"
	.align	2
.LC6:
	.ascii	"ret\000"
	.align	2
.LC7:
	.ascii	"tax\000"
	.align	2
.LC8:
	.ascii	"ldh\000"
	.align	2
.LC9:
	.ascii	"ldb\000"
	.align	2
.LC10:
	.ascii	"ldxb\000"
	.align	2
.LC11:
	.ascii	"sub\000"
	.align	2
.LC12:
	.ascii	"jeq\000"
	.align	2
.LC13:
	.ascii	"mul\000"
	.align	2
.LC14:
	.ascii	"jgt\000"
	.align	2
.LC15:
	.ascii	"div\000"
	.align	2
.LC16:
	.ascii	"jge\000"
	.align	2
.LC17:
	.ascii	"or\000"
	.align	2
.LC18:
	.ascii	"jset\000"
	.align	2
.LC19:
	.ascii	"and\000"
	.align	2
.LC20:
	.ascii	"lsh\000"
	.align	2
.LC21:
	.ascii	"rsh\000"
	.align	2
.LC22:
	.ascii	"neg\000"
	.align	2
.LC23:
	.ascii	"txa\000"
	.align	2
.LC24:
	.ascii	"mod\000"
	.align	2
.LC25:
	.ascii	"xor\000"
	.align	2
	.type	op_table, %object
	.size	op_table, 660
op_table:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.space	28
	.word	.LC9
	.word	.LC10
	.space	8
	.word	.LC11
	.word	.LC12
	.space	56
	.word	.LC13
	.word	.LC14
	.space	56
	.word	.LC15
	.word	.LC16
	.space	56
	.word	.LC17
	.word	.LC18
	.space	56
	.word	.LC19
	.space	60
	.word	.LC20
	.space	60
	.word	.LC21
	.space	60
	.word	.LC22
	.space	8
	.word	.LC23
	.space	48
	.word	.LC24
	.space	60
	.word	.LC25
	.align	2
.LC26:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rl_printf, %function
rl_printf:
	@ args = 4, pretend = 16, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 1
	push	{r0, r1, r2, r3}
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, [fp, #4]
	str	r3, [fp, #-24]
	ldr	r3, .L4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	add	r3, fp, #8
	str	r3, [fp, #-16]
	ldr	r3, .L4+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	vfprintf
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, .L4
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3
	bl	__stack_chk_fail
.L3:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, lr}
	add	sp, sp, #16
	bx	lr
.L5:
	.align	2
.L4:
	.word	.LC26
	.word	rl_outstream
	.size	rl_printf, .-rl_printf
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	matches, %function
matches:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-20]
	bl	strlen
	mov	r2, r0
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L7
	mvn	r3, #0
	b	.L8
.L7:
	ldr	r3, [fp, #-8]
	mov	r2, r3
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	memcmp
	mov	r3, r0
.L8:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	matches, .-matches
	.section	.rodata
	.align	2
.LC27:
	.ascii	"%3u: \000"
	.align	2
.LC28:
	.ascii	"\012%3u: \000"
	.align	2
.LC29:
	.ascii	"%02x \000"
	.align	2
.LC30:
	.ascii	"\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hex_dump, %function
hex_dump:
	@ 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]
	str	r1, [fp, #-20]
	mov	r1, #0
	ldr	r0, .L13
	bl	rl_printf
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L10
.L12:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L11
	ldr	r3, [fp, #-8]
	and	r3, r3, #15
	cmp	r3, #0
	bne	.L11
	ldr	r1, [fp, #-8]
	ldr	r0, .L13+4
	bl	rl_printf
.L11:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L13+8
	bl	rl_printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L10:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bhi	.L12
	ldr	r0, .L13+12
	bl	rl_printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L14:
	.align	2
.L13:
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.size	hex_dump, .-hex_dump
	.section	.rodata
	.align	2
.LC31:
	.ascii	"no bpf program loaded!\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_prog_loaded, %function
bpf_prog_loaded:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L18
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L16
	ldr	r0, .L18+4
	bl	rl_printf
.L16:
	ldr	r3, .L18
	ldr	r3, [r3]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	pop	{fp, pc}
.L19:
	.align	2
.L18:
	.word	bpf_prog_len
	.word	.LC31
	.size	bpf_prog_loaded, .-bpf_prog_loaded
	.section	.rodata
	.align	2
.LC32:
	.ascii	"#%#x\000"
	.align	2
.LC33:
	.ascii	"a\000"
	.align	2
.LC34:
	.ascii	"x\000"
	.align	2
.LC35:
	.ascii	"\000"
	.align	2
.LC36:
	.ascii	"M[%d]\000"
	.align	2
.LC37:
	.ascii	"[%d]\000"
	.align	2
.LC38:
	.ascii	"#len\000"
	.align	2
.LC39:
	.ascii	"[x+%d]\000"
	.align	2
.LC40:
	.ascii	"4*([%d]&0xf)\000"
	.align	2
.LC41:
	.ascii	"%d\000"
	.align	2
.LC42:
	.ascii	"#%d\000"
	.align	2
.LC43:
	.ascii	"nosup\000"
	.align	2
.LC44:
	.ascii	"%#x\000"
	.align	2
.LC45:
	.ascii	"l%d:\011%s %s, l%d, l%d\012\000"
	.align	2
.LC46:
	.ascii	"l%d:\011%s %s\012\000"
	.align	2
.LC47:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_disasm, %function
bpf_disasm:
	@ args = 0, pretend = 0, frame = 288
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #296
	sub	r3, fp, #284
	stm	r3, {r0, r1}
	str	r2, [fp, #-288]
	ldr	r3, .L76
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-280]
	str	r3, [fp, #-268]
	sub	r3, fp, #4
	sub	r3, r3, #280
	ldrh	r3, [r3]
	cmp	r3, #177
	ldrls	pc, [pc, r3, asl #2]
	b	.L21
.L23:
	.word	.L71
	.word	.L70
	.word	.L69
	.word	.L68
	.word	.L67
	.word	.L66
	.word	.L65
	.word	.L64
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L63
	.word	.L21
	.word	.L62
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L61
	.word	.L60
	.word	.L59
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L58
	.word	.L57
	.word	.L21
	.word	.L21
	.word	.L56
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L55
	.word	.L54
	.word	.L21
	.word	.L21
	.word	.L53
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L52
	.word	.L51
	.word	.L21
	.word	.L21
	.word	.L50
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L49
	.word	.L48
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L47
	.word	.L46
	.word	.L21
	.word	.L21
	.word	.L45
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L44
	.word	.L43
	.word	.L21
	.word	.L21
	.word	.L42
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L41
	.word	.L40
	.word	.L21
	.word	.L21
	.word	.L39
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L38
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L37
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L36
	.word	.L35
	.word	.L21
	.word	.L21
	.word	.L34
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L33
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L32
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L31
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L30
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L29
	.word	.L21
	.word	.L21
	.word	.L28
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L27
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L26
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L25
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L24
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L21
	.word	.L22
.L65:
	ldr	r3, .L76+4
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L59:
	ldr	r3, .L76+4
	str	r3, [fp, #-276]
	ldr	r3, .L76+12
	str	r3, [fp, #-272]
	b	.L72
.L62:
	ldr	r3, .L76+4
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L64:
	ldr	r3, .L76+20
	str	r3, [fp, #-276]
	ldr	r3, .L76+24
	str	r3, [fp, #-272]
	b	.L72
.L28:
	ldr	r3, .L76+28
	str	r3, [fp, #-276]
	ldr	r3, .L76+24
	str	r3, [fp, #-272]
	b	.L72
.L69:
	ldr	r3, .L76+32
	str	r3, [fp, #-276]
	ldr	r3, .L76+36
	str	r3, [fp, #-272]
	b	.L72
.L68:
	ldr	r3, .L76+40
	str	r3, [fp, #-276]
	ldr	r3, .L76+36
	str	r3, [fp, #-272]
	b	.L72
.L56:
	ldr	r3, .L76+44
	str	r3, [fp, #-276]
	ldr	r3, .L76+48
	str	r3, [fp, #-272]
	b	.L72
.L53:
	ldr	r3, .L76+52
	str	r3, [fp, #-276]
	ldr	r3, .L76+48
	str	r3, [fp, #-272]
	b	.L72
.L50:
	ldr	r3, .L76+56
	str	r3, [fp, #-276]
	ldr	r3, .L76+48
	str	r3, [fp, #-272]
	b	.L72
.L30:
	ldr	r3, .L76+44
	str	r3, [fp, #-276]
	ldr	r3, .L76+60
	str	r3, [fp, #-272]
	b	.L72
.L45:
	ldr	r3, .L76+44
	str	r3, [fp, #-276]
	ldr	r3, .L76+64
	str	r3, [fp, #-272]
	b	.L72
.L42:
	ldr	r3, .L76+52
	str	r3, [fp, #-276]
	ldr	r3, .L76+64
	str	r3, [fp, #-272]
	b	.L72
.L39:
	ldr	r3, .L76+56
	str	r3, [fp, #-276]
	ldr	r3, .L76+64
	str	r3, [fp, #-272]
	b	.L72
.L71:
	ldr	r3, .L76+44
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L70:
	ldr	r3, .L76+68
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L22:
	ldr	r3, .L76+72
	str	r3, [fp, #-276]
	ldr	r3, .L76+76
	str	r3, [fp, #-272]
	b	.L72
.L36:
	ldr	r3, .L76+44
	str	r3, [fp, #-276]
	ldr	r3, .L76+36
	str	r3, [fp, #-272]
	b	.L72
.L35:
	ldr	r3, .L76+68
	str	r3, [fp, #-276]
	ldr	r3, .L76+36
	str	r3, [fp, #-272]
	b	.L72
.L66:
	ldr	r3, .L76+80
	str	r3, [fp, #-276]
	ldr	r3, .L76+84
	str	r3, [fp, #-272]
	ldr	r2, [fp, #-280]
	ldr	r3, [fp, #-288]
	add	r3, r2, r3
	add	r3, r3, #1
	str	r3, [fp, #-268]
	b	.L72
.L51:
	ldr	r3, .L76+88
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L54:
	ldr	r3, .L76+88
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L46:
	ldr	r3, .L76+92
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L48:
	ldr	r3, .L76+92
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L57:
	ldr	r3, .L76+96
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L60:
	ldr	r3, .L76+96
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L40:
	ldr	r3, .L76+100
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L43:
	ldr	r3, .L76+100
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L29:
	ldr	r3, .L76+104
	str	r3, [fp, #-276]
	ldr	r3, .L76+24
	str	r3, [fp, #-272]
	b	.L72
.L33:
	ldr	r3, .L76+108
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L34:
	ldr	r3, .L76+108
	str	r3, [fp, #-276]
	ldr	r3, .L76+112
	str	r3, [fp, #-272]
	b	.L72
.L31:
	ldr	r3, .L76+116
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L32:
	ldr	r3, .L76+116
	str	r3, [fp, #-276]
	ldr	r3, .L76+112
	str	r3, [fp, #-272]
	b	.L72
.L63:
	ldr	r3, .L76+120
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L67:
	ldr	r3, .L76+120
	str	r3, [fp, #-276]
	ldr	r3, .L76+112
	str	r3, [fp, #-272]
	b	.L72
.L58:
	ldr	r3, .L76+124
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L61:
	ldr	r3, .L76+124
	str	r3, [fp, #-276]
	ldr	r3, .L76+112
	str	r3, [fp, #-272]
	b	.L72
.L52:
	ldr	r3, .L76+128
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L55:
	ldr	r3, .L76+128
	str	r3, [fp, #-276]
	ldr	r3, .L76+112
	str	r3, [fp, #-272]
	b	.L72
.L47:
	ldr	r3, .L76+132
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L49:
	ldr	r3, .L76+132
	str	r3, [fp, #-276]
	ldr	r3, .L76+112
	str	r3, [fp, #-272]
	b	.L72
.L26:
	ldr	r3, .L76+136
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L27:
	ldr	r3, .L76+136
	str	r3, [fp, #-276]
	ldr	r3, .L76+112
	str	r3, [fp, #-272]
	b	.L72
.L37:
	ldr	r3, .L76+140
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L38:
	ldr	r3, .L76+140
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L41:
	ldr	r3, .L76+144
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L44:
	ldr	r3, .L76+144
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L24:
	ldr	r3, .L76+148
	str	r3, [fp, #-276]
	ldr	r3, .L76+16
	str	r3, [fp, #-272]
	b	.L72
.L25:
	ldr	r3, .L76+148
	str	r3, [fp, #-276]
	ldr	r3, .L76+8
	str	r3, [fp, #-272]
	b	.L72
.L21:
	ldr	r3, .L76+152
	str	r3, [fp, #-276]
	ldr	r3, .L76+156
	str	r3, [fp, #-272]
	sub	r3, fp, #4
	sub	r3, r3, #280
	ldrh	r3, [r3]
	str	r3, [fp, #-268]
	nop
.L72:
	sub	r3, fp, #264
	mov	r2, #256
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r0, fp, #264
	ldr	r3, [fp, #-268]
	ldr	r2, [fp, #-272]
	mov	r1, #256
	bl	snprintf
	mov	r3, #0
	strb	r3, [fp, #-9]
	sub	r3, fp, #4
	sub	r3, r3, #280
	ldrh	r3, [r3]
	and	r3, r3, #7
	cmp	r3, #5
	bne	.L73
	sub	r3, fp, #4
	sub	r3, r3, #280
	ldrh	r3, [r3]
	and	r3, r3, #240
	cmp	r3, #0
	beq	.L73
	ldrb	r3, [fp, #-282]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-288]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [fp, #-281]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, [fp, #-288]
	add	r2, r1, r2
	add	r2, r2, #1
	sub	r1, fp, #264
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [fp, #-276]
	ldr	r1, [fp, #-288]
	ldr	r0, .L76+160
	bl	rl_printf
	b	.L74
.L73:
	sub	r3, fp, #264
	ldr	r2, [fp, #-276]
	ldr	r1, [fp, #-288]
	ldr	r0, .L76+164
	bl	rl_printf
.L74:
	nop
	ldr	r3, .L76
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L75
	bl	__stack_chk_fail
.L75:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L77:
	.align	2
.L76:
	.word	.LC47
	.word	.LC6
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC7
	.word	.LC35
	.word	.LC23
	.word	.LC2
	.word	.LC36
	.word	.LC3
	.word	.LC0
	.word	.LC37
	.word	.LC8
	.word	.LC9
	.word	.LC38
	.word	.LC39
	.word	.LC1
	.word	.LC10
	.word	.LC40
	.word	.LC5
	.word	.LC41
	.word	.LC14
	.word	.LC16
	.word	.LC12
	.word	.LC18
	.word	.LC22
	.word	.LC20
	.word	.LC42
	.word	.LC21
	.word	.LC4
	.word	.LC11
	.word	.LC13
	.word	.LC15
	.word	.LC24
	.word	.LC19
	.word	.LC17
	.word	.LC25
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.size	bpf_disasm, .-bpf_disasm
	.section	.rodata
	.align	2
.LC48:
	.ascii	"pc:       [%u]\012\000"
	.align	2
.LC49:
	.ascii	"code:     [%u] jt[%u] jf[%u] k[%u]\012\000"
	.align	2
.LC50:
	.ascii	"curr:     \000"
	.align	2
.LC51:
	.ascii	"jt:       \000"
	.align	2
.LC52:
	.ascii	"jf:       \000"
	.align	2
.LC53:
	.ascii	"A:        [%#08x][%u]\012\000"
	.align	2
.LC54:
	.ascii	"X:        [%#08x][%u]\012\000"
	.align	2
.LC55:
	.ascii	"ret:      [%#08x][%u]!\012\000"
	.align	2
.LC56:
	.ascii	"M[%d]: [%#08x][%u]\012\000"
	.align	2
.LC57:
	.ascii	"M[0,%d]:  [%#08x][%u]\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_dump_curr, %function
bpf_dump_curr:
	@ args = 0, pretend = 0, frame = 16
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #78]
	mov	r1, r3
	ldr	r0, .L87
	bl	rl_printf
	ldr	r3, [fp, #-20]
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, .L87+4
	bl	rl_printf
	ldr	r0, .L87+8
	bl	rl_printf
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #78]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	ldm	r3, {r0, r1}
	bl	bpf_disasm
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L79
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L80
.L79:
	ldr	r0, .L87+12
	bl	rl_printf
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	ldrh	r2, [r2, #78]
	mov	r1, r2
	ldr	r2, [fp, #-20]
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	add	r2, r1, r2
	add	r2, r2, #1
	ldm	r3, {r0, r1}
	bl	bpf_disasm
	ldr	r0, .L87+16
	bl	rl_printf
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	ldrh	r2, [r2, #78]
	mov	r1, r2
	ldr	r2, [fp, #-20]
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	add	r2, r1, r2
	add	r2, r2, #1
	ldm	r3, {r0, r1}
	bl	bpf_disasm
.L80:
	ldr	r3, [fp, #-16]
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, .L87+20
	bl	rl_printf
	ldr	r3, [fp, #-16]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r0, .L87+24
	bl	rl_printf
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #76]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L81
	ldr	r3, [fp, #-16]
	ldr	r1, [r3, #72]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #72]
	mov	r2, r3
	ldr	r0, .L87+28
	bl	rl_printf
.L81:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L82
.L84:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, #2
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #0
	beq	.L83
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, #2
	ldr	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, #2
	ldr	r3, [r3, r2, lsl #2]
	mov	r2, r1
	ldr	r1, [fp, #-12]
	ldr	r0, .L87+32
	bl	rl_printf
.L83:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L82:
	ldr	r3, [fp, #-12]
	cmp	r3, #15
	ble	.L84
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L86
	mov	r3, #0
	mov	r2, #0
	mov	r1, #15
	ldr	r0, .L87+36
	bl	rl_printf
.L86:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L88:
	.align	2
.L87:
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.word	.LC57
	.size	bpf_dump_curr, .-bpf_dump_curr
	.section	.rodata
	.align	2
.LC58:
	.ascii	"cap: %u, len: %u\012\000"
	.align	2
.LC59:
	.ascii	"len: %u\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_dump_pkt, %function
bpf_dump_pkt:
	@ 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	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L90
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, .L92
	bl	rl_printf
	b	.L91
.L90:
	ldr	r1, [fp, #-16]
	ldr	r0, .L92+4
	bl	rl_printf
.L91:
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	hex_dump
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L93:
	.align	2
.L92:
	.word	.LC58
	.word	.LC59
	.size	bpf_dump_pkt, .-bpf_dump_pkt
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_disasm_all, %function
bpf_disasm_all:
	@ 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]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L95
.L96:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldm	r3, {r0, r1}
	bl	bpf_disasm
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L95:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L96
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bpf_disasm_all, .-bpf_disasm_all
	.section	.rodata
	.align	2
.LC60:
	.ascii	"/* { op, jt, jf, k }, */\012\000"
	.align	2
.LC61:
	.ascii	"{ %#04x, %2u, %2u, %#010x },\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_dump_all, %function
bpf_dump_all:
	@ args = 0, pretend = 0, frame = 16
	@ 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]
	ldr	r0, .L100
	bl	rl_printf
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L98
.L99:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [sp]
	mov	r3, ip
	mov	r2, r0
	ldr	r0, .L100+4
	bl	rl_printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L98:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L99
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L101:
	.align	2
.L100:
	.word	.LC60
	.word	.LC61
	.size	bpf_dump_all, .-bpf_dump_all
	.section	.rodata
	.align	2
.LC62:
	.ascii	"cannot open socket!\012\000"
	.align	2
.LC63:
	.ascii	"program not allowed to run by kernel!\012\000"
	.align	2
.LC64:
	.ascii	"extensions currently not supported!\012\000"
	.align	2
.LC65:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_runnable, %function
bpf_runnable:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L111
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-16]	@ movhi
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	mov	r2, #0
	mov	r1, #2
	mov	r0, #2
	bl	socket
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L103
	ldr	r0, .L111+4
	bl	rl_printf
	mov	r3, #0
	b	.L109
.L103:
	sub	r3, fp, #16
	mov	r2, #8
	str	r2, [sp]
	mov	r2, #26
	mov	r1, #1
	ldr	r0, [fp, #-24]
	bl	setsockopt
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	close
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L105
	ldr	r0, .L111+8
	bl	rl_printf
	mov	r3, #0
	b	.L109
.L105:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L106
.L108:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #7
	cmp	r3, #0
	bne	.L107
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmn	r3, #4096
	bls	.L107
	ldr	r0, .L111+12
	bl	rl_printf
	mov	r3, #0
	b	.L109
.L107:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L106:
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bhi	.L108
	mov	r3, #1
.L109:
	ldr	r2, .L111
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L110
	bl	__stack_chk_fail
.L110:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L112:
	.align	2
.L111:
	.word	.LC65
	.word	.LC62
	.word	.LC63
	.word	.LC64
	.size	bpf_runnable, .-bpf_runnable
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_reset_breakpoints, %function
bpf_reset_breakpoints:
	@ 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
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L114
.L115:
	ldr	r2, .L116
	ldr	r3, [fp, #-8]
	mvn	r1, #0
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L114:
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	bls	.L115
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L117:
	.align	2
.L116:
	.word	bpf_breakpoints
	.size	bpf_reset_breakpoints, .-bpf_reset_breakpoints
	.section	.rodata
	.align	2
.LC66:
	.ascii	"breakpoint already set!\012\000"
	.align	2
.LC67:
	.ascii	"too many breakpoints set, reset first!\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_set_breakpoints, %function
bpf_set_breakpoints:
	@ 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]
	mov	r3, #0
	strb	r3, [fp, #-9]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L119
.L123:
	ldr	r2, .L126
	ldr	r3, [fp, #-8]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bne	.L120
	ldr	r0, .L126+4
	bl	rl_printf
	mov	r3, #1
	strb	r3, [fp, #-9]
	b	.L121
.L120:
	ldr	r2, .L126
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	cmn	r3, #1
	bne	.L122
	ldrb	r3, [fp, #-9]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L122
	ldr	r2, [fp, #-16]
	ldr	r1, .L126
	ldr	r3, [fp, #-8]
	str	r2, [r1, r3, lsl #2]
	mov	r3, #1
	strb	r3, [fp, #-9]
.L122:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L119:
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	bls	.L123
.L121:
	ldrb	r3, [fp, #-9]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L125
	ldr	r0, .L126+8
	bl	rl_printf
.L125:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L127:
	.align	2
.L126:
	.word	bpf_breakpoints
	.word	.LC66
	.word	.LC67
	.size	bpf_set_breakpoints, .-bpf_set_breakpoints
	.section	.rodata
	.align	2
.LC68:
	.ascii	"breakpoints: \000"
	.align	2
.LC69:
	.ascii	"%d \000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_dump_breakpoints, %function
bpf_dump_breakpoints:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r0, .L134
	bl	rl_printf
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L129
.L132:
	ldr	r2, .L134+4
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	blt	.L133
	ldr	r2, .L134+4
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, .L134+8
	bl	rl_printf
	b	.L131
.L133:
	nop
.L131:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L129:
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	bls	.L132
	ldr	r0, .L134+12
	bl	rl_printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L135:
	.align	2
.L134:
	.word	.LC68
	.word	bpf_breakpoints
	.word	.LC69
	.word	.LC30
	.size	bpf_dump_breakpoints, .-bpf_dump_breakpoints
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_reset, %function
bpf_reset:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L137
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, .L137+4
	mov	r1, #0
	ldr	r0, .L137+8
	bl	memset
	mov	r2, #80
	mov	r1, #0
	ldr	r0, .L137+12
	bl	memset
	nop
	pop	{fp, pc}
.L138:
	.align	2
.L137:
	.word	bpf_regs_len
	.word	327760
	.word	bpf_regs
	.word	bpf_curr
	.size	bpf_reset, .-bpf_reset
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_safe_regs, %function
bpf_safe_regs:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L140
	ldr	r2, [r3]
	add	r3, r2, #1
	ldr	r1, .L140
	str	r3, [r1]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	ldr	r2, .L140+4
	add	r3, r3, r2
	mov	r2, #80
	ldr	r1, .L140+8
	mov	r0, r3
	bl	memcpy
	nop
	pop	{fp, pc}
.L141:
	.align	2
.L140:
	.word	bpf_regs_len
	.word	bpf_regs
	.word	bpf_curr
	.size	bpf_safe_regs, .-bpf_safe_regs
	.section	.rodata
	.align	2
.LC70:
	.ascii	"reached bottom of register history stack!\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_restore_regs, %function
bpf_restore_regs:
	@ 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, .L146
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L143
	bl	bpf_reset
	mov	r3, #1
	b	.L144
.L143:
	ldr	r3, .L146
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcs	.L145
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	ldr	r2, .L146+4
	add	r3, r3, r2
	mov	r2, #80
	mov	r1, r3
	ldr	r0, .L146+8
	bl	memcpy
	ldr	r2, .L146
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	mov	r3, #1
	b	.L144
.L145:
	ldr	r0, .L146+12
	bl	rl_printf
	mov	r3, #0
.L144:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L147:
	.align	2
.L146:
	.word	bpf_regs_len
	.word	bpf_regs
	.word	bpf_curr
	.word	.LC70
	.size	bpf_restore_regs, .-bpf_restore_regs
	.section	.rodata
	.align	2
.LC71:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	extract_u32, %function
extract_u32:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r3, .L151
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r1, r2, r3
	sub	r3, fp, #12
	mov	r2, #4
	mov	r0, r3
	bl	memcpy
	ldr	r3, [fp, #-12]
	mov	r0, r3
	bl	ntohl
	mov	r3, r0
	ldr	r2, .L151
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L150
	bl	__stack_chk_fail
.L150:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L152:
	.align	2
.L151:
	.word	.LC71
	.size	extract_u32, .-extract_u32
	.section	.rodata
	.align	2
.LC72:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	extract_u16, %function
extract_u16:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r3, .L156
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r1, r2, r3
	sub	r3, fp, #10
	mov	r2, #2
	mov	r0, r3
	bl	memcpy
	ldrh	r3, [fp, #-10]
	mov	r0, r3
	bl	ntohs
	mov	r3, r0
	ldr	r2, .L156
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L155
	bl	__stack_chk_fail
.L155:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L157:
	.align	2
.L156:
	.word	.LC72
	.size	extract_u16, .-extract_u16
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	extract_u8, %function
extract_u8:
	@ 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]
	str	r1, [fp, #-12]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	extract_u8, .-extract_u8
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_return, %function
set_return:
	@ 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]
	mov	r2, #0
	str	r2, [r3, #72]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #76]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	set_return, .-set_return
	.global	__aeabi_uidiv
	.global	__aeabi_uidivmod
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_single_step, %function
bpf_single_step:
	@ args = 4, 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]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldrh	r3, [r3]
	cmp	r3, #177
	ldrls	pc, [pc, r3, asl #2]
	b	.L247
.L164:
	.word	.L211
	.word	.L210
	.word	.L209
	.word	.L208
	.word	.L207
	.word	.L206
	.word	.L205
	.word	.L204
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L203
	.word	.L247
	.word	.L202
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L201
	.word	.L200
	.word	.L199
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L198
	.word	.L197
	.word	.L247
	.word	.L247
	.word	.L196
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L195
	.word	.L194
	.word	.L247
	.word	.L247
	.word	.L193
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L192
	.word	.L191
	.word	.L247
	.word	.L247
	.word	.L190
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L168
	.word	.L189
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L167
	.word	.L188
	.word	.L247
	.word	.L247
	.word	.L187
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L186
	.word	.L185
	.word	.L247
	.word	.L247
	.word	.L184
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L183
	.word	.L182
	.word	.L247
	.word	.L247
	.word	.L181
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L180
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L179
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L178
	.word	.L177
	.word	.L247
	.word	.L247
	.word	.L176
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L175
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L174
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L173
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L172
	.word	.L171
	.word	.L247
	.word	.L247
	.word	.L170
	.word	.L247
	.word	.L247
	.word	.L169
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L168
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L167
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L166
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L165
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L247
	.word	.L163
.L205:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	strb	r2, [r3, #76]
	b	.L162
.L199:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	strb	r2, [r3, #76]
	b	.L162
.L202:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	strb	r2, [r3, #76]
	b	.L162
.L204:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	b	.L162
.L169:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L209:
	ldr	r3, [fp, #-16]
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, #2
	str	r1, [r3, r2, lsl #2]
	b	.L162
.L208:
	ldr	r3, [fp, #-16]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, #2
	str	r1, [r3, r2, lsl #2]
	b	.L162
.L196:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bls	.L212
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	extract_u32
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L212:
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L193:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bls	.L214
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	extract_u16
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L214:
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L190:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L216
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	extract_u8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L216:
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L187:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bls	.L248
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	extract_u32
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L248
.L184:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bls	.L219
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	extract_u16
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L219:
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L181:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L221
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	extract_u8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L221:
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L163:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L223
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	extract_u8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	and	r2, r3, #60
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	b	.L162
.L223:
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L172:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #4]
	str	r2, [r3]
	b	.L162
.L171:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #4]
	str	r2, [r3]
	b	.L162
.L211:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	b	.L162
.L210:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	b	.L162
.L178:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, #2
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L177:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, #2
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	b	.L162
.L206:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L191:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r1, r3
	bls	.L225
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L226
.L225:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L226:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L194:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r1, [fp, #-12]
	cmp	r1, r3
	bcs	.L227
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L228
.L227:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L228:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L188:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r1, r3
	bcc	.L229
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L230
.L229:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L230:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L189:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r1, [fp, #-12]
	cmp	r1, r3
	bhi	.L231
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L232
.L231:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L232:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L197:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r1, r3
	bne	.L233
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L234
.L233:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L234:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L200:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r1, [fp, #-12]
	cmp	r1, r3
	bne	.L235
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L236
.L235:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L236:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L182:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	and	r3, r3, r1
	cmp	r3, #0
	beq	.L237
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L238
.L237:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L238:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L185:
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-16]
	ldr	r1, [r3]
	ldr	r3, [fp, #-12]
	and	r3, r3, r1
	cmp	r3, #0
	beq	.L239
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L240
.L239:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
.L240:
	add	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #78]	@ movhi
	b	.L162
.L170:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	rsb	r2, r3, #0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L175:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L176:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L173:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L174:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L203:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L207:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L198:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L201:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L192:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #4]
	mul	r2, r3, r2
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L195:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	mul	r2, r3, r2
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L167:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L249
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L168:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L250
	ldr	r0, [fp, #-16]
	bl	set_return
	b	.L162
.L249:
	nop
	b	.L242
.L250:
	nop
.L242:
	ldr	r3, [fp, #-20]
	ldrh	r3, [r3]
	cmp	r3, #156
	beq	.L243
	cmp	r3, #156
	bgt	.L251
	cmp	r3, #148
	beq	.L245
	cmp	r3, #148
	bgt	.L251
	cmp	r3, #52
	beq	.L246
	cmp	r3, #60
	bne	.L251
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L244
.L246:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L244
.L243:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L244
.L245:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	nop
.L244:
	b	.L251
.L179:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	and	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L180:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	and	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L183:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L186:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L165:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	eor	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L166:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	eor	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L162
.L248:
	nop
	b	.L247
.L251:
	nop
.L162:
.L247:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bpf_single_step, .-bpf_single_step
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_pc_has_breakpoint, %function
bpf_pc_has_breakpoint:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	mov	r3, r0
	strh	r3, [fp, #-14]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L253
.L257:
	ldr	r2, .L259
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	blt	.L258
	ldr	r2, .L259
	ldr	r3, [fp, #-8]
	ldr	r2, [r2, r3, lsl #2]
	ldrh	r3, [fp, #-14]
	cmp	r2, r3
	bne	.L255
	mov	r3, #1
	b	.L256
.L258:
	nop
.L255:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L253:
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	bls	.L257
	mov	r3, #0
.L256:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L260:
	.align	2
.L259:
	.word	bpf_breakpoints
	.size	bpf_pc_has_breakpoint, .-bpf_pc_has_breakpoint
	.section	.rodata
	.align	2
.LC73:
	.ascii	"-- register dump --\012\000"
	.align	2
.LC74:
	.ascii	"-- packet dump --\012\000"
	.align	2
.LC75:
	.ascii	"(breakpoint)\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_handle_breakpoint, %function
bpf_handle_breakpoint:
	@ args = 4, 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]
	str	r3, [fp, #-20]
	ldr	r0, .L263
	bl	rl_printf
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #78]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	bpf_dump_curr
	ldr	r0, .L263+4
	bl	rl_printf
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	bpf_dump_pkt
	ldr	r0, .L263+8
	bl	rl_printf
	mov	r3, #1
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L264:
	.align	2
.L263:
	.word	.LC73
	.word	.LC74
	.word	.LC75
	.size	bpf_handle_breakpoint, .-bpf_handle_breakpoint
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_run_all, %function
bpf_run_all:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, r1	@ movhi
	strh	r3, [fp, #-18]	@ movhi
	mov	r3, #0
	strb	r3, [fp, #-5]
	b	.L266
.L269:
	bl	bpf_safe_regs
	ldr	r3, .L273
	ldrh	r3, [r3, #78]
	mov	r0, r3
	bl	bpf_pc_has_breakpoint
	mov	r3, r0
	cmp	r3, #0
	beq	.L267
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-16]
	ldr	r0, .L273
	bl	bpf_handle_breakpoint
	mov	r3, r0
	strb	r3, [fp, #-5]
.L267:
	ldr	r3, .L273
	ldrh	r3, [r3, #78]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r1, r2, r3
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r0, .L273
	bl	bpf_single_step
	ldr	r3, .L273
	ldrh	r3, [r3, #78]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L273
	strh	r3, [r2, #78]	@ movhi
.L266:
	ldr	r3, .L273
	ldrb	r3, [r3, #76]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L268
	ldrb	r3, [fp, #-5]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L269
.L268:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L270
	mvn	r3, #0
	b	.L272
.L270:
	ldr	r3, .L273
	ldr	r3, [r3, #72]
.L272:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L274:
	.align	2
.L273:
	.word	bpf_curr
	.size	bpf_run_all, .-bpf_run_all
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bpf_run_stepping, %function
bpf_run_stepping:
	@ args = 8, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, r1	@ movhi
	strh	r3, [fp, #-18]	@ movhi
	mov	r3, #0
	strb	r3, [fp, #-9]
	mov	r3, #1
	str	r3, [fp, #-8]
	b	.L276
.L279:
	bl	bpf_safe_regs
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	ldr	r2, [fp, #8]
	cmp	r2, r3
	bne	.L277
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-16]
	ldr	r0, .L283
	bl	bpf_handle_breakpoint
	mov	r3, r0
	strb	r3, [fp, #-9]
.L277:
	ldr	r3, .L283
	ldrh	r3, [r3, #78]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r1, r2, r3
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r0, .L283
	bl	bpf_single_step
	ldr	r3, .L283
	ldrh	r3, [r3, #78]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L283
	strh	r3, [r2, #78]	@ movhi
.L276:
	ldr	r3, .L283
	ldrb	r3, [r3, #76]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L278
	ldrb	r3, [fp, #-9]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L279
.L278:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L280
	mvn	r3, #0
	b	.L282
.L280:
	ldr	r3, .L283
	ldr	r3, [r3, #72]
.L282:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L284:
	.align	2
.L283:
	.word	bpf_curr
	.size	bpf_run_stepping, .-bpf_run_stepping
	.section	.rodata
	.align	2
.LC76:
	.ascii	"no pcap file loaded!\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcap_loaded, %function
pcap_loaded:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L288
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L286
	ldr	r0, .L288+4
	bl	rl_printf
.L286:
	ldr	r3, .L288
	ldr	r3, [r3]
	mvn	r3, r3
	lsr	r3, r3, #31
	and	r3, r3, #255
	mov	r0, r3
	pop	{fp, pc}
.L289:
	.align	2
.L288:
	.word	pcap_fd
	.word	.LC76
	.size	pcap_loaded, .-pcap_loaded
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcap_curr_pkt, %function
pcap_curr_pkt:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L292
	ldr	r3, [r3]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L293:
	.align	2
.L292:
	.word	pcap_ptr_va_curr
	.size	pcap_curr_pkt, .-pcap_curr_pkt
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcap_next_pkt, %function
pcap_next_pkt:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	pcap_curr_pkt
	str	r0, [fp, #-8]
	ldr	r3, .L300
	ldr	r3, [r3]
	add	r2, r3, #16
	ldr	r3, .L300+4
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L300+8
	ldr	r3, [r3]
	cmp	r2, r3
	bcc	.L295
	mov	r3, #0
	b	.L296
.L295:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L297
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L297
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r2, r3
	bls	.L298
.L297:
	mov	r3, #0
	b	.L296
.L298:
	ldr	r3, .L300
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	add	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L300+4
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L300+8
	ldr	r3, [r3]
	cmp	r2, r3
	bcc	.L299
	mov	r3, #0
	b	.L296
.L299:
	ldr	r3, .L300
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	add	r3, r3, #16
	add	r3, r2, r3
	ldr	r2, .L300
	str	r3, [r2]
	mov	r3, #1
.L296:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L301:
	.align	2
.L300:
	.word	pcap_ptr_va_curr
	.word	pcap_ptr_va_start
	.word	pcap_map_size
	.size	pcap_next_pkt, .-pcap_next_pkt
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcap_reset_pkt, %function
pcap_reset_pkt:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L303
	ldr	r3, [r3]
	add	r3, r3, #24
	ldr	r2, .L303+4
	str	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L304:
	.align	2
.L303:
	.word	pcap_ptr_va_start
	.word	pcap_ptr_va_curr
	.size	pcap_reset_pkt, .-pcap_reset_pkt
	.section	.rodata
	.align	2
.LC77:
	.ascii	"cannot open pcap [%s]!\012\000"
	.align	2
.LC78:
	.ascii	"cannot fstat pcap file!\012\000"
	.align	2
.LC79:
	.ascii	"not a regular pcap file, duh!\012\000"
	.align	2
.LC80:
	.ascii	"pcap file too small!\012\000"
	.align	2
.LC81:
	.ascii	"mmap of file failed!\000"
	.align	2
.LC82:
	.ascii	"wrong pcap magic!\012\000"
	.align	2
.LC83:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	try_load_pcap, %function
try_load_pcap:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	str	r0, [fp, #-112]
	ldr	r3, .L315
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #0
	ldr	r0, [fp, #-112]
	bl	open
	mov	r3, r0
	ldr	r2, .L315+4
	str	r3, [r2]
	ldr	r3, .L315+4
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L306
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L315+8
	bl	rl_printf
	mov	r3, #1
	b	.L313
.L306:
	ldr	r3, .L315+4
	ldr	r3, [r3]
	sub	r2, fp, #100
	mov	r1, r2
	mov	r0, r3
	bl	fstat
	str	r0, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bge	.L308
	ldr	r0, .L315+12
	bl	rl_printf
	mov	r3, #1
	b	.L313
.L308:
	ldr	r3, [fp, #-84]
	and	r3, r3, #61440
	cmp	r3, #32768
	beq	.L309
	ldr	r0, .L315+16
	bl	rl_printf
	mov	r3, #1
	b	.L313
.L309:
	ldr	r3, [fp, #-56]
	mov	r2, r3
	ldr	r3, .L315+20
	str	r2, [r3]
	ldr	r3, .L315+20
	ldr	r3, [r3]
	cmp	r3, #24
	bhi	.L310
	ldr	r0, .L315+24
	bl	rl_printf
	mov	r3, #1
	b	.L313
.L310:
	ldr	r3, .L315+20
	ldr	r1, [r3]
	ldr	r3, .L315+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, .L315+28
	mov	r2, #1
	mov	r0, #0
	bl	mmap
	mov	r3, r0
	ldr	r2, .L315+32
	str	r3, [r2]
	ldr	r3, .L315+32
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L311
	ldr	r0, .L315+36
	bl	rl_printf
	mov	r3, #1
	b	.L313
.L311:
	ldr	r3, .L315+32
	ldr	r3, [r3]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	ldr	r2, .L315+40
	cmp	r3, r2
	beq	.L312
	ldr	r0, .L315+44
	bl	rl_printf
	mov	r3, #1
	b	.L313
.L312:
	bl	pcap_reset_pkt
	mov	r3, #0
.L313:
	ldr	r2, .L315
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L314
	bl	__stack_chk_fail
.L314:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L316:
	.align	2
.L315:
	.word	.LC83
	.word	pcap_fd
	.word	.LC77
	.word	.LC78
	.word	.LC79
	.word	pcap_map_size
	.word	.LC80
	.word	8193
	.word	pcap_ptr_va_start
	.word	.LC81
	.word	-1582119980
	.word	.LC82
	.size	try_load_pcap, .-try_load_pcap
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	try_close_pcap, %function
try_close_pcap:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L320
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L319
	ldr	r3, .L320+4
	ldr	r3, [r3]
	ldr	r2, .L320+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	munmap
	ldr	r3, .L320
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	ldr	r3, .L320+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L320+12
	ldr	r3, [r3]
	ldr	r2, .L320+4
	str	r3, [r2]
	ldr	r3, .L320+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L320+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L320
	mvn	r2, #0
	str	r2, [r3]
.L319:
	nop
	pop	{fp, pc}
.L321:
	.align	2
.L320:
	.word	pcap_fd
	.word	pcap_ptr_va_start
	.word	pcap_map_size
	.word	pcap_ptr_va_curr
	.word	pcap_packet
	.size	try_close_pcap, .-try_close_pcap
	.section	.rodata
	.align	2
.LC84:
	.ascii	"%hu%c\000"
	.align	2
.LC85:
	.ascii	"syntax error in head length encoding!\012\000"
	.align	2
.LC86:
	.ascii	"program exceeds encoded length!\012\000"
	.align	2
.LC87:
	.ascii	"%hu %hhu %hhu %u,\000"
	.align	2
.LC88:
	.ascii	"syntax error at instruction %d!\012\000"
	.align	2
.LC89:
	.ascii	"syntax error exceeding encoded length!\012\000"
	.align	2
.LC90:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_load_bpf, %function
cmd_load_bpf:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	ldr	r3, .L335
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #44
	strb	r3, [fp, #-25]
	mov	r3, #0
	strh	r3, [fp, #-22]	@ movhi
	ldr	r3, .L335+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, .L335+8
	mov	r1, #0
	ldr	r0, .L335+12
	bl	memset
	sub	r3, fp, #26
	sub	r2, fp, #24
	ldr	r1, .L335+16
	ldr	r0, [fp, #-32]
	bl	__isoc99_sscanf
	mov	r3, r0
	cmp	r3, #2
	bne	.L323
	ldrb	r3, [fp, #-26]	@ zero_extendqisi2
	ldrb	r2, [fp, #-25]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L323
	ldrh	r3, [fp, #-24]
	cmp	r3, #4096
	bhi	.L323
	ldrh	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L324
.L323:
	ldr	r0, .L335+20
	bl	rl_printf
	mov	r3, #1
	b	.L333
.L324:
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	b	.L326
.L330:
	ldrh	r3, [fp, #-24]
	ldrh	r2, [fp, #-22]
	cmp	r2, r3
	bcc	.L327
	ldr	r0, .L335+24
	bl	rl_printf
	mov	r3, #1
	b	.L333
.L327:
	sub	r3, fp, #16
	add	r1, r3, #2
	sub	r2, fp, #16
	sub	r3, fp, #16
	add	r3, r3, #4
	str	r3, [sp, #4]
	sub	r3, fp, #16
	add	r3, r3, #3
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L335+28
	ldr	r0, [fp, #-20]
	bl	__isoc99_sscanf
	mov	r3, r0
	cmp	r3, #4
	beq	.L328
	ldrh	r3, [fp, #-22]
	mov	r1, r3
	ldr	r0, .L335+32
	bl	rl_printf
	mov	r3, #1
	b	.L333
.L328:
	ldrh	r3, [fp, #-22]
	ldrh	r2, [fp, #-16]
	ldr	r1, .L335+12
	lsl	r3, r3, #3
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldrh	r3, [fp, #-22]
	ldrb	r1, [fp, #-14]	@ zero_extendqisi2
	ldr	r2, .L335+12
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #2]
	ldrh	r3, [fp, #-22]
	ldrb	r1, [fp, #-13]	@ zero_extendqisi2
	ldr	r2, .L335+12
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #3]
	ldrh	r3, [fp, #-22]
	ldr	r2, [fp, #-12]
	ldr	r1, .L335+12
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldrh	r3, [fp, #-22]
	add	r3, r3, #1
	strh	r3, [fp, #-22]	@ movhi
.L326:
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	strchr
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L329
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L330
.L329:
	ldrh	r3, [fp, #-24]
	ldrh	r2, [fp, #-22]
	cmp	r2, r3
	beq	.L331
	ldr	r0, .L335+36
	bl	rl_printf
	mov	r3, #1
	b	.L333
.L331:
	ldrh	r3, [fp, #-24]
	mov	r2, r3
	ldr	r3, .L335+4
	str	r2, [r3]
	ldr	r3, .L335+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L335+12
	bl	bpf_runnable
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L332
	ldr	r3, .L335+4
	mov	r2, #0
	str	r2, [r3]
.L332:
	mov	r3, #0
.L333:
	ldr	r2, .L335
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L334
	bl	__stack_chk_fail
.L334:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L336:
	.align	2
.L335:
	.word	.LC90
	.word	bpf_prog_len
	.word	32776
	.word	bpf_image
	.word	.LC84
	.word	.LC85
	.word	.LC86
	.word	.LC87
	.word	.LC88
	.word	.LC89
	.size	cmd_load_bpf, .-cmd_load_bpf
	.section	.rodata
	.align	2
.LC91:
	.ascii	" \000"
	.align	2
.LC92:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_load_pcap, %function
cmd_load_pcap:
	@ 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]
	ldr	r3, .L342
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #16
	mov	r2, r3
	ldr	r1, .L342+4
	ldr	r0, [fp, #-24]
	bl	strtok_r
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L338
	mov	r3, #1
	b	.L340
.L338:
	bl	try_close_pcap
	ldr	r0, [fp, #-12]
	bl	try_load_pcap
	mov	r3, r0
.L340:
	ldr	r2, .L342
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L341
	bl	__stack_chk_fail
.L341:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L343:
	.align	2
.L342:
	.word	.LC92
	.word	.LC91
	.size	cmd_load_pcap, .-cmd_load_pcap
	.section	.rodata
	.align	2
.LC93:
	.ascii	"bpf\000"
	.align	2
.LC94:
	.ascii	"pcap\000"
	.align	2
.LC95:
	.ascii	"bpf <code>:  load bpf code\012\000"
	.align	2
.LC96:
	.ascii	"pcap <file>: load pcap file\012\000"
	.align	2
.LC97:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_load, %function
cmd_load:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r3, .L354
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	strdup
	mov	r3, r0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
	sub	r3, fp, #24
	mov	r2, r3
	ldr	r1, .L354+4
	ldr	r0, [fp, #-16]
	bl	strtok_r
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L352
	ldr	r1, .L354+8
	ldr	r0, [fp, #-12]
	bl	matches
	mov	r3, r0
	cmp	r3, #0
	bne	.L347
	bl	bpf_reset
	bl	bpf_reset_breakpoints
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L348
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L349
.L348:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	bl	cmd_load_bpf
	str	r0, [fp, #-20]
	b	.L349
.L347:
	ldr	r1, .L354+12
	ldr	r0, [fp, #-12]
	bl	matches
	mov	r3, r0
	cmp	r3, #0
	bne	.L353
	ldr	r3, [fp, #-24]
	mov	r0, r3
	bl	cmd_load_pcap
	str	r0, [fp, #-20]
	b	.L349
.L352:
	nop
	b	.L346
.L353:
	nop
.L346:
	ldr	r0, .L354+16
	bl	rl_printf
	ldr	r0, .L354+20
	bl	rl_printf
	mov	r3, #1
	str	r3, [fp, #-20]
.L349:
	ldr	r0, [fp, #-16]
	bl	free
	ldr	r3, [fp, #-20]
	ldr	r2, .L354
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L351
	bl	__stack_chk_fail
.L351:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L355:
	.align	2
.L354:
	.word	.LC97
	.word	.LC91
	.word	.LC93
	.word	.LC94
	.word	.LC95
	.word	.LC96
	.size	cmd_load, .-cmd_load
	.section	.rodata
	.align	2
.LC98:
	.ascii	"(going back to first packet)\012\000"
	.align	2
.LC99:
	.ascii	"(next packet)\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_step, %function
cmd_step:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	bl	bpf_prog_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L357
	bl	pcap_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L358
.L357:
	mov	r3, #1
	b	.L359
.L358:
	mov	r2, #10
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	strtol
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L360
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L361
.L360:
	mov	r3, #1
	str	r3, [fp, #-16]
.L361:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L362
	ldr	r0, [fp, #-16]
	bl	bpf_restore_regs
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L363
	mov	r3, #1
	b	.L359
.L363:
	mov	r3, #1
	str	r3, [fp, #-16]
.L362:
	bl	pcap_curr_pkt
	str	r0, [fp, #-12]
	ldr	r3, .L367
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r1, r3, #16
	ldr	r3, [fp, #-12]
	add	r0, r3, #16
	ldr	r3, [fp, #-12]
	ldr	ip, [r3, #8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-16]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, ip
	mov	r2, r0
	ldr	r0, .L367+4
	bl	bpf_run_stepping
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L364
	ldr	r3, .L367+8
	ldrb	r3, [r3, #76]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L365
.L364:
	bl	bpf_reset
	bl	pcap_next_pkt
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L366
	ldr	r0, .L367+12
	bl	rl_printf
	bl	pcap_reset_pkt
	b	.L365
.L366:
	ldr	r0, .L367+16
	bl	rl_printf
.L365:
	mov	r3, #0
.L359:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L368:
	.align	2
.L367:
	.word	bpf_prog_len
	.word	bpf_image
	.word	bpf_curr
	.word	.LC98
	.word	.LC99
	.size	cmd_step, .-cmd_step
	.section	.rodata
	.align	2
.LC100:
	.ascii	"packet count starts with 1, clamping!\012\000"
	.align	2
.LC101:
	.ascii	"no packet #%u available!\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_select, %function
cmd_select:
	@ 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]
	mov	r3, #1
	strb	r3, [fp, #-13]
	bl	pcap_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L370
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L371
.L370:
	mov	r3, #1
	b	.L372
.L371:
	mov	r2, #10
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	strtoul
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L373
	ldr	r0, .L379
	bl	rl_printf
	mov	r3, #1
	str	r3, [fp, #-12]
.L373:
	bl	pcap_reset_pkt
	bl	bpf_reset
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L374
.L376:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L374:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bcs	.L375
	bl	pcap_next_pkt
	mov	r3, r0
	strb	r3, [fp, #-13]
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L376
.L375:
	ldrb	r3, [fp, #-13]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L377
	bl	pcap_curr_pkt
	mov	r3, r0
	cmp	r3, #0
	bne	.L378
.L377:
	ldr	r1, [fp, #-12]
	ldr	r0, .L379+4
	bl	rl_printf
	bl	pcap_reset_pkt
	mov	r3, #1
	b	.L372
.L378:
	mov	r3, #0
.L372:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L380:
	.align	2
.L379:
	.word	.LC100
	.word	.LC101
	.size	cmd_select, .-cmd_select
	.section	.rodata
	.align	2
.LC102:
	.ascii	"reset\000"
	.align	2
.LC103:
	.ascii	"breakpoint at: \000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_breakpoint, %function
cmd_breakpoint:
	@ 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]
	bl	bpf_prog_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L382
	mov	r3, #1
	b	.L383
.L382:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L384
	bl	bpf_dump_breakpoints
	b	.L385
.L384:
	ldr	r1, .L387
	ldr	r0, [fp, #-16]
	bl	matches
	mov	r3, r0
	cmp	r3, #0
	bne	.L386
	bl	bpf_reset_breakpoints
	b	.L385
.L386:
	mov	r2, #10
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	strtoul
	str	r0, [fp, #-8]
	ldr	r3, .L387+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcs	.L385
	ldr	r0, [fp, #-8]
	bl	bpf_set_breakpoints
	ldr	r0, .L387+8
	bl	rl_printf
	ldr	r1, .L387+12
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldm	r3, {r0, r1}
	bl	bpf_disasm
.L385:
	mov	r3, #0
.L383:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L388:
	.align	2
.L387:
	.word	.LC102
	.word	bpf_prog_len
	.word	.LC103
	.word	bpf_image
	.size	cmd_breakpoint, .-cmd_breakpoint
	.section	.rodata
	.align	2
.LC104:
	.ascii	"bpf passes:%u fails:%u\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_run, %function
cmd_run:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	mov	r3, #1
	strb	r3, [fp, #-21]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
	bl	bpf_prog_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L390
	bl	pcap_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L391
.L390:
	mov	r3, #1
	b	.L392
.L391:
	mov	r2, #10
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	strtol
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L393
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L399
.L393:
	mov	r3, #0
	strb	r3, [fp, #-21]
.L399:
	bl	pcap_curr_pkt
	str	r0, [fp, #-12]
	ldr	r3, .L400
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r1, r3, #16
	ldr	r3, [fp, #-12]
	add	r2, r3, #16
	ldr	r3, [fp, #-12]
	ldr	r0, [r3, #8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, .L400+4
	bl	bpf_run_all
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	ble	.L395
	ldr	r3, .L400+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L400+8
	str	r3, [r2]
	b	.L396
.L395:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L397
	ldr	r3, .L400+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L400+12
	str	r3, [r2]
	b	.L396
.L397:
	mov	r3, #0
	b	.L392
.L396:
	bl	bpf_reset
	bl	pcap_next_pkt
	mov	r3, r0
	cmp	r3, #0
	beq	.L398
	ldrb	r3, [fp, #-21]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L399
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L398
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L399
.L398:
	ldr	r3, .L400+8
	ldr	r3, [r3]
	ldr	r2, .L400+12
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L400+16
	bl	rl_printf
	bl	pcap_reset_pkt
	bl	bpf_reset
	ldr	r3, .L400+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L400+12
	ldr	r3, [r3]
	ldr	r2, .L400+8
	str	r3, [r2]
	mov	r3, #0
.L392:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L401:
	.align	2
.L400:
	.word	bpf_prog_len
	.word	bpf_image
	.word	pass.8683
	.word	fail.8684
	.word	.LC104
	.size	cmd_run, .-cmd_run
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_disassemble, %function
cmd_disassemble:
	@ 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]
	mov	r3, #0
	strb	r3, [fp, #-9]
	bl	bpf_prog_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L403
	mov	r3, #1
	b	.L404
.L403:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L405
	mov	r2, #10
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	strtoul
	str	r0, [fp, #-8]
	ldr	r3, .L408
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcs	.L405
	mov	r3, #1
	strb	r3, [fp, #-9]
.L405:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L406
	ldr	r1, .L408+4
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldm	r3, {r0, r1}
	bl	bpf_disasm
	b	.L407
.L406:
	ldr	r3, .L408
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L408+4
	bl	bpf_disasm_all
.L407:
	mov	r3, #0
.L404:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L409:
	.align	2
.L408:
	.word	bpf_prog_len
	.word	bpf_image
	.size	cmd_disassemble, .-cmd_disassemble
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_dump, %function
cmd_dump:
	@ 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]
	bl	bpf_prog_loaded
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L411
	mov	r3, #1
	b	.L412
.L411:
	ldr	r3, .L413
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L413+4
	bl	bpf_dump_all
	mov	r3, #0
.L412:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L414:
	.align	2
.L413:
	.word	bpf_prog_len
	.word	bpf_image
	.size	cmd_dump, .-cmd_dump
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_quit, %function
cmd_quit:
	@ 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]
	mov	r3, #2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	cmd_quit, .-cmd_quit
	.section	.rodata
	.align	2
.LC105:
	.ascii	"load\000"
	.align	2
.LC106:
	.ascii	"select\000"
	.align	2
.LC107:
	.ascii	"step\000"
	.align	2
.LC108:
	.ascii	"run\000"
	.align	2
.LC109:
	.ascii	"breakpoint\000"
	.align	2
.LC110:
	.ascii	"disassemble\000"
	.align	2
.LC111:
	.ascii	"dump\000"
	.align	2
.LC112:
	.ascii	"quit\000"
	.align	2
	.type	cmds, %object
	.size	cmds, 64
cmds:
	.word	.LC105
	.word	cmd_load
	.word	.LC106
	.word	cmd_select
	.word	.LC107
	.word	cmd_step
	.word	.LC108
	.word	cmd_run
	.word	.LC109
	.word	cmd_breakpoint
	.word	.LC110
	.word	cmd_disassemble
	.word	.LC111
	.word	cmd_dump
	.word	.LC112
	.word	cmd_quit
	.align	2
.LC113:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	execf, %function
execf:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, .L428
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-40]
	bl	strdup
	mov	r3, r0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-24]
	sub	r3, fp, #32
	mov	r2, r3
	ldr	r1, .L428+4
	ldr	r0, [fp, #-20]
	bl	strtok_r
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L426
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L420
.L423:
	ldr	r2, .L428+8
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #3]
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L427
	ldr	r2, .L428+8
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #3]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L422
	ldr	r2, .L428+8
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-32]
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-24]
	b	.L419
.L427:
	nop
.L422:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L420:
	ldr	r3, [fp, #-28]
	cmp	r3, #7
	bls	.L423
	b	.L419
.L426:
	nop
.L419:
	ldr	r0, [fp, #-20]
	bl	free
	ldr	r3, [fp, #-24]
	ldr	r2, .L428
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L425
	bl	__stack_chk_fail
.L425:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L429:
	.align	2
.L428:
	.word	.LC113
	.word	.LC91
	.word	cmds
	.size	execf, .-execf
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	shell_comp_gen, %function
shell_comp_gen:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L432
	ldr	r3, .L435
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L435+4
	str	r2, [r3]
	b	.L432
.L434:
	ldr	r3, .L435
	ldr	r3, [r3]
	ldr	r2, .L435+8
	ldr	r3, [r2, r3, lsl #3]
	str	r3, [fp, #-8]
	ldr	r3, .L435
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L435
	str	r3, [r2]
	ldr	r3, .L435+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L432
	ldr	r0, [fp, #-8]
	bl	strdup
	mov	r3, r0
	b	.L433
.L432:
	ldr	r3, .L435
	ldr	r3, [r3]
	cmp	r3, #7
	bls	.L434
	mov	r3, #0
.L433:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L436:
	.align	2
.L435:
	.word	list_index.8722
	.word	len.8723
	.word	cmds
	.size	shell_comp_gen, .-shell_comp_gen
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	shell_completion, %function
shell_completion:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L438
	ldr	r1, .L440
	ldr	r0, [fp, #-16]
	bl	rl_completion_matches
	str	r0, [fp, #-8]
.L438:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L441:
	.align	2
.L440:
	.word	shell_comp_gen
	.size	shell_completion, .-shell_completion
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	intr_shell, %function
intr_shell:
	@ 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, .L444
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L443
	mov	r1, #0
	mvn	r0, #0
	bl	rl_kill_line
.L443:
	bl	rl_crlf
	mov	r1, #0
	mov	r0, #0
	bl	rl_refresh_line
	bl	rl_free_line_state
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L445:
	.align	2
.L444:
	.word	rl_end
	.size	intr_shell, .-intr_shell
	.section	.rodata
	.align	2
.LC114:
	.ascii	"HOME\000"
	.align	2
.LC115:
	.ascii	"%s/.bpf_dbg_history\000"
	.align	2
.LC116:
	.ascii	"bpf_dbg\000"
	.align	2
.LC117:
	.ascii	"TERM\000"
	.align	2
.LC118:
	.ascii	"%s/.bpf_dbg_init\000"
	.align	2
.LC119:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_shell, %function
init_shell:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #144
	str	r0, [fp, #-144]
	str	r1, [fp, #-148]
	ldr	r3, .L448
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, .L448+4
	bl	getenv
	mov	r3, r0
	sub	r0, fp, #136
	ldr	r2, .L448+8
	mov	r1, #128
	bl	snprintf
	sub	r3, fp, #136
	mov	r0, r3
	bl	read_history
	ldr	r2, .L448+12
	ldr	r3, [fp, #-144]
	str	r3, [r2]
	ldr	r2, .L448+16
	ldr	r3, [fp, #-148]
	str	r3, [r2]
	ldr	r3, .L448+20
	ldr	r2, .L448+24
	str	r2, [r3]
	ldr	r0, .L448+28
	bl	getenv
	mov	r3, r0
	ldr	r2, .L448+32
	str	r3, [r2]
	ldr	r3, .L448+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L448+40
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L448+44
	ldr	r2, .L448+48
	str	r2, [r3]
	ldr	r1, .L448+52
	mov	r0, #9
	bl	rl_bind_key
	ldr	r2, .L448+56
	ldr	r1, .L448+52
	mov	r0, #9
	bl	rl_bind_key_in_map
	ldr	r2, .L448+56
	ldr	r1, .L448+52
	mov	r0, #27
	bl	rl_bind_key_in_map
	ldr	r0, .L448+4
	bl	getenv
	mov	r3, r0
	sub	r0, fp, #136
	ldr	r2, .L448+60
	mov	r1, #128
	bl	snprintf
	sub	r3, fp, #136
	mov	r0, r3
	bl	rl_read_init_file
	mov	r0, #0
	bl	rl_prep_terminal
	bl	rl_set_signals
	ldr	r1, .L448+64
	mov	r0, #2
	bl	signal
	nop
	ldr	r3, .L448
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L447
	bl	__stack_chk_fail
.L447:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L449:
	.align	2
.L448:
	.word	.LC119
	.word	.LC114
	.word	.LC115
	.word	rl_instream
	.word	rl_outstream
	.word	rl_readline_name
	.word	.LC116
	.word	.LC117
	.word	rl_terminal_name
	.word	rl_catch_signals
	.word	rl_catch_sigwinch
	.word	rl_attempted_completion_function
	.word	shell_completion
	.word	rl_complete
	.word	emacs_meta_keymap
	.word	.LC118
	.word	intr_shell
	.size	init_shell, .-init_shell
	.section	.rodata
	.align	2
.LC120:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	exit_shell, %function
exit_shell:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #144
	str	r0, [fp, #-144]
	str	r1, [fp, #-148]
	ldr	r3, .L455
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, .L455+4
	bl	getenv
	mov	r3, r0
	sub	r0, fp, #136
	ldr	r2, .L455+8
	mov	r1, #128
	bl	snprintf
	sub	r3, fp, #136
	mov	r0, r3
	bl	write_history
	bl	clear_history
	bl	rl_deprep_terminal
	bl	try_close_pcap
	ldr	r3, .L455+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-144]
	cmp	r2, r3
	beq	.L451
	ldr	r0, [fp, #-144]
	bl	fclose
.L451:
	ldr	r3, .L455+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-148]
	cmp	r2, r3
	beq	.L454
	ldr	r0, [fp, #-148]
	bl	fclose
.L454:
	nop
	ldr	r3, .L455
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L453
	bl	__stack_chk_fail
.L453:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L456:
	.align	2
.L455:
	.word	.LC120
	.word	.LC114
	.word	.LC115
	.word	stdin
	.word	stdout
	.size	exit_shell, .-exit_shell
	.section	.rodata
	.align	2
.LC121:
	.ascii	"> \000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	run_shell_loop, %function
run_shell_loop:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	init_shell
	b	.L458
.L462:
	ldr	r0, [fp, #-12]
	bl	execf
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	beq	.L464
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L461
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L461
	ldr	r0, [fp, #-12]
	bl	add_history
.L461:
	ldr	r0, [fp, #-12]
	bl	free
.L458:
	ldr	r0, .L465
	bl	readline
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L462
	b	.L460
.L464:
	nop
.L460:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	exit_shell
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L466:
	.align	2
.L465:
	.word	.LC121
	.size	run_shell_loop, .-run_shell_loop
	.section	.rodata
	.align	2
.LC122:
	.ascii	"r\000"
	.align	2
.LC123:
	.ascii	"w\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ 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]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	ble	.L468
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r1, .L475
	mov	r0, r3
	bl	fopen
	str	r0, [fp, #-12]
.L468:
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	ble	.L469
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	ldr	r3, [r3]
	ldr	r1, .L475+4
	mov	r0, r3
	bl	fopen
	str	r0, [fp, #-8]
.L469:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L471
	ldr	r3, .L475+8
	ldr	r3, [r3]
.L471:
	ldr	r2, [fp, #-8]
	cmp	r2, #0
	bne	.L473
	ldr	r2, .L475+12
	ldr	r2, [r2]
.L473:
	mov	r1, r2
	mov	r0, r3
	bl	run_shell_loop
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L476:
	.align	2
.L475:
	.word	.LC122
	.word	.LC123
	.word	stdin
	.word	stdout
	.size	main, .-main
	.local	pass.8683
	.comm	pass.8683,4,4
	.local	fail.8684
	.comm	fail.8684,4,4
	.local	list_index.8722
	.comm	list_index.8722,4,4
	.local	len.8723
	.comm	len.8723,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
