	.file	"575369.c"
	.intel_syntax noprefix
	.text
	.globl	srv_is_val_set
	.type	srv_is_val_set, @function
srv_is_val_set:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	QWORD PTR -32[rbp], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L2
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	sete	al
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L3
.L2:
	mov	eax, 0
.L3:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	srv_is_val_set, .-srv_is_val_set
	.globl	srv_set_val
	.type	srv_set_val, @function
srv_set_val:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -28[rbp], eax
	jne	.L5
	mov	eax, 1
	jmp	.L6
.L5:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L7
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	eax, 1
	jmp	.L6
.L7:
	mov	eax, 0
.L6:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	srv_set_val, .-srv_set_val
	.globl	srv_inc_val
	.type	srv_inc_val, @function
srv_inc_val:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L9
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	eax, 1
	jmp	.L10
.L9:
	mov	eax, 0
.L10:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	srv_inc_val, .-srv_inc_val
	.globl	srv_sleep_random
	.type	srv_sleep_random, @function
srv_sleep_random:
.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, 64
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	gettimeofday@PLT
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	srand48_r@PLT
	lea	rdx, -56[rbp]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lrand48_r@PLT
	mov	rax, QWORD PTR -56[rbp]
	sar	rax, 8
	and	eax, 1000000
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	call	usleep@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L12
	call	__stack_chk_fail@PLT
.L12:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	srv_sleep_random, .-srv_sleep_random
	.globl	update_stats
	.type	update_stats, @function
update_stats:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 16
	mov	rdi, rax
	call	pthread_mutex_lock@PLT
	test	eax, eax
	jne	.L14
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 16
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	DWORD PTR -4[rbp], 0
.L14:
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	update_stats, .-update_stats
	.globl	setup_event
	.type	setup_event, @function
setup_event:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 176[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 8[rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rsi, QWORD PTR -8[rbp]
	lea	rdi, 32[rsi]
	mov	esi, eax
	call	event_set@PLT
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	event_base_set@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 32
	mov	rsi, rax
	mov	rdi, rdx
	call	event_add@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	setup_event, .-setup_event
	.globl	add_to_group
	.type	add_to_group, @function
add_to_group:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 168[rax]
	test	rax, rax
	je	.L19
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	edx, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	eax, DWORD PTR 8[rax]
	cmp	edx, eax
	jge	.L19
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 168[rdx]
	mov	edx, DWORD PTR 12[rdx]
	movsx	rdx, edx
	lea	rcx, 8[rdx]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax+rcx*8], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 168[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	eax, DWORD PTR 12[rax]
	cdqe
	add	rax, 8
	sal	rax, 3
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 160[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	edx, DWORD PTR 12[rax]
	add	edx, 1
	mov	DWORD PTR 12[rax], edx
	mov	eax, 0
	jmp	.L20
.L19:
	mov	eax, -1
.L20:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	add_to_group, .-add_to_group
	.globl	destroy_event
	.type	destroy_event, @function
destroy_event:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	rdi, rax
	call	event_del@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	test	rax, rax
	je	.L22
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 8[rax]
	cmp	QWORD PTR -24[rbp], rax
	jne	.L22
	jmp	.L23
.L24:
	call	srv_sleep_random
.L23:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	test	eax, eax
	jne	.L24
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	DWORD PTR [rax], 0
	jmp	.L25
.L28:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 192[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L26
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 16[rax], rdx
	jmp	.L27
.L26:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 200[rax], rdx
.L27:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L25:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 192[rax]
	test	rax, rax
	jne	.L28
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_destroy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdi, rax
	call	free@PLT
.L22:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	edx, DWORD PTR 12[rax]
	sub	edx, 1
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L29
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	free@PLT
.L29:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	destroy_event, .-destroy_event
	.globl	setup_event_group
	.type	setup_event_group, @function
setup_event_group:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	rax, 9
	sal	rax, 3
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	edi, 1
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L32
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR 12[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -44[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 32
	mov	esi, 0
	mov	rdi, rax
	call	pthread_mutex_init@PLT
	test	eax, eax
	je	.L33
	mov	eax, -1
	jmp	.L34
.L33:
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR [rax]
	call	event_base_new@PLT
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L35
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_destroy@PLT
	mov	eax, -1
	jmp	.L34
.L32:
	mov	eax, -1
	jmp	.L34
.L35:
	mov	eax, 0
.L34:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	setup_event_group, .-setup_event_group
	.globl	destroy_event_group
	.type	destroy_event_group, @function
destroy_event_group:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_destroy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -8[rbp], 0
	jmp	.L37
.L39:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	add	rdx, 8
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	je	.L38
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	add	rdx, 8
	mov	rax, QWORD PTR 8[rax+rdx*8]
	mov	rdi, rax
	call	destroy_event
.L38:
	add	DWORD PTR -8[rbp], 1
.L37:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L39
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	event_base_free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	destroy_event_group, .-destroy_event_group
	.globl	config_event
	.type	config_event, @function
config_event:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	add_to_group
	test	eax, eax
	jns	.L42
	mov	eax, -1
	jmp	.L43
.L42:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	setup_event
	test	eax, eax
	jns	.L44
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	QWORD PTR [rax], 0
	mov	eax, -1
	jmp	.L43
.L44:
	mov	eax, 0
.L43:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	config_event, .-config_event
	.globl	r_data_tcp
	.type	r_data_tcp, @function
r_data_tcp:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 8
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	recv@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	je	.L46
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 168[rax]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	update_stats
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	test	rax, rax
	je	.L47
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	lea	rdx, 152[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	eax, DWORD PTR [rax]
	mov	esi, 1
	mov	edi, eax
	call	srv_is_val_set
	test	eax, eax
	je	.L47
	mov	edi, 24
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	jmp	.L48
.L49:
	call	srv_sleep_random
.L48:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	test	eax, eax
	jne	.L49
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR 200[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 200[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	jmp	.L47
.L46:
	mov	eax, DWORD PTR -36[rbp]
	mov	edi, eax
	call	close@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	destroy_event
.L47:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	r_data_tcp, .-r_data_tcp
	.globl	w_data_tcp
	.type	w_data_tcp, @function
w_data_tcp:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	lea	rdx, 152[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	eax, DWORD PTR [rax]
	mov	esi, 1
	mov	edi, eax
	call	srv_is_val_set
	test	eax, eax
	je	.L57
	jmp	.L52
.L53:
	call	srv_sleep_random
.L52:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	test	eax, eax
	jne	.L53
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 192[rax]
	test	rax, rax
	je	.L54
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 192[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L55
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 16[rax], rdx
	jmp	.L56
.L55:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 200[rax], rdx
.L56:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L54:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	cmp	QWORD PTR -40[rbp], 0
	je	.L57
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L57
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	send@PLT
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
.L57:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	w_data_tcp, .-w_data_tcp
	.globl	rw_data_tcp
	.type	rw_data_tcp, @function
rw_data_tcp:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, esi
	mov	QWORD PTR -16[rbp], rdx
	mov	WORD PTR -8[rbp], ax
	cmp	WORD PTR -8[rbp], 2
	jne	.L59
	mov	rdx, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	r_data_tcp
.L59:
	cmp	WORD PTR -8[rbp], 4
	jne	.L61
	mov	rdx, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	w_data_tcp
.L61:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	rw_data_tcp, .-rw_data_tcp
	.globl	output_stats
	.type	output_stats, @function
output_stats:
.LFB20:
	.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	DWORD PTR -36[rbp], edi
	mov	eax, esi
	mov	QWORD PTR -48[rbp], rdx
	mov	WORD PTR -40[rbp], ax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 168[rax]
	add	rax, 16
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 16
	mov	rdi, rax
	call	pthread_mutex_lock@PLT
	test	eax, eax
	jne	.L63
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], 0
	cmp	QWORD PTR -8[rbp], 0
	jne	.L64
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L65
.L64:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
.L65:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 16
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
.L63:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -32[rbp]
	add	rdx, 32
	mov	rsi, rax
	mov	rdi, rdx
	call	event_add@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	output_stats, .-output_stats
	.globl	w_data_udp
	.type	w_data_udp, @function
w_data_udp:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	eax, esi
	mov	QWORD PTR -64[rbp], rdx
	mov	WORD PTR -56[rbp], ax
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	lea	rdx, 152[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	eax, DWORD PTR [rax]
	mov	esi, 1
	mov	edi, eax
	call	srv_is_val_set
	test	eax, eax
	je	.L73
	jmp	.L68
.L69:
	call	srv_sleep_random
.L68:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	test	eax, eax
	jne	.L69
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 192[rax]
	test	rax, rax
	je	.L70
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 192[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L71
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 16[rax], rdx
	jmp	.L72
.L71:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 200[rax], rdx
.L72:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L70:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	cmp	QWORD PTR -40[rbp], 0
	je	.L73
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L73
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 312[rax]
	mov	edi, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	lea	rcx, 24[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	r9d, edi
	mov	r8, rcx
	mov	ecx, 0
	mov	edi, eax
	call	sendto@PLT
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
.L73:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	w_data_udp, .-w_data_udp
	.globl	r_data_udp
	.type	r_data_udp, @function
r_data_udp:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	eax, esi
	mov	QWORD PTR -48[rbp], rdx
	mov	WORD PTR -40[rbp], ax
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 8
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -16[rbp]
	lea	rdi, 312[rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 184[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	ecx, 0
	mov	edi, eax
	call	recvfrom@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	je	.L75
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 168[rax]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	update_stats
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	test	rax, rax
	je	.L75
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	lea	rdx, 152[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	eax, DWORD PTR [rax]
	mov	esi, 1
	mov	edi, eax
	call	srv_is_val_set
	test	eax, eax
	je	.L75
	mov	edi, 24
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	jmp	.L76
.L77:
	call	srv_sleep_random
.L76:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_trylock@PLT
	test	eax, eax
	jne	.L77
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 312[rax]
	mov	rdx, QWORD PTR -16[rbp]
	lea	rsi, 184[rdx]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 320[rdx]
	lea	rcx, 24[rdx]
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR 200[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rax, QWORD PTR 200[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
.L75:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	r_data_udp, .-r_data_udp
	.globl	cons_read
	.type	cons_read, @function
cons_read:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 304
	mov	DWORD PTR -292[rbp], edi
	mov	eax, esi
	mov	QWORD PTR -304[rbp], rdx
	mov	WORD PTR -296[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -284[rbp], 0
	mov	rax, QWORD PTR -304[rbp]
	mov	QWORD PTR -280[rbp], rax
	lea	rcx, -272[rbp]
	mov	eax, DWORD PTR -292[rbp]
	mov	edx, 256
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	DWORD PTR -284[rbp], eax
	cmp	DWORD PTR -284[rbp], 0
	jle	.L81
	cmp	DWORD PTR -284[rbp], 1
	jne	.L81
	movzx	eax, BYTE PTR -272[rbp]
	cmp	al, 10
	jne	.L81
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	call	event_base_loopbreak@PLT
.L81:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L80
	call	__stack_chk_fail@PLT
.L80:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	cons_read, .-cons_read
	.globl	handle_signal
	.type	handle_signal, @function
handle_signal:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	eax, esi
	mov	QWORD PTR -32[rbp], rdx
	mov	WORD PTR -24[rbp], ax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	event_base_loopbreak@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	handle_signal, .-handle_signal
	.globl	accept_conn
	.type	accept_conn, @function
accept_conn:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	DWORD PTR -180[rbp], edi
	mov	eax, esi
	mov	QWORD PTR -192[rbp], rdx
	mov	WORD PTR -184[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -168[rbp], 0
	mov	QWORD PTR -160[rbp], 0
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	DWORD PTR -176[rbp], 16
	lea	rax, -144[rbp]
	mov	edx, 128
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	lea	rdx, -176[rbp]
	lea	rcx, -144[rbp]
	mov	eax, DWORD PTR -180[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	accept@PLT
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 0
	jle	.L91
	mov	edi, 328
	call	malloc@PLT
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	edx, DWORD PTR -172[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	WORD PTR 8[rax], 18
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, rw_data_tcp[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR 36[rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR 320[rax], 0
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -168[rbp]
	lea	rcx, 184[rax]
	lea	rax, -144[rbp]
	mov	edx, 128
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L85
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	QWORD PTR -168[rbp], 0
.L85:
	cmp	QWORD PTR -168[rbp], 0
	je	.L86
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 48[rax]
	test	eax, eax
	je	.L86
	mov	edi, 328
	call	malloc@PLT
	mov	QWORD PTR -160[rbp], rax
	mov	rcx, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -160[rbp]
	mov	edx, 328
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -160[rbp]
	mov	WORD PTR 8[rax], 20
	mov	rax, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR -160[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	edi, 208
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -160[rbp]
	mov	QWORD PTR 320[rax], rdx
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	edx, 208
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	esi, 0
	mov	rdi, rax
	call	pthread_mutex_init@PLT
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	QWORD PTR 192[rax], 0
	mov	rax, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR 320[rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rdx, 192
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR 320[rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR 320[rax], rdx
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR 320[rdx]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L88
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	QWORD PTR -160[rbp], 0
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	destroy_event
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	QWORD PTR -168[rbp], 0
	jmp	.L86
.L89:
	call	srv_sleep_random
.L88:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdx, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR 320[rdx]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	mov	rdi, rcx
	call	srv_set_val
	cmp	eax, 1
	jne	.L89
.L86:
	cmp	QWORD PTR -168[rbp], 0
	jne	.L91
	cmp	QWORD PTR -160[rbp], 0
	jne	.L91
	mov	eax, DWORD PTR -172[rbp]
	mov	edi, eax
	call	close@PLT
.L91:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L90
	call	__stack_chk_fail@PLT
.L90:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	accept_conn, .-accept_conn
	.globl	loop_tcp
	.type	loop_tcp, @function
loop_tcp:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L93
	mov	eax, 1
	jmp	.L94
.L93:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 8[rax], 18
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, accept_conn[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L95
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L94
.L95:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 28[rax]
	test	eax, eax
	jne	.L96
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L97
	mov	eax, 1
	jmp	.L94
.L97:
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 8[rax], 18
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, cons_read[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L98
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L94
.L98:
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L99
	mov	eax, 1
	jmp	.L94
.L99:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR 8[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, output_stats[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	esi, 16
	mov	edi, 1
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 44[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	edx, edx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L96
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L94
.L96:
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L100
	mov	eax, 1
	jmp	.L94
.L100:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 15
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 8[rax], 24
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, handle_signal[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L101
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L94
.L101:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, 5
	mov	edi, eax
	call	listen@PLT
	test	eax, eax
	jns	.L102
	mov	eax, 1
	jmp	.L94
.L102:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	event_base_dispatch@PLT
	mov	eax, 0
.L94:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	loop_tcp, .-loop_tcp
	.globl	loop_udp
	.type	loop_udp, @function
loop_udp:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -40[rbp], 0
	jne	.L104
	mov	eax, 1
	jmp	.L105
.L104:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR 8[rax], 18
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, r_data_udp[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 36[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 312[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L106
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L105
.L106:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 48[rax]
	test	eax, eax
	je	.L107
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L108
	mov	eax, 1
	jmp	.L105
.L108:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, 328
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR 8[rax], 20
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, w_data_udp[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	edi, 208
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 320[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	edx, 208
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	esi, 0
	mov	rdi, rax
	call	pthread_mutex_init@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	QWORD PTR 192[rax], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 320[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rdx, 192
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 320[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 320[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 320[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 320[rdx]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L110
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	destroy_event
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L105
.L111:
	call	srv_sleep_random
.L110:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 320[rax]
	add	rax, 152
	mov	rdx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 320[rdx]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	mov	rdi, rcx
	call	srv_set_val
	cmp	eax, 1
	jne	.L111
.L107:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 28[rax]
	test	eax, eax
	jne	.L112
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L113
	mov	eax, 1
	jmp	.L105
.L113:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 8[rax], 18
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, cons_read[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L114
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L105
.L114:
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L115
	mov	eax, 1
	jmp	.L105
.L115:
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 8[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, output_stats[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	esi, 16
	mov	edi, 1
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 44[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	edx, edx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L112
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L105
.L112:
	mov	esi, 328
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L116
	mov	eax, 1
	jmp	.L105
.L116:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 15
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 8[rax], 24
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, handle_signal[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	config_event
	test	eax, eax
	jns	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 1
	jmp	.L105
.L117:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	event_base_dispatch@PLT
	mov	eax, 0
.L105:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	loop_udp, .-loop_udp
	.globl	run
	.type	run, @function
run:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 56[rax]
	movzx	eax, ax
	mov	edx, 0
	mov	esi, ecx
	mov	edi, eax
	call	socket@PLT
	mov	rdx, QWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L119
	mov	eax, 1
	jmp	.L120
.L119:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 56[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rsi, rcx
	mov	edi, eax
	call	bind@PLT
	test	eax, eax
	jns	.L121
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	close@PLT
	mov	eax, 1
	jmp	.L120
.L121:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	mov	esi, eax
	mov	rdi, rdx
	call	setup_event_group
	test	eax, eax
	jns	.L122
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	close@PLT
	mov	eax, 1
	jmp	.L120
.L122:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 1
	jne	.L123
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	loop_tcp
	jmp	.L124
.L123:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 2
	jne	.L124
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	loop_udp
.L124:
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	mov	rdi, rax
	call	destroy_event_group
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	close@PLT
	mov	eax, 0
.L120:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	run, .-run
	.globl	run4
	.type	run4, @function
run4:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -32[rbp]
	mov	edx, 16
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -36[rbp], 16
	mov	WORD PTR -32[rbp], 2
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 24[rax]
	movzx	eax, ax
	mov	edi, eax
	call	htons@PLT
	mov	WORD PTR -30[rbp], ax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, -32[rbp]
	add	rdx, 4
	mov	rsi, rax
	mov	edi, 2
	call	inet_pton@PLT
	test	eax, eax
	jns	.L126
	mov	eax, 1
	jmp	.L128
.L126:
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 56[rax]
	lea	rax, -32[rbp]
	mov	edx, 128
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 184[rax], 16
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	run
	mov	eax, 0
.L128:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L129
	call	__stack_chk_fail@PLT
.L129:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	run4, .-run4
	.globl	run6
	.type	run6, @function
run6:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -48[rbp]
	mov	edx, 28
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -52[rbp], 28
	mov	WORD PTR -48[rbp], 10
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 24[rax]
	movzx	eax, ax
	mov	edi, eax
	call	htons@PLT
	mov	WORD PTR -46[rbp], ax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, -48[rbp]
	add	rdx, 8
	mov	rsi, rax
	mov	edi, 10
	call	inet_pton@PLT
	test	eax, eax
	jns	.L131
	mov	eax, 1
	jmp	.L133
.L131:
	mov	rax, QWORD PTR -72[rbp]
	lea	rcx, 56[rax]
	lea	rax, -48[rbp]
	mov	edx, 128
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 184[rax], 28
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	run
	mov	eax, 0
.L133:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L134
	call	__stack_chk_fail@PLT
.L134:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	run6, .-run6
	.globl	print_usage
	.type	print_usage, @function
print_usage:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	print_usage, .-print_usage
	.section	.rodata
.LC0:
	.string	"tcp"
.LC1:
	.string	"udp"
.LC2:
	.string	"4:6:p:t:S:i:m:de"
	.text
	.globl	main
	.type	main, @function
main:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 288
	mov	DWORD PTR -276[rbp], edi
	mov	QWORD PTR -288[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -268[rbp], 0
	mov	DWORD PTR -264[rbp], 0
	mov	QWORD PTR -256[rbp], 0
	mov	DWORD PTR -248[rbp], 0
	mov	DWORD PTR -244[rbp], 0
	mov	DWORD PTR -240[rbp], 0
	mov	DWORD PTR -236[rbp], 256
	mov	DWORD PTR -232[rbp], 100
	mov	DWORD PTR -228[rbp], 1
	mov	DWORD PTR -224[rbp], 0
	jmp	.L137
.L153:
	mov	eax, DWORD PTR -260[rbp]
	sub	eax, 52
	cmp	eax, 64
	ja	.L138
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L140[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L140[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L140:
	.long	.L149-.L140
	.long	.L138-.L140
	.long	.L148-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L147-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L146-.L140
	.long	.L145-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L144-.L140
	.long	.L143-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L142-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L141-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L138-.L140
	.long	.L139-.L140
	.text
.L149:
	mov	eax, DWORD PTR optind[rip]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -256[rbp], rax
	mov	DWORD PTR -268[rbp], 4
	jmp	.L137
.L148:
	mov	eax, DWORD PTR optind[rip]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -256[rbp], rax
	mov	DWORD PTR -268[rbp], 6
	jmp	.L137
.L141:
	mov	rax, QWORD PTR optarg[rip]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -248[rbp], eax
	jmp	.L137
.L139:
	mov	eax, DWORD PTR optind[rip]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -264[rbp], eax
	mov	eax, DWORD PTR -264[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR optind[rip]
	cdqe
	sal	rax, 3
	lea	rcx, -8[rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC0[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L150
	mov	DWORD PTR -240[rbp], 1
	jmp	.L137
.L150:
	mov	eax, DWORD PTR -264[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR optind[rip]
	cdqe
	sal	rax, 3
	lea	rcx, -8[rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L137
	mov	DWORD PTR -240[rbp], 2
	jmp	.L137
.L147:
	mov	rax, QWORD PTR optarg[rip]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -236[rbp], eax
	jmp	.L137
.L143:
	mov	rax, QWORD PTR optarg[rip]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -228[rbp], eax
	jmp	.L137
.L142:
	mov	rax, QWORD PTR optarg[rip]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -232[rbp], eax
	jmp	.L137
.L146:
	mov	DWORD PTR -244[rbp], 1
	jmp	.L137
.L145:
	mov	DWORD PTR -224[rbp], 1
	jmp	.L137
.L144:
	mov	rax, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	print_usage
	mov	eax, 1
	jmp	.L163
.L138:
	mov	rax, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	print_usage
	mov	eax, 1
	jmp	.L163
.L137:
	mov	rcx, QWORD PTR -288[rbp]
	mov	eax, DWORD PTR -276[rbp]
	lea	rdx, .LC2[rip]
	mov	rsi, rcx
	mov	edi, eax
	call	getopt@PLT
	mov	DWORD PTR -260[rbp], eax
	cmp	DWORD PTR -260[rbp], -1
	jne	.L153
	mov	rax, QWORD PTR -256[rbp]
	test	rax, rax
	je	.L154
	mov	eax, DWORD PTR -248[rbp]
	test	eax, eax
	je	.L154
	mov	eax, DWORD PTR -240[rbp]
	test	eax, eax
	jne	.L155
.L154:
	mov	rax, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	print_usage
	mov	eax, 1
	jmp	.L163
.L155:
	mov	eax, DWORD PTR -224[rbp]
	test	eax, eax
	je	.L156
	mov	eax, DWORD PTR -232[rbp]
	add	eax, eax
	add	eax, 3
	mov	DWORD PTR -232[rbp], eax
	jmp	.L157
.L156:
	mov	eax, DWORD PTR -232[rbp]
	add	eax, 3
	mov	DWORD PTR -232[rbp], eax
.L157:
	lea	rax, -208[rbp]
	mov	edx, 192
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR -248[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	QWORD PTR -184[rbp], rdx
	mov	rax, QWORD PTR -240[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	QWORD PTR -168[rbp], rdx
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	eax, DWORD PTR -180[rbp]
	test	eax, eax
	je	.L158
	mov	esi, 0
	mov	edi, 0
	call	daemon@PLT
	test	eax, eax
	jns	.L158
	mov	eax, 1
	jmp	.L163
.L158:
	cmp	DWORD PTR -268[rbp], 4
	je	.L159
	cmp	DWORD PTR -268[rbp], 6
	je	.L160
	jmp	.L162
.L159:
	lea	rax, -208[rbp]
	mov	rdi, rax
	call	run4
	jmp	.L162
.L160:
	lea	rax, -208[rbp]
	mov	rdi, rax
	call	run6
	nop
.L162:
	mov	eax, 0
.L163:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L164
	call	__stack_chk_fail@PLT
.L164:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.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	"575369.c"
	.text
	.align	2
	.global	srv_is_val_set
	.syntax unified
	.arm
	.fpu softvfp
	.type	srv_is_val_set, %function
srv_is_val_set:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	pthread_mutex_trylock
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L2
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	pthread_mutex_unlock
	ldr	r3, [fp, #-8]
	b	.L3
.L2:
	mov	r3, #0
.L3:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	srv_is_val_set, .-srv_is_val_set
	.align	2
	.global	srv_set_val
	.syntax unified
	.arm
	.fpu softvfp
	.type	srv_set_val, %function
srv_set_val:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L5
	mov	r3, #1
	b	.L6
.L5:
	ldr	r0, [fp, #-24]
	bl	pthread_mutex_trylock
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L7
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r0, [fp, #-24]
	bl	pthread_mutex_unlock
	mov	r3, #1
	b	.L6
.L7:
	mov	r3, #0
.L6:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	srv_set_val, .-srv_set_val
	.align	2
	.global	srv_inc_val
	.syntax unified
	.arm
	.fpu softvfp
	.type	srv_inc_val, %function
srv_inc_val:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	pthread_mutex_trylock
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L9
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r0, [fp, #-20]
	bl	pthread_mutex_unlock
	mov	r3, #1
	b	.L10
.L9:
	mov	r3, #0
.L10:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	srv_inc_val, .-srv_inc_val
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	srv_sleep_random
	.syntax unified
	.arm
	.fpu softvfp
	.type	srv_sleep_random, %function
srv_sleep_random:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	ldr	r3, .L13
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #44
	mov	r1, #0
	mov	r0, r3
	bl	gettimeofday
	ldr	r3, [fp, #-40]
	sub	r2, fp, #36
	mov	r1, r2
	mov	r0, r3
	bl	srand48_r
	sub	r2, fp, #52
	sub	r3, fp, #36
	mov	r1, r2
	mov	r0, r3
	bl	lrand48_r
	ldr	r3, [fp, #-52]
	asr	r3, r3, #8
	mov	r2, r3
	ldr	r3, .L13+4
	and	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r0, [fp, #-48]
	bl	usleep
	nop
	ldr	r3, .L13
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L12
	bl	__stack_chk_fail
.L12:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L14:
	.align	2
.L13:
	.word	.LC1
	.word	1000000
	.size	srv_sleep_random, .-srv_sleep_random
	.align	2
	.global	update_stats
	.syntax unified
	.arm
	.fpu softvfp
	.type	update_stats, %function
update_stats:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	mov	r0, r3
	bl	pthread_mutex_lock
	mov	r3, r0
	cmp	r3, #0
	bne	.L16
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	mov	r0, r3
	bl	pthread_mutex_unlock
	mov	r3, #0
	str	r3, [fp, #-8]
.L16:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	update_stats, .-update_stats
	.align	2
	.global	setup_event
	.syntax unified
	.arm
	.fpu softvfp
	.type	setup_event, %function
setup_event:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r0, r3, #20
	ldr	r3, [fp, #-8]
	ldr	r1, [r3]
	ldr	r3, [fp, #-8]
	ldrsh	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	ip, [r3, #92]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [sp]
	mov	r3, ip
	bl	event_set
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #20
	mov	r1, r3
	mov	r0, r2
	bl	event_base_set
	ldr	r3, [fp, #-8]
	add	r2, r3, #20
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	mov	r1, r3
	mov	r0, r2
	bl	event_add
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	setup_event, .-setup_event
	.align	2
	.global	add_to_group
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_to_group, %function
add_to_group:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	cmp	r3, #0
	beq	.L21
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bge	.L21
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	ldr	r3, [r3, #8]
	add	r3, r3, #10
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	ldr	r3, [r3, #8]
	add	r3, r3, #10
	lsl	r3, r3, #2
	add	r3, r2, r3
	add	r2, r3, #4
	ldr	r3, [fp, #-8]
	str	r2, [r3, #84]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	ldr	r2, [r3, #8]
	add	r2, r2, #1
	str	r2, [r3, #8]
	mov	r3, #0
	b	.L22
.L21:
	mvn	r3, #0
.L22:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	add_to_group, .-add_to_group
	.align	2
	.global	destroy_event
	.syntax unified
	.arm
	.fpu softvfp
	.type	destroy_event, %function
destroy_event:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #20
	mov	r0, r3
	bl	event_del
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	cmp	r3, #0
	beq	.L24
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L24
	b	.L25
.L26:
	bl	srv_sleep_random
.L25:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_trylock
	mov	r3, r0
	cmp	r3, #0
	bne	.L26
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	mov	r2, #0
	str	r2, [r3]
	b	.L27
.L30:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #164]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L28
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #8]
	str	r2, [r3, #8]
	b	.L29
.L28:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #8]
	str	r2, [r3, #168]
.L29:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #4]
	str	r2, [r3]
	ldr	r0, [fp, #-8]
	bl	free
.L27:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #164]
	cmp	r3, #0
	bne	.L30
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_unlock
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_destroy
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #228]
	mov	r0, r3
	bl	free
.L24:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #88]
	ldr	r2, [r3, #8]
	sub	r2, r2, #1
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L31
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	free
.L31:
	ldr	r0, [fp, #-16]
	bl	free
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	destroy_event, .-destroy_event
	.align	2
	.global	setup_event_group
	.syntax unified
	.arm
	.fpu softvfp
	.type	setup_event_group, %function
setup_event_group:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #11
	lsl	r3, r3, #2
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-16]
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L34
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r3, r3, #20
	mov	r1, #0
	mov	r0, r3
	bl	pthread_mutex_init
	mov	r3, r0
	cmp	r3, #0
	beq	.L35
	mvn	r3, #0
	b	.L36
.L35:
	ldr	r3, [fp, #-24]
	ldr	r4, [r3]
	bl	event_base_new
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L37
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r3, r3, #20
	mov	r0, r3
	bl	pthread_mutex_destroy
	mvn	r3, #0
	b	.L36
.L34:
	mvn	r3, #0
	b	.L36
.L37:
	mov	r3, #0
.L36:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	setup_event_group, .-setup_event_group
	.align	2
	.global	destroy_event_group
	.syntax unified
	.arm
	.fpu softvfp
	.type	destroy_event_group, %function
destroy_event_group:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r3, r3, #20
	mov	r0, r3
	bl	pthread_mutex_destroy
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L39
.L41:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #10
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L40
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #10
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	destroy_event
.L40:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L39:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L41
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	event_base_free
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	destroy_event_group, .-destroy_event_group
	.align	2
	.global	config_event
	.syntax unified
	.arm
	.fpu softvfp
	.type	config_event, %function
config_event:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	add_to_group
	mov	r3, r0
	cmp	r3, #0
	bge	.L44
	mvn	r3, #0
	b	.L45
.L44:
	ldr	r0, [fp, #-8]
	bl	setup_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L46
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3]
	mvn	r3, #0
	b	.L45
.L46:
	mov	r3, #0
.L45:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	config_event, .-config_event
	.align	2
	.global	r_data_tcp
	.syntax unified
	.arm
	.fpu softvfp
	.type	r_data_tcp, %function
r_data_tcp:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-16]
	mov	r2, #4
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	memset
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, #0
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	recv
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L48
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #88]
	add	r3, r3, #12
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	update_stats
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	cmp	r3, #0
	beq	.L49
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r2, r3
	mov	r1, #1
	bl	srv_is_val_set
	mov	r3, r0
	cmp	r3, #0
	beq	.L49
	mov	r0, #12
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	b	.L50
.L51:
	bl	srv_sleep_random
.L50:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_trylock
	mov	r3, r0
	cmp	r3, #0
	bne	.L51
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #168]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-8]
	add	r2, r2, #4
	str	r2, [r3, #168]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_unlock
	b	.L49
.L48:
	ldr	r0, [fp, #-24]
	bl	close
	ldr	r0, [fp, #-12]
	bl	destroy_event
.L49:
	ldr	r0, [fp, #-16]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	r_data_tcp, .-r_data_tcp
	.align	2
	.global	w_data_tcp
	.syntax unified
	.arm
	.fpu softvfp
	.type	w_data_tcp, %function
w_data_tcp:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r2, r3
	mov	r1, #1
	bl	srv_is_val_set
	mov	r3, r0
	cmp	r3, #0
	beq	.L59
	b	.L54
.L55:
	bl	srv_sleep_random
.L54:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_trylock
	mov	r3, r0
	cmp	r3, #0
	bne	.L55
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #164]
	cmp	r3, #0
	beq	.L56
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #164]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L57
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #8]
	str	r2, [r3, #8]
	b	.L58
.L57:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #8]
	str	r2, [r3, #168]
.L58:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #4]
	str	r2, [r3]
	ldr	r0, [fp, #-8]
	bl	free
.L56:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_unlock
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L59
	ldr	r0, [fp, #-24]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L59
	mov	r3, #0
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	send
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	free
.L59:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	w_data_tcp, .-w_data_tcp
	.align	2
	.global	rw_data_tcp
	.syntax unified
	.arm
	.fpu softvfp
	.type	rw_data_tcp, %function
rw_data_tcp:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	mov	r3, r1
	str	r2, [fp, #-16]
	strh	r3, [fp, #-10]	@ movhi
	ldrsh	r3, [fp, #-10]
	cmp	r3, #2
	bne	.L61
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	r_data_tcp
.L61:
	ldrsh	r3, [fp, #-10]
	cmp	r3, #4
	bne	.L63
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	w_data_tcp
.L63:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	rw_data_tcp, .-rw_data_tcp
	.align	2
	.global	output_stats
	.syntax unified
	.arm
	.fpu softvfp
	.type	output_stats, %function
output_stats:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	mov	r3, r1
	str	r2, [fp, #-32]
	strh	r3, [fp, #-26]	@ movhi
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #88]
	add	r3, r3, #12
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	mov	r0, r3
	bl	pthread_mutex_lock
	mov	r3, r0
	cmp	r3, #0
	bne	.L65
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L66
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	b	.L67
.L66:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L67:
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	mov	r0, r3
	bl	pthread_mutex_unlock
.L65:
	ldr	r3, [fp, #-20]
	add	r2, r3, #20
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	mov	r0, r2
	bl	event_add
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	output_stats, .-output_stats
	.align	2
	.global	w_data_udp
	.syntax unified
	.arm
	.fpu softvfp
	.type	w_data_udp, %function
w_data_udp:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-32]
	mov	r3, r1
	str	r2, [fp, #-40]
	strh	r3, [fp, #-34]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r2, r3
	mov	r1, #1
	bl	srv_is_val_set
	mov	r3, r0
	cmp	r3, #0
	beq	.L75
	b	.L70
.L71:
	bl	srv_sleep_random
.L70:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_trylock
	mov	r3, r0
	cmp	r3, #0
	bne	.L71
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #164]
	cmp	r3, #0
	beq	.L72
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #164]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L73
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #8]
	str	r2, [r3, #8]
	b	.L74
.L73:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #8]
	str	r2, [r3, #168]
.L74:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #4]
	str	r2, [r3]
	ldr	r0, [fp, #-8]
	bl	free
.L72:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_unlock
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L75
	ldr	r0, [fp, #-24]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L75
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #12
	ldr	r2, [fp, #-12]
	ldr	r2, [r2, #224]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	sendto
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	free
.L75:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	w_data_udp, .-w_data_udp
	.align	2
	.global	r_data_udp
	.syntax unified
	.arm
	.fpu softvfp
	.type	r_data_udp, %function
r_data_udp:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-24]
	mov	r3, r1
	str	r2, [fp, #-32]
	strh	r3, [fp, #-26]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-16]
	mov	r2, #4
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	memset
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r3, [fp, #-12]
	add	r3, r3, #96
	ldr	r2, [fp, #-12]
	add	r2, r2, #224
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, r1
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	recvfrom
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L77
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #88]
	add	r3, r3, #12
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	update_stats
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	cmp	r3, #0
	beq	.L77
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r2, r3
	mov	r1, #1
	bl	srv_is_val_set
	mov	r3, r0
	cmp	r3, #0
	beq	.L77
	mov	r0, #12
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	b	.L78
.L79:
	bl	srv_sleep_random
.L78:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_trylock
	mov	r3, r0
	cmp	r3, #0
	bne	.L79
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r0, r3, #12
	ldr	r3, [fp, #-12]
	add	r1, r3, #96
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #224]
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r3, [r3, #168]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-8]
	add	r2, r2, #4
	str	r2, [r3, #168]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r0, r3
	bl	pthread_mutex_unlock
.L77:
	ldr	r0, [fp, #-16]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	r_data_udp, .-r_data_udp
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cons_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	cons_read, %function
cons_read:
	@ args = 0, pretend = 0, frame = 288
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #288
	str	r0, [fp, #-280]
	str	r2, [fp, #-288]
	sub	r3, fp, #4
	sub	r3, r3, #276
	sub	r3, r3, #2
	mov	r2, r1	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r3, .L84
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-268]
	sub	r3, fp, #264
	mov	r2, #256
	mov	r1, r3
	ldr	r0, [fp, #-280]
	bl	read
	str	r0, [fp, #-272]
	ldr	r3, [fp, #-272]
	cmp	r3, #0
	ble	.L83
	ldr	r3, [fp, #-272]
	cmp	r3, #1
	bne	.L83
	ldrb	r3, [fp, #-264]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L83
	ldr	r0, [fp, #-268]
	bl	event_base_loopbreak
.L83:
	nop
	ldr	r3, .L84
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L82
	bl	__stack_chk_fail
.L82:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L85:
	.align	2
.L84:
	.word	.LC2
	.size	cons_read, .-cons_read
	.align	2
	.global	handle_signal
	.syntax unified
	.arm
	.fpu softvfp
	.type	handle_signal, %function
handle_signal:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	mov	r3, r1
	str	r2, [fp, #-24]
	strh	r3, [fp, #-18]	@ movhi
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	event_base_loopbreak
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	handle_signal, .-handle_signal
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	accept_conn
	.syntax unified
	.arm
	.fpu softvfp
	.type	accept_conn, %function
accept_conn:
	@ args = 0, pretend = 0, frame = 168
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #168
	str	r0, [fp, #-160]
	mov	r3, r1
	str	r2, [fp, #-168]
	strh	r3, [fp, #-162]	@ movhi
	ldr	r3, .L96
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-152]
	mov	r3, #0
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-168]
	str	r3, [fp, #-144]
	mov	r3, #16
	str	r3, [fp, #-156]
	sub	r3, fp, #136
	mov	r2, #128
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r2, fp, #156
	sub	r3, fp, #136
	mov	r1, r3
	ldr	r0, [fp, #-160]
	bl	accept
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	ble	.L95
	mov	r0, #232
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r2, [fp, #-140]
	str	r2, [r3]
	ldr	r3, [fp, #-152]
	mov	r2, #18
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-152]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-152]
	ldr	r2, .L96+4
	str	r2, [r3, #92]
	ldr	r3, [fp, #-152]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-152]
	ldr	r2, [fp, #-152]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-152]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-152]
	mov	r2, #0
	str	r2, [r3, #228]
	ldr	r3, [fp, #-152]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r3, [fp, #-152]
	add	r3, r3, #96
	sub	r1, fp, #136
	mov	r2, #128
	mov	r0, r3
	bl	memcpy
	ldr	r0, [fp, #-152]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L89
	ldr	r0, [fp, #-152]
	bl	free
	mov	r3, #0
	str	r3, [fp, #-152]
.L89:
	ldr	r3, [fp, #-152]
	cmp	r3, #0
	beq	.L90
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #36]
	cmp	r3, #0
	beq	.L90
	mov	r0, #232
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-148]
	mov	r2, #232
	ldr	r1, [fp, #-152]
	ldr	r0, [fp, #-148]
	bl	memcpy
	ldr	r3, [fp, #-148]
	mov	r2, #20
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-148]
	ldr	r2, [fp, #-148]
	str	r2, [r3, #12]
	mov	r0, #172
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-148]
	str	r2, [r3, #228]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #228]
	mov	r2, #172
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r1, #0
	mov	r0, r3
	bl	pthread_mutex_init
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #228]
	mov	r2, #0
	str	r2, [r3, #164]
	ldr	r3, [fp, #-148]
	ldr	r2, [r3, #228]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #228]
	add	r2, r2, #164
	str	r2, [r3, #168]
	ldr	r3, [fp, #-148]
	ldr	r2, [r3, #228]
	ldr	r3, [fp, #-152]
	str	r2, [r3, #228]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-148]
	ldr	r2, [r2, #228]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-148]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L92
	ldr	r0, [fp, #-148]
	bl	free
	mov	r3, #0
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-152]
	bl	destroy_event
	ldr	r0, [fp, #-152]
	bl	free
	mov	r3, #0
	str	r3, [fp, #-152]
	b	.L90
.L93:
	bl	srv_sleep_random
.L92:
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #228]
	mov	r0, r3
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r2, r3
	mov	r1, #1
	bl	srv_set_val
	mov	r3, r0
	cmp	r3, #1
	bne	.L93
.L90:
	ldr	r3, [fp, #-152]
	cmp	r3, #0
	bne	.L95
	ldr	r3, [fp, #-148]
	cmp	r3, #0
	bne	.L95
	ldr	r0, [fp, #-140]
	bl	close
.L95:
	nop
	ldr	r3, .L96
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L94
	bl	__stack_chk_fail
.L94:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L97:
	.align	2
.L96:
	.word	.LC3
	.word	rw_data_tcp
	.size	accept_conn, .-accept_conn
	.align	2
	.global	loop_tcp
	.syntax unified
	.arm
	.fpu softvfp
	.type	loop_tcp, %function
loop_tcp:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L99
	mov	r3, #1
	b	.L100
.L99:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	mov	r2, #18
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-16]
	ldr	r2, .L109
	str	r2, [r3, #92]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r0, [fp, #-16]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L101
	ldr	r0, [fp, #-16]
	bl	free
	mov	r3, #1
	b	.L100
.L101:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L102
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L103
	mov	r3, #1
	b	.L100
.L103:
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r2, #18
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-12]
	ldr	r2, .L109+4
	str	r2, [r3, #92]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r0, [fp, #-12]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L104
	ldr	r0, [fp, #-12]
	bl	free
	mov	r3, #1
	b	.L100
.L104:
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L105
	mov	r3, #1
	b	.L100
.L105:
	ldr	r3, [fp, #-20]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	mov	r2, #0
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-20]
	ldr	r2, .L109+8
	str	r2, [r3, #92]
	mov	r1, #8
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r0, [fp, #-20]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L102
	ldr	r0, [fp, #-20]
	bl	free
	mov	r3, #1
	b	.L100
.L102:
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L106
	mov	r3, #1
	b	.L100
.L106:
	ldr	r3, [fp, #-8]
	mov	r2, #15
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #24
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	ldr	r2, .L109+12
	str	r2, [r3, #92]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r0, [fp, #-8]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L107
	ldr	r0, [fp, #-20]
	bl	free
	mov	r3, #1
	b	.L100
.L107:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r1, #5
	mov	r0, r3
	bl	listen
	mov	r3, r0
	cmp	r3, #0
	bge	.L108
	mov	r3, #1
	b	.L100
.L108:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	mov	r0, r3
	bl	event_base_dispatch
	mov	r3, #0
.L100:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L110:
	.align	2
.L109:
	.word	accept_conn
	.word	cons_read
	.word	output_stats
	.word	handle_signal
	.size	loop_tcp, .-loop_tcp
	.align	2
	.global	loop_udp
	.syntax unified
	.arm
	.fpu softvfp
	.type	loop_udp, %function
loop_udp:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L112
	mov	r3, #1
	b	.L113
.L112:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	mov	r2, #18
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	ldr	r2, .L126
	str	r2, [r3, #92]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #224]
	ldr	r0, [fp, #-24]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L114
	ldr	r0, [fp, #-24]
	bl	free
	mov	r3, #1
	b	.L113
.L114:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #36]
	cmp	r3, #0
	beq	.L115
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L116
	mov	r3, #1
	b	.L113
.L116:
	mov	r2, #232
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-20]
	bl	memcpy
	ldr	r3, [fp, #-20]
	mov	r2, #20
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-20]
	ldr	r2, .L126+4
	str	r2, [r3, #92]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #12]
	mov	r0, #172
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3, #228]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #228]
	mov	r2, #172
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r1, #0
	mov	r0, r3
	bl	pthread_mutex_init
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #228]
	mov	r2, #0
	str	r2, [r3, #164]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #228]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #228]
	add	r2, r2, #164
	str	r2, [r3, #168]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #228]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #228]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-20]
	ldr	r2, [r2, #228]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-20]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L118
	ldr	r0, [fp, #-20]
	bl	free
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-24]
	bl	destroy_event
	ldr	r0, [fp, #-24]
	bl	free
	mov	r3, #1
	b	.L113
.L119:
	bl	srv_sleep_random
.L118:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #228]
	mov	r0, r3
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #228]
	add	r3, r3, #140
	mov	r2, r3
	mov	r1, #1
	bl	srv_set_val
	mov	r3, r0
	cmp	r3, #1
	bne	.L119
.L115:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L120
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L121
	mov	r3, #1
	b	.L113
.L121:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	mov	r2, #18
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-16]
	ldr	r2, .L126+8
	str	r2, [r3, #92]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r0, [fp, #-16]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L122
	ldr	r0, [fp, #-16]
	bl	free
	mov	r3, #1
	b	.L113
.L122:
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L123
	mov	r3, #1
	b	.L113
.L123:
	ldr	r3, [fp, #-12]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-12]
	ldr	r2, .L126+12
	str	r2, [r3, #92]
	mov	r1, #8
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r0, [fp, #-12]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L120
	ldr	r0, [fp, #-12]
	bl	free
	mov	r3, #1
	b	.L113
.L120:
	mov	r1, #232
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L124
	mov	r3, #1
	b	.L113
.L124:
	ldr	r3, [fp, #-8]
	mov	r2, #15
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #24
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	ldr	r2, .L126+16
	str	r2, [r3, #92]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #84]
	ldr	r0, [fp, #-8]
	bl	config_event
	mov	r3, r0
	cmp	r3, #0
	bge	.L125
	ldr	r0, [fp, #-8]
	bl	free
	mov	r3, #1
	b	.L113
.L125:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	mov	r0, r3
	bl	event_base_dispatch
	mov	r3, #0
.L113:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L127:
	.align	2
.L126:
	.word	r_data_udp
	.word	w_data_udp
	.word	cons_read
	.word	output_stats
	.word	handle_signal
	.size	loop_udp, .-loop_udp
	.align	2
	.global	run
	.syntax unified
	.arm
	.fpu softvfp
	.type	run, %function
run:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #40]
	mov	r0, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	mov	r2, #0
	mov	r1, r3
	bl	socket
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L129
	mov	r3, #1
	b	.L130
.L129:
	ldr	r3, [fp, #-8]
	ldr	r0, [r3]
	ldr	r3, [fp, #-8]
	add	r1, r3, #40
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #168]
	mov	r2, r3
	bl	bind
	mov	r3, r0
	cmp	r3, #0
	bge	.L131
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	mov	r3, #1
	b	.L130
.L131:
	ldr	r3, [fp, #-8]
	add	r2, r3, #4
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #28]
	mov	r1, r3
	mov	r0, r2
	bl	setup_event_group
	mov	r3, r0
	cmp	r3, #0
	bge	.L132
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	mov	r3, #1
	b	.L130
.L132:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	bne	.L133
	ldr	r0, [fp, #-8]
	bl	loop_tcp
	b	.L134
.L133:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #2
	bne	.L134
	ldr	r0, [fp, #-8]
	bl	loop_udp
.L134:
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	mov	r0, r3
	bl	destroy_event_group
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	mov	r3, #0
.L130:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	run, .-run
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	run4
	.syntax unified
	.arm
	.fpu softvfp
	.type	run4, %function
run4:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r3, .L140
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #24
	mov	r2, #16
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #16
	str	r3, [fp, #-28]
	mov	r3, #2
	strh	r3, [fp, #-24]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	htons
	mov	r3, r0
	strh	r3, [fp, #-22]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r1, [r3, #8]
	sub	r3, fp, #24
	add	r3, r3, #4
	mov	r2, r3
	mov	r0, #2
	bl	inet_pton
	mov	r3, r0
	cmp	r3, #0
	bge	.L136
	mov	r3, #1
	b	.L138
.L136:
	ldr	r3, [fp, #-32]
	add	r3, r3, #40
	sub	r1, fp, #24
	mov	r2, #128
	mov	r0, r3
	bl	memcpy
	ldr	r3, [fp, #-32]
	mov	r2, #16
	str	r2, [r3, #168]
	ldr	r0, [fp, #-32]
	bl	run
	mov	r3, #0
.L138:
	ldr	r2, .L140
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L139
	bl	__stack_chk_fail
.L139:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L141:
	.align	2
.L140:
	.word	.LC4
	.size	run4, .-run4
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	run6
	.syntax unified
	.arm
	.fpu softvfp
	.type	run6, %function
run6:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r3, .L147
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #36
	mov	r2, #28
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #28
	str	r3, [fp, #-40]
	mov	r3, #10
	strh	r3, [fp, #-36]	@ movhi
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	htons
	mov	r3, r0
	strh	r3, [fp, #-34]	@ movhi
	ldr	r3, [fp, #-48]
	ldr	r1, [r3, #8]
	sub	r3, fp, #36
	add	r3, r3, #8
	mov	r2, r3
	mov	r0, #10
	bl	inet_pton
	mov	r3, r0
	cmp	r3, #0
	bge	.L143
	mov	r3, #1
	b	.L145
.L143:
	ldr	r3, [fp, #-48]
	add	r3, r3, #40
	sub	r1, fp, #36
	mov	r2, #128
	mov	r0, r3
	bl	memcpy
	ldr	r3, [fp, #-48]
	mov	r2, #28
	str	r2, [r3, #168]
	ldr	r0, [fp, #-48]
	bl	run
	mov	r3, #0
.L145:
	ldr	r2, .L147
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L146
	bl	__stack_chk_fail
.L146:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L148:
	.align	2
.L147:
	.word	.LC5
	.size	run6, .-run6
	.align	2
	.global	print_usage
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_usage, %function
print_usage:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	print_usage, .-print_usage
	.section	.rodata
	.align	2
.LC6:
	.ascii	"tcp\000"
	.align	2
.LC7:
	.ascii	"udp\000"
	.align	2
.LC8:
	.ascii	"4:6:p:t:S:i:m:de\000"
	.align	2
.LC0:
	.word	0
	.word	0
	.word	0
	.word	0
	.word	256
	.word	100
	.word	1
	.word	0
	.align	2
.LC9:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 232
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #232
	str	r0, [fp, #-232]
	str	r1, [fp, #-236]
	ldr	r3, .L179
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-224]
	mov	r3, #0
	str	r3, [fp, #-220]
	ldr	r3, .L179+4
	sub	ip, fp, #212
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	b	.L151
.L167:
	ldr	r3, [fp, #-216]
	sub	r3, r3, #52
	cmp	r3, #64
	ldrls	pc, [pc, r3, asl #2]
	b	.L152
.L154:
	.word	.L163
	.word	.L152
	.word	.L162
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L161
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L160
	.word	.L159
	.word	.L152
	.word	.L152
	.word	.L158
	.word	.L157
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L156
	.word	.L152
	.word	.L152
	.word	.L155
	.word	.L152
	.word	.L152
	.word	.L152
	.word	.L153
.L163:
	ldr	r3, .L179+8
	ldr	r3, [r3]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-236]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-212]
	mov	r3, #4
	str	r3, [fp, #-224]
	b	.L151
.L162:
	ldr	r3, .L179+8
	ldr	r3, [r3]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-236]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-212]
	mov	r3, #6
	str	r3, [fp, #-224]
	b	.L151
.L155:
	ldr	r3, .L179+12
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	mov	r3, r0
	str	r3, [fp, #-208]
	b	.L151
.L153:
	ldr	r3, .L179+8
	ldr	r3, [r3]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-236]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-220]
	ldr	r3, .L179+8
	ldr	r3, [r3]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-236]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-220]
	ldr	r1, .L179+16
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L164
	mov	r3, #1
	str	r3, [fp, #-200]
	b	.L151
.L164:
	ldr	r3, .L179+8
	ldr	r3, [r3]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-236]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-220]
	ldr	r1, .L179+20
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L151
	mov	r3, #2
	str	r3, [fp, #-200]
	b	.L151
.L161:
	ldr	r3, .L179+12
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	mov	r3, r0
	str	r3, [fp, #-196]
	b	.L151
.L157:
	ldr	r3, .L179+12
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	mov	r3, r0
	str	r3, [fp, #-188]
	b	.L151
.L156:
	ldr	r3, .L179+12
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	mov	r3, r0
	str	r3, [fp, #-192]
	b	.L151
.L160:
	mov	r3, #1
	str	r3, [fp, #-204]
	b	.L151
.L159:
	mov	r3, #1
	str	r3, [fp, #-184]
	b	.L151
.L158:
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r0, r3
	bl	print_usage
	mov	r3, #1
	b	.L177
.L152:
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r0, r3
	bl	print_usage
	mov	r3, #1
	b	.L177
.L151:
	ldr	r2, .L179+24
	ldr	r1, [fp, #-236]
	ldr	r0, [fp, #-232]
	bl	getopt
	str	r0, [fp, #-216]
	ldr	r3, [fp, #-216]
	cmn	r3, #1
	bne	.L167
	ldr	r3, [fp, #-212]
	cmp	r3, #0
	beq	.L168
	ldr	r3, [fp, #-208]
	cmp	r3, #0
	beq	.L168
	ldr	r3, [fp, #-200]
	cmp	r3, #0
	bne	.L169
.L168:
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r0, r3
	bl	print_usage
	mov	r3, #1
	b	.L177
.L169:
	ldr	r3, [fp, #-184]
	cmp	r3, #0
	beq	.L170
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #1
	add	r3, r3, #3
	str	r3, [fp, #-192]
	b	.L171
.L170:
	ldr	r3, [fp, #-192]
	add	r3, r3, #3
	str	r3, [fp, #-192]
.L171:
	sub	r3, fp, #180
	mov	r2, #172
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	ip, fp, #172
	sub	lr, fp, #212
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #-164]
	cmp	r3, #0
	beq	.L172
	mov	r1, #0
	mov	r0, #0
	bl	daemon
	mov	r3, r0
	cmp	r3, #0
	bge	.L172
	mov	r3, #1
	b	.L177
.L172:
	ldr	r3, [fp, #-224]
	cmp	r3, #4
	beq	.L173
	ldr	r3, [fp, #-224]
	cmp	r3, #6
	beq	.L174
	b	.L176
.L173:
	sub	r3, fp, #180
	mov	r0, r3
	bl	run4
	b	.L176
.L174:
	sub	r3, fp, #180
	mov	r0, r3
	bl	run6
	nop
.L176:
	mov	r3, #0
.L177:
	ldr	r2, .L179
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L178
	bl	__stack_chk_fail
.L178:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L180:
	.align	2
.L179:
	.word	.LC9
	.word	.LC0
	.word	optind
	.word	optarg
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
