	.file	"310478.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
.LC0:
	.string	"CLOSED"
.LC1:
	.string	"LISTEN"
.LC2:
	.string	"SYN_SENT"
.LC3:
	.string	"SYN_RCVD"
.LC4:
	.string	"ESTABLISHED"
.LC5:
	.string	"FIN_WAIT_1"
.LC6:
	.string	"FIN_WAIT_2"
.LC7:
	.string	"CLOSE_WAIT"
.LC8:
	.string	"CLOSING"
.LC9:
	.string	"LAST_ACK"
.LC10:
	.string	"TIME_WAIT"
	.section	.data.rel.ro.local,"aw"
	.align 32
	.type	tcp_state_str, @object
	.size	tcp_state_str, 88
tcp_state_str:
	.quad	.LC0
	.quad	.LC1
	.quad	.LC2
	.quad	.LC3
	.quad	.LC4
	.quad	.LC5
	.quad	.LC6
	.quad	.LC7
	.quad	.LC8
	.quad	.LC9
	.quad	.LC10
	.data
	.align 2
	.type	tcp_port, @object
	.size	tcp_port, 2
tcp_port:
	.value	-16384
	.globl	tcp_ticks
	.bss
	.align 8
	.type	tcp_ticks, @object
	.size	tcp_ticks, 8
tcp_ticks:
	.zero	8
	.section	.rodata
	.align 8
	.type	tcp_backoff, @object
	.size	tcp_backoff, 13
tcp_backoff:
	.ascii	"\001\002\003\004\005\006\007\007\007\007\007\007\007"
	.type	tcp_persist_backoff, @object
	.size	tcp_persist_backoff, 7
tcp_persist_backoff:
	.ascii	"\003\006\f\0300`x"
	.globl	tcp_bound_pcbs
	.bss
	.align 8
	.type	tcp_bound_pcbs, @object
	.size	tcp_bound_pcbs, 8
tcp_bound_pcbs:
	.zero	8
	.globl	tcp_listen_pcbs
	.align 8
	.type	tcp_listen_pcbs, @object
	.size	tcp_listen_pcbs, 8
tcp_listen_pcbs:
	.zero	8
	.globl	tcp_active_pcbs
	.align 8
	.type	tcp_active_pcbs, @object
	.size	tcp_active_pcbs, 8
tcp_active_pcbs:
	.zero	8
	.globl	tcp_tw_pcbs
	.align 8
	.type	tcp_tw_pcbs, @object
	.size	tcp_tw_pcbs, 8
tcp_tw_pcbs:
	.zero	8
	.globl	tcp_pcb_lists
	.section	.data.rel.ro.local
	.align 32
	.type	tcp_pcb_lists, @object
	.size	tcp_pcb_lists, 32
tcp_pcb_lists:
	.quad	tcp_listen_pcbs
	.quad	tcp_bound_pcbs
	.quad	tcp_active_pcbs
	.quad	tcp_tw_pcbs
	.globl	tcp_active_pcbs_changed
	.bss
	.type	tcp_active_pcbs_changed, @object
	.size	tcp_active_pcbs_changed, 1
tcp_active_pcbs_changed:
	.zero	1
	.local	tcp_timer
	.comm	tcp_timer,1,1
	.local	tcp_timer_ctr
	.comm	tcp_timer_ctr,1,1
	.text
	.globl	tcp_init
	.type	tcp_init, @function
tcp_init:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 0
	call	rand@PLT
	and	ax, 16383
	sub	ax, 16384
	mov	WORD PTR tcp_port[rip], ax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	tcp_init, .-tcp_init
	.globl	tcp_tmr
	.type	tcp_tmr, @function
tcp_tmr:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	tcp_fasttmr
	movzx	eax, BYTE PTR tcp_timer[rip]
	add	eax, 1
	mov	BYTE PTR tcp_timer[rip], al
	movzx	eax, BYTE PTR tcp_timer[rip]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L4
	call	tcp_slowtmr
.L4:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	tcp_tmr, .-tcp_tmr
	.type	tcp_remove_listener, @function
tcp_remove_listener:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L6
.L8:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 216[rax]
	cmp	QWORD PTR -32[rbp], rax
	jne	.L7
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 216[rax], 0
.L7:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L6:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L8
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	tcp_remove_listener, .-tcp_remove_listener
	.type	tcp_listen_closed, @function
tcp_listen_closed:
.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, 24
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 1
	jmp	.L10
.L11:
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, 0[0+rax*8]
	lea	rax, tcp_pcb_lists[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcp_remove_listener
	add	DWORD PTR -4[rbp], 1
.L10:
	cmp	DWORD PTR -4[rbp], 3
	jbe	.L11
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	tcp_listen_closed, .-tcp_listen_closed
	.globl	tcp_backlog_delayed
	.type	tcp_backlog_delayed, @function
tcp_backlog_delayed:
.LFB27:
	.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]
	movzx	eax, WORD PTR 50[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	jne	.L14
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 216[rax]
	test	rax, rax
	je	.L14
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 216[rax]
	movzx	edx, BYTE PTR 57[rax]
	add	edx, 1
	mov	BYTE PTR 57[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 50[rax]
	or	ah, 2
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 50[rax], dx
.L14:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	tcp_backlog_delayed, .-tcp_backlog_delayed
	.globl	tcp_backlog_accepted
	.type	tcp_backlog_accepted, @function
tcp_backlog_accepted:
.LFB28:
	.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]
	movzx	eax, WORD PTR 50[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L17
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 216[rax]
	test	rax, rax
	je	.L17
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 216[rax]
	movzx	edx, BYTE PTR 57[rax]
	sub	edx, 1
	mov	BYTE PTR 57[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 50[rax]
	and	ah, -3
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 50[rax], dx
.L17:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	tcp_backlog_accepted, .-tcp_backlog_accepted
	.type	tcp_close_shutdown, @function
tcp_close_shutdown:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -44[rbp], al
	cmp	BYTE PTR -44[rbp], 0
	je	.L19
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 4
	je	.L20
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 7
	jne	.L19
.L20:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 208[rax]
	test	rax, rax
	jne	.L21
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 72[rax]
	cmp	ax, 4380
	je	.L19
.L21:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 48[rax]
	movzx	r8d, ax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 46[rax]
	movzx	edi, ax
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 8[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 136[rax]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	tcp_rst@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_pcb_purge
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	cmp	QWORD PTR -40[rbp], rax
	jne	.L22
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR tcp_active_pcbs[rip], rax
	jmp	.L23
.L22:
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L24
.L26:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jne	.L25
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L23
.L25:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
.L24:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L26
.L23:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	BYTE PTR tcp_active_pcbs_changed[rip], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 4
	jne	.L27
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 40[rax], 10
	mov	rdx, QWORD PTR tcp_tw_pcbs[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR tcp_tw_pcbs[rip], rax
	call	tcp_timer_needed@PLT
	jmp	.L28
.L27:
	mov	rax, QWORD PTR tcp_input_pcb[rip]
	cmp	QWORD PTR -40[rbp], rax
	jne	.L29
	call	tcp_trigger_input_pcb_close@PLT
	jmp	.L28
.L29:
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
.L28:
	mov	eax, 0
	jmp	.L30
.L19:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 7
	ja	.L31
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L33[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L33[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L33:
	.long	.L38-.L33
	.long	.L37-.L33
	.long	.L36-.L33
	.long	.L35-.L33
	.long	.L34-.L33
	.long	.L31-.L33
	.long	.L31-.L33
	.long	.L32-.L33
	.text
.L38:
	mov	BYTE PTR -17[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 46[rax]
	test	ax, ax
	je	.L39
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	cmp	QWORD PTR -40[rbp], rax
	jne	.L40
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR tcp_bound_pcbs[rip], rax
	jmp	.L41
.L40:
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L42
.L44:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jne	.L43
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L41
.L43:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L42:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L44
.L41:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], 0
.L39:
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
	mov	QWORD PTR -40[rbp], 0
	jmp	.L45
.L37:
	mov	BYTE PTR -17[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_listen_closed
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	lea	rdi, tcp_listen_pcbs[rip]
	call	tcp_pcb_remove
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	edi, 3
	call	memp_free@PLT
	mov	QWORD PTR -40[rbp], 0
	jmp	.L45
.L36:
	mov	BYTE PTR -17[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	lea	rdi, tcp_active_pcbs[rip]
	call	tcp_pcb_remove
	mov	BYTE PTR tcp_active_pcbs_changed[rip], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
	mov	QWORD PTR -40[rbp], 0
	jmp	.L45
.L35:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_send_fin@PLT
	mov	BYTE PTR -17[rbp], al
	cmp	BYTE PTR -17[rbp], 0
	jne	.L50
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_backlog_accepted
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 40[rax], 5
	jmp	.L50
.L34:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_send_fin@PLT
	mov	BYTE PTR -17[rbp], al
	cmp	BYTE PTR -17[rbp], 0
	jne	.L51
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 40[rax], 5
	jmp	.L51
.L32:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_send_fin@PLT
	mov	BYTE PTR -17[rbp], al
	cmp	BYTE PTR -17[rbp], 0
	jne	.L52
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 40[rax], 9
	jmp	.L52
.L31:
	mov	BYTE PTR -17[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	jmp	.L45
.L50:
	nop
	jmp	.L45
.L51:
	nop
	jmp	.L45
.L52:
	nop
.L45:
	cmp	QWORD PTR -40[rbp], 0
	je	.L49
	cmp	BYTE PTR -17[rbp], 0
	jne	.L49
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_output@PLT
.L49:
	movzx	eax, BYTE PTR -17[rbp]
.L30:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	tcp_close_shutdown, .-tcp_close_shutdown
	.globl	tcp_close
	.type	tcp_close, @function
tcp_close:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 1
	je	.L54
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 50[rax]
	or	eax, 16
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 50[rax], dx
.L54:
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	tcp_close_shutdown
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	tcp_close, .-tcp_close
	.globl	tcp_shutdown
	.type	tcp_shutdown, @function
tcp_shutdown:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 1
	jne	.L57
	mov	eax, -11
	jmp	.L58
.L57:
	cmp	DWORD PTR -12[rbp], 0
	je	.L59
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 50[rax]
	or	eax, 16
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 50[rax], dx
	cmp	DWORD PTR -16[rbp], 0
	je	.L60
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	tcp_close_shutdown
	jmp	.L58
.L60:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 208[rax]
	test	rax, rax
	je	.L59
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 208[rax]
	mov	rdi, rax
	call	pbuf_free@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 208[rax], 0
.L59:
	cmp	DWORD PTR -16[rbp], 0
	je	.L61
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 4
	ja	.L62
	cmp	eax, 3
	jnb	.L63
	jmp	.L64
.L62:
	cmp	eax, 7
	jne	.L64
.L63:
	mov	eax, DWORD PTR -12[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tcp_close_shutdown
	jmp	.L58
.L64:
	mov	eax, -11
	jmp	.L58
.L61:
	mov	eax, 0
.L58:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	tcp_shutdown, .-tcp_shutdown
	.globl	tcp_abandon
	.type	tcp_abandon, @function
tcp_abandon:
.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, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 10
	jne	.L66
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	lea	rdi, tcp_tw_pcbs[rip]
	call	tcp_pcb_remove
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
	jmp	.L79
.L66:
	mov	DWORD PTR -44[rbp], 0
	mov	WORD PTR -46[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 136[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 40[rax]
	test	eax, eax
	jne	.L68
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 46[rax]
	test	ax, ax
	je	.L69
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	cmp	QWORD PTR -56[rbp], rax
	jne	.L70
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR tcp_bound_pcbs[rip], rax
	jmp	.L71
.L70:
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L72
.L74:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -56[rbp], rax
	jne	.L73
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L71
.L73:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
.L72:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L74
.L71:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 24[rax], 0
	jmp	.L69
.L68:
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 46[rax]
	mov	WORD PTR -46[rbp], ax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	lea	rdi, tcp_active_pcbs[rip]
	call	tcp_pcb_remove
	mov	BYTE PTR tcp_active_pcbs_changed[rip], 1
.L69:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 192[rax]
	test	rax, rax
	je	.L75
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 192[rax]
	mov	rdi, rax
	call	tcp_segs_free
.L75:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 184[rax]
	test	rax, rax
	je	.L76
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	rdi, rax
	call	tcp_segs_free
.L76:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 200[rax]
	test	rax, rax
	je	.L77
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 200[rax]
	mov	rdi, rax
	call	tcp_segs_free
.L77:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tcp_backlog_accepted
	cmp	DWORD PTR -44[rbp], 0
	je	.L78
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 48[rax]
	movzx	r8d, ax
	movzx	edi, WORD PTR -46[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 8[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	tcp_rst@PLT
.L78:
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
	cmp	QWORD PTR -16[rbp], 0
	je	.L79
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	esi, -13
	mov	rdi, rax
	call	rdx
.L79:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	tcp_abandon, .-tcp_abandon
	.globl	tcp_abort
	.type	tcp_abort, @function
tcp_abort:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	tcp_abandon
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	tcp_abort, .-tcp_abort
	.section	.rodata
	.align 8
.LC11:
	.string	"tcp_bind: can only bind in state CLOSED"
	.text
	.globl	tcp_bind
	.type	tcp_bind, @function
tcp_bind:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, edx
	mov	WORD PTR -36[rbp], ax
	mov	DWORD PTR -12[rbp], 4
	cmp	QWORD PTR -32[rbp], 0
	jne	.L82
	lea	rax, ip_addr_any[rip]
	mov	QWORD PTR -32[rbp], rax
.L82:
	cmp	QWORD PTR -24[rbp], 0
	je	.L83
	cmp	QWORD PTR -32[rbp], 0
	jne	.L84
.L83:
	mov	eax, -6
	jmp	.L85
.L84:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 40[rax]
	test	eax, eax
	je	.L86
	lea	rdi, .LC11[rip]
	mov	eax, 0
	call	bk_printf@PLT
	mov	eax, -6
	jmp	.L85
.L86:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L87
	mov	DWORD PTR -12[rbp], 3
.L87:
	cmp	WORD PTR -36[rbp], 0
	jne	.L88
	call	tcp_new_port
	mov	WORD PTR -36[rbp], ax
	cmp	WORD PTR -36[rbp], 0
	jne	.L89
	mov	eax, -2
	jmp	.L85
.L88:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L90
.L96:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, tcp_pcb_lists[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L91
.L95:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 46[rax]
	cmp	WORD PTR -36[rbp], ax
	jne	.L92
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L93
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	jne	.L92
.L93:
	mov	rax, QWORD PTR -8[rbp]
	test	rax, rax
	je	.L94
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L94
	cmp	QWORD PTR -32[rbp], 0
	je	.L94
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L94
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	jne	.L92
.L94:
	mov	eax, -8
	jmp	.L85
.L92:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L91:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L95
	add	DWORD PTR -16[rbp], 1
.L90:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L96
.L89:
	cmp	QWORD PTR -32[rbp], 0
	je	.L97
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L97
	cmp	QWORD PTR -32[rbp], 0
	je	.L98
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	jmp	.L99
.L98:
	mov	eax, 0
.L99:
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
.L97:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR -36[rbp]
	mov	WORD PTR 46[rax], dx
	mov	rdx, QWORD PTR tcp_bound_pcbs[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR tcp_bound_pcbs[rip], rax
	call	tcp_timer_needed@PLT
	mov	eax, 0
.L85:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	tcp_bind, .-tcp_bind
	.type	tcp_accept_null, @function
tcp_accept_null:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -20[rbp], al
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	tcp_abort
	mov	eax, -13
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	tcp_accept_null, .-tcp_accept_null
	.section	.rodata
	.align 8
.LC12:
	.string	"tcp_listen: pcb already connected"
	.text
	.globl	tcp_listen_with_backlog
	.type	tcp_listen_with_backlog, @function
tcp_listen_with_backlog:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -28[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 40[rax]
	test	eax, eax
	je	.L103
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	bk_printf@PLT
	mov	eax, 0
	jmp	.L104
.L103:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 1
	jne	.L105
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L104
.L105:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L106
	mov	rax, QWORD PTR tcp_listen_pcbs[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L107
.L109:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR 46[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 46[rax]
	cmp	dx, ax
	jne	.L108
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	jne	.L108
	mov	eax, 0
	jmp	.L104
.L108:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
.L107:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L109
.L106:
	mov	edi, 3
	call	memp_malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L110
	mov	eax, 0
	jmp	.L104
.L110:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 46[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 46[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 40[rax], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 44[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 44[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 16[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 18[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 18[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 17[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 17[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 46[rax]
	test	ax, ax
	je	.L111
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	cmp	QWORD PTR -24[rbp], rax
	jne	.L112
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR tcp_bound_pcbs[rip], rax
	jmp	.L113
.L112:
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L114
.L116:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -24[rbp], rax
	jne	.L115
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L113
.L115:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L114:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L116
.L113:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], 0
.L111:
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, tcp_accept_null[rip]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 57[rax], 0
	cmp	BYTE PTR -28[rbp], 0
	je	.L117
	movzx	eax, BYTE PTR -28[rbp]
	jmp	.L118
.L117:
	mov	eax, 1
.L118:
	mov	rdx, QWORD PTR -16[rbp]
	mov	BYTE PTR 56[rdx], al
	mov	rdx, QWORD PTR tcp_listen_pcbs[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR tcp_listen_pcbs[rip], rax
	call	tcp_timer_needed@PLT
	mov	rax, QWORD PTR -16[rbp]
.L104:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	tcp_listen_with_backlog, .-tcp_listen_with_backlog
	.globl	tcp_update_rcv_ann_wnd
	.type	tcp_update_rcv_ann_wnd, @function
tcp_update_rcv_ann_wnd:
.LFB37:
	.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 -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 72[rax]
	movzx	eax, ax
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 90[rax]
	mov	ecx, 2190
	cmp	ax, 2190
	cmova	eax, ecx
	movzx	eax, ax
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, rdx
	test	rax, rax
	js	.L120
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 72[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 74[rax], dx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, rdx
	jmp	.L121
.L120:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 80[rax]
	mov	rax, rdx
	sub	rax, rcx
	test	rax, rax
	jle	.L122
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 74[rax], 0
	jmp	.L123
.L122:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 64[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 74[rax], dx
.L123:
	mov	eax, 0
.L121:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	tcp_update_rcv_ann_wnd, .-tcp_update_rcv_ann_wnd
	.globl	tcp_recved
	.type	tcp_recved, @function
tcp_recved:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, esi
	mov	WORD PTR -28[rbp], ax
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, WORD PTR 72[rax]
	movzx	eax, WORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 72[rax], dx
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 72[rax]
	cmp	ax, 4380
	jbe	.L125
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 72[rax], 4380
	jmp	.L126
.L125:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 72[rax]
	test	ax, ax
	jne	.L126
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 7
	je	.L127
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 9
	jne	.L126
.L127:
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 72[rax], 4380
.L126:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcp_update_rcv_ann_wnd
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1094
	jle	.L129
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 50[rax]
	or	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 50[rax], dx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcp_output@PLT
.L129:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	tcp_recved, .-tcp_recved
	.type	tcp_new_port, @function
tcp_new_port:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	WORD PTR -10[rbp], 0
.L131:
	movzx	eax, WORD PTR tcp_port[rip]
	lea	edx, 1[rax]
	mov	WORD PTR tcp_port[rip], dx
	cmp	ax, -1
	jne	.L132
	mov	WORD PTR tcp_port[rip], -16384
.L132:
	mov	BYTE PTR -11[rbp], 0
	jmp	.L133
.L139:
	movzx	eax, BYTE PTR -11[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, tcp_pcb_lists[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L134
.L138:
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, WORD PTR 46[rax]
	movzx	eax, WORD PTR tcp_port[rip]
	cmp	dx, ax
	jne	.L135
	add	WORD PTR -10[rbp], 1
	cmp	WORD PTR -10[rbp], 16383
	jbe	.L131
	mov	eax, 0
	jmp	.L137
.L135:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L134:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L138
	movzx	eax, BYTE PTR -11[rbp]
	add	eax, 1
	mov	BYTE PTR -11[rbp], al
.L133:
	cmp	BYTE PTR -11[rbp], 3
	jbe	.L139
	movzx	eax, WORD PTR tcp_port[rip]
.L137:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	tcp_new_port, .-tcp_new_port
	.section	.rodata
	.align 8
.LC13:
	.string	"tcp_connect: can only connect from state CLOSED"
	.text
	.globl	tcp_connect
	.type	tcp_connect, @function
tcp_connect:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	eax, edx
	mov	QWORD PTR -80[rbp], rcx
	mov	WORD PTR -68[rbp], ax
	cmp	QWORD PTR -56[rbp], 0
	je	.L141
	cmp	QWORD PTR -64[rbp], 0
	jne	.L142
.L141:
	mov	eax, -6
	jmp	.L143
.L142:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 40[rax]
	test	eax, eax
	je	.L144
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	bk_printf@PLT
	mov	eax, -10
	jmp	.L143
.L144:
	cmp	QWORD PTR -64[rbp], 0
	je	.L145
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	jmp	.L146
.L145:
	mov	eax, 0
.L146:
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	edx, WORD PTR -68[rbp]
	mov	WORD PTR 48[rax], dx
	mov	rax, QWORD PTR -56[rbp]
	test	rax, rax
	je	.L147
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L148
.L147:
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	mov	rdi, rax
	call	ip4_route@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L149
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	jmp	.L150
.L149:
	mov	eax, 0
.L150:
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L151
	cmp	QWORD PTR -16[rbp], 0
	jne	.L152
.L151:
	mov	eax, -4
	jmp	.L143
.L152:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
.L148:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 46[rax]
	mov	WORD PTR -46[rbp], ax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 46[rax]
	test	ax, ax
	jne	.L153
	call	tcp_new_port
	mov	rdx, QWORD PTR -56[rbp]
	mov	WORD PTR 46[rdx], ax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 46[rax]
	test	ax, ax
	jne	.L154
	mov	eax, -2
	jmp	.L143
.L153:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L154
	mov	DWORD PTR -44[rbp], 2
	jmp	.L155
.L159:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, tcp_pcb_lists[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L156
.L158:
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, WORD PTR 46[rax]
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 46[rax]
	cmp	dx, ax
	jne	.L157
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 48[rax]
	cmp	WORD PTR -68[rbp], ax
	jne	.L157
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	jne	.L157
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	jne	.L157
	mov	eax, -8
	jmp	.L143
.L157:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
.L156:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L158
	add	DWORD PTR -44[rbp], 1
.L155:
	cmp	DWORD PTR -44[rbp], 3
	jle	.L159
.L154:
	call	tcp_next_iss
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 64[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 136[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 120[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 160[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	WORD PTR 74[rax], 4380
	mov	rax, QWORD PTR -56[rbp]
	movzx	edx, WORD PTR 74[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	WORD PTR 72[rax], dx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 80[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	WORD PTR 168[rax], 4380
	mov	rax, QWORD PTR -56[rbp]
	mov	WORD PTR 90[rax], 536
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, WORD PTR 90[rax]
	movzx	eax, ax
	mov	rsi, rdx
	mov	edi, eax
	call	tcp_eff_send_mss_impl
	mov	rdx, QWORD PTR -56[rbp]
	mov	WORD PTR 90[rdx], ax
	mov	rax, QWORD PTR -56[rbp]
	mov	WORD PTR 128[rax], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	WORD PTR 130[rax], 4380
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR 240[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	tcp_enqueue_flags@PLT
	mov	BYTE PTR -47[rbp], al
	cmp	BYTE PTR -47[rbp], 0
	jne	.L160
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 40[rax], 2
	cmp	WORD PTR -46[rbp], 0
	je	.L161
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	cmp	QWORD PTR -56[rbp], rax
	jne	.L162
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR tcp_bound_pcbs[rip], rax
	jmp	.L163
.L162:
	mov	rax, QWORD PTR tcp_bound_pcbs[rip]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L164
.L166:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -56[rbp], rax
	jne	.L165
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L163
.L165:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
.L164:
	cmp	QWORD PTR -32[rbp], 0
	jne	.L166
.L163:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 24[rax], 0
.L161:
	mov	rdx, QWORD PTR tcp_active_pcbs[rip]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR tcp_active_pcbs[rip], rax
	call	tcp_timer_needed@PLT
	mov	BYTE PTR tcp_active_pcbs_changed[rip], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tcp_output@PLT
.L160:
	movzx	eax, BYTE PTR -47[rbp]
.L143:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	tcp_connect, .-tcp_connect
	.globl	tcp_slowtmr
	.type	tcp_slowtmr, @function
tcp_slowtmr:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	BYTE PTR -54[rbp], 0
	mov	rax, QWORD PTR tcp_ticks[rip]
	add	rax, 1
	mov	QWORD PTR tcp_ticks[rip], rax
	movzx	eax, BYTE PTR tcp_timer_ctr[rip]
	add	eax, 1
	mov	BYTE PTR tcp_timer_ctr[rip], al
.L168:
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L169
.L194:
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, BYTE PTR 54[rax]
	movzx	eax, BYTE PTR tcp_timer_ctr[rip]
	cmp	dl, al
	jne	.L170
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L169
.L170:
	movzx	edx, BYTE PTR tcp_timer_ctr[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR 54[rax], dl
	mov	BYTE PTR -52[rbp], 0
	mov	BYTE PTR -53[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 2
	jne	.L171
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 118[rax]
	cmp	al, 6
	jne	.L171
	add	BYTE PTR -52[rbp], 1
	jmp	.L172
.L171:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 118[rax]
	cmp	al, 12
	jne	.L173
	add	BYTE PTR -52[rbp], 1
	jmp	.L172
.L173:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 289[rax]
	test	al, al
	je	.L174
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 289[rax]
	movzx	eax, al
	sub	eax, 1
	cdqe
	lea	rdx, tcp_persist_backoff[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -51[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 288[rax]
	cmp	BYTE PTR -51[rbp], al
	jbe	.L175
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 288[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR 288[rax], dl
.L175:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 288[rax]
	cmp	BYTE PTR -51[rbp], al
	ja	.L172
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_zero_window_probe@PLT
	test	al, al
	jne	.L172
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR 288[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 289[rax]
	cmp	al, 6
	ja	.L172
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 289[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR 289[rax], dl
	jmp	.L172
.L174:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 88[rax]
	test	ax, ax
	js	.L176
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 88[rax]
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR 88[rax], dx
.L176:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 192[rax]
	test	rax, rax
	je	.L172
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, WORD PTR 88[rax]
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 116[rax]
	cmp	dx, ax
	jl	.L172
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 2
	je	.L177
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 112[rax]
	sar	ax, 3
	movsx	edx, ax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 114[rax]
	cwde
	lea	esi, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 118[rax]
	movzx	eax, al
	cdqe
	lea	rdx, tcp_backoff[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR 116[rax], dx
.L177:
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR 88[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, WORD PTR 168[rax]
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 128[rax]
	cmp	dx, ax
	cmovbe	eax, edx
	mov	WORD PTR -50[rbp], ax
	movzx	eax, WORD PTR -50[rbp]
	shr	ax
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR 130[rax], dx
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, WORD PTR 130[rax]
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 90[rax]
	add	eax, eax
	cmp	dx, ax
	jnb	.L178
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 90[rax]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR 130[rax], dx
.L178:
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, WORD PTR 90[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR 128[rax], dx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_rexmit_rto@PLT
.L172:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 6
	jne	.L179
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 50[rax]
	movzx	eax, ax
	and	eax, 16
	test	eax, eax
	je	.L179
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	rax, 40
	jbe	.L179
	add	BYTE PTR -52[rbp], 1
.L179:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	and	eax, 8
	test	eax, eax
	je	.L180
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 4
	je	.L181
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 7
	jne	.L180
.L181:
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rcx, rdx
	sub	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 264[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 280[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 272[rax]
	imul	rax, rdx
	add	rax, rsi
	shr	rax, 2
	movabs	rdx, 2361183241434822607
	mul	rdx
	mov	rax, rdx
	shr	rax, 4
	cmp	rcx, rax
	jbe	.L182
	add	BYTE PTR -52[rbp], 1
	add	BYTE PTR -53[rbp], 1
	jmp	.L180
.L182:
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rcx, rdx
	sub	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 264[rax]
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 290[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 272[rax]
	imul	rax, rdx
	add	rax, rsi
	shr	rax, 2
	movabs	rdx, 2361183241434822607
	mul	rdx
	mov	rax, rdx
	shr	rax, 4
	cmp	rcx, rax
	jbe	.L180
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_keepalive@PLT
	mov	BYTE PTR -54[rbp], al
	cmp	BYTE PTR -54[rbp], 0
	jne	.L180
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 290[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR 290[rax], dl
.L180:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 200[rax]
	test	rax, rax
	je	.L183
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rcx, rdx
	sub	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 116[rax]
	movsx	edx, ax
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	sal	eax, 3
	mov	eax, eax
	cmp	rcx, rax
	jb	.L183
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 200[rax]
	mov	rdi, rax
	call	tcp_segs_free
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 200[rax], 0
.L183:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 3
	jne	.L184
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	rax, 40
	jbe	.L184
	add	BYTE PTR -52[rbp], 1
.L184:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 9
	jne	.L185
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	rax, 1
	jbe	.L185
	add	BYTE PTR -52[rbp], 1
.L185:
	cmp	BYTE PTR -52[rbp], 0
	je	.L186
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_pcb_purge
	cmp	QWORD PTR -48[rbp], 0
	je	.L187
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L188
.L187:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR tcp_active_pcbs[rip], rax
.L188:
	cmp	BYTE PTR -53[rbp], 0
	je	.L189
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 48[rax]
	movzx	r8d, ax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 46[rax]
	movzx	edi, ax
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 8[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 136[rax]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	tcp_rst@PLT
.L189:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
	mov	BYTE PTR tcp_active_pcbs_changed[rip], 0
	cmp	QWORD PTR -24[rbp], 0
	je	.L190
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	esi, -13
	mov	rdi, rax
	call	rdx
.L190:
	movzx	eax, BYTE PTR tcp_active_pcbs_changed[rip]
	test	al, al
	je	.L169
	jmp	.L168
.L186:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 52[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR 52[rax], dl
	mov	rax, QWORD PTR -48[rbp]
	movzx	edx, BYTE PTR 52[rax]
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 53[rax]
	cmp	dl, al
	jb	.L169
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR 52[rax], 0
	mov	BYTE PTR tcp_active_pcbs_changed[rip], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 248[rax]
	test	rax, rax
	je	.L191
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 248[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	BYTE PTR -54[rbp], al
	jmp	.L192
.L191:
	mov	BYTE PTR -54[rbp], 0
.L192:
	movzx	eax, BYTE PTR tcp_active_pcbs_changed[rip]
	test	al, al
	je	.L193
	jmp	.L168
.L193:
	cmp	BYTE PTR -54[rbp], 0
	jne	.L169
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	tcp_output@PLT
.L169:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L194
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR tcp_tw_pcbs[rip]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L195
.L200:
	mov	BYTE PTR -52[rbp], 0
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	rax, 1
	jbe	.L196
	add	BYTE PTR -52[rbp], 1
.L196:
	cmp	BYTE PTR -52[rbp], 0
	je	.L197
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcp_pcb_purge
	cmp	QWORD PTR -48[rbp], 0
	je	.L198
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L199
.L198:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR tcp_tw_pcbs[rip], rax
.L199:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	memp_free@PLT
	jmp	.L195
.L197:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
.L195:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L200
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	tcp_slowtmr, .-tcp_slowtmr
	.globl	tcp_fasttmr
	.type	tcp_fasttmr, @function
tcp_fasttmr:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	movzx	eax, BYTE PTR tcp_timer_ctr[rip]
	add	eax, 1
	mov	BYTE PTR tcp_timer_ctr[rip], al
.L202:
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L203
.L207:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR 54[rax]
	movzx	eax, BYTE PTR tcp_timer_ctr[rip]
	cmp	dl, al
	je	.L204
	movzx	edx, BYTE PTR tcp_timer_ctr[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 54[rax], dl
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 50[rax]
	movzx	eax, ax
	and	eax, 1
	test	eax, eax
	je	.L205
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 50[rax]
	or	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 50[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	tcp_output@PLT
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 50[rax]
	and	eax, -4
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 50[rax], dx
.L205:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 208[rax]
	test	rax, rax
	je	.L206
	mov	BYTE PTR tcp_active_pcbs_changed[rip], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	tcp_process_refused_data
	movzx	eax, BYTE PTR tcp_active_pcbs_changed[rip]
	test	al, al
	je	.L206
	jmp	.L202
.L206:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L203
.L204:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
.L203:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L207
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	tcp_fasttmr, .-tcp_fasttmr
	.globl	tcp_txnow
	.type	tcp_txnow, @function
tcp_txnow:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L209
.L211:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 50[rax]
	movzx	eax, ax
	and	eax, 128
	test	eax, eax
	je	.L210
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tcp_output@PLT
.L210:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L209:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L211
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	tcp_txnow, .-tcp_txnow
	.globl	tcp_process_refused_data
	.type	tcp_process_refused_data, @function
tcp_process_refused_data:
.LFB44:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 208[rax]
	movzx	eax, BYTE PTR 21[rax]
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 208[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 208[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 232[rax]
	test	rax, rax
	je	.L213
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, QWORD PTR 232[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	r8
	mov	BYTE PTR -10[rbp], al
	jmp	.L214
.L213:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, 0
	mov	rsi, rax
	mov	edi, 0
	call	tcp_recv_null
	mov	BYTE PTR -10[rbp], al
.L214:
	cmp	BYTE PTR -10[rbp], 0
	jne	.L215
	movzx	eax, BYTE PTR -9[rbp]
	and	eax, 32
	test	eax, eax
	je	.L216
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 72[rax]
	cmp	ax, 4380
	je	.L217
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 72[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 72[rax], dx
.L217:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 232[rax]
	test	rax, rax
	je	.L218
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, QWORD PTR 232[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	r8
	mov	BYTE PTR -10[rbp], al
	jmp	.L219
.L218:
	mov	BYTE PTR -10[rbp], 0
.L219:
	cmp	BYTE PTR -10[rbp], -13
	jne	.L216
	mov	eax, -13
	jmp	.L220
.L215:
	cmp	BYTE PTR -10[rbp], -13
	jne	.L221
	mov	eax, -13
	jmp	.L220
.L221:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 208[rax], rdx
	mov	eax, -5
	jmp	.L220
.L216:
	mov	eax, 0
.L220:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	tcp_process_refused_data, .-tcp_process_refused_data
	.globl	tcp_segs_free
	.type	tcp_segs_free, @function
tcp_segs_free:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	jmp	.L223
.L224:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcp_seg_free
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -24[rbp], rax
.L223:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L224
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	tcp_segs_free, .-tcp_segs_free
	.globl	tcp_seg_free
	.type	tcp_seg_free, @function
tcp_seg_free:
.LFB46:
	.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
	cmp	QWORD PTR -8[rbp], 0
	je	.L228
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L227
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	pbuf_free@PLT
.L227:
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 4
	call	memp_free@PLT
.L228:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	tcp_seg_free, .-tcp_seg_free
	.globl	tcp_setprio
	.type	tcp_setprio, @function
tcp_setprio:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, BYTE PTR -12[rbp]
	mov	BYTE PTR 44[rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	tcp_setprio, .-tcp_setprio
	.globl	tcp_seg_copy
	.type	tcp_seg_copy, @function
tcp_seg_copy:
.LFB48:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edi, 4
	call	memp_malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L231
	mov	eax, 0
	jmp	.L232
.L231:
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	pbuf_ref@PLT
	mov	rax, QWORD PTR -8[rbp]
.L232:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	tcp_seg_copy, .-tcp_seg_copy
	.globl	tcp_recv_null
	.type	tcp_recv_null, @function
tcp_recv_null:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, ecx
	mov	BYTE PTR -28[rbp], al
	cmp	QWORD PTR -24[rbp], 0
	je	.L234
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tcp_recved
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	pbuf_free@PLT
	jmp	.L235
.L234:
	cmp	BYTE PTR -28[rbp], 0
	jne	.L235
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	tcp_close
	jmp	.L236
.L235:
	mov	eax, 0
.L236:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	tcp_recv_null, .-tcp_recv_null
	.type	tcp_kill_prio, @function
tcp_kill_prio:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	eax, edi
	mov	BYTE PTR -36[rbp], al
	movzx	eax, BYTE PTR -36[rbp]
	test	al, al
	js	.L238
	movzx	eax, BYTE PTR -36[rbp]
	jmp	.L239
.L238:
	mov	eax, 127
.L239:
	mov	BYTE PTR -25[rbp], al
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L240
.L242:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 44[rax]
	cmp	BYTE PTR -25[rbp], al
	jb	.L241
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	QWORD PTR -8[rbp], rax
	ja	.L241
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 44[rax]
	mov	BYTE PTR -25[rbp], al
.L241:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -24[rbp], rax
.L240:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L242
	cmp	QWORD PTR -16[rbp], 0
	je	.L244
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	tcp_abort
.L244:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	tcp_kill_prio, .-tcp_kill_prio
	.type	tcp_kill_state, @function
tcp_kill_state:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR tcp_active_pcbs[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L246
.L248:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	DWORD PTR -36[rbp], eax
	jne	.L247
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	QWORD PTR -8[rbp], rax
	ja	.L247
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
.L247:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -24[rbp], rax
.L246:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L248
	cmp	QWORD PTR -16[rbp], 0
	je	.L250
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tcp_abandon
.L250:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	tcp_kill_state, .-tcp_kill_state
	.type	tcp_kill_timewait, @function
tcp_kill_timewait:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR tcp_tw_pcbs[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L252
.L254:
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	QWORD PTR -8[rbp], rax
	ja	.L253
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
.L253:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -24[rbp], rax
.L252:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L254
	cmp	QWORD PTR -16[rbp], 0
	je	.L256
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	tcp_abort
.L256:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	tcp_kill_timewait, .-tcp_kill_timewait
	.globl	tcp_alloc
	.type	tcp_alloc, @function
tcp_alloc:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	eax, edi
	mov	BYTE PTR -20[rbp], al
	mov	edi, 2
	call	memp_malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L258
	call	tcp_kill_timewait
	mov	edi, 2
	call	memp_malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L258
	mov	edi, 9
	call	tcp_kill_state
	mov	edi, 2
	call	memp_malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L258
	mov	edi, 8
	call	tcp_kill_state
	mov	edi, 2
	call	memp_malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L258
	movzx	eax, BYTE PTR -20[rbp]
	mov	edi, eax
	call	tcp_kill_prio
	mov	edi, 2
	call	memp_malloc@PLT
	mov	QWORD PTR -16[rbp], rax
.L258:
	cmp	QWORD PTR -16[rbp], 0
	je	.L259
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 296
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR -20[rbp]
	mov	BYTE PTR 44[rax], dl
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 172[rax], 14600
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 74[rax], 4380
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR 74[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 72[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 18[rax], -1
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 90[rax], 536
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 116[rax], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 114[rax], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 88[rax], -1
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 128[rax], 1
	call	tcp_next_iss
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 152[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 136[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 120[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 160[rax], rdx
	mov	rdx, QWORD PTR tcp_ticks[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 56[rax], rdx
	movzx	edx, BYTE PTR tcp_timer_ctr[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 54[rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, tcp_recv_null[rip]
	mov	QWORD PTR 232[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 264[rax], 7200000
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 272[rax], 75000
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 280[rax], 9
.L259:
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	tcp_alloc, .-tcp_alloc
	.globl	tcp_new
	.type	tcp_new, @function
tcp_new:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 64
	call	tcp_alloc
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	tcp_new, .-tcp_new
	.globl	tcp_new_ip_type
	.type	tcp_new_ip_type, @function
tcp_new_ip_type:
.LFB55:
	.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	eax, edi
	mov	BYTE PTR -20[rbp], al
	mov	edi, 64
	call	tcp_alloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	tcp_new_ip_type, .-tcp_new_ip_type
	.globl	tcp_arg
	.type	tcp_arg, @function
tcp_arg:
.LFB56:
	.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	QWORD PTR -16[rbp], rsi
	cmp	QWORD PTR -8[rbp], 0
	je	.L267
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
.L267:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	tcp_arg, .-tcp_arg
	.globl	tcp_recv
	.type	tcp_recv, @function
tcp_recv:
.LFB57:
	.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	QWORD PTR -16[rbp], rsi
	cmp	QWORD PTR -8[rbp], 0
	je	.L270
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 232[rax], rdx
.L270:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	tcp_recv, .-tcp_recv
	.globl	tcp_sent
	.type	tcp_sent, @function
tcp_sent:
.LFB58:
	.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	QWORD PTR -16[rbp], rsi
	cmp	QWORD PTR -8[rbp], 0
	je	.L273
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 224[rax], rdx
.L273:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	tcp_sent, .-tcp_sent
	.globl	tcp_err
	.type	tcp_err, @function
tcp_err:
.LFB59:
	.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	QWORD PTR -16[rbp], rsi
	cmp	QWORD PTR -8[rbp], 0
	je	.L276
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 256[rax], rdx
.L276:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	tcp_err, .-tcp_err
	.globl	tcp_accept
	.type	tcp_accept, @function
tcp_accept:
.LFB60:
	.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	cmp	QWORD PTR -24[rbp], 0
	je	.L279
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 1
	jne	.L279
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 48[rax], rdx
.L279:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	tcp_accept, .-tcp_accept
	.globl	tcp_poll
	.type	tcp_poll, @function
tcp_poll:
.LFB61:
	.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	QWORD PTR -16[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -20[rbp], al
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 248[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, BYTE PTR -20[rbp]
	mov	BYTE PTR 53[rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	tcp_poll, .-tcp_poll
	.globl	tcp_pcb_purge
	.type	tcp_pcb_purge, @function
tcp_pcb_purge:
.LFB62:
	.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	eax, DWORD PTR 40[rax]
	test	eax, eax
	je	.L284
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 10
	je	.L284
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 1
	je	.L284
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tcp_backlog_accepted
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 208[rax]
	test	rax, rax
	je	.L283
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 208[rax]
	mov	rdi, rax
	call	pbuf_free@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 208[rax], 0
.L283:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 200[rax]
	mov	rdi, rax
	call	tcp_segs_free
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 200[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 88[rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	rdi, rax
	call	tcp_segs_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 192[rax]
	mov	rdi, rax
	call	tcp_segs_free
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 184[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 192[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 176[rax], 0
.L284:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	tcp_pcb_purge, .-tcp_pcb_purge
	.globl	tcp_pcb_remove
	.type	tcp_pcb_remove, @function
tcp_pcb_remove:
.LFB63:
	.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 -24[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -32[rbp], rax
	jne	.L286
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L287
.L286:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L288
.L290:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jne	.L289
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L287
.L289:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L288:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L290
.L287:
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tcp_pcb_purge
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 10
	je	.L291
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 1
	je	.L291
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR 50[rax]
	movzx	eax, ax
	and	eax, 1
	test	eax, eax
	je	.L291
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR 50[rax]
	or	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR 50[rax], dx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tcp_output@PLT
.L291:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 40[rax], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR 46[rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	tcp_pcb_remove, .-tcp_pcb_remove
	.globl	tcp_next_iss
	.type	tcp_next_iss, @function
tcp_next_iss:
.LFB64:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rdx, QWORD PTR iss.0[rip]
	mov	rax, QWORD PTR tcp_ticks[rip]
	add	rax, rdx
	mov	QWORD PTR iss.0[rip], rax
	mov	rax, QWORD PTR iss.0[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	tcp_next_iss, .-tcp_next_iss
	.globl	tcp_eff_send_mss_impl
	.type	tcp_eff_send_mss_impl, @function
tcp_eff_send_mss_impl:
.LFB65:
	.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	eax, edi
	mov	QWORD PTR -32[rbp], rsi
	mov	WORD PTR -20[rbp], ax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	ip4_route@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L295
	movzx	eax, WORD PTR -20[rbp]
	jmp	.L296
.L295:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 104[rax]
	mov	WORD PTR -12[rbp], ax
	cmp	WORD PTR -12[rbp], 0
	je	.L297
	movzx	eax, WORD PTR -12[rbp]
	sub	eax, 40
	mov	WORD PTR -10[rbp], ax
	movzx	eax, WORD PTR -20[rbp]
	cmp	WORD PTR -10[rbp], ax
	cmovbe	ax, WORD PTR -10[rbp]
	mov	WORD PTR -20[rbp], ax
.L297:
	movzx	eax, WORD PTR -20[rbp]
.L296:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	tcp_eff_send_mss_impl, .-tcp_eff_send_mss_impl
	.type	tcp_netif_ip_addr_changed_pcblist, @function
tcp_netif_ip_addr_changed_pcblist:
.LFB66:
	.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	QWORD PTR -16[rbp], rax
	jmp	.L299
.L301:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	jne	.L300
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	tcp_abort
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L299
.L300:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
.L299:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L301
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	tcp_netif_ip_addr_changed_pcblist, .-tcp_netif_ip_addr_changed_pcblist
	.globl	tcp_netif_ip_addr_changed
	.type	tcp_netif_ip_addr_changed, @function
tcp_netif_ip_addr_changed:
.LFB67:
	.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
	cmp	QWORD PTR -24[rbp], 0
	je	.L307
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L307
	mov	rdx, QWORD PTR tcp_active_pcbs[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcp_netif_ip_addr_changed_pcblist
	mov	rdx, QWORD PTR tcp_bound_pcbs[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcp_netif_ip_addr_changed_pcblist
	cmp	QWORD PTR -32[rbp], 0
	je	.L307
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L307
	mov	rax, QWORD PTR tcp_listen_pcbs[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L304
.L306:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	jne	.L305
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
.L305:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
.L304:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L306
.L307:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	tcp_netif_ip_addr_changed, .-tcp_netif_ip_addr_changed
	.globl	tcp_debug_state_str
	.type	tcp_debug_state_str, @function
tcp_debug_state_str:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, 0[0+rax*8]
	lea	rax, tcp_state_str[rip]
	mov	rax, QWORD PTR [rdx+rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	tcp_debug_state_str, .-tcp_debug_state_str
	.data
	.align 8
	.type	iss.0, @object
	.size	iss.0, 8
iss.0:
	.quad	6510
	.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	"310478.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.ascii	"CLOSED\000"
	.align	2
.LC1:
	.ascii	"LISTEN\000"
	.align	2
.LC2:
	.ascii	"SYN_SENT\000"
	.align	2
.LC3:
	.ascii	"SYN_RCVD\000"
	.align	2
.LC4:
	.ascii	"ESTABLISHED\000"
	.align	2
.LC5:
	.ascii	"FIN_WAIT_1\000"
	.align	2
.LC6:
	.ascii	"FIN_WAIT_2\000"
	.align	2
.LC7:
	.ascii	"CLOSE_WAIT\000"
	.align	2
.LC8:
	.ascii	"CLOSING\000"
	.align	2
.LC9:
	.ascii	"LAST_ACK\000"
	.align	2
.LC10:
	.ascii	"TIME_WAIT\000"
	.align	2
	.type	tcp_state_str, %object
	.size	tcp_state_str, 44
tcp_state_str:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.data
	.align	1
	.type	tcp_port, %object
	.size	tcp_port, 2
tcp_port:
	.short	-16384
	.comm	tcp_ticks,4,4
	.section	.rodata
	.align	2
	.type	tcp_backoff, %object
	.size	tcp_backoff, 13
tcp_backoff:
	.ascii	"\001\002\003\004\005\006\007\007\007\007\007\007\007"
	.align	2
	.type	tcp_persist_backoff, %object
	.size	tcp_persist_backoff, 7
tcp_persist_backoff:
	.ascii	"\003\006\014\0300`x"
	.comm	tcp_bound_pcbs,4,4
	.comm	tcp_listen_pcbs,4,4
	.comm	tcp_active_pcbs,4,4
	.comm	tcp_tw_pcbs,4,4
	.global	tcp_pcb_lists
	.align	2
	.type	tcp_pcb_lists, %object
	.size	tcp_pcb_lists, 16
tcp_pcb_lists:
	.word	tcp_listen_pcbs
	.word	tcp_bound_pcbs
	.word	tcp_active_pcbs
	.word	tcp_tw_pcbs
	.comm	tcp_active_pcbs_changed,1,1
	.local	tcp_timer
	.comm	tcp_timer,1,1
	.local	tcp_timer_ctr
	.comm	tcp_timer_ctr,1,1
	.text
	.align	2
	.global	tcp_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_init, %function
tcp_init:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	rand
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #18
	lsr	r3, r3, #18
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #16384
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2
	strh	r3, [r2]	@ movhi
	nop
	pop	{fp, pc}
.L3:
	.align	2
.L2:
	.word	tcp_port
	.size	tcp_init, .-tcp_init
	.align	2
	.global	tcp_tmr
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_tmr, %function
tcp_tmr:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	tcp_fasttmr
	ldr	r3, .L7
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L7
	strb	r2, [r3]
	ldr	r3, .L7
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L6
	bl	tcp_slowtmr
.L6:
	nop
	pop	{fp, pc}
.L8:
	.align	2
.L7:
	.word	tcp_timer
	.size	tcp_tmr, .-tcp_tmr
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_remove_listener, %function
tcp_remove_listener:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	b	.L10
.L12:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #124]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L11
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #124]
.L11:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L10:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L12
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_remove_listener, .-tcp_remove_listener
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_listen_closed, %function
tcp_listen_closed:
	@ 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, #1
	str	r3, [fp, #-8]
	b	.L14
.L15:
	ldr	r2, .L16
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	ldr	r3, [r3]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	tcp_remove_listener
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L14:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bls	.L15
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L17:
	.align	2
.L16:
	.word	tcp_pcb_lists
	.size	tcp_listen_closed, .-tcp_listen_closed
	.align	2
	.global	tcp_backlog_delayed
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_backlog_delayed, %function
tcp_backlog_delayed:
	@ 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]
	ldrh	r3, [r3, #30]
	and	r3, r3, #512
	cmp	r3, #0
	bne	.L20
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #124]
	cmp	r3, #0
	beq	.L20
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #124]
	ldrb	r2, [r3, #33]	@ zero_extendqisi2
	add	r2, r2, #1
	and	r2, r2, #255
	strb	r2, [r3, #33]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #30]
	orr	r3, r3, #512
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #30]	@ movhi
.L20:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_backlog_delayed, .-tcp_backlog_delayed
	.align	2
	.global	tcp_backlog_accepted
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_backlog_accepted, %function
tcp_backlog_accepted:
	@ 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]
	ldrh	r3, [r3, #30]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L23
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #124]
	cmp	r3, #0
	beq	.L23
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #124]
	ldrb	r2, [r3, #33]	@ zero_extendqisi2
	sub	r2, r2, #1
	and	r2, r2, #255
	strb	r2, [r3, #33]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #30]
	bic	r3, r3, #512
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #30]	@ movhi
.L23:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_backlog_accepted, .-tcp_backlog_accepted
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_close_shutdown, %function
tcp_close_shutdown:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	mov	r3, r1
	strb	r3, [fp, #-25]
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L25
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #4
	beq	.L26
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #7
	bne	.L25
.L26:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #120]
	cmp	r3, #0
	bne	.L27
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #44]
	ldr	r2, .L59
	cmp	r3, r2
	beq	.L25
.L27:
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #80]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #40]
	ldr	ip, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	lr, r3, #4
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #26]
	ldr	r2, [fp, #-24]
	ldrh	r2, [r2, #28]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	bl	tcp_rst
	ldr	r0, [fp, #-24]
	bl	tcp_pcb_purge
	ldr	r3, .L59+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L28
	ldr	r3, .L59+4
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, .L59+4
	str	r3, [r2]
	b	.L29
.L28:
	ldr	r3, .L59+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L30
.L32:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L31
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #12]
	b	.L29
.L31:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
.L30:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L32
.L29:
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, .L59+8
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #4
	bne	.L33
	ldr	r3, [fp, #-24]
	mov	r2, #10
	str	r2, [r3, #20]
	ldr	r3, .L59+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r2, .L59+12
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	bl	tcp_timer_needed
	b	.L34
.L33:
	ldr	r3, .L59+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L35
	bl	tcp_trigger_input_pcb_close
	b	.L34
.L35:
	ldr	r1, [fp, #-24]
	mov	r0, #2
	bl	memp_free
.L34:
	mov	r3, #0
	b	.L36
.L25:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #7
	ldrls	pc, [pc, r3, asl #2]
	b	.L37
.L39:
	.word	.L44
	.word	.L43
	.word	.L42
	.word	.L41
	.word	.L40
	.word	.L37
	.word	.L37
	.word	.L38
.L44:
	mov	r3, #0
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #26]
	cmp	r3, #0
	beq	.L45
	ldr	r3, .L59+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L46
	ldr	r3, .L59+20
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, .L59+20
	str	r3, [r2]
	b	.L47
.L46:
	ldr	r3, .L59+20
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L48
.L50:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L49
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	b	.L47
.L49:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L48:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L50
.L47:
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #12]
.L45:
	ldr	r1, [fp, #-24]
	mov	r0, #2
	bl	memp_free
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L51
.L43:
	mov	r3, #0
	strb	r3, [fp, #-13]
	ldr	r0, [fp, #-24]
	bl	tcp_listen_closed
	ldr	r1, [fp, #-24]
	ldr	r0, .L59+24
	bl	tcp_pcb_remove
	ldr	r1, [fp, #-24]
	mov	r0, #3
	bl	memp_free
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L51
.L42:
	mov	r3, #0
	strb	r3, [fp, #-13]
	ldr	r1, [fp, #-24]
	ldr	r0, .L59+4
	bl	tcp_pcb_remove
	ldr	r3, .L59+8
	mov	r2, #1
	strb	r2, [r3]
	ldr	r1, [fp, #-24]
	mov	r0, #2
	bl	memp_free
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L51
.L41:
	ldr	r0, [fp, #-24]
	bl	tcp_send_fin
	mov	r3, r0
	strb	r3, [fp, #-13]
	ldrsb	r3, [fp, #-13]
	cmp	r3, #0
	bne	.L56
	ldr	r0, [fp, #-24]
	bl	tcp_backlog_accepted
	ldr	r3, [fp, #-24]
	mov	r2, #5
	str	r2, [r3, #20]
	b	.L56
.L40:
	ldr	r0, [fp, #-24]
	bl	tcp_send_fin
	mov	r3, r0
	strb	r3, [fp, #-13]
	ldrsb	r3, [fp, #-13]
	cmp	r3, #0
	bne	.L57
	ldr	r3, [fp, #-24]
	mov	r2, #5
	str	r2, [r3, #20]
	b	.L57
.L38:
	ldr	r0, [fp, #-24]
	bl	tcp_send_fin
	mov	r3, r0
	strb	r3, [fp, #-13]
	ldrsb	r3, [fp, #-13]
	cmp	r3, #0
	bne	.L58
	ldr	r3, [fp, #-24]
	mov	r2, #9
	str	r2, [r3, #20]
	b	.L58
.L37:
	mov	r3, #0
	strb	r3, [fp, #-13]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L51
.L56:
	nop
	b	.L51
.L57:
	nop
	b	.L51
.L58:
	nop
.L51:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L55
	ldrsb	r3, [fp, #-13]
	cmp	r3, #0
	bne	.L55
	ldr	r0, [fp, #-24]
	bl	tcp_output
.L55:
	ldrsb	r3, [fp, #-13]
.L36:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L60:
	.align	2
.L59:
	.word	4380
	.word	tcp_active_pcbs
	.word	tcp_active_pcbs_changed
	.word	tcp_tw_pcbs
	.word	tcp_input_pcb
	.word	tcp_bound_pcbs
	.word	tcp_listen_pcbs
	.size	tcp_close_shutdown, .-tcp_close_shutdown
	.align	2
	.global	tcp_close
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_close, %function
tcp_close:
	@ 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]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	beq	.L62
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #30]
	orr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #30]	@ movhi
.L62:
	mov	r1, #1
	ldr	r0, [fp, #-8]
	bl	tcp_close_shutdown
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_close, .-tcp_close
	.align	2
	.global	tcp_shutdown
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_shutdown, %function
tcp_shutdown:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	bne	.L65
	mvn	r3, #10
	b	.L66
.L65:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L67
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #30]
	orr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #30]	@ movhi
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L68
	mov	r1, #1
	ldr	r0, [fp, #-8]
	bl	tcp_close_shutdown
	mov	r3, r0
	b	.L66
.L68:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #120]
	cmp	r3, #0
	beq	.L67
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #120]
	mov	r0, r3
	bl	pbuf_free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #120]
.L67:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L69
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #4
	bhi	.L70
	cmp	r3, #3
	bcs	.L71
	b	.L72
.L70:
	cmp	r3, #7
	bne	.L72
.L71:
	ldr	r3, [fp, #-12]
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	tcp_close_shutdown
	mov	r3, r0
	b	.L66
.L72:
	mvn	r3, #10
	b	.L66
.L69:
	mov	r3, #0
.L66:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_shutdown, .-tcp_shutdown
	.align	2
	.global	tcp_abandon
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_abandon, %function
tcp_abandon:
	@ 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, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	cmp	r3, #10
	bne	.L74
	ldr	r1, [fp, #-40]
	ldr	r0, .L88
	bl	tcp_pcb_remove
	ldr	r1, [fp, #-40]
	mov	r0, #2
	bl	memp_free
	b	.L87
.L74:
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	strh	r3, [fp, #-30]	@ movhi
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #144]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L76
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #26]
	cmp	r3, #0
	beq	.L77
	ldr	r3, .L88+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bne	.L78
	ldr	r3, .L88+4
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, .L88+4
	str	r3, [r2]
	b	.L79
.L78:
	ldr	r3, .L88+4
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L80
.L82:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bne	.L81
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	b	.L79
.L81:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-24]
.L80:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L82
.L79:
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #12]
	b	.L77
.L76:
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #26]	@ movhi
	strh	r3, [fp, #-30]	@ movhi
	ldr	r1, [fp, #-40]
	ldr	r0, .L88+8
	bl	tcp_pcb_remove
	ldr	r3, .L88+12
	mov	r2, #1
	strb	r2, [r3]
.L77:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #112]
	cmp	r3, #0
	beq	.L83
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #112]
	mov	r0, r3
	bl	tcp_segs_free
.L83:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L84
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #108]
	mov	r0, r3
	bl	tcp_segs_free
.L84:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #116]
	cmp	r3, #0
	beq	.L85
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #116]
	mov	r0, r3
	bl	tcp_segs_free
.L85:
	ldr	r0, [fp, #-40]
	bl	tcp_backlog_accepted
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L86
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r1, r3, #4
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #28]
	str	r3, [sp, #4]
	ldrh	r3, [fp, #-30]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	tcp_rst
.L86:
	ldr	r1, [fp, #-40]
	mov	r0, #2
	bl	memp_free
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L87
	ldr	r3, [fp, #-12]
	mvn	r1, #12
	ldr	r0, [fp, #-8]
	blx	r3
.L87:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L89:
	.align	2
.L88:
	.word	tcp_tw_pcbs
	.word	tcp_bound_pcbs
	.word	tcp_active_pcbs
	.word	tcp_active_pcbs_changed
	.size	tcp_abandon, .-tcp_abandon
	.align	2
	.global	tcp_abort
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_abort, %function
tcp_abort:
	@ 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]
	mov	r1, #1
	ldr	r0, [fp, #-8]
	bl	tcp_abandon
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_abort, .-tcp_abort
	.section	.rodata
	.align	2
.LC11:
	.ascii	"tcp_bind: can only bind in state CLOSED\000"
	.text
	.align	2
	.global	tcp_bind
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_bind, %function
tcp_bind:
	@ 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]
	str	r1, [fp, #-28]
	mov	r3, r2
	strh	r3, [fp, #-30]	@ movhi
	mov	r3, #4
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L92
	ldr	r3, .L110
	str	r3, [fp, #-28]
.L92:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L93
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L94
.L93:
	mvn	r3, #5
	b	.L95
.L94:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L96
	ldr	r0, .L110+4
	bl	bk_printf
	mvn	r3, #5
	b	.L95
.L96:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L97
	mov	r3, #3
	str	r3, [fp, #-12]
.L97:
	ldrh	r3, [fp, #-30]
	cmp	r3, #0
	bne	.L98
	bl	tcp_new_port
	mov	r3, r0
	strh	r3, [fp, #-30]	@ movhi
	ldrh	r3, [fp, #-30]
	cmp	r3, #0
	bne	.L99
	mvn	r3, #1
	b	.L95
.L98:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L100
.L106:
	ldr	r2, .L110+8
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L101
.L105:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #26]
	ldrh	r2, [fp, #-30]
	cmp	r2, r3
	bne	.L102
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L103
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	bne	.L102
.L103:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L104
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L104
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L104
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L104
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L102
.L104:
	mvn	r3, #7
	b	.L95
.L102:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L101:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L105
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L100:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L106
.L99:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L107
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L107
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L108
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	b	.L109
.L108:
	mov	r3, #0
.L109:
	ldr	r2, [fp, #-24]
	str	r3, [r2]
.L107:
	ldr	r3, [fp, #-24]
	ldrh	r2, [fp, #-30]	@ movhi
	strh	r2, [r3, #26]	@ movhi
	ldr	r3, .L110+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r2, .L110+12
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	bl	tcp_timer_needed
	mov	r3, #0
.L95:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L111:
	.align	2
.L110:
	.word	ip_addr_any
	.word	.LC11
	.word	tcp_pcb_lists
	.word	tcp_bound_pcbs
	.size	tcp_bind, .-tcp_bind
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_accept_null, %function
tcp_accept_null:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r3, r2
	strb	r3, [fp, #-13]
	ldr	r0, [fp, #-12]
	bl	tcp_abort
	mvn	r3, #12
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_accept_null, .-tcp_accept_null
	.section	.rodata
	.align	2
.LC12:
	.ascii	"tcp_listen: pcb already connected\000"
	.text
	.align	2
	.global	tcp_listen_with_backlog
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_listen_with_backlog, %function
tcp_listen_with_backlog:
	@ 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, r1
	strb	r3, [fp, #-17]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L115
	ldr	r0, .L131
	bl	bk_printf
	mov	r3, #0
	b	.L116
.L115:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	bne	.L117
	ldr	r3, [fp, #-16]
	b	.L116
.L117:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L118
	ldr	r3, .L131+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L119
.L121:
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3, #26]
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #26]
	cmp	r2, r3
	bne	.L120
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L120
	mov	r3, #0
	b	.L116
.L120:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
.L119:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L121
.L118:
	mov	r0, #3
	bl	memp_malloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L122
	mov	r3, #0
	b	.L116
.L122:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #26]
	ldr	r3, [fp, #-12]
	strh	r2, [r3, #26]	@ movhi
	ldr	r3, [fp, #-12]
	mov	r2, #1
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #24]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #8]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #10]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #10]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #9]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #9]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #26]
	cmp	r3, #0
	beq	.L123
	ldr	r3, .L131+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L124
	ldr	r3, .L131+8
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, .L131+8
	str	r3, [r2]
	b	.L125
.L124:
	ldr	r3, .L131+8
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L126
.L128:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L127
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	b	.L125
.L127:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L126:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L128
.L125:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #12]
.L123:
	ldr	r1, [fp, #-16]
	mov	r0, #2
	bl	memp_free
	ldr	r3, [fp, #-12]
	ldr	r2, .L131+12
	str	r2, [r3, #28]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #33]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L129
	ldrb	r2, [fp, #-17]	@ zero_extendqisi2
	b	.L130
.L129:
	mov	r2, #1
.L130:
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #32]
	ldr	r3, .L131+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #12]
	ldr	r2, .L131+4
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	bl	tcp_timer_needed
	ldr	r3, [fp, #-12]
.L116:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L132:
	.align	2
.L131:
	.word	.LC12
	.word	tcp_listen_pcbs
	.word	tcp_bound_pcbs
	.word	tcp_accept_null
	.size	tcp_listen_with_backlog, .-tcp_listen_with_backlog
	.align	2
	.global	tcp_update_rcv_ann_wnd
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_update_rcv_ann_wnd, %function
tcp_update_rcv_ann_wnd:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-16]
	ldrh	r2, [r2, #44]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r1, [r3, #48]
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #54]
	ldr	r2, .L138
	cmp	r3, r2
	movcc	r3, r3
	movcs	r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r1, r3
	ldr	r2, [fp, #-12]
	sub	r3, r2, r3
	cmp	r3, #0
	blt	.L134
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #44]
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #46]	@ movhi
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #48]
	ldr	r2, [fp, #-12]
	sub	r3, r2, r3
	b	.L135
.L134:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #48]
	sub	r3, r2, r3
	cmp	r3, #0
	ble	.L136
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strh	r2, [r3, #46]	@ movhi
	b	.L137
.L136:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #46]	@ movhi
.L137:
	mov	r3, #0
.L135:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L139:
	.align	2
.L138:
	.word	2190
	.size	tcp_update_rcv_ann_wnd, .-tcp_update_rcv_ann_wnd
	.align	2
	.global	tcp_recved
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_recved, %function
tcp_recved:
	@ 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, r1
	strh	r3, [fp, #-18]	@ movhi
	ldr	r3, [fp, #-16]
	ldrh	r2, [r3, #44]
	ldrh	r3, [fp, #-18]	@ movhi
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #44]	@ movhi
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #44]
	ldr	r2, .L146
	cmp	r3, r2
	bls	.L141
	ldr	r3, [fp, #-16]
	ldr	r2, .L146
	strh	r2, [r3, #44]	@ movhi
	b	.L142
.L141:
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #44]
	cmp	r3, #0
	bne	.L142
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #7
	beq	.L143
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L142
.L143:
	ldr	r3, [fp, #-16]
	ldr	r2, .L146
	strh	r2, [r3, #44]	@ movhi
.L142:
	ldr	r0, [fp, #-16]
	bl	tcp_update_rcv_ann_wnd
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+4
	cmp	r3, r2
	ble	.L145
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #30]
	orr	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	strh	r2, [r3, #30]	@ movhi
	ldr	r0, [fp, #-16]
	bl	tcp_output
.L145:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L147:
	.align	2
.L146:
	.word	4380
	.word	1094
	.size	tcp_recved, .-tcp_recved
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_new_port, %function
tcp_new_port:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	mov	r3, #0
	strh	r3, [fp, #-10]	@ movhi
.L149:
	ldr	r3, .L158
	ldrh	r3, [r3]
	add	r2, r3, #1
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, .L158
	strh	r2, [r1]	@ movhi
	ldr	r2, .L158+4
	cmp	r3, r2
	bne	.L150
	ldr	r3, .L158
	mov	r2, #49152
	strh	r2, [r3]	@ movhi
.L150:
	mov	r3, #0
	strb	r3, [fp, #-11]
	b	.L151
.L157:
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	ldr	r2, .L158+8
	ldr	r3, [r2, r3, lsl #2]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L152
.L156:
	ldr	r3, [fp, #-8]
	ldrh	r2, [r3, #26]
	ldr	r3, .L158
	ldrh	r3, [r3]
	cmp	r2, r3
	bne	.L153
	ldrh	r3, [fp, #-10]	@ movhi
	add	r3, r3, #1
	strh	r3, [fp, #-10]	@ movhi
	ldrh	r3, [fp, #-10]
	cmp	r3, #16384
	bcc	.L149
	mov	r3, #0
	b	.L155
.L153:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L152:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L156
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-11]
.L151:
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	cmp	r3, #3
	bls	.L157
	ldr	r3, .L158
	ldrh	r3, [r3]
.L155:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L159:
	.align	2
.L158:
	.word	tcp_port
	.word	65535
	.word	tcp_pcb_lists
	.size	tcp_new_port, .-tcp_new_port
	.section	.rodata
	.align	2
.LC13:
	.ascii	"tcp_connect: can only connect from state CLOSED\000"
	.text
	.align	2
	.global	tcp_connect
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_connect, %function
tcp_connect:
	@ 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, #-40]
	str	r1, [fp, #-44]
	str	r3, [fp, #-52]
	mov	r3, r2	@ movhi
	strh	r3, [fp, #-46]	@ movhi
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L161
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L162
.L161:
	mvn	r3, #5
	b	.L163
.L162:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L164
	ldr	r0, .L187
	bl	bk_printf
	mvn	r3, #9
	b	.L163
.L164:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L165
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	b	.L166
.L165:
	mov	r3, #0
.L166:
	ldr	r2, [fp, #-40]
	str	r3, [r2, #4]
	ldr	r3, [fp, #-40]
	ldrh	r2, [fp, #-46]	@ movhi
	strh	r2, [r3, #28]	@ movhi
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L167
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L168
.L167:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	mov	r0, r3
	bl	ip4_route
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L169
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	b	.L170
.L169:
	mov	r3, #0
.L170:
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L171
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L172
.L171:
	mvn	r3, #3
	b	.L163
.L172:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
.L168:
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #26]	@ movhi
	strh	r3, [fp, #-30]	@ movhi
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #26]
	cmp	r3, #0
	bne	.L173
	bl	tcp_new_port
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	strh	r2, [r3, #26]	@ movhi
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #26]
	cmp	r3, #0
	bne	.L174
	mvn	r3, #1
	b	.L163
.L173:
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L174
	mov	r3, #2
	str	r3, [fp, #-24]
	b	.L175
.L179:
	ldr	r2, .L187+4
	ldr	r3, [fp, #-24]
	ldr	r3, [r2, r3, lsl #2]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L176
.L178:
	ldr	r3, [fp, #-28]
	ldrh	r2, [r3, #26]
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #26]
	cmp	r2, r3
	bne	.L177
	ldr	r3, [fp, #-28]
	ldrh	r3, [r3, #28]
	ldrh	r2, [fp, #-46]
	cmp	r2, r3
	bne	.L177
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L177
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L177
	mvn	r3, #7
	b	.L163
.L177:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-28]
.L176:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L178
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L175:
	ldr	r3, [fp, #-24]
	cmp	r3, #3
	ble	.L179
.L174:
	bl	tcp_next_iss
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #40]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #80]
	ldr	r3, [fp, #-8]
	sub	r2, r3, #1
	ldr	r3, [fp, #-40]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-8]
	sub	r2, r3, #1
	ldr	r3, [fp, #-40]
	str	r2, [r3, #92]
	ldr	r3, [fp, #-40]
	ldr	r2, .L187+8
	strh	r2, [r3, #46]	@ movhi
	ldr	r3, [fp, #-40]
	ldrh	r2, [r3, #46]
	ldr	r3, [fp, #-40]
	strh	r2, [r3, #44]	@ movhi
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #48]
	ldr	r3, [fp, #-40]
	ldr	r2, .L187+8
	strh	r2, [r3, #96]	@ movhi
	ldr	r3, [fp, #-40]
	mov	r2, #536
	strh	r2, [r3, #54]	@ movhi
	ldr	r3, [fp, #-40]
	ldrh	r2, [r3, #54]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	mov	r1, r3
	mov	r0, r2
	bl	tcp_eff_send_mss_impl
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	strh	r2, [r3, #54]	@ movhi
	ldr	r3, [fp, #-40]
	mov	r2, #1
	strh	r2, [r3, #76]	@ movhi
	ldr	r3, [fp, #-40]
	ldr	r2, .L187+8
	strh	r2, [r3, #78]	@ movhi
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-52]
	str	r2, [r3, #136]
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	tcp_enqueue_flags
	mov	r3, r0
	strb	r3, [fp, #-31]
	ldrsb	r3, [fp, #-31]
	cmp	r3, #0
	bne	.L180
	ldr	r3, [fp, #-40]
	mov	r2, #2
	str	r2, [r3, #20]
	ldrh	r3, [fp, #-30]
	cmp	r3, #0
	beq	.L181
	ldr	r3, .L187+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bne	.L182
	ldr	r3, .L187+12
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, .L187+12
	str	r3, [r2]
	b	.L183
.L182:
	ldr	r3, .L187+12
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L184
.L186:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bne	.L185
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #12]
	b	.L183
.L185:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-20]
.L184:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L186
.L183:
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #12]
.L181:
	ldr	r3, .L187+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #12]
	ldr	r2, .L187+16
	ldr	r3, [fp, #-40]
	str	r3, [r2]
	bl	tcp_timer_needed
	ldr	r3, .L187+20
	mov	r2, #1
	strb	r2, [r3]
	ldr	r0, [fp, #-40]
	bl	tcp_output
.L180:
	ldrsb	r3, [fp, #-31]
.L163:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L188:
	.align	2
.L187:
	.word	.LC13
	.word	tcp_pcb_lists
	.word	4380
	.word	tcp_bound_pcbs
	.word	tcp_active_pcbs
	.word	tcp_active_pcbs_changed
	.size	tcp_connect, .-tcp_connect
	.align	2
	.global	tcp_slowtmr
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_slowtmr, %function
tcp_slowtmr:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	mov	r3, #0
	strb	r3, [fp, #-34]
	ldr	r3, .L223
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L223
	str	r3, [r2]
	ldr	r3, .L223+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L223+4
	strb	r2, [r3]
.L190:
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, .L223+8
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L191
.L216:
	ldr	r3, [fp, #-24]
	ldrb	r2, [r3, #34]	@ zero_extendqisi2
	ldr	r3, .L223+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L192
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-24]
	b	.L191
.L192:
	ldr	r3, .L223+4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-24]
	strb	r2, [r3, #34]
	mov	r3, #0
	strb	r3, [fp, #-33]
	mov	r3, #0
	strb	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #2
	bne	.L193
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #70]	@ zero_extendqisi2
	cmp	r3, #6
	bne	.L193
	ldrb	r3, [fp, #-33]
	add	r3, r3, #1
	strb	r3, [fp, #-33]
	b	.L194
.L193:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #70]	@ zero_extendqisi2
	cmp	r3, #12
	bne	.L195
	ldrb	r3, [fp, #-33]
	add	r3, r3, #1
	strb	r3, [fp, #-33]
	b	.L194
.L195:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #161]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L196
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #161]	@ zero_extendqisi2
	sub	r3, r3, #1
	ldr	r2, .L223+12
	ldrb	r3, [r2, r3]
	strb	r3, [fp, #-31]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #160]	@ zero_extendqisi2
	ldrb	r2, [fp, #-31]	@ zero_extendqisi2
	cmp	r2, r3
	bls	.L197
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #160]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-24]
	strb	r2, [r3, #160]
.L197:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #160]	@ zero_extendqisi2
	ldrb	r2, [fp, #-31]	@ zero_extendqisi2
	cmp	r2, r3
	bhi	.L194
	ldr	r0, [fp, #-24]
	bl	tcp_zero_window_probe
	mov	r3, r0
	cmp	r3, #0
	bne	.L194
	ldr	r3, [fp, #-24]
	mov	r2, #0
	strb	r2, [r3, #160]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #161]	@ zero_extendqisi2
	cmp	r3, #6
	bhi	.L194
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #161]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-24]
	strb	r2, [r3, #161]
	b	.L194
.L196:
	ldr	r3, [fp, #-24]
	ldrsh	r3, [r3, #52]
	cmp	r3, #0
	blt	.L198
	ldr	r3, [fp, #-24]
	ldrsh	r3, [r3, #52]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-24]
	strh	r2, [r3, #52]	@ movhi
.L198:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #112]
	cmp	r3, #0
	beq	.L194
	ldr	r3, [fp, #-24]
	ldrsh	r2, [r3, #52]
	ldr	r3, [fp, #-24]
	ldrsh	r3, [r3, #68]
	cmp	r2, r3
	blt	.L194
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #2
	beq	.L199
	ldr	r3, [fp, #-24]
	ldrsh	r3, [r3, #64]
	asr	r3, r3, #3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldrsh	r3, [r3, #66]
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	ldrb	r2, [r2, #70]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, .L223+16
	ldrb	r2, [r2, r1]	@ zero_extendqisi2
	lsl	r3, r3, r2
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-24]
	strh	r2, [r3, #68]	@ movhi
.L199:
	ldr	r3, [fp, #-24]
	mov	r2, #0
	strh	r2, [r3, #52]	@ movhi
	ldr	r3, [fp, #-24]
	ldrh	r2, [r3, #96]
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #76]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	strh	r3, [fp, #-30]	@ movhi
	ldrh	r3, [fp, #-30]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-24]
	strh	r2, [r3, #78]	@ movhi
	ldr	r3, [fp, #-24]
	ldrh	r2, [r3, #78]
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #54]
	lsl	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	bcs	.L200
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #54]
	lsl	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-24]
	strh	r2, [r3, #78]	@ movhi
.L200:
	ldr	r3, [fp, #-24]
	ldrh	r2, [r3, #54]
	ldr	r3, [fp, #-24]
	strh	r2, [r3, #76]	@ movhi
	ldr	r0, [fp, #-24]
	bl	tcp_rexmit_rto
.L194:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #6
	bne	.L201
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #30]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L201
	ldr	r3, .L223
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	cmp	r3, #40
	bls	.L201
	ldrb	r3, [fp, #-33]
	add	r3, r3, #1
	strb	r3, [fp, #-33]
.L201:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r3, r3, #8
	cmp	r3, #0
	beq	.L202
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #4
	beq	.L203
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #7
	bne	.L202
.L203:
	ldr	r3, .L223
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #36]
	sub	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #148]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #156]
	ldr	r0, [fp, #-24]
	ldr	r0, [r0, #152]
	mul	r3, r0, r3
	add	r3, r1, r3
	ldr	r1, .L223+20
	umull	r0, r3, r1, r3
	lsr	r3, r3, #5
	cmp	r2, r3
	bls	.L204
	ldrb	r3, [fp, #-33]
	add	r3, r3, #1
	strb	r3, [fp, #-33]
	ldrb	r3, [fp, #-32]
	add	r3, r3, #1
	strb	r3, [fp, #-32]
	b	.L202
.L204:
	ldr	r3, .L223
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #36]
	sub	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #148]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #162]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #152]
	mul	r3, r0, r3
	add	r3, r1, r3
	ldr	r1, .L223+20
	umull	r0, r3, r1, r3
	lsr	r3, r3, #5
	cmp	r2, r3
	bls	.L202
	ldr	r0, [fp, #-24]
	bl	tcp_keepalive
	mov	r3, r0
	strb	r3, [fp, #-34]
	ldrsb	r3, [fp, #-34]
	cmp	r3, #0
	bne	.L202
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #162]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-24]
	strb	r2, [r3, #162]
.L202:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #116]
	cmp	r3, #0
	beq	.L205
	ldr	r3, .L223
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #36]
	sub	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldrsh	r3, [r3, #68]
	mov	r1, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #3
	cmp	r2, r3
	bcc	.L205
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #116]
	mov	r0, r3
	bl	tcp_segs_free
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #116]
.L205:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #3
	bne	.L206
	ldr	r3, .L223
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	cmp	r3, #40
	bls	.L206
	ldrb	r3, [fp, #-33]
	add	r3, r3, #1
	strb	r3, [fp, #-33]
.L206:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L207
	ldr	r3, .L223
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	cmp	r3, #1
	bls	.L207
	ldrb	r3, [fp, #-33]
	add	r3, r3, #1
	strb	r3, [fp, #-33]
.L207:
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L208
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #144]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	tcp_pcb_purge
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L209
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	str	r2, [r3, #12]
	b	.L210
.L209:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	ldr	r2, .L223+8
	str	r3, [r2]
.L210:
	ldrb	r3, [fp, #-32]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L211
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #80]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #40]
	ldr	ip, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	lr, r3, #4
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #26]
	ldr	r2, [fp, #-24]
	ldrh	r2, [r2, #28]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	bl	tcp_rst
.L211:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-8]
	mov	r0, #2
	bl	memp_free
	ldr	r3, .L223+24
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L212
	ldr	r3, [fp, #-16]
	mvn	r1, #12
	ldr	r0, [fp, #-12]
	blx	r3
.L212:
	ldr	r3, .L223+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L191
	b	.L190
.L208:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3, #32]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-28]
	strb	r2, [r3, #32]
	ldr	r3, [fp, #-28]
	ldrb	r2, [r3, #32]	@ zero_extendqisi2
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3, #33]	@ zero_extendqisi2
	cmp	r2, r3
	bcc	.L191
	ldr	r3, [fp, #-28]
	mov	r2, #0
	strb	r2, [r3, #32]
	ldr	r3, .L223+24
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #140]
	cmp	r3, #0
	beq	.L213
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #140]
	ldr	r2, [fp, #-28]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-28]
	mov	r0, r2
	blx	r3
	mov	r3, r0
	strb	r3, [fp, #-34]
	b	.L214
.L213:
	mov	r3, #0
	strb	r3, [fp, #-34]
.L214:
	ldr	r3, .L223+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L215
	b	.L190
.L215:
	ldrsb	r3, [fp, #-34]
	cmp	r3, #0
	bne	.L191
	ldr	r0, [fp, #-28]
	bl	tcp_output
.L191:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L216
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, .L223+28
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L217
.L222:
	mov	r3, #0
	strb	r3, [fp, #-33]
	ldr	r3, .L223
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	cmp	r3, #1
	bls	.L218
	ldrb	r3, [fp, #-33]
	add	r3, r3, #1
	strb	r3, [fp, #-33]
.L218:
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L219
	ldr	r0, [fp, #-24]
	bl	tcp_pcb_purge
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L220
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	str	r2, [r3, #12]
	b	.L221
.L220:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	ldr	r2, .L223+28
	str	r3, [r2]
.L221:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-20]
	mov	r0, #2
	bl	memp_free
	b	.L217
.L219:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-24]
.L217:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L222
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L224:
	.align	2
.L223:
	.word	tcp_ticks
	.word	tcp_timer_ctr
	.word	tcp_active_pcbs
	.word	tcp_persist_backoff
	.word	tcp_backoff
	.word	274877907
	.word	tcp_active_pcbs_changed
	.word	tcp_tw_pcbs
	.size	tcp_slowtmr, .-tcp_slowtmr
	.align	2
	.global	tcp_fasttmr
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_fasttmr, %function
tcp_fasttmr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L232
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L232
	strb	r2, [r3]
.L226:
	ldr	r3, .L232+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L227
.L231:
	ldr	r3, [fp, #-12]
	ldrb	r2, [r3, #34]	@ zero_extendqisi2
	ldr	r3, .L232
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L228
	ldr	r3, .L232
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #34]
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #30]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L229
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #30]
	orr	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-12]
	strh	r2, [r3, #30]	@ movhi
	ldr	r0, [fp, #-12]
	bl	tcp_output
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #30]
	bic	r3, r3, #3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-12]
	strh	r2, [r3, #30]	@ movhi
.L229:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #120]
	cmp	r3, #0
	beq	.L230
	ldr	r3, .L232+8
	mov	r2, #0
	strb	r2, [r3]
	ldr	r0, [fp, #-12]
	bl	tcp_process_refused_data
	ldr	r3, .L232+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L230
	b	.L226
.L230:
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-12]
	b	.L227
.L228:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
.L227:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L231
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L233:
	.align	2
.L232:
	.word	tcp_timer_ctr
	.word	tcp_active_pcbs
	.word	tcp_active_pcbs_changed
	.size	tcp_fasttmr, .-tcp_fasttmr
	.align	2
	.global	tcp_txnow
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_txnow, %function
tcp_txnow:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L238
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L235
.L237:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #30]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L236
	ldr	r0, [fp, #-8]
	bl	tcp_output
.L236:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L235:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L237
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L239:
	.align	2
.L238:
	.word	tcp_active_pcbs
	.size	tcp_txnow, .-tcp_txnow
	.align	2
	.global	tcp_process_refused_data
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_process_refused_data, %function
tcp_process_refused_data:
	@ 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]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #120]
	ldrb	r3, [r3, #13]
	strb	r3, [fp, #-17]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #120]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #120]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #132]
	cmp	r3, #0
	beq	.L241
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #132]
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #16]
	mov	r3, #0
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-24]
	blx	r4
	mov	r3, r0
	strb	r3, [fp, #-18]
	b	.L242
.L241:
	mov	r3, #0
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-24]
	mov	r0, #0
	bl	tcp_recv_null
	mov	r3, r0
	strb	r3, [fp, #-18]
.L242:
	ldrsb	r3, [fp, #-18]
	cmp	r3, #0
	bne	.L243
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L244
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #44]
	ldr	r2, .L250
	cmp	r3, r2
	beq	.L245
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3, #44]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-24]
	strh	r2, [r3, #44]	@ movhi
.L245:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #132]
	cmp	r3, #0
	beq	.L246
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #132]
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #16]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-24]
	blx	r4
	mov	r3, r0
	strb	r3, [fp, #-18]
	b	.L247
.L246:
	mov	r3, #0
	strb	r3, [fp, #-18]
.L247:
	ldrsb	r3, [fp, #-18]
	cmn	r3, #13
	bne	.L244
	mvn	r3, #12
	b	.L248
.L243:
	ldrsb	r3, [fp, #-18]
	cmn	r3, #13
	bne	.L249
	mvn	r3, #12
	b	.L248
.L249:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #120]
	mvn	r3, #4
	b	.L248
.L244:
	mov	r3, #0
.L248:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L251:
	.align	2
.L250:
	.word	4380
	.size	tcp_process_refused_data, .-tcp_process_refused_data
	.align	2
	.global	tcp_segs_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_segs_free, %function
tcp_segs_free:
	@ 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]
	b	.L253
.L254:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	tcp_seg_free
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-16]
.L253:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L254
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_segs_free, .-tcp_segs_free
	.align	2
	.global	tcp_seg_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_seg_free, %function
tcp_seg_free:
	@ 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]
	cmp	r3, #0
	beq	.L258
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L257
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	pbuf_free
.L257:
	ldr	r1, [fp, #-8]
	mov	r0, #4
	bl	memp_free
.L258:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_seg_free, .-tcp_seg_free
	.align	2
	.global	tcp_setprio
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_setprio, %function
tcp_setprio:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	mov	r3, r1
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-8]
	ldrb	r2, [fp, #-9]
	strb	r2, [r3, #24]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_setprio, .-tcp_setprio
	.align	2
	.global	tcp_seg_copy
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_seg_copy, %function
tcp_seg_copy:
	@ 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	r0, #4
	bl	memp_malloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L261
	mov	r3, #0
	b	.L262
.L261:
	mov	r2, #20
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	memcpy
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	pbuf_ref
	ldr	r3, [fp, #-8]
.L262:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_seg_copy, .-tcp_seg_copy
	.align	2
	.global	tcp_recv_null
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_recv_null, %function
tcp_recv_null:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	strb	r3, [fp, #-17]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L264
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	tcp_recved
	ldr	r0, [fp, #-16]
	bl	pbuf_free
	b	.L265
.L264:
	ldrsb	r3, [fp, #-17]
	cmp	r3, #0
	bne	.L265
	ldr	r0, [fp, #-12]
	bl	tcp_close
	mov	r3, r0
	b	.L266
.L265:
	mov	r3, #0
.L266:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_recv_null, .-tcp_recv_null
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_kill_prio, %function
tcp_kill_prio:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mov	r3, r0
	strb	r3, [fp, #-21]
	ldrsb	r3, [fp, #-21]
	cmp	r3, #0
	blt	.L268
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	b	.L269
.L268:
	mov	r3, #127
.L269:
	strb	r3, [fp, #-17]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L275
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L270
.L272:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #24]	@ zero_extendqisi2
	ldrb	r2, [fp, #-17]	@ zero_extendqisi2
	cmp	r2, r3
	bcc	.L271
	ldr	r3, .L275+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bhi	.L271
	ldr	r3, .L275+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #24]
	strb	r3, [fp, #-17]
.L271:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-16]
.L270:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L272
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L274
	ldr	r0, [fp, #-12]
	bl	tcp_abort
.L274:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L276:
	.align	2
.L275:
	.word	tcp_active_pcbs
	.word	tcp_ticks
	.size	tcp_kill_prio, .-tcp_kill_prio
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_kill_state, %function
tcp_kill_state:
	@ 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, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L283
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L278
.L280:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L279
	ldr	r3, .L283+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bhi	.L279
	ldr	r3, .L283+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
.L279:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-16]
.L278:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L280
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L282
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	tcp_abandon
.L282:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L284:
	.align	2
.L283:
	.word	tcp_active_pcbs
	.word	tcp_ticks
	.size	tcp_kill_state, .-tcp_kill_state
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_kill_timewait, %function
tcp_kill_timewait:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L291
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L286
.L288:
	ldr	r3, .L291+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bhi	.L287
	ldr	r3, .L291+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
.L287:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-16]
.L286:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L288
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L290
	ldr	r0, [fp, #-12]
	bl	tcp_abort
.L290:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L292:
	.align	2
.L291:
	.word	tcp_tw_pcbs
	.word	tcp_ticks
	.size	tcp_kill_timewait, .-tcp_kill_timewait
	.align	2
	.global	tcp_alloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_alloc, %function
tcp_alloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	strb	r3, [fp, #-13]
	mov	r0, #2
	bl	memp_malloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L294
	bl	tcp_kill_timewait
	mov	r0, #2
	bl	memp_malloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L294
	mov	r0, #9
	bl	tcp_kill_state
	mov	r0, #2
	bl	memp_malloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L294
	mov	r0, #8
	bl	tcp_kill_state
	mov	r0, #2
	bl	memp_malloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L294
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	mov	r0, r3
	bl	tcp_kill_prio
	mov	r0, #2
	bl	memp_malloc
	str	r0, [fp, #-12]
.L294:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L295
	mov	r2, #164
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	memset
	ldr	r3, [fp, #-12]
	ldrb	r2, [fp, #-13]
	strb	r2, [r3, #24]
	ldr	r3, [fp, #-12]
	ldr	r2, .L297
	strh	r2, [r3, #100]	@ movhi
	ldr	r3, [fp, #-12]
	ldr	r2, .L297+4
	strh	r2, [r3, #46]	@ movhi
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3, #46]
	ldr	r3, [fp, #-12]
	strh	r2, [r3, #44]	@ movhi
	ldr	r3, [fp, #-12]
	mvn	r2, #0
	strb	r2, [r3, #10]
	ldr	r3, [fp, #-12]
	mov	r2, #536
	strh	r2, [r3, #54]	@ movhi
	ldr	r3, [fp, #-12]
	mov	r2, #1
	strh	r2, [r3, #68]	@ movhi
	ldr	r3, [fp, #-12]
	mov	r2, #1
	strh	r2, [r3, #66]	@ movhi
	ldr	r3, [fp, #-12]
	mvn	r2, #0
	strh	r2, [r3, #52]	@ movhi
	ldr	r3, [fp, #-12]
	mov	r2, #1
	strh	r2, [r3, #76]	@ movhi
	bl	tcp_next_iss
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #80]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #92]
	ldr	r3, .L297+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #36]
	ldr	r3, .L297+12
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #34]
	ldr	r3, [fp, #-12]
	ldr	r2, .L297+16
	str	r2, [r3, #132]
	ldr	r3, [fp, #-12]
	ldr	r2, .L297+20
	str	r2, [r3, #148]
	ldr	r3, [fp, #-12]
	ldr	r2, .L297+24
	str	r2, [r3, #152]
	ldr	r3, [fp, #-12]
	mov	r2, #9
	str	r2, [r3, #156]
.L295:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L298:
	.align	2
.L297:
	.word	14600
	.word	4380
	.word	tcp_ticks
	.word	tcp_timer_ctr
	.word	tcp_recv_null
	.word	7200000
	.word	75000
	.size	tcp_alloc, .-tcp_alloc
	.align	2
	.global	tcp_new
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_new, %function
tcp_new:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #64
	bl	tcp_alloc
	mov	r3, r0
	mov	r0, r3
	pop	{fp, pc}
	.size	tcp_new, .-tcp_new
	.align	2
	.global	tcp_new_ip_type
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_new_ip_type, %function
tcp_new_ip_type:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	strb	r3, [fp, #-13]
	mov	r0, #64
	bl	tcp_alloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_new_ip_type, .-tcp_new_ip_type
	.align	2
	.global	tcp_arg
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_arg, %function
tcp_arg:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L305
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
.L305:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_arg, .-tcp_arg
	.align	2
	.global	tcp_recv
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_recv, %function
tcp_recv:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L308
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #132]
.L308:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_recv, .-tcp_recv
	.align	2
	.global	tcp_sent
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_sent, %function
tcp_sent:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L311
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #128]
.L311:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_sent, .-tcp_sent
	.align	2
	.global	tcp_err
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_err, %function
tcp_err:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L314
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #144]
.L314:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_err, .-tcp_err
	.align	2
	.global	tcp_accept
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_accept, %function
tcp_accept:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L317
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	bne	.L317
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #28]
.L317:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_accept, .-tcp_accept
	.align	2
	.global	tcp_poll
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_poll, %function
tcp_poll:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r3, r2
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #140]
	ldr	r3, [fp, #-8]
	ldrb	r2, [fp, #-13]
	strb	r2, [r3, #33]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tcp_poll, .-tcp_poll
	.align	2
	.global	tcp_pcb_purge
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_pcb_purge, %function
tcp_pcb_purge:
	@ 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]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L322
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #10
	beq	.L322
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	beq	.L322
	ldr	r0, [fp, #-8]
	bl	tcp_backlog_accepted
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #120]
	cmp	r3, #0
	beq	.L321
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #120]
	mov	r0, r3
	bl	pbuf_free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #120]
.L321:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #116]
	mov	r0, r3
	bl	tcp_segs_free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #116]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strh	r2, [r3, #52]	@ movhi
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #108]
	mov	r0, r3
	bl	tcp_segs_free
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #112]
	mov	r0, r3
	bl	tcp_segs_free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #108]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #108]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #112]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strh	r2, [r3, #104]	@ movhi
.L322:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_pcb_purge, .-tcp_pcb_purge
	.align	2
	.global	tcp_pcb_remove
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_pcb_remove, %function
tcp_pcb_remove:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L324
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L325
.L324:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L326
.L328:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L327
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	b	.L325
.L327:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L326:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L328
.L325:
	ldr	r3, [fp, #-20]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r0, [fp, #-20]
	bl	tcp_pcb_purge
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r3, #10
	beq	.L329
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	beq	.L329
	ldr	r3, [fp, #-20]
	ldrh	r3, [r3, #30]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L329
	ldr	r3, [fp, #-20]
	ldrh	r3, [r3, #30]
	orr	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-20]
	strh	r2, [r3, #30]	@ movhi
	ldr	r0, [fp, #-20]
	bl	tcp_output
.L329:
	ldr	r3, [fp, #-20]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	mov	r2, #0
	strh	r2, [r3, #26]	@ movhi
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_pcb_remove, .-tcp_pcb_remove
	.align	2
	.global	tcp_next_iss
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_next_iss, %function
tcp_next_iss:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L332
	ldr	r2, [r3]
	ldr	r3, .L332+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L332
	str	r3, [r2]
	ldr	r3, .L332
	ldr	r3, [r3]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L333:
	.align	2
.L332:
	.word	iss.7527
	.word	tcp_ticks
	.size	tcp_next_iss, .-tcp_next_iss
	.align	2
	.global	tcp_eff_send_mss_impl
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_eff_send_mss_impl, %function
tcp_eff_send_mss_impl:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	str	r1, [fp, #-20]
	strh	r3, [fp, #-14]	@ movhi
	ldr	r0, [fp, #-20]
	bl	ip4_route
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L335
	ldrh	r3, [fp, #-14]
	b	.L336
.L335:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #52]
	strh	r3, [fp, #-12]	@ movhi
	ldrsh	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L337
	ldrh	r3, [fp, #-12]
	sub	r3, r3, #40
	strh	r3, [fp, #-10]	@ movhi
	ldrh	r2, [fp, #-10]
	ldrh	r3, [fp, #-14]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	strh	r3, [fp, #-14]	@ movhi
.L337:
	ldrh	r3, [fp, #-14]
.L336:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_eff_send_mss_impl, .-tcp_eff_send_mss_impl
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_netif_ip_addr_changed_pcblist, %function
tcp_netif_ip_addr_changed_pcblist:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-12]
	b	.L339
.L341:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L340
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	tcp_abort
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-12]
	b	.L339
.L340:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
.L339:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L341
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcp_netif_ip_addr_changed_pcblist, .-tcp_netif_ip_addr_changed_pcblist
	.align	2
	.global	tcp_netif_ip_addr_changed
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_netif_ip_addr_changed, %function
tcp_netif_ip_addr_changed:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L347
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L347
	ldr	r3, .L348
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	tcp_netif_ip_addr_changed_pcblist
	ldr	r3, .L348+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	tcp_netif_ip_addr_changed_pcblist
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L347
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L347
	ldr	r3, .L348+8
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L344
.L346:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L345
	ldr	r3, [fp, #-20]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3]
.L345:
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-12]
.L344:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L346
.L347:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L349:
	.align	2
.L348:
	.word	tcp_active_pcbs
	.word	tcp_bound_pcbs
	.word	tcp_listen_pcbs
	.size	tcp_netif_ip_addr_changed, .-tcp_netif_ip_addr_changed
	.align	2
	.global	tcp_debug_state_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcp_debug_state_str, %function
tcp_debug_state_str:
	@ 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	r2, .L352
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L353:
	.align	2
.L352:
	.word	tcp_state_str
	.size	tcp_debug_state_str, .-tcp_debug_state_str
	.data
	.align	2
	.type	iss.7527, %object
	.size	iss.7527, 4
iss.7527:
	.word	6510
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
