	.file	"756216.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 8
	.type	BUFLEN, @object
	.size	BUFLEN, 8
BUFLEN:
	.quad	65536
	.align 8
	.type	BRANCHLEN, @object
	.size	BRANCHLEN, 8
BRANCHLEN:
	.quad	36
	.align 2
	.type	SIP_PORT, @object
	.size	SIP_PORT, 2
SIP_PORT:
	.value	5060
	.align 8
	.type	MAX_IPV6_LEN, @object
	.size	MAX_IPV6_LEN, 8
MAX_IPV6_LEN:
	.quad	39
	.align 8
	.type	NULL_BYTE_LEN, @object
	.size	NULL_BYTE_LEN, 8
NULL_BYTE_LEN:
	.quad	1
	.align 8
	.type	IPV4_MAPPED_PREFIX_BIN, @object
	.size	IPV4_MAPPED_PREFIX_BIN, 12
IPV4_MAPPED_PREFIX_BIN:
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.ascii	"\377\377"
	.align 8
	.type	SIP_BRANCH_MAGIC_COOKIE, @object
	.size	SIP_BRANCH_MAGIC_COOKIE, 8
SIP_BRANCH_MAGIC_COOKIE:
	.string	"z9hG4bK"
	.local	override_strerror
	.comm	override_strerror,8,8
.LC0:
	.string	"the_stack_data/756216.c"
.LC1:
	.string	"FATAL"
.LC2:
	.string	"%s:%s:%d: "
.LC3:
	.string	" (ERROR: %s)"
	.text
	.type	ip_to_str, @function
ip_to_str:
.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, 48
	mov	rax, rsi
	mov	r9, rdi
	mov	rsi, r9
	mov	rdi, r10
	mov	rdi, rax
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -8[rbp], 10
	mov	DWORD PTR -4[rbp], 0
	lea	rax, -32[rbp]
	mov	edx, 12
	lea	rsi, IPV4_MAPPED_PREFIX_BIN[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	jne	.L2
	mov	DWORD PTR -8[rbp], 2
	mov	DWORD PTR -4[rbp], 12
.L2:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, -32[rbp]
	lea	rsi, [rdx+rax]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	edi, eax
	call	inet_ntop@PLT
	test	rax, rax
	jne	.L6
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 69
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L4
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L5
.L4:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L5
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L5:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L6:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ip_to_str, .-ip_to_str
	.type	get_route, @function
get_route:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	edx, 17
	mov	esi, 524290
	mov	edi, 10
	call	socket@PLT
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jns	.L8
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 74
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L9
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L10
.L9:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L10
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L10:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L8:
	mov	eax, DWORD PTR -52[rbp]
	mov	edx, 28
	lea	rsi, 16[rbp]
	mov	edi, eax
	call	connect@PLT
	test	eax, eax
	je	.L11
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -52[rbp]
	mov	edi, eax
	call	close@PLT
	test	eax, eax
	je	.L12
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 76
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L13
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L14
.L13:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L14
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L14:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L12:
	mov	eax, -1
	jmp	.L22
.L11:
	mov	DWORD PTR -56[rbp], 28
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	lea	rdx, -56[rbp]
	lea	rcx, -48[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	getsockname@PLT
	test	eax, eax
	je	.L16
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 81
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L17
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L18
.L17:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L18
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L18:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L16:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -52[rbp]
	mov	edi, eax
	call	close@PLT
	test	eax, eax
	je	.L19
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 82
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L20
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L21
.L20:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L21
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L21:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L19:
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, 0
.L22:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L23
	call	__stack_chk_fail@PLT
.L23:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	get_route, .-get_route
	.section	.rodata
.LC4:
	.string	"%hu"
	.text
	.type	get_routable_addr, @function
get_routable_addr:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r12
	push	rbx
	sub	rsp, 208
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	QWORD PTR -200[rbp], rdi
	mov	QWORD PTR -208[rbp], rsi
	mov	QWORD PTR -216[rbp], rdx
	mov	eax, ecx
	mov	WORD PTR -220[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	r12, rax
	lea	rax, -144[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR 8[rax], 0
	mov	QWORD PTR 16[rax], 0
	mov	QWORD PTR 24[rax], 0
	mov	QWORD PTR 32[rax], 0
	mov	QWORD PTR 40[rax], 0
	mov	DWORD PTR -140[rbp], 10
	mov	DWORD PTR -136[rbp], 2
	mov	DWORD PTR -144[rbp], 1080
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	movzx	eax, WORD PTR -220[rbp]
	mov	ecx, eax
	lea	rdx, .LC4[rip]
	mov	esi, 0
	mov	edi, 0
	mov	eax, 0
	call	snprintf@PLT
	mov	DWORD PTR -188[rbp], eax
	cmp	DWORD PTR -188[rbp], 0
	jns	.L25
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 96
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L26
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L27
.L26:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L27
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L27:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L25:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	mov	edx, 1
	lea	rbx, [rax+rdx]
	mov	rax, rbx
	sub	rax, 1
	mov	QWORD PTR -160[rbp], rax
	mov	QWORD PTR -240[rbp], rbx
	mov	QWORD PTR -232[rbp], 0
	mov	r14, rbx
	mov	r15d, 0
	mov	eax, 16
	sub	rax, 1
	add	rax, rbx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L28:
	cmp	rsp, rdx
	je	.L29
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L28
.L29:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L30
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L30:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -152[rbp], rax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	movzx	edx, WORD PTR -220[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	ecx, edx
	lea	rdx, .LC4[rip]
	mov	rsi, rbx
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	cmp	DWORD PTR -188[rbp], eax
	je	.L31
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 96
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L32
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L33
.L32:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L33
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L33:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L31:
	lea	rcx, -176[rbp]
	lea	rdx, -144[rbp]
	mov	rsi, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	getaddrinfo@PLT
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -184[rbp], 0
	je	.L34
	mov	eax, DWORD PTR -184[rbp]
	mov	edi, eax
	call	gai_strerror@PLT
	mov	QWORD PTR override_strerror[rip], rax
	mov	eax, -1
	jmp	.L35
.L34:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -180[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -168[rbp], rax
	jmp	.L36
.L39:
	call	__errno_location@PLT
	mov	edx, DWORD PTR -180[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rdx, QWORD PTR 16[rax]
	mov	QWORD PTR -64[rbp], rdx
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR -56[rbp], eax
	lea	rdx, -96[rbp]
	sub	rsp, 32
	mov	rax, rsp
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	ecx, DWORD PTR -56[rbp]
	mov	DWORD PTR 24[rax], ecx
	mov	rdi, rdx
	call	get_route
	add	rsp, 32
	test	eax, eax
	je	.L45
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -168[rbp], rax
.L36:
	cmp	QWORD PTR -168[rbp], 0
	jne	.L39
	jmp	.L38
.L45:
	nop
.L38:
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	freeaddrinfo@PLT
	cmp	QWORD PTR -168[rbp], 0
	jne	.L40
	mov	eax, -1
	jmp	.L35
.L40:
	cmp	QWORD PTR -208[rbp], 0
	je	.L41
	mov	rax, QWORD PTR -208[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	edx, DWORD PTR -56[rbp]
	mov	DWORD PTR 24[rax], edx
.L41:
	cmp	QWORD PTR -216[rbp], 0
	je	.L42
	mov	rcx, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
.L42:
	mov	eax, 0
.L35:
	mov	rsp, r12
	mov	rbx, QWORD PTR -40[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L44
	call	__stack_chk_fail@PLT
.L44:
	lea	rsp, -32[rbp]
	pop	rbx
	pop	r12
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	get_routable_addr, .-get_routable_addr
	.type	str_insert, @function
str_insert:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -72[rbp], r8
	mov	QWORD PTR -80[rbp], r9
	mov	QWORD PTR -24[rbp], 0
	cmp	QWORD PTR -48[rbp], 0
	je	.L47
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L48
.L47:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -24[rbp], rax
.L48:
	cmp	QWORD PTR -80[rbp], 0
	jns	.L49
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -80[rbp], rax
.L49:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -64[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	jb	.L50
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	cmp	QWORD PTR -64[rbp], rax
	jbe	.L51
.L50:
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 135
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L52
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L53
.L52:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L53
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L53:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L51:
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	edx, 1
	mov	rax, QWORD PTR -56[rbp]
	sub	rax, rdx
	cmp	QWORD PTR -16[rbp], rax
	jbe	.L54
	mov	eax, -1
	jmp	.L55
.L54:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	sub	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -64[rbp]
	lea	rcx, [rdx+rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memmove@PLT
	mov	rdx, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	cmp	QWORD PTR -48[rbp], 0
	je	.L56
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
.L56:
	mov	eax, 0
.L55:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	str_insert, .-str_insert
	.type	parse_address, @function
parse_address:
.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, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -72[rbp], r8
	mov	eax, r9d
	mov	WORD PTR -76[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 91
	jne	.L58
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 93
	mov	rdi, rax
	call	strchr@PLT
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L59
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -48[rbp], rax
	ja	.L60
.L59:
	mov	eax, -1
	jmp	.L69
.L60:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 1
	mov	QWORD PTR -16[rbp], rax
	jmp	.L62
.L58:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 58
	mov	rdi, rax
	call	strchr@PLT
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L63
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -48[rbp], rax
	ja	.L64
.L63:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
.L64:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
.L62:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jne	.L65
	mov	rax, QWORD PTR -72[rbp]
	movzx	edx, WORD PTR -76[rbp]
	mov	WORD PTR [rax], dx
	mov	eax, 0
	jmp	.L69
.L65:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 58
	je	.L66
	mov	eax, -1
	jmp	.L69
.L66:
	add	QWORD PTR -16[rbp], 1
	lea	rcx, -24[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	strtoul@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	je	.L67
	mov	rax, QWORD PTR -24[rbp]
	cmp	QWORD PTR -48[rbp], rax
	je	.L68
.L67:
	mov	eax, -1
	jmp	.L69
.L68:
	mov	eax, 0
.L69:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L70
	call	__stack_chk_fail@PLT
.L70:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	parse_address, .-parse_address
	.section	.rodata
.LC5:
	.string	"r"
.LC6:
	.string	"/dev/urandom"
	.align 8
.LC7:
	.string	"%s:%s:%d: Failed to open /dev/urandom"
.LC8:
	.string	"%02hhx"
	.text
	.type	random_hex_str, @function
random_hex_str:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	lea	rsi, .LC5[rip]
	lea	rdi, .LC6[rip]
	call	fopen@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L72
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 185
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L73
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L74
.L73:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L74
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L74:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L72:
	mov	QWORD PTR -24[rbp], 0
	jmp	.L75
.L82:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rdx, QWORD PTR -16[rbp]
	lea	rax, -25[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	esi, 1
	mov	rdi, rax
	call	fread@PLT
	cmp	rax, 1
	je	.L76
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 188
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L77
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L78
.L77:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L78
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L78:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L76:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	movzx	eax, BYTE PTR -25[rbp]
	movsx	eax, al
	mov	rdx, QWORD PTR -48[rbp]
	sub	rdx, QWORD PTR -24[rbp]
	mov	ecx, 1
	lea	rsi, [rdx+rcx]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rdi, [rcx+rdx]
	mov	ecx, eax
	lea	rdx, .LC8[rip]
	mov	eax, 0
	call	snprintf@PLT
	test	eax, eax
	jns	.L79
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 189
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L80
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L81
.L80:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L81
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L81:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L79:
	add	QWORD PTR -24[rbp], 2
.L75:
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jb	.L82
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	fclose@PLT
	test	eax, eax
	je	.L87
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 191
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L84
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L85
.L84:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L85
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L85:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L87:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L86
	call	__stack_chk_fail@PLT
.L86:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	random_hex_str, .-random_hex_str
	.section	.rodata
.LC9:
	.string	"\r\n"
	.text
	.type	find_header_entry, @function
find_header_entry:
.LFB12:
	.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, 136
	.cfi_offset 3, -24
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	QWORD PTR -120[rbp], rdx
	mov	DWORD PTR -124[rbp], ecx
	mov	QWORD PTR -136[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -72[rbp], rax
	lea	rax, -64[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR 8[rax], 0
	mov	QWORD PTR 16[rax], 0
	mov	QWORD PTR 24[rax], 0
	mov	QWORD PTR 32[rax], 0
.L100:
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, .LC9[rip]
	call	strncmp@PLT
	test	eax, eax
	jne	.L89
	mov	eax, -1
	jmp	.L121
.L89:
	mov	QWORD PTR -80[rbp], 0
	mov	rax, QWORD PTR -112[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	mov	rcx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncasecmp@PLT
	test	eax, eax
	jne	.L91
	mov	rax, QWORD PTR -112[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -80[rbp], rax
	jmp	.L92
.L91:
	cmp	QWORD PTR -120[rbp], 0
	je	.L92
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	mov	rcx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncasecmp@PLT
	test	eax, eax
	jne	.L92
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -80[rbp], rax
.L92:
	cmp	QWORD PTR -80[rbp], 0
	je	.L93
	jmp	.L94
.L97:
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 58
	jne	.L95
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	jmp	.L96
.L95:
	add	QWORD PTR -80[rbp], 1
.L94:
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 1
	test	eax, eax
	jne	.L97
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 58
	je	.L97
.L96:
	mov	rax, QWORD PTR -64[rbp]
	test	rax, rax
	jne	.L124
.L93:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strstr@PLT
	mov	QWORD PTR -72[rbp], rax
	cmp	QWORD PTR -72[rbp], 0
	jne	.L99
	mov	eax, -1
	jmp	.L121
.L99:
	add	QWORD PTR -72[rbp], 2
	jmp	.L100
.L124:
	nop
	jmp	.L101
.L104:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strstr@PLT
	mov	QWORD PTR -72[rbp], rax
	cmp	QWORD PTR -72[rbp], 0
	jne	.L102
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	jmp	.L103
.L102:
	add	QWORD PTR -72[rbp], 2
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 1
	test	eax, eax
	jne	.L101
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -56[rbp], rax
	jmp	.L103
.L101:
	mov	rax, QWORD PTR -56[rbp]
	test	rax, rax
	je	.L104
.L103:
	jmp	.L105
.L119:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -48[rbp], rax
	jmp	.L106
.L108:
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 1
	mov	QWORD PTR -48[rbp], rax
.L106:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	cmp	rdx, rax
	jnb	.L107
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L108
.L107:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	cmp	rdx, rax
	jne	.L109
	mov	eax, -1
	jmp	.L121
.L109:
	mov	DWORD PTR -88[rbp], 0
	mov	DWORD PTR -84[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
.L118:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	cmp	rdx, rax
	jnb	.L110
	cmp	DWORD PTR -88[rbp], 0
	jne	.L111
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L110
.L111:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 34
	jne	.L112
	cmp	DWORD PTR -88[rbp], 0
	je	.L113
	cmp	DWORD PTR -84[rbp], 0
	je	.L114
.L113:
	mov	eax, 1
	jmp	.L115
.L114:
	mov	eax, 0
.L115:
	mov	DWORD PTR -88[rbp], eax
.L112:
	cmp	DWORD PTR -88[rbp], 0
	je	.L116
	cmp	DWORD PTR -84[rbp], 0
	jne	.L116
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 92
	jne	.L116
	mov	eax, 1
	jmp	.L117
.L116:
	mov	eax, 0
.L117:
	mov	DWORD PTR -84[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -40[rbp], rdx
	test	rax, rax
	jne	.L118
.L110:
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	mov	DWORD PTR -32[rbp], eax
.L105:
	mov	eax, DWORD PTR -32[rbp]
	cmp	DWORD PTR -124[rbp], eax
	ja	.L119
	cmp	QWORD PTR -136[rbp], 0
	je	.L120
	mov	rax, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 32[rax], rdx
.L120:
	mov	eax, 0
.L121:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L122
	call	__stack_chk_fail@PLT
.L122:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	find_header_entry, .-find_header_entry
	.type	find_attribute, @function
find_attribute:
.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, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR 32[rbp]
	test	rax, rax
	je	.L126
	mov	rax, QWORD PTR 40[rbp]
	test	rax, rax
	jne	.L127
.L126:
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 282
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L128
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L129
.L128:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L129
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L129:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L127:
	mov	rax, QWORD PTR 32[rbp]
	mov	QWORD PTR -56[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR 8[rax], 0
	mov	QWORD PTR 16[rax], 0
	mov	QWORD PTR 24[rax], 0
	jmp	.L130
.L139:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 59
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	je	.L131
	mov	rax, QWORD PTR 40[rbp]
	cmp	QWORD PTR -56[rbp], rax
	jb	.L132
.L131:
	mov	eax, -1
	jmp	.L144
.L132:
	add	QWORD PTR -56[rbp], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L134
	jmp	.L130
.L134:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR 40[rbp]
	cmp	rdx, rax
	jnb	.L135
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L135
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 59
	je	.L135
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 61
	je	.L135
	jmp	.L130
.L135:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rbp]
	cmp	rdx, rax
	jnb	.L130
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 61
	jne	.L130
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	jmp	.L136
.L138:
	add	QWORD PTR -64[rbp], 1
.L136:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR 40[rbp]
	cmp	rdx, rax
	jnb	.L137
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L137
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 59
	jne	.L138
.L137:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -40[rbp], rax
.L130:
	mov	rax, QWORD PTR -48[rbp]
	test	rax, rax
	je	.L139
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rbp]
	cmp	rdx, rax
	jbe	.L140
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 309
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L141
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L142
.L141:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L142
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L142:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L140:
	cmp	QWORD PTR -80[rbp], 0
	je	.L143
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rcx], rax
	mov	QWORD PTR 24[rcx], rdx
.L143:
	mov	eax, 0
.L144:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L145
	call	__stack_chk_fail@PLT
.L145:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	find_attribute, .-find_attribute
	.section	.rodata
.LC10:
	.string	"ERROR"
.LC11:
	.string	"%s:%s:%d: packet too big"
	.text
	.type	copy_header, @function
copy_header:
.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, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -88[rbp], r8
	mov	QWORD PTR -96[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
.L152:
	lea	rcx, -48[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	rsi, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	find_header_entry
	test	eax, eax
	jns	.L147
	mov	eax, 0
	jmp	.L153
.L147:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	sub	rax, rdx
	mov	r8, rax
	mov	rdi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, [rdx+rax]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	str_insert
	test	eax, eax
	jns	.L149
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 324
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L150
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L151
.L150:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L151
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L151:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L153
.L149:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -80[rbp], rax
	jmp	.L152
.L153:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L154
	call	__stack_chk_fail@PLT
.L154:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	copy_header, .-copy_header
	.section	.rodata
.LC12:
	.string	"%s:%s:%d: invalid packet"
.LC13:
	.string	"rport"
	.align 8
.LC14:
	.string	"%s:%s:%d: no route to host found: %s"
	.text
	.type	parse_via_header, @function
parse_via_header:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r12
	push	rbx
	sub	rsp, 160
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR 32[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -120[rbp], rax
	jmp	.L156
.L158:
	add	QWORD PTR -120[rbp], 1
.L156:
	mov	rax, QWORD PTR 40[rbp]
	cmp	QWORD PTR -120[rbp], rax
	jnb	.L157
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L157
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 59
	jne	.L158
.L157:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, 5060
	movzx	r8d, ax
	lea	rdi, -146[rbp]
	lea	rcx, -136[rbp]
	lea	rdx, -144[rbp]
	mov	rsi, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	r9d, r8d
	mov	r8, rdi
	mov	rdi, rax
	call	parse_address
	test	eax, eax
	jns	.L159
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 338
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L160
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L161
.L160:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L161
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L161:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L178
.L159:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR -144[rbp]
	sub	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	edx, 1
	mov	rax, QWORD PTR -104[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, rsp
	mov	r12, rax
	mov	rax, rbx
	sub	rax, 1
	mov	QWORD PTR -96[rbp], rax
	mov	QWORD PTR -192[rbp], rbx
	mov	QWORD PTR -184[rbp], 0
	mov	r14, rbx
	mov	r15d, 0
	mov	eax, 16
	sub	rax, 1
	add	rax, rbx
	mov	ecx, 16
	mov	edx, 0
	div	rcx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L163:
	cmp	rsp, rdx
	je	.L164
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L163
.L164:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L165
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L165:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR [rax], 0
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rsi, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r9, rsi
	mov	r8, rcx
	mov	rcx, rdx
	mov	rdx, rbx
	mov	esi, 0
	mov	rdi, rax
	call	str_insert
	test	eax, eax
	jns	.L166
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 343
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L167
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L168
.L167:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L168
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L168:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L166:
	lea	rax, -80[rbp]
	sub	rsp, 8
	push	QWORD PTR 48[rbp]
	push	QWORD PTR 40[rbp]
	push	QWORD PTR 32[rbp]
	push	QWORD PTR 24[rbp]
	push	QWORD PTR 16[rbp]
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	call	find_attribute
	add	rsp, 48
	test	eax, eax
	js	.L169
	mov	rax, QWORD PTR -64[rbp]
	test	rax, rax
	je	.L169
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -64[rbp]
	lea	rcx, -128[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	strtoul@PLT
	mov	WORD PTR -146[rbp], ax
	movzx	eax, WORD PTR -146[rbp]
	test	ax, ax
	je	.L170
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -128[rbp]
	cmp	rdx, rax
	je	.L169
.L170:
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 348
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L172
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L173
.L172:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L173
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L173:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L174
.L169:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	movzx	eax, WORD PTR -146[rbp]
	movzx	ecx, ax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rsi, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get_routable_addr
	test	eax, eax
	jns	.L175
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -88[rbp]
	mov	r9, rdx
	mov	r8d, 351
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L176
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L177
.L176:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L177
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L177:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L174
.L175:
	mov	eax, 0
.L174:
	mov	rsp, r12
.L178:
	mov	rbx, QWORD PTR -40[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L179
	call	__stack_chk_fail@PLT
.L179:
	lea	rsp, -32[rbp]
	pop	rbx
	pop	r12
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	parse_via_header, .-parse_via_header
	.section	.rodata
.LC15:
	.string	"\r\n\r\n"
.LC16:
	.string	"v"
.LC17:
	.string	"Via"
.LC18:
	.string	"sips:"
.LC19:
	.string	"%s:%s:%d: sips not supported"
.LC20:
	.string	"sip:"
.LC21:
	.string	"SIP/"
.LC22:
	.string	"Max-Forwards"
.LC23:
	.string	"%s:%s:%d: too many hops"
.LC24:
	.string	"%lu"
.LC25:
	.string	"=%hu"
.LC26:
	.string	""
.LC27:
	.string	"["
.LC28:
	.string	"]"
	.align 8
.LC29:
	.string	"Via: SIP/2.0/UDP %s%s%s:%hu;branch=%s%s\r\n"
	.text
	.type	handle_message, @function
handle_message:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 584
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -440[rbp], rdi
	mov	QWORD PTR -448[rbp], rsi
	mov	QWORD PTR -456[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -440[rbp]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	call	strstr@PLT
	test	rax, rax
	jne	.L181
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 360
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L182
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L183
.L182:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L183
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L183:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L274
.L181:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	lea	rax, -176[rbp]
	mov	rdi, QWORD PTR -440[rbp]
	mov	r8, rax
	mov	ecx, 2
	lea	rdx, .LC16[rip]
	lea	rsi, .LC17[rip]
	call	find_header_entry
	test	eax, eax
	jns	.L185
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 361
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L186
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L187
.L186:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L187
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L187:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L274
.L185:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -440[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -360[rbp], rax
	cmp	QWORD PTR -360[rbp], 0
	jne	.L188
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 363
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L189
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L190
.L189:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L190
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L190:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L274
.L188:
	add	QWORD PTR -360[rbp], 1
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -360[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -352[rbp], rax
	cmp	QWORD PTR -352[rbp], 0
	jne	.L191
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 365
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L192
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L193
.L192:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L193
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L193:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L274
.L191:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, 5
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L194
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 366
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L195
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L196
.L195:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L196
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L196:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L274
.L194:
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, 4
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L197
	mov	rax, rsp
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	add	rax, 1
	mov	QWORD PTR -336[rbp], rax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -336[rbp]
	mov	edx, 4
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L198
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 370
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L199
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L200
.L199:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L200
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L200:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L201
.L198:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	lea	rax, -128[rbp]
	mov	rdi, QWORD PTR -440[rbp]
	mov	r8, rax
	mov	ecx, 1
	mov	edx, 0
	lea	rsi, .LC22[rip]
	call	find_header_entry
	test	eax, eax
	jns	.L202
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 372
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L203
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L204
.L203:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L204
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L204:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L201
.L202:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rcx, QWORD PTR -112[rbp]
	lea	rax, -408[rbp]
	mov	edx, 10
	mov	rsi, rax
	mov	rdi, rcx
	call	strtoul@PLT
	mov	QWORD PTR -328[rbp], rax
	cmp	QWORD PTR -328[rbp], 1
	ja	.L205
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 376
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC23[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L206
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L207
.L206:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L207
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L207:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L201
.L205:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -408[rbp]
	cmp	rdx, rax
	je	.L208
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 378
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L209
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L210
.L209:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L210
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L210:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L201
.L208:
	mov	eax, 71
	cmp	QWORD PTR -328[rbp], 71
	cmovbe	rax, QWORD PTR -328[rbp]
	sub	rax, 1
	mov	QWORD PTR -328[rbp], rax
	mov	eax, 1
	add	rax, 1
	mov	QWORD PTR -320[rbp], rax
	mov	eax, 1
	add	rax, 2
	mov	r12, rax
	mov	r13d, 0
	mov	eax, 1
	add	rax, 2
	mov	r14, rax
	mov	r15d, 0
	mov	eax, 1
	lea	rdx, 2[rax]
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L211:
	cmp	rsp, rcx
	je	.L212
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L211
.L212:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L213
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L213:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -312[rbp], rax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, 1
	lea	rsi, 2[rax]
	mov	rax, QWORD PTR -328[rbp]
	mov	rdi, QWORD PTR -312[rbp]
	mov	rcx, rax
	lea	rdx, .LC24[rip]
	mov	eax, 0
	call	snprintf@PLT
	mov	DWORD PTR -420[rbp], eax
	cmp	DWORD PTR -420[rbp], 0
	js	.L214
	mov	eax, DWORD PTR -420[rbp]
	mov	edx, eax
	mov	eax, 1
	add	rax, 2
	cmp	rdx, rax
	jb	.L215
.L214:
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 381
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L216
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L217
.L216:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L217
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L217:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L215:
	mov	rax, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, 1
	add	rdx, rax
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -104[rbp]
	sub	rax, rdx
	mov	rdx, rax
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memmove@PLT
	mov	rax, QWORD PTR -448[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	sub	rax, rdx
	sub	rcx, rax
	mov	rdx, rcx
	mov	rax, QWORD PTR -448[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rdx, QWORD PTR -112[rbp]
	mov	r10d, 65536
	mov	rax, QWORD PTR -312[rbp]
	mov	rsi, QWORD PTR -448[rbp]
	mov	rdi, QWORD PTR -440[rbp]
	mov	r9, -1
	mov	r8, rax
	mov	rcx, rdx
	mov	rdx, r10
	call	str_insert
	test	eax, eax
	je	.L218
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 386
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L219
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L220
.L219:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L220
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L220:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L218:
	lea	rax, -208[rbp]
	sub	rsp, 8
	push	QWORD PTR -144[rbp]
	push	QWORD PTR -152[rbp]
	push	QWORD PTR -160[rbp]
	push	QWORD PTR -168[rbp]
	push	QWORD PTR -176[rbp]
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	call	find_attribute
	add	rsp, 48
	test	eax, eax
	jne	.L221
	mov	rax, QWORD PTR -192[rbp]
	test	rax, rax
	jne	.L221
	mov	rax, rsp
	mov	r12, rax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	movzx	eax, WORD PTR 18[rbp]
	movzx	eax, ax
	mov	edi, eax
	call	ntohs@PLT
	movzx	eax, ax
	mov	ecx, eax
	lea	rdx, .LC25[rip]
	mov	esi, 0
	mov	edi, 0
	mov	eax, 0
	call	snprintf@PLT
	mov	DWORD PTR -416[rbp], eax
	cmp	DWORD PTR -416[rbp], 0
	jns	.L222
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 391
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L223
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L224
.L223:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L224
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L224:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L222:
	mov	eax, DWORD PTR -416[rbp]
	cdqe
	mov	edx, 1
	lea	rbx, [rax+rdx]
	mov	rax, rbx
	sub	rax, 1
	mov	QWORD PTR -304[rbp], rax
	mov	QWORD PTR -480[rbp], rbx
	mov	QWORD PTR -472[rbp], 0
	mov	QWORD PTR -496[rbp], rbx
	mov	QWORD PTR -488[rbp], 0
	mov	eax, 16
	sub	rax, 1
	add	rax, rbx
	mov	ecx, 16
	mov	edx, 0
	div	rcx
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L225:
	cmp	rsp, rcx
	je	.L226
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L225
.L226:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L227
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L227:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -296[rbp], rax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	movzx	eax, WORD PTR 18[rbp]
	movzx	eax, ax
	mov	edi, eax
	call	ntohs@PLT
	movzx	eax, ax
	mov	rdi, QWORD PTR -296[rbp]
	mov	ecx, eax
	lea	rdx, .LC25[rip]
	mov	rsi, rbx
	mov	eax, 0
	call	snprintf@PLT
	cmp	DWORD PTR -416[rbp], eax
	je	.L228
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 391
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L229
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L230
.L229:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L230
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L230:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L228:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rdx, QWORD PTR -200[rbp]
	mov	r10d, 65536
	mov	rax, QWORD PTR -296[rbp]
	mov	rsi, QWORD PTR -448[rbp]
	mov	rdi, QWORD PTR -440[rbp]
	mov	r9, -1
	mov	r8, rax
	mov	rcx, rdx
	mov	rdx, r10
	call	str_insert
	test	eax, eax
	jns	.L231
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 392
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L232
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L233
.L232:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L233
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L233:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	mov	rsp, r12
	jmp	.L201
.L231:
	mov	rsp, r12
.L221:
	mov	rax, QWORD PTR -352[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	mov	esi, 64
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -368[rbp], rax
	cmp	QWORD PTR -368[rbp], 0
	je	.L234
	mov	rax, QWORD PTR -368[rbp]
	cmp	rax, QWORD PTR -288[rbp]
	jnb	.L234
	add	QWORD PTR -368[rbp], 1
	jmp	.L235
.L234:
	mov	rax, QWORD PTR -360[rbp]
	add	rax, 4
	mov	QWORD PTR -368[rbp], rax
.L235:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, 5060
	movzx	r8d, ax
	lea	rdi, -422[rbp]
	lea	rcx, -392[rbp]
	lea	rdx, -400[rbp]
	mov	rsi, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR -368[rbp]
	mov	r9d, r8d
	mov	r8, rdi
	mov	rdi, rax
	call	parse_address
	test	eax, eax
	jns	.L236
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 404
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L237
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L238
.L237:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L238
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L238:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L201
.L236:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR -400[rbp]
	sub	rax, rdx
	mov	QWORD PTR -280[rbp], rax
	mov	edx, 1
	mov	rax, QWORD PTR -280[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, rbx
	sub	rax, 1
	mov	QWORD PTR -272[rbp], rax
	mov	QWORD PTR -512[rbp], rbx
	mov	QWORD PTR -504[rbp], 0
	mov	QWORD PTR -528[rbp], rbx
	mov	QWORD PTR -520[rbp], 0
	mov	eax, 16
	sub	rax, 1
	add	rax, rbx
	mov	ecx, 16
	mov	edx, 0
	div	rcx
	imul	rdx, rax, 16
	mov	rax, rdx
	and	rax, -4096
	mov	rcx, rsp
	sub	rcx, rax
.L239:
	cmp	rsp, rcx
	je	.L240
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L239
.L240:
	mov	rax, rdx
	and	eax, 4095
	sub	rsp, rax
	mov	rax, rdx
	and	eax, 4095
	test	rax, rax
	je	.L241
	mov	rax, rdx
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L241:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	BYTE PTR [rax], 0
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR -264[rbp]
	mov	rdi, QWORD PTR -264[rbp]
	mov	r9, rcx
	mov	r8, rdx
	mov	rcx, rax
	mov	rdx, rbx
	mov	esi, 0
	call	str_insert
	test	eax, eax
	jns	.L242
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 409
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L243
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L244
.L243:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L244
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L244:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L242:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	movzx	eax, WORD PTR -422[rbp]
	movzx	eax, ax
	lea	rdx, -80[rbp]
	mov	rsi, QWORD PTR -456[rbp]
	mov	rdi, QWORD PTR -264[rbp]
	mov	ecx, eax
	call	get_routable_addr
	test	eax, eax
	jns	.L245
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -264[rbp]
	mov	r9, rdx
	mov	r8d, 411
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L246
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L247
.L246:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L247
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L247:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L201
.L245:
	mov	edx, 39
	mov	eax, 1
	add	rax, rdx
	sub	rax, 1
	mov	QWORD PTR -256[rbp], rax
	mov	edx, 39
	mov	eax, 1
	add	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	QWORD PTR -536[rbp], 0
	mov	edx, 39
	mov	eax, 1
	add	rax, rdx
	mov	QWORD PTR -560[rbp], rax
	mov	QWORD PTR -552[rbp], 0
	mov	edx, 39
	mov	eax, 1
	add	rdx, rax
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L248:
	cmp	rsp, rdx
	je	.L249
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L248
.L249:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L250
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L250:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -248[rbp], rax
	mov	edx, 36
	mov	eax, 1
	add	rax, rdx
	sub	rax, 1
	mov	QWORD PTR -240[rbp], rax
	mov	edx, 36
	mov	eax, 1
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	QWORD PTR -568[rbp], 0
	mov	edx, 36
	mov	eax, 1
	add	rax, rdx
	mov	QWORD PTR -592[rbp], rax
	mov	QWORD PTR -584[rbp], 0
	mov	edx, 36
	mov	eax, 1
	add	rdx, rax
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L251:
	cmp	rsp, rdx
	je	.L252
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L251
.L252:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L253
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L253:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -232[rbp], rax
	mov	eax, 39
	mov	edx, eax
	mov	eax, 1
	lea	ecx, [rdx+rax]
	mov	rdx, QWORD PTR -248[rbp]
	mov	rsi, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rsi
	mov	rsi, rax
	call	ip_to_str
	mov	edx, 36
	mov	rax, QWORD PTR -232[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	random_hex_str
	lea	rax, .LC26[rip]
	mov	QWORD PTR -376[rbp], rax
	lea	rax, .LC26[rip]
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	esi, 58
	mov	rdi, rax
	call	strchr@PLT
	test	rax, rax
	je	.L254
	lea	rax, .LC27[rip]
	mov	QWORD PTR -376[rbp], rax
	lea	rax, .LC28[rip]
	mov	QWORD PTR -384[rbp], rax
.L254:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, 5060
	movzx	edx, ax
	mov	rdi, QWORD PTR -384[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR -376[rbp]
	sub	rsp, 8
	push	QWORD PTR -232[rbp]
	lea	rcx, SIP_BRANCH_MAGIC_COOKIE[rip]
	push	rcx
	push	rdx
	mov	r9, rdi
	mov	r8, rsi
	mov	rcx, rax
	lea	rdx, .LC29[rip]
	mov	esi, 0
	mov	edi, 0
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 32
	mov	DWORD PTR -412[rbp], eax
	cmp	DWORD PTR -412[rbp], 0
	jns	.L255
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 421
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L256
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L257
.L256:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L257
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L257:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L255:
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	mov	edx, 1
	lea	rbx, [rax+rdx]
	mov	rax, rbx
	sub	rax, 1
	mov	QWORD PTR -224[rbp], rax
	mov	QWORD PTR -608[rbp], rbx
	mov	QWORD PTR -600[rbp], 0
	mov	QWORD PTR -624[rbp], rbx
	mov	QWORD PTR -616[rbp], 0
	mov	eax, 16
	sub	rax, 1
	add	rax, rbx
	mov	ecx, 16
	mov	edx, 0
	div	rcx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L258:
	cmp	rsp, rdx
	je	.L259
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L258
.L259:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L260
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L260:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -216[rbp], rax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, 5060
	movzx	ecx, ax
	mov	r8, QWORD PTR -384[rbp]
	mov	rdi, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -216[rbp]
	sub	rsp, 8
	push	QWORD PTR -232[rbp]
	lea	rsi, SIP_BRANCH_MAGIC_COOKIE[rip]
	push	rsi
	push	rcx
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	lea	rdx, .LC29[rip]
	mov	rsi, rbx
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 32
	cmp	DWORD PTR -412[rbp], eax
	je	.L261
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 421
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L262
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L263
.L262:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L263
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L263:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L261:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rdx, QWORD PTR -176[rbp]
	mov	edi, 65536
	mov	rcx, QWORD PTR -216[rbp]
	mov	rsi, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR -440[rbp]
	mov	r9, -1
	mov	r8, rcx
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	str_insert
	test	eax, eax
	jns	.L264
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 423
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L265
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L266
.L265:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L266
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L266:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L201
.L264:
	mov	rsp, QWORD PTR -464[rbp]
	jmp	.L267
.L201:
	mov	rsp, QWORD PTR -464[rbp]
	jmp	.L274
.L197:
	mov	rax, QWORD PTR -440[rbp]
	mov	QWORD PTR -344[rbp], rax
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -344[rbp]
	mov	edx, 4
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L268
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 428
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L269
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L270
.L269:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L270
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L270:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L274
.L268:
	mov	rax, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, 1
	add	rdx, rax
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -168[rbp]
	sub	rax, rdx
	mov	rdx, rax
	mov	rcx, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memmove@PLT
	mov	rax, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -168[rbp]
	mov	rcx, QWORD PTR -176[rbp]
	sub	rdx, rcx
	mov	rcx, rdx
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -448[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	lea	rdx, -176[rbp]
	mov	rax, QWORD PTR -440[rbp]
	mov	r8, rdx
	mov	ecx, 2
	lea	rdx, .LC16[rip]
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	call	find_header_entry
	test	eax, eax
	jns	.L271
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 433
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L272
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L273
.L272:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L273
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L273:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, -1
	jmp	.L274
.L271:
	mov	rax, QWORD PTR -456[rbp]
	sub	rsp, 8
	push	QWORD PTR -144[rbp]
	push	QWORD PTR -152[rbp]
	push	QWORD PTR -160[rbp]
	push	QWORD PTR -168[rbp]
	push	QWORD PTR -176[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	parse_via_header
	add	rsp, 48
	test	eax, eax
	je	.L267
	mov	eax, -1
	jmp	.L274
.L267:
	mov	eax, 0
.L274:
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L275
	call	__stack_chk_fail@PLT
.L275:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	handle_message, .-handle_message
	.section	.rodata
	.align 8
.LC30:
	.string	"%s:%s:%d: can't bind to port %hu"
.LC31:
	.string	"%s:%s:%d: failed to send"
	.text
	.globl	main
	.type	main, @function
main:
.LFB17:
	.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, 296
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	eax, 65536
	sub	rax, 1
	mov	QWORD PTR -272[rbp], rax
	mov	eax, 65536
	mov	rsi, rax
	mov	edi, 0
	mov	eax, 65536
	mov	rcx, rax
	mov	ebx, 0
	mov	edx, 65536
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L277:
	cmp	rsp, rdx
	je	.L278
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L277
.L278:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L279
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L279:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -264[rbp], rax
	lea	rax, -256[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR 8[rax], 0
	mov	QWORD PTR 16[rax], 0
	mov	DWORD PTR 24[rax], 0
	mov	WORD PTR -256[rbp], 10
	mov	eax, 5060
	movzx	eax, ax
	mov	edi, eax
	call	htons@PLT
	mov	WORD PTR -254[rbp], ax
	mov	rax, QWORD PTR in6addr_any[rip]
	mov	rdx, QWORD PTR in6addr_any[rip+8]
	mov	QWORD PTR -248[rbp], rax
	mov	QWORD PTR -240[rbp], rdx
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	edx, 17
	mov	esi, 524290
	mov	edi, 10
	call	socket@PLT
	mov	DWORD PTR -292[rbp], eax
	cmp	DWORD PTR -292[rbp], 0
	jns	.L280
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 449
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L281
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L282
.L281:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L282
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L282:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L280:
	mov	DWORD PTR -300[rbp], 0
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	lea	rdx, -300[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	r8d, 4
	mov	rcx, rdx
	mov	edx, 26
	mov	esi, 41
	mov	edi, eax
	call	setsockopt@PLT
	test	eax, eax
	jns	.L283
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 451
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L284
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L285
.L284:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L285
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L285:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L283:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	lea	rcx, -256[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	edx, 28
	mov	rsi, rcx
	mov	edi, eax
	call	bind@PLT
	test	eax, eax
	jns	.L286
	mov	eax, 5060
	movzx	edx, ax
	mov	rax, QWORD PTR stderr[rip]
	mov	r9d, edx
	mov	r8d, 452
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC30[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L287
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L288
.L287:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L288
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L288:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L286:
	mov	eax, 0
	mov	ecx, 16
	lea	rdx, -160[rbp]
	mov	rdi, rdx
#APP
# 455 "the_stack_data/756216.c" 1
	cld; rep; stosq
# 0 "" 2
#NO_APP
	mov	eax, edi
	mov	edx, ecx
	mov	DWORD PTR -288[rbp], edx
	mov	DWORD PTR -284[rbp], eax
	mov	eax, DWORD PTR -292[rbp]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	mov	esi, eax
	movsx	rax, esi
	mov	rdi, QWORD PTR -160[rbp+rax*8]
	mov	eax, DWORD PTR -292[rbp]
	cdq
	shr	edx, 26
	add	eax, edx
	and	eax, 63
	sub	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	rdi, rax
	mov	rdx, rdi
	movsx	rax, esi
	mov	QWORD PTR -160[rbp+rax*8], rdx
.L303:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -292[rbp]
	lea	edi, 1[rax]
	lea	rax, -160[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	rsi, rax
	call	select@PLT
	test	eax, eax
	jns	.L289
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 459
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L290
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L291
.L290:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L291
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L291:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L289:
	mov	DWORD PTR -296[rbp], 28
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	edi, 65536
	lea	rcx, -296[rbp]
	lea	rdx, -224[rbp]
	mov	rsi, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	r9, rcx
	mov	r8, rdx
	mov	ecx, 0
	mov	rdx, rdi
	mov	edi, eax
	call	recvfrom@PLT
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	test	rax, rax
	jns	.L292
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 462
	lea	rcx, .LC0[rip]
	lea	rdx, .LC1[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L293
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L294
.L293:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L294
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L294:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	edi, 1
	call	exit@PLT
.L292:
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	eax, 65536
	mov	ecx, 1
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -280[rbp]
	cmp	rdx, rax
	jnb	.L295
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 464
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L296
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L297
.L296:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L297
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L297:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	jmp	.L302
.L295:
	mov	rax, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -264[rbp]
	mov	BYTE PTR [rdx+rax], 0
	lea	rdx, -192[rbp]
	lea	rsi, -280[rbp]
	mov	rdi, QWORD PTR -264[rbp]
	sub	rsp, 32
	mov	rax, rsp
	mov	rcx, QWORD PTR -224[rbp]
	mov	rbx, QWORD PTR -216[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -208[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	ecx, DWORD PTR -200[rbp]
	mov	DWORD PTR 24[rax], ecx
	call	handle_message
	add	rsp, 32
	test	eax, eax
	jne	.L303
	mov	QWORD PTR override_strerror[rip], 0
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	lea	rdx, -192[rbp]
	mov	rsi, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	r9d, 28
	mov	r8, rdx
	mov	ecx, 0
	mov	rdx, rdi
	mov	edi, eax
	call	sendto@PLT
	test	rax, rax
	jns	.L303
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 468
	lea	rcx, .LC0[rip]
	lea	rdx, .LC10[rip]
	lea	rsi, .LC31[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR override_strerror[rip]
	test	rax, rax
	je	.L300
	mov	rdx, QWORD PTR override_strerror[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L301
.L300:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L301
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L301:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	nop
.L302:
	jmp	.L303
	.cfi_endproc
.LFE17:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"756216.c"
	.text
	.section	.rodata
	.align	2
	.type	BUFLEN, %object
	.size	BUFLEN, 4
BUFLEN:
	.word	65536
	.align	2
	.type	BRANCHLEN, %object
	.size	BRANCHLEN, 4
BRANCHLEN:
	.word	36
	.align	1
	.type	SIP_PORT, %object
	.size	SIP_PORT, 2
SIP_PORT:
	.short	5060
	.align	2
	.type	MAX_IPV6_LEN, %object
	.size	MAX_IPV6_LEN, 4
MAX_IPV6_LEN:
	.word	39
	.align	2
	.type	NULL_BYTE_LEN, %object
	.size	NULL_BYTE_LEN, 4
NULL_BYTE_LEN:
	.word	1
	.align	2
	.type	IPV4_MAPPED_PREFIX_BIN, %object
	.size	IPV4_MAPPED_PREFIX_BIN, 12
IPV4_MAPPED_PREFIX_BIN:
	.ascii	"\000\000\000\000\000\000\000\000\000\000\377\377"
	.align	2
	.type	SIP_BRANCH_MAGIC_COOKIE, %object
	.size	SIP_BRANCH_MAGIC_COOKIE, 8
SIP_BRANCH_MAGIC_COOKIE:
	.ascii	"z9hG4bK\000"
	.local	override_strerror
	.comm	override_strerror,4,4
	.align	2
.LC0:
	.ascii	"the_stack_data/756216.c\000"
	.align	2
.LC1:
	.ascii	"FATAL\000"
	.align	2
.LC2:
	.ascii	"%s:%s:%d: \000"
	.align	2
.LC3:
	.ascii	" (ERROR: %s)\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ip_to_str, %function
ip_to_str:
	@ args = 8, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	sub	ip, fp, #36
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #10
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r3, fp, #36
	mov	r2, #12
	ldr	r1, .L7
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L2
	mov	r3, #2
	str	r3, [fp, #-20]
	mov	r3, #12
	str	r3, [fp, #-16]
.L2:
	ldr	r3, .L7+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	sub	r2, fp, #36
	add	r1, r2, r3
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #4]
	ldr	r0, [fp, #-20]
	bl	inet_ntop
	mov	r3, r0
	cmp	r3, #0
	bne	.L6
	ldr	r3, .L7+8
	ldr	r0, [r3]
	mov	r3, #69
	str	r3, [sp]
	ldr	r3, .L7+12
	ldr	r2, .L7+16
	ldr	r1, .L7+20
	bl	fprintf
	ldr	r3, .L7+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4
	ldr	r3, .L7+8
	ldr	r3, [r3]
	ldr	r2, .L7+4
	ldr	r2, [r2]
	ldr	r1, .L7+24
	mov	r0, r3
	bl	fprintf
	b	.L5
.L4:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L5
	ldr	r3, .L7+8
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L7+24
	mov	r0, r4
	bl	fprintf
.L5:
	ldr	r3, .L7+8
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L6:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L8:
	.align	2
.L7:
	.word	IPV4_MAPPED_PREFIX_BIN
	.word	override_strerror
	.word	stderr
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.size	ip_to_str, .-ip_to_str
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_route, %function
get_route:
	@ args = 32, pretend = 16, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	sub	sp, sp, #16
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	add	ip, fp, #4
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #32]
	str	r3, [fp, #-56]
	ldr	r3, .L26
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L26+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #17
	ldr	r1, .L26+8
	mov	r0, #10
	bl	socket
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bge	.L10
	ldr	r3, .L26+12
	ldr	r0, [r3]
	mov	r3, #74
	str	r3, [sp]
	ldr	r3, .L26+16
	ldr	r2, .L26+20
	ldr	r1, .L26+24
	bl	fprintf
	ldr	r3, .L26+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L11
	ldr	r3, .L26+12
	ldr	r3, [r3]
	ldr	r2, .L26+4
	ldr	r2, [r2]
	ldr	r1, .L26+28
	mov	r0, r3
	bl	fprintf
	b	.L12
.L11:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L12
	ldr	r3, .L26+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L26+28
	mov	r0, r4
	bl	fprintf
.L12:
	ldr	r3, .L26+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L10:
	mov	r2, #28
	add	r3, fp, #4
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	connect
	mov	r3, r0
	cmp	r3, #0
	beq	.L13
	ldr	r3, .L26+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-48]
	bl	close
	mov	r3, r0
	cmp	r3, #0
	beq	.L14
	ldr	r3, .L26+12
	ldr	r0, [r3]
	mov	r3, #76
	str	r3, [sp]
	ldr	r3, .L26+16
	ldr	r2, .L26+20
	ldr	r1, .L26+24
	bl	fprintf
	ldr	r3, .L26+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L15
	ldr	r3, .L26+12
	ldr	r3, [r3]
	ldr	r2, .L26+4
	ldr	r2, [r2]
	ldr	r1, .L26+28
	mov	r0, r3
	bl	fprintf
	b	.L16
.L15:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L16
	ldr	r3, .L26+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L26+28
	mov	r0, r4
	bl	fprintf
.L16:
	ldr	r3, .L26+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L14:
	mvn	r3, #0
	b	.L24
.L13:
	mov	r3, #28
	str	r3, [fp, #-52]
	ldr	r3, .L26+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	sub	r2, fp, #52
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	getsockname
	mov	r3, r0
	cmp	r3, #0
	beq	.L18
	ldr	r3, .L26+12
	ldr	r0, [r3]
	mov	r3, #81
	str	r3, [sp]
	ldr	r3, .L26+16
	ldr	r2, .L26+20
	ldr	r1, .L26+24
	bl	fprintf
	ldr	r3, .L26+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L19
	ldr	r3, .L26+12
	ldr	r3, [r3]
	ldr	r2, .L26+4
	ldr	r2, [r2]
	ldr	r1, .L26+28
	mov	r0, r3
	bl	fprintf
	b	.L20
.L19:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L20
	ldr	r3, .L26+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L26+28
	mov	r0, r4
	bl	fprintf
.L20:
	ldr	r3, .L26+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L18:
	ldr	r3, .L26+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-48]
	bl	close
	mov	r3, r0
	cmp	r3, #0
	beq	.L21
	ldr	r3, .L26+12
	ldr	r0, [r3]
	mov	r3, #82
	str	r3, [sp]
	ldr	r3, .L26+16
	ldr	r2, .L26+20
	ldr	r1, .L26+24
	bl	fprintf
	ldr	r3, .L26+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L22
	ldr	r3, .L26+12
	ldr	r3, [r3]
	ldr	r2, .L26+4
	ldr	r2, [r2]
	ldr	r1, .L26+28
	mov	r0, r3
	bl	fprintf
	b	.L23
.L22:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L23
	ldr	r3, .L26+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L26+28
	mov	r0, r4
	bl	fprintf
.L23:
	ldr	r3, .L26+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L21:
	ldr	r3, [fp, #-56]
	mov	ip, r3
	sub	r3, fp, #36
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #0
.L24:
	ldr	r2, .L26
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L25
	bl	__stack_chk_fail
.L25:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, lr}
	add	sp, sp, #16
	bx	lr
.L27:
	.align	2
.L26:
	.word	.LC4
	.word	override_strerror
	.word	524290
	.word	stderr
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.size	get_route, .-get_route
	.section	.rodata
	.align	2
.LC5:
	.ascii	"%hu\000"
	.align	2
.LC6:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_routable_addr, %function
get_routable_addr:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #144
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	str	r2, [fp, #-136]
	strh	r3, [fp, #-138]	@ movhi
	ldr	r3, .L47
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r5, r3
	sub	r3, fp, #92
	mov	r0, r3
	mov	r3, #32
	mov	r2, r3
	mov	r1, #0
	bl	memset
	mov	r3, #10
	str	r3, [fp, #-88]
	mov	r3, #2
	str	r3, [fp, #-84]
	ldr	r3, .L47+4
	str	r3, [fp, #-92]
	ldr	r3, .L47+8
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldrh	r3, [fp, #-138]
	ldr	r2, .L47+12
	mov	r1, #0
	mov	r0, #0
	bl	snprintf
	str	r0, [fp, #-112]
	ldr	r3, [fp, #-112]
	cmp	r3, #0
	bge	.L29
	ldr	r3, .L47+16
	ldr	r0, [r3]
	mov	r3, #96
	str	r3, [sp]
	ldr	r3, .L47+20
	ldr	r2, .L47+24
	ldr	r1, .L47+28
	bl	fprintf
	ldr	r3, .L47+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L30
	ldr	r3, .L47+16
	ldr	r3, [r3]
	ldr	r2, .L47+8
	ldr	r2, [r2]
	ldr	r1, .L47+32
	mov	r0, r3
	bl	fprintf
	b	.L31
.L30:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L31
	ldr	r3, .L47+16
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L47+32
	mov	r0, r4
	bl	fprintf
.L31:
	ldr	r3, .L47+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L29:
	ldr	r3, [fp, #-112]
	mov	r2, #1
	add	r4, r3, r2
	mov	r3, r4
	sub	r3, r3, #1
	str	r3, [fp, #-108]
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	add	r3, r4, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #16
	add	r3, r3, #0
	str	r3, [fp, #-104]
	ldr	r3, .L47+8
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldrh	r3, [fp, #-138]
	ldr	r2, .L47+12
	mov	r1, r4
	ldr	r0, [fp, #-104]
	bl	snprintf
	mov	r2, r0
	ldr	r3, [fp, #-112]
	cmp	r3, r2
	beq	.L32
	ldr	r3, .L47+16
	ldr	r0, [r3]
	mov	r3, #96
	str	r3, [sp]
	ldr	r3, .L47+20
	ldr	r2, .L47+24
	ldr	r1, .L47+28
	bl	fprintf
	ldr	r3, .L47+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L33
	ldr	r3, .L47+16
	ldr	r3, [r3]
	ldr	r2, .L47+8
	ldr	r2, [r2]
	ldr	r1, .L47+32
	mov	r0, r3
	bl	fprintf
	b	.L34
.L33:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L34
	ldr	r3, .L47+16
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L47+32
	mov	r0, r4
	bl	fprintf
.L34:
	ldr	r3, .L47+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L32:
	sub	r3, fp, #120
	sub	r2, fp, #92
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-128]
	bl	getaddrinfo
	str	r0, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L35
	ldr	r0, [fp, #-100]
	bl	gai_strerror
	mov	r3, r0
	ldr	r2, .L47+8
	str	r3, [r2]
	mvn	r3, #0
	b	.L36
.L35:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-116]
	b	.L37
.L40:
	bl	__errno_location
	mov	r2, r0
	ldr	r3, [fp, #-96]
	str	r3, [r2]
	ldr	r3, [fp, #-116]
	ldr	r3, [r3, #20]
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	sub	r3, fp, #60
	str	r3, [sp, #12]
	mov	ip, sp
	sub	r3, fp, #28
	ldm	r3, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	sub	r3, fp, #44
	ldm	r3, {r0, r1, r2, r3}
	bl	get_route
	mov	r3, r0
	cmp	r3, #0
	beq	.L46
	ldr	r3, [fp, #-116]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-116]
.L37:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bne	.L40
	b	.L39
.L46:
	nop
.L39:
	ldr	r3, [fp, #-120]
	mov	r0, r3
	bl	freeaddrinfo
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bne	.L41
	mvn	r3, #0
	b	.L36
.L41:
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	beq	.L42
	ldr	r3, [fp, #-132]
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2}
	stm	lr, {r0, r1, r2}
.L42:
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L43
	ldr	r3, [fp, #-136]
	mov	ip, r3
	sub	r3, fp, #60
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
.L43:
	mov	r3, #0
.L36:
	mov	sp, r5
	ldr	r2, .L47
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L45
	bl	__stack_chk_fail
.L45:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L48:
	.align	2
.L47:
	.word	.LC6
	.word	1080
	.word	override_strerror
	.word	.LC5
	.word	stderr
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.size	get_routable_addr, .-get_routable_addr
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	str_insert, %function
str_insert:
	@ args = 8, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L50
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L51
.L50:
	ldr	r0, [fp, #-32]
	bl	strlen
	str	r0, [fp, #-24]
.L51:
	ldr	r3, [fp, #8]
	cmp	r3, #0
	bge	.L52
	ldr	r0, [fp, #4]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #8]
.L52:
	ldr	r3, .L60
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bcc	.L53
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bls	.L54
.L53:
	ldr	r3, .L60+4
	ldr	r0, [r3]
	mov	r3, #135
	str	r3, [sp]
	ldr	r3, .L60+8
	ldr	r2, .L60+12
	ldr	r1, .L60+16
	bl	fprintf
	ldr	r3, .L60
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L55
	ldr	r3, .L60+4
	ldr	r3, [r3]
	ldr	r2, .L60
	ldr	r2, [r2]
	ldr	r1, .L60+20
	mov	r0, r3
	bl	fprintf
	b	.L56
.L55:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L56
	ldr	r3, .L60+4
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L60+20
	mov	r0, r4
	bl	fprintf
.L56:
	ldr	r3, .L60+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L54:
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	mov	r2, #1
	ldr	r3, [fp, #-40]
	sub	r3, r3, r2
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bls	.L57
	mvn	r3, #0
	b	.L58
.L57:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-44]
	mov	r0, r3
	bl	memmove
	ldr	r3, [fp, #8]
	mov	r2, r3
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-44]
	bl	memcpy
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L59
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
.L59:
	mov	r3, #0
.L58:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L61:
	.align	2
.L60:
	.word	override_strerror
	.word	stderr
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.size	str_insert, .-str_insert
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_address, %function
parse_address:
	@ args = 8, 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, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-40]
	ldr	r3, .L76
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #91
	bne	.L63
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r1, #93
	mov	r0, r3
	bl	strchr
	mov	r2, r0
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L64
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bhi	.L65
.L64:
	mvn	r3, #0
	b	.L74
.L65:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	b	.L67
.L63:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r1, #58
	mov	r0, r3
	bl	strchr
	mov	r2, r0
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L68
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bhi	.L69
.L68:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
.L69:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L67:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L70
	ldr	r3, [fp, #-40]
	ldrh	r2, [fp, #8]	@ movhi
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	b	.L74
.L70:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L71
	mvn	r3, #0
	b	.L74
.L71:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	sub	r3, fp, #16
	mov	r2, #10
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	strtoul
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-40]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3]
	cmp	r3, #0
	beq	.L72
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	beq	.L73
.L72:
	mvn	r3, #0
	b	.L74
.L73:
	mov	r3, #0
.L74:
	ldr	r2, .L76
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L75
	bl	__stack_chk_fail
.L75:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L77:
	.align	2
.L76:
	.word	.LC7
	.size	parse_address, .-parse_address
	.section	.rodata
	.align	2
.LC8:
	.ascii	"r\000"
	.align	2
.LC9:
	.ascii	"/dev/urandom\000"
	.align	2
.LC10:
	.ascii	"%s:%s:%d: Failed to open /dev/urandom\000"
	.align	2
.LC11:
	.ascii	"%02hhx\000"
	.align	2
.LC12:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	random_hex_str, %function
random_hex_str:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L95
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L95+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r1, .L95+8
	ldr	r0, .L95+12
	bl	fopen
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L79
	ldr	r3, .L95+16
	ldr	r0, [r3]
	mov	r3, #185
	str	r3, [sp]
	ldr	r3, .L95+20
	ldr	r2, .L95+24
	ldr	r1, .L95+28
	bl	fprintf
	ldr	r3, .L95+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L80
	ldr	r3, .L95+16
	ldr	r3, [r3]
	ldr	r2, .L95+4
	ldr	r2, [r2]
	ldr	r1, .L95+32
	mov	r0, r3
	bl	fprintf
	b	.L81
.L80:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L81
	ldr	r3, .L95+16
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L95+32
	mov	r0, r4
	bl	fprintf
.L81:
	ldr	r3, .L95+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L79:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L82
.L89:
	ldr	r3, .L95+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	sub	r0, fp, #25
	ldr	r3, [fp, #-20]
	mov	r2, #1
	mov	r1, #1
	bl	fread
	mov	r3, r0
	cmp	r3, #1
	beq	.L83
	ldr	r3, .L95+16
	ldr	r0, [r3]
	mov	r3, #188
	str	r3, [sp]
	ldr	r3, .L95+20
	ldr	r2, .L95+24
	ldr	r1, .L95+36
	bl	fprintf
	ldr	r3, .L95+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L84
	ldr	r3, .L95+16
	ldr	r3, [r3]
	ldr	r2, .L95+4
	ldr	r2, [r2]
	ldr	r1, .L95+32
	mov	r0, r3
	bl	fprintf
	b	.L85
.L84:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L85
	ldr	r3, .L95+16
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L95+32
	mov	r0, r4
	bl	fprintf
.L85:
	ldr	r3, .L95+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L83:
	ldr	r3, .L95+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r0, r2, r3
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	mov	r2, #1
	add	r1, r3, r2
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	ldr	r2, .L95+40
	bl	snprintf
	mov	r3, r0
	cmp	r3, #0
	bge	.L86
	ldr	r3, .L95+16
	ldr	r0, [r3]
	mov	r3, #189
	str	r3, [sp]
	ldr	r3, .L95+20
	ldr	r2, .L95+24
	ldr	r1, .L95+36
	bl	fprintf
	ldr	r3, .L95+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L87
	ldr	r3, .L95+16
	ldr	r3, [r3]
	ldr	r2, .L95+4
	ldr	r2, [r2]
	ldr	r1, .L95+32
	mov	r0, r3
	bl	fprintf
	b	.L88
.L87:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L88
	ldr	r3, .L95+16
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L95+32
	mov	r0, r4
	bl	fprintf
.L88:
	ldr	r3, .L95+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L86:
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
.L82:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bcc	.L89
	ldr	r3, .L95+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-20]
	bl	fclose
	mov	r3, r0
	cmp	r3, #0
	beq	.L94
	ldr	r3, .L95+16
	ldr	r0, [r3]
	mov	r3, #191
	str	r3, [sp]
	ldr	r3, .L95+20
	ldr	r2, .L95+24
	ldr	r1, .L95+36
	bl	fprintf
	ldr	r3, .L95+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L91
	ldr	r3, .L95+16
	ldr	r3, [r3]
	ldr	r2, .L95+4
	ldr	r2, [r2]
	ldr	r1, .L95+32
	mov	r0, r3
	bl	fprintf
	b	.L92
.L91:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L92
	ldr	r3, .L95+16
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L95+32
	mov	r0, r4
	bl	fprintf
.L92:
	ldr	r3, .L95+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L94:
	nop
	ldr	r3, .L95
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L93
	bl	__stack_chk_fail
.L93:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L96:
	.align	2
.L95:
	.word	.LC12
	.word	override_strerror
	.word	.LC8
	.word	.LC9
	.word	stderr
	.word	.LC0
	.word	.LC1
	.word	.LC10
	.word	.LC3
	.word	.LC2
	.word	.LC11
	.size	random_hex_str, .-random_hex_str
	.section	.rodata
	.align	2
.LC13:
	.ascii	"\015\012\000"
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_header_entry, %function
find_header_entry:
	@ args = 4, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-64]
	ldr	r3, .L134
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-40]
	sub	r3, fp, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2]
	str	r3, [r2, #4]
	str	r3, [r2, #8]
	str	r3, [r2, #12]
	str	r3, [r2, #16]
.L109:
	mov	r2, #2
	ldr	r1, [fp, #-40]
	ldr	r0, .L134+4
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L98
	mvn	r3, #0
	b	.L130
.L98:
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-52]
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-40]
	bl	strncasecmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L100
	ldr	r0, [fp, #-52]
	bl	strlen
	str	r0, [fp, #-44]
	b	.L101
.L100:
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L101
	ldr	r0, [fp, #-56]
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-40]
	bl	strncasecmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L101
	ldr	r0, [fp, #-56]
	bl	strlen
	str	r0, [fp, #-44]
.L101:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L102
	b	.L103
.L106:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	bne	.L104
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	b	.L105
.L104:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L103:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r1, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L106
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L106
.L105:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L133
.L102:
	ldr	r1, .L134+4
	ldr	r0, [fp, #-40]
	bl	strstr
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L108
	mvn	r3, #0
	b	.L130
.L108:
	ldr	r3, [fp, #-40]
	add	r3, r3, #2
	str	r3, [fp, #-40]
	b	.L109
.L133:
	nop
	b	.L110
.L113:
	ldr	r1, .L134+4
	ldr	r0, [fp, #-40]
	bl	strstr
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L111
	ldr	r0, [fp, #-40]
	bl	strlen
	mov	r2, r0
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-24]
	b	.L112
.L111:
	ldr	r3, [fp, #-40]
	add	r3, r3, #2
	str	r3, [fp, #-40]
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L110
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	b	.L112
.L110:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L113
.L112:
	b	.L114
.L128:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-20]
	b	.L115
.L117:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L115:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcs	.L116
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L117
.L116:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bne	.L118
	mvn	r3, #0
	b	.L130
.L118:
	mov	r3, #0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
.L127:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcs	.L119
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L120
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L119
.L120:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #34
	bne	.L121
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L122
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L123
.L122:
	mov	r3, #1
	b	.L124
.L123:
	mov	r3, #0
.L124:
	str	r3, [fp, #-36]
.L121:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L125
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L125
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #92
	bne	.L125
	mov	r3, #1
	b	.L126
.L125:
	mov	r3, #0
.L126:
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	cmp	r3, #0
	bne	.L127
.L119:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L114:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	bhi	.L128
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	beq	.L129
	ldr	r3, [fp, #-64]
	mov	lr, r3
	sub	ip, fp, #28
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
.L129:
	mov	r3, #0
.L130:
	ldr	r2, .L134
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L131
	bl	__stack_chk_fail
.L131:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L135:
	.align	2
.L134:
	.word	.LC14
	.word	.LC13
	.size	find_header_entry, .-find_header_entry
	.section	.rodata
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_attribute, %function
find_attribute:
	@ args = 28, pretend = 16, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	sub	sp, sp, #16
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	add	ip, fp, #4
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #24]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #28]
	str	r3, [fp, #-52]
	ldr	r3, .L157
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L157+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #12]
	cmp	r3, #0
	beq	.L137
	ldr	r3, [fp, #16]
	cmp	r3, #0
	bne	.L138
.L137:
	ldr	r3, .L157+8
	ldr	r0, [r3]
	ldr	r3, .L157+12
	str	r3, [sp]
	ldr	r3, .L157+16
	ldr	r2, .L157+20
	ldr	r1, .L157+24
	bl	fprintf
	ldr	r3, .L157+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L139
	ldr	r3, .L157+8
	ldr	r3, [r3]
	ldr	r2, .L157+4
	ldr	r2, [r2]
	ldr	r1, .L157+28
	mov	r0, r3
	bl	fprintf
	b	.L140
.L139:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L140
	ldr	r3, .L157+8
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L157+28
	mov	r0, r4
	bl	fprintf
.L140:
	ldr	r3, .L157+8
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L138:
	ldr	r3, [fp, #12]
	str	r3, [fp, #-36]
	sub	r3, fp, #32
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2]
	str	r3, [r2, #4]
	str	r3, [r2, #8]
	str	r3, [r2, #12]
	b	.L141
.L150:
	mov	r1, #59
	ldr	r0, [fp, #-36]
	bl	strchr
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L142
	ldr	r3, [fp, #16]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bcc	.L143
.L142:
	mvn	r3, #0
	b	.L155
.L143:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-48]
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-36]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L145
	b	.L141
.L145:
	ldr	r0, [fp, #-48]
	bl	strlen
	str	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r2, r2, r3
	ldr	r3, [fp, #16]
	cmp	r2, r3
	bcs	.L146
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r1, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L146
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #59
	beq	.L146
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #61
	beq	.L146
	b	.L141
.L146:
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #16]
	cmp	r2, r3
	bcs	.L141
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #61
	bne	.L141
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	b	.L147
.L149:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L147:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r2, r2, r3
	ldr	r3, [fp, #16]
	cmp	r2, r3
	bcs	.L148
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r1, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L148
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #59
	bne	.L149
.L148:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-28]
.L141:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L150
	ldr	r3, .L157+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #16]
	cmp	r2, r3
	bls	.L151
	ldr	r3, .L157+8
	ldr	r0, [r3]
	ldr	r3, .L157+32
	str	r3, [sp]
	ldr	r3, .L157+16
	ldr	r2, .L157+20
	ldr	r1, .L157+24
	bl	fprintf
	ldr	r3, .L157+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L152
	ldr	r3, .L157+8
	ldr	r3, [r3]
	ldr	r2, .L157+4
	ldr	r2, [r2]
	ldr	r1, .L157+28
	mov	r0, r3
	bl	fprintf
	b	.L153
.L152:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L153
	ldr	r3, .L157+8
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L157+28
	mov	r0, r4
	bl	fprintf
.L153:
	ldr	r3, .L157+8
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L151:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	beq	.L154
	ldr	r3, [fp, #-52]
	mov	ip, r3
	sub	r3, fp, #32
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
.L154:
	mov	r3, #0
.L155:
	ldr	r2, .L157
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L156
	bl	__stack_chk_fail
.L156:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, lr}
	add	sp, sp, #16
	bx	lr
.L158:
	.align	2
.L157:
	.word	.LC15
	.word	override_strerror
	.word	stderr
	.word	282
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	309
	.size	find_attribute, .-find_attribute
	.section	.rodata
	.align	2
.LC16:
	.ascii	"ERROR\000"
	.align	2
.LC17:
	.ascii	"%s:%s:%d: packet too big\000"
	.align	2
.LC18:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	copy_header, %function
copy_header:
	@ args = 8, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-60]
	ldr	r3, .L168
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
.L165:
	sub	r3, fp, #36
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-60]
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-52]
	bl	find_header_entry
	mov	r3, r0
	cmp	r3, #0
	bge	.L160
	mov	r3, #0
	b	.L166
.L160:
	ldr	r3, .L168+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	add	r0, r2, r3
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-32]
	ldr	r2, [fp, #-36]
	sub	r2, r1, r2
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r0
	ldr	r2, [fp, #-48]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	str_insert
	mov	r3, r0
	cmp	r3, #0
	bge	.L162
	ldr	r3, .L168+8
	ldr	r0, [r3]
	mov	r3, #324
	str	r3, [sp]
	ldr	r3, .L168+12
	ldr	r2, .L168+16
	ldr	r1, .L168+20
	bl	fprintf
	ldr	r3, .L168+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L163
	ldr	r3, .L168+8
	ldr	r3, [r3]
	ldr	r2, .L168+4
	ldr	r2, [r2]
	ldr	r1, .L168+24
	mov	r0, r3
	bl	fprintf
	b	.L164
.L163:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L164
	ldr	r3, .L168+8
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L168+24
	mov	r0, r4
	bl	fprintf
.L164:
	ldr	r3, .L168+8
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L166
.L162:
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-52]
	b	.L165
.L166:
	ldr	r2, .L168
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L167
	bl	__stack_chk_fail
.L167:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L169:
	.align	2
.L168:
	.word	.LC18
	.word	override_strerror
	.word	stderr
	.word	.LC0
	.word	.LC16
	.word	.LC17
	.word	.LC3
	.size	copy_header, .-copy_header
	.section	.rodata
	.align	2
.LC19:
	.ascii	"%s:%s:%d: invalid packet\000"
	.align	2
.LC20:
	.ascii	"rport\000"
	.align	2
.LC21:
	.ascii	"%s:%s:%d: no route to host found: %s\000"
	.align	2
.LC22:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_via_header, %function
parse_via_header:
	@ args = 28, pretend = 16, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	sub	sp, sp, #16
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #80
	add	ip, fp, #4
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #24]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #28]
	str	r3, [fp, #-76]
	ldr	r3, .L192
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #12]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-52]
	b	.L171
.L173:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L171:
	ldr	r3, [fp, #16]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bcs	.L172
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L172
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #59
	bne	.L173
.L172:
	ldr	r3, .L192+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L192+8
	sub	r1, fp, #60
	sub	r2, fp, #64
	str	r3, [sp, #4]
	sub	r3, fp, #66
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	parse_address
	mov	r3, r0
	cmp	r3, #0
	bge	.L174
	ldr	r3, .L192+12
	ldr	r0, [r3]
	ldr	r3, .L192+16
	str	r3, [sp]
	ldr	r3, .L192+20
	ldr	r2, .L192+24
	ldr	r1, .L192+28
	bl	fprintf
	ldr	r3, .L192+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L175
	ldr	r3, .L192+12
	ldr	r3, [r3]
	ldr	r2, .L192+4
	ldr	r2, [r2]
	ldr	r1, .L192+32
	mov	r0, r3
	bl	fprintf
	b	.L176
.L175:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L176
	ldr	r3, .L192+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L192+32
	mov	r0, r4
	bl	fprintf
.L176:
	ldr	r3, .L192+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L190
.L174:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-64]
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r2, #1
	ldr	r3, [fp, #-44]
	add	r4, r2, r3
	mov	r3, sp
	mov	r5, r3
	mov	r3, r4
	sub	r3, r3, #1
	str	r3, [fp, #-40]
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	add	r3, r4, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #16
	add	r3, r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L192+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-44]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-36]
	mov	r2, r4
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	str_insert
	mov	r3, r0
	cmp	r3, #0
	bge	.L178
	ldr	r3, .L192+12
	ldr	r0, [r3]
	ldr	r3, .L192+36
	str	r3, [sp]
	ldr	r3, .L192+20
	ldr	r2, .L192+40
	ldr	r1, .L192+44
	bl	fprintf
	ldr	r3, .L192+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L179
	ldr	r3, .L192+12
	ldr	r3, [r3]
	ldr	r2, .L192+4
	ldr	r2, [r2]
	ldr	r1, .L192+32
	mov	r0, r3
	bl	fprintf
	b	.L180
.L179:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L180
	ldr	r3, .L192+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L192+32
	mov	r0, r4
	bl	fprintf
.L180:
	ldr	r3, .L192+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L178:
	sub	r3, fp, #32
	str	r3, [sp, #8]
	ldr	r3, .L192+48
	str	r3, [sp, #4]
	ldr	r3, [fp, #20]
	str	r3, [sp]
	add	r3, fp, #4
	ldm	r3, {r0, r1, r2, r3}
	bl	find_attribute
	mov	r3, r0
	cmp	r3, #0
	blt	.L181
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L181
	ldr	r3, .L192+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r1, fp, #56
	mov	r2, #10
	mov	r0, r3
	bl	strtoul
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-66]	@ movhi
	ldrh	r3, [fp, #-66]
	cmp	r3, #0
	beq	.L182
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	beq	.L181
.L182:
	ldr	r3, .L192+12
	ldr	r0, [r3]
	mov	r3, #348
	str	r3, [sp]
	ldr	r3, .L192+20
	ldr	r2, .L192+24
	ldr	r1, .L192+28
	bl	fprintf
	ldr	r3, .L192+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L184
	ldr	r3, .L192+12
	ldr	r3, [r3]
	ldr	r2, .L192+4
	ldr	r2, [r2]
	ldr	r1, .L192+32
	mov	r0, r3
	bl	fprintf
	b	.L185
.L184:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L185
	ldr	r3, .L192+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L192+32
	mov	r0, r4
	bl	fprintf
.L185:
	ldr	r3, .L192+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L186
.L181:
	ldr	r3, .L192+4
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldrh	r3, [fp, #-66]
	ldr	r2, [fp, #-76]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-36]
	bl	get_routable_addr
	mov	r3, r0
	cmp	r3, #0
	bge	.L187
	ldr	r3, .L192+12
	ldr	r0, [r3]
	ldr	r3, [fp, #-36]
	str	r3, [sp, #4]
	ldr	r3, .L192+52
	str	r3, [sp]
	ldr	r3, .L192+20
	ldr	r2, .L192+24
	ldr	r1, .L192+56
	bl	fprintf
	ldr	r3, .L192+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L188
	ldr	r3, .L192+12
	ldr	r3, [r3]
	ldr	r2, .L192+4
	ldr	r2, [r2]
	ldr	r1, .L192+32
	mov	r0, r3
	bl	fprintf
	b	.L189
.L188:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L189
	ldr	r3, .L192+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L192+32
	mov	r0, r4
	bl	fprintf
.L189:
	ldr	r3, .L192+12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L186
.L187:
	mov	r3, #0
.L186:
	mov	sp, r5
.L190:
	ldr	r2, .L192
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L191
	bl	__stack_chk_fail
.L191:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, lr}
	add	sp, sp, #16
	bx	lr
.L193:
	.align	2
.L192:
	.word	.LC22
	.word	override_strerror
	.word	5060
	.word	stderr
	.word	338
	.word	.LC0
	.word	.LC16
	.word	.LC19
	.word	.LC3
	.word	343
	.word	.LC1
	.word	.LC2
	.word	.LC20
	.word	351
	.word	.LC21
	.size	parse_via_header, .-parse_via_header
	.section	.rodata
	.align	2
.LC23:
	.ascii	"\015\012\015\012\000"
	.align	2
.LC24:
	.ascii	"v\000"
	.align	2
.LC25:
	.ascii	"Via\000"
	.align	2
.LC26:
	.ascii	"sips:\000"
	.align	2
.LC27:
	.ascii	"%s:%s:%d: sips not supported\000"
	.align	2
.LC28:
	.ascii	"sip:\000"
	.align	2
.LC29:
	.ascii	"SIP/\000"
	.align	2
.LC30:
	.ascii	"Max-Forwards\000"
	.align	2
.LC31:
	.ascii	"%s:%s:%d: too many hops\000"
	.align	2
.LC32:
	.ascii	"%lu\000"
	.align	2
.LC33:
	.ascii	"=%hu\000"
	.align	2
.LC34:
	.ascii	"\000"
	.align	2
.LC35:
	.ascii	"[\000"
	.align	2
.LC36:
	.ascii	"]\000"
	.align	2
.LC37:
	.ascii	"Via: SIP/2.0/UDP %s%s%s:%hu;branch=%s%s\015\012\000"
	.align	2
.LC38:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	handle_message, %function
handle_message:
	@ args = 32, pretend = 8, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	sub	sp, sp, #8
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #236
	str	r0, [fp, #-216]
	str	r1, [fp, #-220]
	add	r1, fp, #4
	stm	r1, {r2, r3}
	ldr	r3, [fp, #32]
	str	r3, [fp, #-224]
	ldr	r3, .L272
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r1, .L272+4
	ldr	r0, [fp, #-216]
	bl	strstr
	mov	r3, r0
	cmp	r3, #0
	bne	.L195
	ldr	r3, .L272+172
	ldr	r0, [r3]
	mov	r3, #360
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L196
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L197
.L196:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L197
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L197:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L270
.L195:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	sub	r3, fp, #80
	str	r3, [sp]
	mov	r3, #2
	ldr	r2, .L272+140
	ldr	r1, .L272+144
	ldr	r0, [fp, #-216]
	bl	find_header_entry
	mov	r3, r0
	cmp	r3, #0
	bge	.L199
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+8
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L200
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L201
.L200:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L201
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L201:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L270
.L199:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #32
	ldr	r0, [fp, #-216]
	bl	strchr
	str	r0, [fp, #-184]
	ldr	r3, [fp, #-184]
	cmp	r3, #0
	bne	.L202
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+12
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L203
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L204
.L203:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L204
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L204:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L270
.L202:
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #32
	ldr	r0, [fp, #-184]
	bl	strchr
	str	r0, [fp, #-180]
	ldr	r3, [fp, #-180]
	cmp	r3, #0
	bne	.L205
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+16
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L206
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L207
.L206:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L207
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L207:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L270
.L205:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #5
	ldr	r1, .L272+20
	ldr	r0, [fp, #-184]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L208
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+24
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+28
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L209
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L210
.L209:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L210
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L210:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L270
.L208:
	mov	r2, #4
	ldr	r1, .L272+32
	ldr	r0, [fp, #-184]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L211
	mov	r3, sp
	mov	r5, r3
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-172]
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #4
	ldr	r1, .L272+136
	ldr	r0, [fp, #-172]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L212
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+36
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L213
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L214
.L213:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L214
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L214:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L215
.L212:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	sub	r3, fp, #60
	str	r3, [sp]
	mov	r3, #1
	mov	r2, #0
	ldr	r1, .L272+40
	ldr	r0, [fp, #-216]
	bl	find_header_entry
	mov	r3, r0
	cmp	r3, #0
	bge	.L216
	ldr	r3, .L272+172
	ldr	r0, [r3]
	mov	r3, #372
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L217
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L218
.L217:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L218
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L218:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L215
.L216:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-52]
	sub	r1, fp, #208
	mov	r2, #10
	mov	r0, r3
	bl	strtoul
	str	r0, [fp, #-168]
	ldr	r3, [fp, #-168]
	cmp	r3, #1
	bhi	.L219
	ldr	r3, .L272+172
	ldr	r0, [r3]
	mov	r3, #376
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+44
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L220
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L221
.L220:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L221
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L221:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L215
.L219:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-208]
	cmp	r2, r3
	beq	.L222
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+48
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L223
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L224
.L223:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L224
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L224:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L215
.L222:
	ldr	r3, [fp, #-168]
	cmp	r3, #71
	movcc	r3, r3
	movcs	r3, #71
	sub	r3, r3, #1
	str	r3, [fp, #-168]
	mov	r3, #1
	add	r3, r3, #1
	str	r3, [fp, #-164]
	mov	r3, #1
	add	r3, r3, #2
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #1
	add	r3, r3, #2
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #1
	add	r3, r3, #2
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #24
	add	r3, r3, #0
	str	r3, [fp, #-160]
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #1
	add	r1, r3, #2
	ldr	r3, [fp, #-168]
	ldr	r2, .L272+52
	ldr	r0, [fp, #-160]
	bl	snprintf
	str	r0, [fp, #-156]
	ldr	r3, [fp, #-156]
	cmp	r3, #0
	blt	.L225
	mov	r3, #1
	add	r2, r3, #2
	ldr	r3, [fp, #-156]
	cmp	r2, r3
	bhi	.L226
.L225:
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+56
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+116
	ldr	r1, .L272+120
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L227
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L228
.L227:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L228
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L228:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L226:
	ldr	r0, [fp, #-52]
	ldr	r1, [fp, #-48]
	ldr	r3, [fp, #-220]
	ldr	r3, [r3]
	mov	r2, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-216]
	add	r2, r2, r3
	ldr	r3, [fp, #-48]
	sub	r3, r2, r3
	mov	r2, r3
	bl	memmove
	ldr	r3, [fp, #-220]
	ldr	r3, [r3]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-52]
	sub	r2, r1, r2
	sub	r2, r3, r2
	ldr	r3, [fp, #-220]
	str	r2, [r3]
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #65536
	ldr	r2, [fp, #-52]
	mvn	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-160]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r1
	ldr	r1, [fp, #-220]
	ldr	r0, [fp, #-216]
	bl	str_insert
	mov	r3, r0
	cmp	r3, #0
	beq	.L229
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+60
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+116
	ldr	r1, .L272+132
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L230
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L231
.L230:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L231
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L231:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L229:
	sub	r3, fp, #96
	str	r3, [sp, #8]
	ldr	r3, .L272+64
	str	r3, [sp, #4]
	ldr	r3, [fp, #-64]
	str	r3, [sp]
	sub	r3, fp, #80
	ldm	r3, {r0, r1, r2, r3}
	bl	find_attribute
	mov	r3, r0
	cmp	r3, #0
	bne	.L232
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bne	.L232
	mov	r3, sp
	mov	r6, r3
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldrh	r3, [fp, #6]
	mov	r0, r3
	bl	ntohs
	mov	r3, r0
	ldr	r2, .L272+68
	mov	r1, #0
	mov	r0, #0
	bl	snprintf
	str	r0, [fp, #-152]
	ldr	r3, [fp, #-152]
	cmp	r3, #0
	bge	.L233
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+72
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+116
	ldr	r1, .L272+120
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L234
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L235
.L234:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L235
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L235:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L233:
	ldr	r3, [fp, #-152]
	mov	r2, #1
	add	r4, r3, r2
	mov	r3, r4
	sub	r3, r3, #1
	str	r3, [fp, #-148]
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	add	r3, r4, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #24
	add	r3, r3, #0
	str	r3, [fp, #-144]
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldrh	r3, [fp, #6]
	mov	r0, r3
	bl	ntohs
	mov	r3, r0
	ldr	r2, .L272+68
	mov	r1, r4
	ldr	r0, [fp, #-144]
	bl	snprintf
	mov	r2, r0
	ldr	r3, [fp, #-152]
	cmp	r3, r2
	beq	.L236
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+72
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+116
	ldr	r1, .L272+120
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L237
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L238
.L237:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L238
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L238:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L236:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #65536
	ldr	r2, [fp, #-92]
	mvn	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-144]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r1
	ldr	r1, [fp, #-220]
	ldr	r0, [fp, #-216]
	bl	str_insert
	mov	r3, r0
	cmp	r3, #0
	bge	.L239
	ldr	r3, .L272+172
	ldr	r0, [r3]
	mov	r3, #392
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+132
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L240
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L241
.L240:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L241
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L241:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	mov	sp, r6
	b	.L215
.L239:
	mov	sp, r6
.L232:
	ldr	r3, [fp, #-180]
	str	r3, [fp, #-140]
	mov	r1, #64
	ldr	r0, [fp, #-184]
	bl	strchr
	str	r0, [fp, #-188]
	ldr	r3, [fp, #-188]
	cmp	r3, #0
	beq	.L242
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-140]
	cmp	r2, r3
	bcs	.L242
	ldr	r3, [fp, #-188]
	add	r3, r3, #1
	str	r3, [fp, #-188]
	b	.L243
.L273:
	.align	2
.L272:
	.word	.LC38
	.word	.LC23
	.word	361
	.word	363
	.word	365
	.word	.LC26
	.word	366
	.word	.LC27
	.word	.LC28
	.word	370
	.word	.LC30
	.word	.LC31
	.word	378
	.word	.LC32
	.word	381
	.word	386
	.word	.LC20
	.word	.LC33
	.word	391
	.word	409
	.word	411
	.word	.LC21
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	5060
	.word	SIP_BRANCH_MAGIC_COOKIE
	.word	.LC37
	.word	421
	.word	.LC1
	.word	.LC2
	.word	override_strerror
	.word	423
	.word	.LC17
	.word	.LC29
	.word	.LC24
	.word	.LC25
	.word	433
	.word	.LC0
	.word	.LC16
	.word	.LC19
	.word	override_strerror
	.word	.LC3
	.word	stderr
	.word	.LC38
.L242:
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	str	r3, [fp, #-188]
.L243:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L272+100
	sub	r1, fp, #200
	sub	r2, fp, #204
	str	r3, [sp, #4]
	sub	r3, fp, #210
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-188]
	bl	parse_address
	mov	r3, r0
	cmp	r3, #0
	bge	.L244
	ldr	r3, .L272+172
	ldr	r0, [r3]
	mov	r3, #404
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L245
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L246
.L245:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L246
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L246:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L215
.L244:
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-204]
	sub	r3, r2, r3
	str	r3, [fp, #-136]
	mov	r2, #1
	ldr	r3, [fp, #-136]
	add	r4, r2, r3
	mov	r3, r4
	sub	r3, r3, #1
	str	r3, [fp, #-132]
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	add	r3, r4, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #24
	add	r3, r3, #0
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-204]
	ldr	r2, [fp, #-136]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-128]
	mov	r2, r4
	mov	r1, #0
	ldr	r0, [fp, #-128]
	bl	str_insert
	mov	r3, r0
	cmp	r3, #0
	bge	.L247
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+76
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+116
	ldr	r1, .L272+120
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L248
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L249
.L248:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L249
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L249:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L247:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldrh	r3, [fp, #-210]
	sub	r2, fp, #40
	ldr	r1, [fp, #-224]
	ldr	r0, [fp, #-128]
	bl	get_routable_addr
	mov	r3, r0
	cmp	r3, #0
	bge	.L250
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, [fp, #-128]
	str	r3, [sp, #4]
	ldr	r3, .L272+80
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+84
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L251
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L252
.L251:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L252
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L252:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L215
.L250:
	mov	r2, #39
	mov	r3, #1
	add	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-124]
	mov	r2, #39
	mov	r3, #1
	add	r3, r2, r3
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r2, #39
	mov	r3, #1
	add	r3, r2, r3
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r2, #39
	mov	r3, #1
	add	r3, r2, r3
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #24
	add	r3, r3, #0
	str	r3, [fp, #-120]
	mov	r2, #36
	mov	r3, #1
	add	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-116]
	mov	r2, #36
	mov	r3, #1
	add	r3, r2, r3
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r2, #36
	mov	r3, #1
	add	r3, r2, r3
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r2, #36
	mov	r3, #1
	add	r3, r2, r3
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #24
	add	r3, r3, #0
	str	r3, [fp, #-112]
	mov	r2, #39
	mov	r3, #1
	add	r3, r2, r3
	str	r3, [sp, #4]
	ldr	r3, [fp, #-120]
	str	r3, [sp]
	sub	r3, fp, #40
	ldm	r3, {r0, r1, r2, r3}
	bl	ip_to_str
	mov	r3, #36
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	random_hex_str
	ldr	r3, .L272+88
	str	r3, [fp, #-192]
	ldr	r3, .L272+88
	str	r3, [fp, #-196]
	mov	r1, #58
	ldr	r0, [fp, #-120]
	bl	strchr
	mov	r3, r0
	cmp	r3, #0
	beq	.L253
	ldr	r3, .L272+92
	str	r3, [fp, #-192]
	ldr	r3, .L272+96
	str	r3, [fp, #-196]
.L253:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L272+100
	mov	r2, r3
	ldr	r3, [fp, #-112]
	str	r3, [sp, #16]
	ldr	r3, .L272+104
	str	r3, [sp, #12]
	str	r2, [sp, #8]
	ldr	r3, [fp, #-196]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-120]
	str	r3, [sp]
	ldr	r3, [fp, #-192]
	ldr	r2, .L272+108
	mov	r1, #0
	mov	r0, #0
	bl	snprintf
	str	r0, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bge	.L254
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+112
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+116
	ldr	r1, .L272+120
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L255
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L256
.L255:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L256
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L256:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L254:
	ldr	r3, [fp, #-108]
	mov	r2, #1
	add	r4, r3, r2
	mov	r3, r4
	sub	r3, r3, #1
	str	r3, [fp, #-104]
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r0, r4
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	add	r3, r4, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #24
	add	r3, r3, #0
	str	r3, [fp, #-100]
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L272+100
	mov	r2, r3
	ldr	r3, [fp, #-112]
	str	r3, [sp, #16]
	ldr	r3, .L272+104
	str	r3, [sp, #12]
	str	r2, [sp, #8]
	ldr	r3, [fp, #-196]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-120]
	str	r3, [sp]
	ldr	r3, [fp, #-192]
	ldr	r2, .L272+108
	mov	r1, r4
	ldr	r0, [fp, #-100]
	bl	snprintf
	mov	r2, r0
	ldr	r3, [fp, #-108]
	cmp	r3, r2
	beq	.L257
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+112
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+116
	ldr	r1, .L272+120
	bl	fprintf
	ldr	r3, .L272+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L258
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+124
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L259
.L258:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L259
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L259:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L257:
	ldr	r3, .L272+124
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #65536
	ldr	r2, [fp, #-80]
	mvn	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-100]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r1
	ldr	r1, [fp, #-220]
	ldr	r0, [fp, #-216]
	bl	str_insert
	mov	r3, r0
	cmp	r3, #0
	bge	.L260
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+128
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+132
	bl	fprintf
	ldr	r3, .L272+164
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L261
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+164
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L262
.L261:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L262
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L262:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L215
.L260:
	mov	sp, r5
	b	.L263
.L215:
	mov	sp, r5
	b	.L270
.L211:
	ldr	r3, [fp, #-216]
	str	r3, [fp, #-176]
	ldr	r3, .L272+164
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #4
	ldr	r1, .L272+136
	ldr	r0, [fp, #-176]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L264
	ldr	r3, .L272+172
	ldr	r0, [r3]
	mov	r3, #428
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+164
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L265
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+164
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L266
.L265:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L266
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L266:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L270
.L264:
	ldr	r0, [fp, #-80]
	ldr	r1, [fp, #-76]
	ldr	r3, [fp, #-220]
	ldr	r3, [r3]
	mov	r2, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-216]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	sub	r3, r2, r3
	mov	r2, r3
	bl	memmove
	ldr	r3, [fp, #-220]
	ldr	r3, [r3]
	ldr	r1, [fp, #-76]
	ldr	r2, [fp, #-80]
	sub	r2, r1, r2
	sub	r2, r3, r2
	ldr	r3, [fp, #-220]
	str	r2, [r3]
	ldr	r3, .L272+164
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	sub	r3, fp, #80
	str	r3, [sp]
	mov	r3, #2
	ldr	r2, .L272+140
	ldr	r1, .L272+144
	ldr	r0, [fp, #-216]
	bl	find_header_entry
	mov	r3, r0
	cmp	r3, #0
	bge	.L267
	ldr	r3, .L272+172
	ldr	r0, [r3]
	ldr	r3, .L272+148
	str	r3, [sp]
	ldr	r3, .L272+152
	ldr	r2, .L272+156
	ldr	r1, .L272+160
	bl	fprintf
	ldr	r3, .L272+164
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L268
	ldr	r3, .L272+172
	ldr	r3, [r3]
	ldr	r2, .L272+164
	ldr	r2, [r2]
	ldr	r1, .L272+168
	mov	r0, r3
	bl	fprintf
	b	.L269
.L268:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L269
	ldr	r3, .L272+172
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L272+168
	mov	r0, r4
	bl	fprintf
.L269:
	ldr	r3, .L272+172
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mvn	r3, #0
	b	.L270
.L267:
	mov	r3, #0
	str	r3, [sp, #8]
	ldr	r3, [fp, #-224]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-64]
	str	r3, [sp]
	sub	r3, fp, #80
	ldm	r3, {r0, r1, r2, r3}
	bl	parse_via_header
	mov	r3, r0
	cmp	r3, #0
	beq	.L263
	mvn	r3, #0
	b	.L270
.L263:
	mov	r3, #0
.L270:
	ldr	r2, .L272+176
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L271
	bl	__stack_chk_fail
.L271:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, lr}
	add	sp, sp, #8
	bx	lr
	.size	handle_message, .-handle_message
	.section	.rodata
	.align	2
.LC39:
	.ascii	"%s:%s:%d: can't bind to port %hu\000"
	.align	2
.LC40:
	.ascii	"%s:%s:%d: failed to send\000"
	.align	2
.LC41:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 248
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #276
	ldr	r3, .L302
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #65536
	sub	r3, r3, #1
	str	r3, [fp, #-244]
	mov	r3, #65536
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #65536
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #65536
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #24
	add	r3, r3, #0
	str	r3, [fp, #-240]
	sub	r3, fp, #228
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2]
	str	r3, [r2, #4]
	str	r3, [r2, #8]
	str	r3, [r2, #12]
	str	r3, [r2, #16]
	str	r3, [r2, #20]
	str	r3, [r2, #24]
	mov	r3, #10
	strh	r3, [fp, #-228]	@ movhi
	ldr	r3, .L302+4
	mov	r0, r3
	bl	htons
	mov	r3, r0
	strh	r3, [fp, #-226]	@ movhi
	ldr	r3, .L302+8
	sub	ip, fp, #220
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L302+12
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #17
	ldr	r1, .L302+16
	mov	r0, #10
	bl	socket
	str	r0, [fp, #-236]
	ldr	r3, [fp, #-236]
	cmp	r3, #0
	bge	.L275
	ldr	r3, .L302+20
	ldr	r0, [r3]
	ldr	r3, .L302+24
	str	r3, [sp]
	ldr	r3, .L302+28
	ldr	r2, .L302+32
	ldr	r1, .L302+36
	bl	fprintf
	ldr	r3, .L302+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L276
	ldr	r3, .L302+20
	ldr	r3, [r3]
	ldr	r2, .L302+12
	ldr	r2, [r2]
	ldr	r1, .L302+40
	mov	r0, r3
	bl	fprintf
	b	.L277
.L276:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L277
	ldr	r3, .L302+20
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L302+40
	mov	r0, r4
	bl	fprintf
.L277:
	ldr	r3, .L302+20
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L275:
	mov	r3, #0
	str	r3, [fp, #-260]
	ldr	r3, .L302+12
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	sub	r3, fp, #260
	mov	r2, #4
	str	r2, [sp]
	mov	r2, #26
	mov	r1, #41
	ldr	r0, [fp, #-236]
	bl	setsockopt
	mov	r3, r0
	cmp	r3, #0
	bge	.L278
	ldr	r3, .L302+20
	ldr	r0, [r3]
	ldr	r3, .L302+44
	str	r3, [sp]
	ldr	r3, .L302+28
	ldr	r2, .L302+32
	ldr	r1, .L302+36
	bl	fprintf
	ldr	r3, .L302+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L279
	ldr	r3, .L302+20
	ldr	r3, [r3]
	ldr	r2, .L302+12
	ldr	r2, [r2]
	ldr	r1, .L302+40
	mov	r0, r3
	bl	fprintf
	b	.L280
.L279:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L280
	ldr	r3, .L302+20
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L302+40
	mov	r0, r4
	bl	fprintf
.L280:
	ldr	r3, .L302+20
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L278:
	ldr	r3, .L302+12
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	sub	r3, fp, #228
	mov	r2, #28
	mov	r1, r3
	ldr	r0, [fp, #-236]
	bl	bind
	mov	r3, r0
	cmp	r3, #0
	bge	.L281
	ldr	r3, .L302+20
	ldr	r0, [r3]
	ldr	r3, .L302+4
	str	r3, [sp, #4]
	mov	r3, #452
	str	r3, [sp]
	ldr	r3, .L302+28
	ldr	r2, .L302+32
	ldr	r1, .L302+48
	bl	fprintf
	ldr	r3, .L302+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L282
	ldr	r3, .L302+20
	ldr	r3, [r3]
	ldr	r2, .L302+12
	ldr	r2, [r2]
	ldr	r1, .L302+40
	mov	r0, r3
	bl	fprintf
	b	.L283
.L282:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L283
	ldr	r3, .L302+20
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L302+40
	mov	r0, r4
	bl	fprintf
.L283:
	ldr	r3, .L302+20
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L281:
	sub	r3, fp, #144
	str	r3, [fp, #-232]
	mov	r3, #0
	str	r3, [fp, #-248]
	b	.L284
.L285:
	ldr	r3, [fp, #-232]
	ldr	r2, [fp, #-248]
	mov	r1, #0
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-248]
	add	r3, r3, #1
	str	r3, [fp, #-248]
.L284:
	ldr	r3, [fp, #-248]
	cmp	r3, #31
	bls	.L285
	ldr	r3, [fp, #-236]
	add	r2, r3, #31
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #5
	mov	r2, r3
	lsl	r3, r2, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r1, [r3, #-132]
	ldr	r3, [fp, #-236]
	rsbs	r0, r3, #0
	and	r3, r3, #31
	and	r0, r0, #31
	rsbpl	r3, r0, #0
	mov	r0, #1
	lsl	r3, r0, r3
	orr	r1, r1, r3
	lsl	r3, r2, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	str	r1, [r3, #-132]
.L300:
	ldr	r3, .L302+12
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-236]
	add	r0, r3, #1
	sub	r1, fp, #144
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	bl	select
	mov	r3, r0
	cmp	r3, #0
	bge	.L286
	ldr	r3, .L302+20
	ldr	r0, [r3]
	ldr	r3, .L302+52
	str	r3, [sp]
	ldr	r3, .L302+28
	ldr	r2, .L302+32
	ldr	r1, .L302+36
	bl	fprintf
	ldr	r3, .L302+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L287
	ldr	r3, .L302+20
	ldr	r3, [r3]
	ldr	r2, .L302+12
	ldr	r2, [r2]
	ldr	r1, .L302+40
	mov	r0, r3
	bl	fprintf
	b	.L288
.L287:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L288
	ldr	r3, .L302+20
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L302+40
	mov	r0, r4
	bl	fprintf
.L288:
	ldr	r3, .L302+20
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L286:
	mov	r3, #28
	str	r3, [fp, #-252]
	ldr	r3, .L302+12
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #65536
	sub	r3, fp, #252
	str	r3, [sp, #4]
	sub	r3, fp, #200
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, [fp, #-240]
	ldr	r0, [fp, #-236]
	bl	recvfrom
	mov	r3, r0
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	cmp	r3, #0
	bge	.L289
	ldr	r3, .L302+20
	ldr	r0, [r3]
	ldr	r3, .L302+56
	str	r3, [sp]
	ldr	r3, .L302+28
	ldr	r2, .L302+32
	ldr	r1, .L302+36
	bl	fprintf
	ldr	r3, .L302+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L290
	ldr	r3, .L302+20
	ldr	r3, [r3]
	ldr	r2, .L302+12
	ldr	r2, [r2]
	ldr	r1, .L302+40
	mov	r0, r3
	bl	fprintf
	b	.L291
.L290:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L291
	ldr	r3, .L302+20
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L302+40
	mov	r0, r4
	bl	fprintf
.L291:
	ldr	r3, .L302+20
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r0, #1
	bl	exit
.L289:
	ldr	r3, .L302+12
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #65536
	mov	r3, #1
	sub	r3, r2, r3
	ldr	r2, [fp, #-256]
	cmp	r3, r2
	bcs	.L292
	ldr	r3, .L302+20
	ldr	r0, [r3]
	mov	r3, #464
	str	r3, [sp]
	ldr	r3, .L302+28
	ldr	r2, .L302+60
	ldr	r1, .L302+64
	bl	fprintf
	ldr	r3, .L302+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L293
	ldr	r3, .L302+20
	ldr	r3, [r3]
	ldr	r2, .L302+12
	ldr	r2, [r2]
	ldr	r1, .L302+40
	mov	r0, r3
	bl	fprintf
	b	.L294
.L293:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L294
	ldr	r3, .L302+20
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L302+40
	mov	r0, r4
	bl	fprintf
.L294:
	ldr	r3, .L302+20
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	b	.L299
.L292:
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-240]
	mov	r1, #0
	strb	r1, [r2, r3]
	sub	r4, fp, #256
	sub	r3, fp, #172
	str	r3, [sp, #20]
	mov	lr, sp
	sub	ip, fp, #192
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
	sub	r3, fp, #200
	ldm	r3, {r2, r3}
	mov	r1, r4
	ldr	r0, [fp, #-240]
	bl	handle_message
	mov	r3, r0
	cmp	r3, #0
	bne	.L300
	ldr	r3, .L302+12
	mov	r2, #0
	str	r2, [r3]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-256]
	mov	r2, r3
	mov	r3, #28
	str	r3, [sp, #4]
	sub	r3, fp, #172
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, [fp, #-240]
	ldr	r0, [fp, #-236]
	bl	sendto
	mov	r3, r0
	cmp	r3, #0
	bge	.L300
	ldr	r3, .L302+20
	ldr	r0, [r3]
	mov	r3, #468
	str	r3, [sp]
	ldr	r3, .L302+28
	ldr	r2, .L302+60
	ldr	r1, .L302+68
	bl	fprintf
	ldr	r3, .L302+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L297
	ldr	r3, .L302+20
	ldr	r3, [r3]
	ldr	r2, .L302+12
	ldr	r2, [r2]
	ldr	r1, .L302+40
	mov	r0, r3
	bl	fprintf
	b	.L298
.L297:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L298
	ldr	r3, .L302+20
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r3
	ldr	r1, .L302+40
	mov	r0, r4
	bl	fprintf
.L298:
	ldr	r3, .L302+20
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	nop
.L299:
	b	.L300
.L303:
	.align	2
.L302:
	.word	.LC41
	.word	5060
	.word	in6addr_any
	.word	override_strerror
	.word	524290
	.word	stderr
	.word	449
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	451
	.word	.LC39
	.word	459
	.word	462
	.word	.LC16
	.word	.LC17
	.word	.LC40
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
