
;  GNU C 2.7.2 [AL 1.1, MM 40] RISC NEWS-OS compiled by CC

;  Cc1 defaults:
;  -mmemcpy

;  Cc1 arguments (-G value = 0, Cpu = 3000, ISA = 1):
;  -quiet -dumpbase -O2 -Wall -o

gcc2_compiled.:
__gnu_compiled_c:
	.code
	.align	1
arp_start:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ext	arp_driver+0x0@h	; 	xld.w	%r0,arp_driver
	ext	arp_driver+0x0@m
	ld.w	%r0,arp_driver+0x0@l
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x3		; 	xld.w	%r14,0x000000d4		; 212
	ld.w	%r14,0x14
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ext	0x20		; 	xld.w	%r10,0x00000806		; 2054
	ld.w	%r10,0x6
	ld.w	[%r0],%r10	; 	xld.w	[%r0],%r10
	ext	arp_recv+0x0@h	; 	xld.w	%r10,arp_recv
	ext	arp_recv+0x0@m
	ld.w	%r10,arp_recv+0x0@l
	ext	0x4		; 	xld.w	[%r0+4],%r10
	ld.w	[%r0],%r10
	ext	arp_conf+0x0@h	; 	xld.w	%r10,arp_conf
	ext	arp_conf+0x0@m
	ld.w	%r10,arp_conf+0x0@l
	ext	0x8		; 	xld.w	[%r0+8],%r10
	ld.w	[%r0],%r10
	ld.w	%r12,%r0
	ext	ethernet_open@rm	; 	xcall	ethernet_open
	call	ethernet_open@rl
	popn	%r0
	ret
	.align	1
arp_stop:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ext	arp_driver+0x0@h	; 	xld.w	%r0,arp_driver
	ext	arp_driver+0x0@m
	ld.w	%r0,arp_driver+0x0@l
	ld.w	%r12,%r0
	ext	ethernet_close@rm	; 	xcall	ethernet_close
	call	ethernet_close@rl
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x3		; 	xld.w	%r14,0x000000d4		; 212
	ld.w	%r14,0x14
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	popn	%r0
	ret
	.align	1
arp_recv:
;	.frame	%sp,36,$31		# vars= 20, regs= 4/0, args= 0, extra= 0
;	.mask	0x80070000,-4
;	.fmask	0x00000000,0
	pushn	%r2
	sub	%sp,0x5		; 	xsub	%sp,%sp,20
	ld.w	%r2,%r13
	ld.w	%r0,%r15
	ld.w	%r1,%r14
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	ip_get_config@rm	; 	xcall	ip_get_config
	call	ip_get_config@rl
	cmp	%r0,0x1b	; 	xcmp	%r0,27
	ext	__LX72@rm	; 	xjrle	__L72
	jrle	__LX72@rl
	ld.ub	%r11,[%r1]	; 	xld.ub	%r11,[%r1]
	sll	%r11,0x8	; 	xsll	%r11,8
	ext	0x1		; 	xld.ub	%r10,[%r1+1]
	ld.ub	%r10,[%r1]
	or	%r10,%r11
	cmp	%r10,0x1	; 	xcmp	%r10,1
	ext	__LX72@rm	; 	xjrne	__L72
	jrne	__LX72@rl
	ext	0x2		; 	xld.ub	%r11,[%r1+2]
	ld.ub	%r11,[%r1]
	sll	%r11,0x8	; 	xsll	%r11,8
	ext	0x3		; 	xld.ub	%r10,[%r1+3]
	ld.ub	%r10,[%r1]
	or	%r10,%r11
	ext	0x20		; 	xcmp	%r10,2048
	cmp	%r10,0x0
	ext	__LX72@rm	; 	xjrne	__L72
	jrne	__LX72@rl
	ext	0x4		; 	xld.ub	%r10,[%r1+4]
	ld.ub	%r10,[%r1]
	ld.ub	%r10,%r10
	cmp	%r10,0x6	; 	xcmp	%r10,6
	ext	__LX72@rm	; 	xjrne	__L72
	jrne	__LX72@rl
	ext	0x5		; 	xld.ub	%r10,[%r1+5]
	ld.ub	%r10,[%r1]
	ld.ub	%r10,%r10
	cmp	%r10,0x4	; 	xcmp	%r10,4
	ext	__LX72@rm	; 	xjrne	__L72
	jrne	__LX72@rl
	ext	0x6		; 	xld.ub	%r10,[%r1+6]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,8
	ext	0x7		; 	xld.ub	%r11,[%r1+7]
	ld.ub	%r11,[%r1]
	or	%r11,%r10
	cmp	%r11,0x1	; 	xcmp	%r11,1
	jrne	__LX79		; 	xjrne	__L79
	ext	0x18		; 	xld.ub	%r11,[%r1+24]
	ld.ub	%r11,[%r1]
	sll	%r11,0x8	; 	xsll	%r11,24
	sll	%r11,0x8
	sll	%r11,0x8
	ext	0x19		; 	xld.ub	%r10,[%r1+25]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,16
	sll	%r10,0x8
	or	%r11,%r10
	ext	0x1a		; 	xld.ub	%r10,[%r1+26]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,8
	or	%r11,%r10
	ext	0x1b		; 	xld.ub	%r10,[%r1+27]
	ld.ub	%r10,[%r1]
	or	%r11,%r10
	ld.w	%r10,[%sp+0x2]	; 	xld.w	%r10,[%sp+8]
	cmp	%r11,%r10
	jrne	__LX94		; 	xjrne	__L94
	ext	0xe		; 	xld.ub	%r12,[%r1+14]
	ld.ub	%r12,[%r1]
	sll	%r12,0x8	; 	xsll	%r12,24
	sll	%r12,0x8
	sll	%r12,0x8
	ext	0xf		; 	xld.ub	%r10,[%r1+15]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,16
	sll	%r10,0x8
	or	%r12,%r10
	ext	0x10		; 	xld.ub	%r10,[%r1+16]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,8
	or	%r12,%r10
	ext	0x11		; 	xld.ub	%r10,[%r1+17]
	ld.ub	%r10,[%r1]
	ext	0x8		; 	xadd	%r0,%r1,8
	add	%r0,%r1
	or	%r12,%r10
	ld.w	%r13,%r0
	ext	arp_set_address@rm	; 	xcall	arp_set_address
	call	arp_set_address@rl
	ld.w	%r4,0x0
	ext	0x6		; 	xld.b	[%r1+6],%r4
	ld.b	[%r1],%r4
	ld.w	%r10,0x2	; 	xld.w	%r10,0x00000002		; 2
	ext	0x7		; 	xld.b	[%r1+7],%r10
	ld.b	[%r1],%r10
	ext	0x12		; 	xadd	%r12,%r1,18
	add	%r12,%r1
	ld.w	%r13,%r0
	ld.w	%r14,0xa	; 	xld.w	%r14,0x0000000a		; 10
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r12,%r0
	ext	ethernet_get_address@rm	; 	xcall	ethernet_get_address
	call	ethernet_get_address@rl
	ld.b	%r10,[%sp+0xb]	; 	xld.b	%r10,[%sp+11]
	ext	0xe		; 	xld.b	[%r1+14],%r10
	ld.b	[%r1],%r10
	ld.h	%r10,[%sp+0x5]	; 	xld.h	%r10,[%sp+10]
	ext	0xf		; 	xld.b	[%r1+15],%r10
	ld.b	[%r1],%r10
	ld.w	%r10,[%sp+0x2]	; 	xld.w	%r10,[%sp+8]
	sra	%r10,0x8	; 	xsra	%r10,8
	ext	0x10		; 	xld.b	[%r1+16],%r10
	ld.b	[%r1],%r10
	ld.w	%r10,[%sp+0x2]	; 	xld.w	%r10,[%sp+8]
	ext	0x11		; 	xld.b	[%r1+17],%r10
	ld.b	[%r1],%r10
	ext	arp_driver+0x0@h	; 	xld.w	%r12,arp_driver
	ext	arp_driver+0x0@m
	ld.w	%r12,arp_driver+0x0@l
	ld.w	%r13,%r2
	ld.w	%r14,%r1
	ld.w	%r15,0x1c	; 	xld.w	%r15,0x0000001c		; 28
	ext	ethernet_send@rm	; 	xcall	ethernet_send
	call	ethernet_send@rl
	jp	__LX72		; 	xjp	__L72
__LX79:				; __L79:
	cmp	%r11,0x1	; 	xcmp	%r11,1
	jrlt	__LX72		; 	xjrlt	__L72
	cmp	%r11,0x4	; 	xcmp	%r11,4
	jrgt	__LX72		; 	xjrgt	__L72
	ext	0x18		; 	xld.ub	%r11,[%r1+24]
	ld.ub	%r11,[%r1]
	sll	%r11,0x8	; 	xsll	%r11,24
	sll	%r11,0x8
	sll	%r11,0x8
	ext	0x19		; 	xld.ub	%r10,[%r1+25]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,16
	sll	%r10,0x8
	or	%r11,%r10
	ext	0x1a		; 	xld.ub	%r10,[%r1+26]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,8
	or	%r11,%r10
	ext	0x1b		; 	xld.ub	%r10,[%r1+27]
	ld.ub	%r10,[%r1]
	or	%r11,%r10
	ld.w	%r10,[%sp+0x2]	; 	xld.w	%r10,[%sp+8]
	cmp	%r11,%r10
	jreq	__LX99		; 	xjreq	__L99
__LX94:				; __L94:
	ext	0xe		; 	xld.ub	%r12,[%r1+14]
	ld.ub	%r12,[%r1]
	sll	%r12,0x8	; 	xsll	%r12,24
	sll	%r12,0x8
	sll	%r12,0x8
	ext	0xf		; 	xld.ub	%r10,[%r1+15]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,16
	sll	%r10,0x8
	or	%r12,%r10
	ext	0x10		; 	xld.ub	%r10,[%r1+16]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,8
	or	%r12,%r10
	ext	0x11		; 	xld.ub	%r10,[%r1+17]
	ld.ub	%r10,[%r1]
	or	%r12,%r10
	ld.w	%r13,%sp
	ext	arp_get_address@rm	; 	xcall	arp_get_address
	call	arp_get_address@rl
	cmp	%r10,0x0
	jreq	__LX72		; 	xjreq	__L72
__LX99:				; __L99:
	ext	0xe		; 	xld.ub	%r12,[%r1+14]
	ld.ub	%r12,[%r1]
	sll	%r12,0x8	; 	xsll	%r12,24
	sll	%r12,0x8
	sll	%r12,0x8
	ext	0xf		; 	xld.ub	%r10,[%r1+15]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,16
	sll	%r10,0x8
	or	%r12,%r10
	ext	0x10		; 	xld.ub	%r10,[%r1+16]
	ld.ub	%r10,[%r1]
	sll	%r10,0x8	; 	xsll	%r10,8
	or	%r12,%r10
	ext	0x11		; 	xld.ub	%r10,[%r1+17]
	ld.ub	%r10,[%r1]
	or	%r12,%r10
	ext	0x8		; 	xadd	%r13,%r1,8
	add	%r13,%r1
	ext	arp_set_address@rm	; 	xcall	arp_set_address
	call	arp_set_address@rl
__LX72:				; __L72:
	add	%sp,0x5		; 	xadd	%sp,%sp,20
	popn	%r2
	ret
	.align	1
arp_conf:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	call	arp_gratuitous	; 	xcall	arp_gratuitous
	ret
	.align	1
	.global	arp_gratuitous
arp_gratuitous:
;	.frame	%sp,56,$31		# vars= 48, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0xc		; 	xsub	%sp,%sp,48
	ld.w	%r12,%sp
	ext	ethernet_get_address@rm	; 	xcall	ethernet_get_address
	call	ethernet_get_address@rl
	ext	ethernet_null_address+0x0@h	; 	xld.w	%r0,ethernet_null_address
	ext	ethernet_null_address+0x0@m
	ld.w	%r0,ethernet_null_address+0x0@l
	ld.w	%r12,%sp
	ld.w	%r13,%r0
	ld.w	%r14,0x6	; 	xld.w	%r14,0x00000006		; 6
	ext	memcmp@rm	; 	xcall	memcmp
	call	memcmp@rl
	cmp	%r10,0x0
	jreq	__LX134		; 	xjreq	__L134
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	ip_get_config@rm	; 	xcall	ip_get_config
	call	ip_get_config@rl
	ld.w	%r10,[%sp+0x2]	; 	xld.w	%r10,[%sp+8]
	cmp	%r10,0x0
	jrne	__LX103		; 	xjrne	__L103
__LX134:				; __L134:
	ld.w	%r10,0x3f	; 	xld.w	%r10,-1			; 0xffffffff
	jp	__LX133		; 	xjp	__L133
__LX103:				; __L103:
	ld.w	%r4,0x0
	ld.b	[%sp+0x14],%r4	; 	xld.b	[%sp+20],%r4
	ld.w	%r11,0x1	; 	xld.w	%r11,0x00000001		; 1
	ld.b	[%sp+0x15],%r11	; 	xld.b	[%sp+21],%r11
	ld.w	%r10,0x8	; 	xld.w	%r10,0x00000008		; 8
	ld.b	[%sp+0x16],%r10	; 	xld.b	[%sp+22],%r10
	ld.b	[%sp+0x17],%r4	; 	xld.b	[%sp+23],%r4
	ld.w	%r10,0x6	; 	xld.w	%r10,0x00000006		; 6
	ld.b	[%sp+0x18],%r10	; 	xld.b	[%sp+24],%r10
	ld.w	%r10,0x4	; 	xld.w	%r10,0x00000004		; 4
	ld.b	[%sp+0x19],%r10	; 	xld.b	[%sp+25],%r10
	ld.b	[%sp+0x1a],%r4	; 	xld.b	[%sp+26],%r4
	ld.b	[%sp+0x1b],%r11	; 	xld.b	[%sp+27],%r11
	ld.w	%r11,%sp	; 	xadd	%r11,%sp,28
	add	%r11,0x1c
	ld.w	%r10,%sp
	ld.w	%r12,[%r10]+
	ld.h	%r13,[%r10]+
	ld.w	[%r11]+,%r12
	ld.h	[%r11]+,%r13
	ld.w	%r11,[%sp+0x2]	; 	xld.w	%r11,[%sp+8]
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,24
	sra	%r10,0x8
	sra	%r10,0x8
	ld.b	[%sp+0x22],%r10	; 	xld.b	[%sp+34],%r10
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,16
	sra	%r10,0x8
	ld.b	[%sp+0x23],%r10	; 	xld.b	[%sp+35],%r10
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,8
	ld.b	[%sp+0x24],%r10	; 	xld.b	[%sp+36],%r10
	ld.b	[%sp+0x25],%r11	; 	xld.b	[%sp+37],%r11
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,38
	add	%r12,0x26
	ld.w	%r13,%r0
	ld.w	%r14,0x6	; 	xld.w	%r14,0x00000006		; 6
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r11,[%sp+0x2]	; 	xld.w	%r11,[%sp+8]
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,24
	sra	%r10,0x8
	sra	%r10,0x8
	ld.b	[%sp+0x2c],%r10	; 	xld.b	[%sp+44],%r10
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,16
	sra	%r10,0x8
	ld.b	[%sp+0x2d],%r10	; 	xld.b	[%sp+45],%r10
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,8
	ld.b	[%sp+0x2e],%r10	; 	xld.b	[%sp+46],%r10
	ld.b	[%sp+0x2f],%r11	; 	xld.b	[%sp+47],%r11
	ext	arp_driver+0x0@h	; 	xld.w	%r12,arp_driver
	ext	arp_driver+0x0@m
	ld.w	%r12,arp_driver+0x0@l
	ext	ethernet_broadcast_address+0x0@h	; 	xld.w	%r13,ethernet_broadcast_address
	ext	ethernet_broadcast_address+0x0@m
	ld.w	%r13,ethernet_broadcast_address+0x0@l
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,20
	add	%r14,0x14
	ld.w	%r15,0x1c	; 	xld.w	%r15,0x0000001c		; 28
	ext	ethernet_send@rm	; 	xcall	ethernet_send
	call	ethernet_send@rl
	sra	%r10,0x8	; 	xsra	%r10,31
	sra	%r10,0x8
	sra	%r10,0x8
	sra	%r10,0x7
__LX133:				; __L133:
	add	%sp,0xc		; 	xadd	%sp,%sp,48
	popn	%r0
	ret
	.align	1
arp_get_address:
;	.frame	%sp,20,$31		# vars= 0, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	ld.w	%r2,%r12
	ld.w	%r3,%r13
	ld.w	%r11,0x0
	ext	arp_driver+0x18@h	; 	xld.w	%r1,arp_driver+24
	ext	arp_driver+0x18@m
	ld.w	%r1,arp_driver+0x18@l
__LX139:				; __L139:
	ld.w	%r10,0xc	; 	xld.w	%r10,0x0000000c		; 12
	mlt.w	%r11,%r10
	ld.w	%r0,%alr
	ext	arp_driver+0x14@h	; 	xld.w	%r10,[%r0+arp_driver+20]
	ext	arp_driver+0x14@m
	ld.w	%r9,arp_driver+0x14@l
	add	%r9,%r0
	ld.w	%r10,[%r9]
	cmp	%r10,%r2
	jrne	__LX138		; 	xjrne	__L138
	ld.w	%r12,%r3
	ld.w	%r13,%r0
	add	%r13,%r1
	ld.w	%r14,0x6	; 	xld.w	%r14,0x00000006		; 6
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ext	0x8		; 	xadd	%r12,%r1,8
	add	%r12,%r1
	ext	arp_driver+0x14@h	; 	xld.w	%r13,arp_driver+20
	ext	arp_driver+0x14@m
	ld.w	%r13,arp_driver+0x14@l
	ld.w	%r14,%r0
	ext	memmove@rm	; 	xcall	memmove
	call	memmove@rl
	ext	arp_driver+0x14@ah	; 	xld.w	[arp_driver+20],%r2
	ext	arp_driver+0x14@al
	ld.w	[%r8],%r2
	ld.w	%r12,%r1
	ld.w	%r13,%r3
	ld.w	%r14,0x6	; 	xld.w	%r14,0x00000006		; 6
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r10,0x0
	jp	__LX142		; 	xjp	__L142
__LX138:				; __L138:
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	cmp	%r11,0xf	; 	xcmp	%r11,15
	jrle	__LX139		; 	xjrle	__L139
	ld.w	%r10,0x3f	; 	xld.w	%r10,-1			; 0xffffffff
__LX142:				; __L142:
	popn	%r3
	ret
	.align	1
arp_set_address:
;	.frame	%sp,20,$31		# vars= 0, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	ld.w	%r2,%r12
	ld.w	%r3,%r13
	ld.w	%r14,0x0
	ld.w	%r15,0xc	; 	xld.w	%r15,0x0000000c		; 12
	ext	arp_driver+0x14@h	; 	xld.w	%r11,arp_driver+20
	ext	arp_driver+0x14@m
	ld.w	%r11,arp_driver+0x14@l
__LX147:				; __L147:
	ld.w	%r10,[%r11]	; 	xld.w	%r10,[%r11]
	cmp	%r10,%r2
	jreq	__LX145		; 	xjreq	__L145
	add	%r11,%r15
	add	%r14,0x1	; 	xadd	%r14,%r14,1
	cmp	%r14,0xe	; 	xcmp	%r14,14
	jrle	__LX147		; 	xjrle	__L147
__LX145:				; __L145:
	ext	arp_driver+0x20@h	; 	xld.w	%r0,arp_driver+32
	ext	arp_driver+0x20@m
	ld.w	%r0,arp_driver+0x20@l
	ext	0xc		; 	xsub	%r1,%r0,12
	sub	%r1,%r0
	ld.w	%r12,%r0
	ld.w	%r13,%r1
	mlt.w	%r14,%r15
	ld.w	%r14,%alr
	ext	memmove@rm	; 	xcall	memmove
	call	memmove@rl
	ld.w	[%r1],%r2	; 	xld.w	[%r1],%r2
	ext	0x8		; 	xsub	%r12,%r0,8
	sub	%r12,%r0
	ld.w	%r13,%r3
	ld.w	%r14,0x6	; 	xld.w	%r14,0x00000006		; 6
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	popn	%r3
	ret
	.align	1
	.global	arp_request
arp_request:
;	.frame	%sp,72,$31		# vars= 52, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0xd		; 	xsub	%sp,%sp,52
	ld.w	%r1,%r12
	ld.w	[%sp+0xb],%r13	; 	xld.w	[%sp+44],%r13
	ld.w	%r3,%r14
	ext	pceTimerGetCount@rm	; 	xcall	pceTimerGetCount
	call	pceTimerGetCount@rl
	ld.w	[%sp+0xc],%r10	; 	xld.w	[%sp+48],%r10
	ld.w	%r2,0x0
	ext	get_psr@rm	; 	xcall	get_psr
	call	get_psr@rl
	and	%r10,0x10	; 	xand	%r10,%r10,0x00000010
	jreq	__LX151		; 	xjreq	__L151
	cmp	%r3,0x0
	jrge	__LX154		; 	xjrge	__L154
	ext	0xf		; 	xld.w	%r3,0x000003e8		; 1000
	ld.w	%r3,0x28
	jp	__LX154		; 	xjp	__L154
__LX194:				; __L194:
	ld.w	%r10,%r0
	jp	__LX193		; 	xjp	__L193
__LX151:				; __L151:
	ld.w	%r3,%r2
__LX154:				; __L154:
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ld.w	%r12,%r1
	ld.w	%r13,[%sp+0xb]	; 	xld.w	%r13,[%sp+44]
	call	arp_get_address	; 	xcall	arp_get_address
	ld.w	%r0,%r10
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	cmp	%r0,0x0
	jreq	__LX194		; 	xjreq	__L194
	cmp	%r2,0x0
	jrne	__LX156		; 	xjrne	__L156
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,32
	add	%r12,0x20
	ext	ip_get_config@rm	; 	xcall	ip_get_config
	call	ip_get_config@rl
	ld.w	%r4,0x0
	ld.b	[%sp+0x4],%r4	; 	xld.b	[%sp+4],%r4
	ld.w	%r4,0x1		; 	xld.w	%r4,0x00000001		; 1
	ld.b	[%sp+0x5],%r4	; 	xld.b	[%sp+5],%r4
	ld.w	%r10,0x8	; 	xld.w	%r10,0x00000008		; 8
	ld.b	[%sp+0x6],%r10	; 	xld.b	[%sp+6],%r10
	ld.b	[%sp+0x7],%r2	; 	xld.b	[%sp+7],%r2
	ld.w	%r10,0x6	; 	xld.w	%r10,0x00000006		; 6
	ld.b	[%sp+0x8],%r10	; 	xld.b	[%sp+8],%r10
	ld.w	%r10,0x4	; 	xld.w	%r10,0x00000004		; 4
	ld.b	[%sp+0x9],%r10	; 	xld.b	[%sp+9],%r10
	ld.b	[%sp+0xa],%r2	; 	xld.b	[%sp+10],%r2
	ld.b	[%sp+0xb],%r4	; 	xld.b	[%sp+11],%r4
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,12
	add	%r12,0xc
	ext	ethernet_get_address@rm	; 	xcall	ethernet_get_address
	call	ethernet_get_address@rl
	ld.w	%r11,[%sp+0x8]	; 	xld.w	%r11,[%sp+32]
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,24
	sra	%r10,0x8
	sra	%r10,0x8
	ld.b	[%sp+0x12],%r10	; 	xld.b	[%sp+18],%r10
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,16
	sra	%r10,0x8
	ld.b	[%sp+0x13],%r10	; 	xld.b	[%sp+19],%r10
	ld.w	%r10,%r11
	sra	%r10,0x8	; 	xsra	%r10,8
	ld.b	[%sp+0x14],%r10	; 	xld.b	[%sp+20],%r10
	ld.b	[%sp+0x15],%r11	; 	xld.b	[%sp+21],%r11
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,22
	add	%r12,0x16
	ld.w	%r13,%r2
	ld.w	%r14,0x6	; 	xld.w	%r14,0x00000006		; 6
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ld.w	%r10,%r1
	sra	%r10,0x8	; 	xsra	%r10,24
	sra	%r10,0x8
	sra	%r10,0x8
	ld.b	[%sp+0x1c],%r10	; 	xld.b	[%sp+28],%r10
	ld.w	%r10,%r1
	sra	%r10,0x8	; 	xsra	%r10,16
	sra	%r10,0x8
	ld.b	[%sp+0x1d],%r10	; 	xld.b	[%sp+29],%r10
	ld.w	%r10,%r1
	sra	%r10,0x8	; 	xsra	%r10,8
	ld.b	[%sp+0x1e],%r10	; 	xld.b	[%sp+30],%r10
	ld.b	[%sp+0x1f],%r1	; 	xld.b	[%sp+31],%r1
	ext	arp_driver+0x0@h	; 	xld.w	%r12,arp_driver
	ext	arp_driver+0x0@m
	ld.w	%r12,arp_driver+0x0@l
	ext	ethernet_broadcast_address+0x0@h	; 	xld.w	%r13,ethernet_broadcast_address
	ext	ethernet_broadcast_address+0x0@m
	ld.w	%r13,ethernet_broadcast_address+0x0@l
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,4
	add	%r14,0x4
	ld.w	%r15,0x1c	; 	xld.w	%r15,0x0000001c		; 28
	ext	ethernet_send@rm	; 	xcall	ethernet_send
	call	ethernet_send@rl
	cmp	%r10,0x0
	jrlt	__LX156		; 	xjrlt	__L156
	ld.w	%r2,0x1		; 	xld.w	%r2,0x00000001		; 1
__LX156:				; __L156:
	ext	pceTimerGetCount@rm	; 	xcall	pceTimerGetCount
	call	pceTimerGetCount@rl
	ld.w	%r4,[%sp+0xc]	; 	xld.w	%r4,[%sp+48]
	sub	%r10,%r4
	cmp	%r10,%r3
	jrult	__LX154		; 	xjrult	__L154
	ld.w	%r10,0x3f	; 	xld.w	%r10,-1			; 0xffffffff
__LX193:				; __L193:
	add	%sp,0xd		; 	xadd	%sp,%sp,52
	popn	%r3
	ret
	.align	1
	.global	arp_table
arp_table:
;	.frame	%sp,32,$31		# vars= 12, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x3		; 	xsub	%sp,%sp,12
	ld.w	%r1,%r12
	ld.w	[%sp+0x1],%r13	; 	xld.w	[%sp+4],%r13
	cmp	%r13,0x10	; 	xcmp	%r13,16
	jrle	__LX196		; 	xjrle	__L196
	ld.w	%r15,0x10	; 	xld.w	%r15,0x00000010		; 16
	ld.w	[%sp+0x1],%r15	; 	xld.w	[%sp+4],%r15
__LX196:				; __L196:
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ld.w	%r3,0x0
	ld.w	%r15,[%sp+0x1]	; 	xld.w	%r15,[%sp+4]
	cmp	%r3,%r15
	jrge	__LX201		; 	xjrge	__L201
	ld.w	%r11,0xc	; 	xld.w	%r11,0x0000000c		; 12
	ext	arp_driver+0x14@h	; 	xld.w	%r0,arp_driver+20
	ext	arp_driver+0x14@m
	ld.w	%r0,arp_driver+0x14@l
	ld.w	%r2,%r1
	ld.w	%r1,%r0
__LX203:				; __L203:
	ld.w	%r10,[%r1]	; 	xld.w	%r10,[%r1]
	cmp	%r10,0x0
	jreq	__LX201		; 	xjreq	__L201
	ld.w	%r12,%r2
	ld.w	%r13,%r0
	ld.w	%r14,%r11
	ld.w	[%sp+0x2],%r11	; 	xld.w	[%sp+8],%r11
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r11,[%sp+0x2]	; 	xld.w	%r11,[%sp+8]
	add	%r0,%r11
	add	%r2,%r11
	add	%r1,%r11
	add	%r3,0x1		; 	xadd	%r3,%r3,1
	ld.w	%r15,[%sp+0x1]	; 	xld.w	%r15,[%sp+4]
	cmp	%r3,%r15
	jrlt	__LX203		; 	xjrlt	__L203
__LX201:				; __L201:
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	ld.w	%r10,%r3
	add	%sp,0x3		; 	xadd	%sp,%sp,12
	popn	%r3
	ret
	.code
	.align	2
icmp_echo_data:
	.ascii	"PIECE-ME\000"
	.code
	.align	1
icmp_start:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ext	icmp_driver+0x0@h	; 	xld.w	%r0,icmp_driver
	ext	icmp_driver+0x0@m
	ld.w	%r0,icmp_driver+0x0@l
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x0		; 	xld.w	%r14,0x00000028		; 40
	ld.w	%r14,0x28
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ld.w	%r10,0x1	; 	xld.w	%r10,0x00000001		; 1
	ld.w	[%r0],%r10	; 	xld.w	[%r0],%r10
	ext	icmp_recv+0x0@h	; 	xld.w	%r10,icmp_recv
	ext	icmp_recv+0x0@m
	ld.w	%r10,icmp_recv+0x0@l
	ext	0x4		; 	xld.w	[%r0+4],%r10
	ld.w	[%r0],%r10
	ld.w	%r12,%r0
	ext	ip_open@rm	; 	xcall	ip_open
	call	ip_open@rl
	popn	%r0
	ret
	.align	1
icmp_stop:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ext	icmp_driver+0x0@h	; 	xld.w	%r0,icmp_driver
	ext	icmp_driver+0x0@m
	ld.w	%r0,icmp_driver+0x0@l
	ld.w	%r12,%r0
	ext	ip_close@rm	; 	xcall	ip_close
	call	ip_close@rl
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x0		; 	xld.w	%r14,0x00000028		; 40
	ld.w	%r14,0x28
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	popn	%r0
	ret
	.align	1
icmp_recv:
;	.frame	%sp,24,$31		# vars= 4, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ld.w	[%sp+0x0],%r12	; 	xld.w	[%sp],%r12
	ld.w	%r3,%r13
	ld.w	%r1,%r15
	ld.w	%r2,[%sp+0x6]	; 	xld.w	%r2,[%sp+24]
	ld.w	%r0,%r1
	cmp	%r2,0x3		; 	xcmp	%r2,3
	jrle	__LX209		; 	xjrle	__L209
	ld.w	%r12,%r0
	ld.w	%r13,%r2
	ext	internet_checksum@rm	; 	xcall	internet_checksum
	call	internet_checksum@rl
	cmp	%r10,0x0
	jrne	__LX209		; 	xjrne	__L209
	ld.ub	%r10,[%r0]	; 	xld.ub	%r10,[%r0]
	ld.ub	%r10,%r10
	cmp	%r10,0x0
	jreq	__LX213		; 	xjreq	__L213
	cmp	%r10,0x8	; 	xcmp	%r10,8
	jreq	__LX219		; 	xjreq	__L219
	jp	__LX209		; 	xjp	__L209
__LX213:				; __L213:
	cmp	%r2,0x10	; 	xcmp	%r2,16
	jrne	__LX209		; 	xjrne	__L209
	ext	icmp_driver+0x14@h	; 	xld.w	%r1,icmp_driver+20
	ext	icmp_driver+0x14@m
	ld.w	%r1,icmp_driver+0x14@l
	ld.w	%r10,[%r1]	; 	xld.w	%r10,[%r1]
	cmp	%r3,%r10
	jrne	__LX209		; 	xjrne	__L209
	ext	0x4		; 	xld.ub	%r10,[%r0+4]
	ld.ub	%r10,[%r0]
	sll	%r10,0x8	; 	xsll	%r10,8
	ext	0x5		; 	xld.ub	%r11,[%r0+5]
	ld.ub	%r11,[%r0]
	or	%r11,%r10
	ext	0x4		; 	xld.w	%r10,[%r1+4]
	ld.w	%r10,[%r1]
	cmp	%r11,%r10
	jrne	__LX209		; 	xjrne	__L209
	ext	0x6		; 	xld.ub	%r10,[%r0+6]
	ld.ub	%r10,[%r0]
	sll	%r10,0x8	; 	xsll	%r10,8
	ext	0x7		; 	xld.ub	%r11,[%r0+7]
	ld.ub	%r11,[%r0]
	or	%r11,%r10
	ext	0x8		; 	xld.w	%r10,[%r1+8]
	ld.w	%r10,[%r1]
	cmp	%r11,%r10
	jrne	__LX209		; 	xjrne	__L209
	ext	0x8		; 	xadd	%r12,%r0,8
	add	%r12,%r0
	ext	icmp_echo_data+0x0@h	; 	xld.w	%r13,icmp_echo_data
	ext	icmp_echo_data+0x0@m
	ld.w	%r13,icmp_echo_data+0x0@l
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	memcmp@rm	; 	xcall	memcmp
	call	memcmp@rl
	cmp	%r10,0x0
	jrne	__LX209		; 	xjrne	__L209
	ext	0xc		; 	xadd	%r11,%r1,12
	add	%r11,%r1
	jp	__LX226		; 	xjp	__L226
__LX219:				; __L219:
	ld.w	%r4,0x0
	ld.b	[%r1],%r4	; 	xld.b	[%r1],%r4
	ld.w	%r12,%r1
	ld.w	%r13,%r2
	ld.w	%r14,0x2	; 	xld.w	%r14,0x00000002		; 2
	ext	update_internet_checksum@rm	; 	xcall	update_internet_checksum
	call	update_internet_checksum@rl
	ld.w	%r12,[%sp+0x0]	; 	xld.w	%r12,[%sp]
	ld.w	%r13,%r3
	ld.w	%r14,%r1
	ld.w	%r15,%r2
	ext	ip_send@rm	; 	xcall	ip_send
	call	ip_send@rl
	ext	icmp_driver+0x24@h	; 	xld.w	%r11,icmp_driver+36
	ext	icmp_driver+0x24@m
	ld.w	%r11,icmp_driver+0x24@l
__LX226:				; __L226:
	ld.w	%r10,[%r11]	; 	xld.w	%r10,[%r11]
	add	%r10,0x1	; 	xadd	%r10,%r10,1
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
__LX209:				; __L209:
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r3
	ret
	.align	1
	.global	icmp_echo_request
icmp_echo_request:
;	.frame	%sp,48,$31		# vars= 28, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x7		; 	xsub	%sp,%sp,28
	ld.w	[%sp+0x5],%r12	; 	xld.w	[%sp+20],%r12
	ld.w	[%sp+0x6],%r13	; 	xld.w	[%sp+24],%r13
	ext	pceTimerGetCount@rm	; 	xcall	pceTimerGetCount
	call	pceTimerGetCount@rl
	ld.w	%r3,%r10
	ld.w	%r1,0x0
	ld.w	%r4,[%sp+0x6]	; 	xld.w	%r4,[%sp+24]
	cmp	%r4,0x0
	jrge	__LX228		; 	xjrge	__L228
	ext	0xf		; 	xld.w	%r4,0x000003e8		; 1000
	ld.w	%r4,0x28
	ld.w	[%sp+0x6],%r4	; 	xld.w	[%sp+24],%r4
__LX228:				; __L228:
	ld.w	%r10,0x8	; 	xld.w	%r10,0x00000008		; 8
	ld.b	[%sp+0x0],%r10	; 	xld.b	[%sp],%r10
	ld.w	%r4,0x0
	ld.b	[%sp+0x1],%r4	; 	xld.b	[%sp+1],%r4
	ld.uh	%r11,%r3
	ld.w	%r10,%r11
	srl	%r10,0x8	; 	xsrl	%r10,8
	ld.b	[%sp+0x4],%r10	; 	xld.b	[%sp+4],%r10
	ld.b	[%sp+0x5],%r11	; 	xld.b	[%sp+5],%r11
	ld.b	[%sp+0x6],%r1	; 	xld.b	[%sp+6],%r1
	ld.b	[%sp+0x7],%r1	; 	xld.b	[%sp+7],%r1
	ld.w	%r11,%sp	; 	xadd	%r11,%sp,8
	add	%r11,0x8
	ext	icmp_echo_data+0x0@h	; 	xld.w	%r10,icmp_echo_data
	ext	icmp_echo_data+0x0@m
	ld.w	%r10,icmp_echo_data+0x0@l
	ld.w	%r12,[%r10]+
	ld.w	%r13,[%r10]+
	ld.w	[%r11]+,%r12
	ld.w	[%r11]+,%r13
	ld.w	%r12,%sp
	ld.w	%r13,0x10	; 	xld.w	%r13,0x00000010		; 16
	ld.w	%r14,0x2	; 	xld.w	%r14,0x00000002		; 2
	ext	update_internet_checksum@rm	; 	xcall	update_internet_checksum
	call	update_internet_checksum@rl
	ld.w	%r0,%sp		; 	xadd	%r0,%sp,16
	add	%r0,0x10
	ld.w	%r12,%r0
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	icmp_driver+0x14@h	; 	xld.w	%r12,icmp_driver+20
	ext	icmp_driver+0x14@m
	ld.w	%r12,icmp_driver+0x14@l
	ld.w	%r4,[%sp+0x5]	; 	xld.w	%r4,[%sp+20]
	ld.w	[%r12],%r4	; 	xld.w	[%r12],%r4
	ld.ub	%r11,[%sp+0x4]	; 	xld.ub	%r11,[%sp+4]
	sll	%r11,0x8	; 	xsll	%r11,8
	ld.ub	%r10,[%sp+0x5]	; 	xld.ub	%r10,[%sp+5]
	or	%r10,%r11
	ext	0x4		; 	xld.w	[%r12+4],%r10
	ld.w	[%r12],%r10
	ld.ub	%r11,[%sp+0x6]	; 	xld.ub	%r11,[%sp+6]
	sll	%r11,0x8	; 	xsll	%r11,8
	ld.ub	%r10,[%sp+0x7]	; 	xld.ub	%r10,[%sp+7]
	or	%r10,%r11
	ext	0x8		; 	xld.w	[%r12+8],%r10
	ld.w	[%r12],%r10
	ext	0xc		; 	xld.w	%r2,[%r12+12]
	ld.w	%r2,[%r12]
	ld.w	%r12,%r0
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
__LX249:				; __L249:
	cmp	%r1,0x0
	jrne	__LX252		; 	xjrne	__L252
	ext	icmp_driver+0x0@h	; 	xld.w	%r12,icmp_driver
	ext	icmp_driver+0x0@m
	ld.w	%r12,icmp_driver+0x0@l
	ld.w	%r13,[%sp+0x5]	; 	xld.w	%r13,[%sp+20]
	ld.w	%r14,%sp
	ld.w	%r15,0x10	; 	xld.w	%r15,0x00000010		; 16
	ext	ip_send@rm	; 	xcall	ip_send
	call	ip_send@rl
	cmp	%r10,0x0
	jrlt	__LX252		; 	xjrlt	__L252
	ld.w	%r1,0x1		; 	xld.w	%r1,0x00000001		; 1
__LX252:				; __L252:
	ext	pceTimerGetCount@rm	; 	xcall	pceTimerGetCount
	call	pceTimerGetCount@rl
	ld.w	%r11,%r10
	sub	%r11,%r3
	ext	icmp_driver+0x20@ah	; 	xld.w	%r10,[icmp_driver+32]
	ext	icmp_driver+0x20@al
	ld.w	%r10,[%r8]
	cmp	%r10,%r2
	jrne	__LX251		; 	xjrne	__L251
	ld.w	%r4,[%sp+0x6]	; 	xld.w	%r4,[%sp+24]
	cmp	%r11,%r4
	jrlt	__LX249		; 	xjrlt	__L249
	ld.w	%r10,0x3f	; 	xld.w	%r10,-1			; 0xffffffff
	jp	__LX256		; 	xjp	__L256
__LX251:				; __L251:
	ld.w	%r10,%r11
__LX256:				; __L256:
	add	%sp,0x7		; 	xadd	%sp,%sp,28
	popn	%r3
	ret
	.align	1
	.global	icmp_stat
icmp_stat:
;	.frame	%sp,12,$31		# vars= 4, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ld.w	%r0,%r12
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	icmp_driver+0x20@ah	; 	xld.w	%r10,[icmp_driver+32]
	ext	icmp_driver+0x20@al
	ld.w	%r10,[%r8]
	ext	icmp_driver+0x24@ah	; 	xld.w	%r11,[icmp_driver+36]
	ext	icmp_driver+0x24@al
	ld.w	%r11,[%r8]
	ld.w	[%r0],%r10	; 	xld.w	[%r0],%r10
	ext	0x4		; 	xld.w	[%r0+4],%r11
	ld.w	[%r0],%r11
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r0
	ret
	.code
	.align	2
__LC0:
	.ascii	"clipip.$(%d)\000"
	.code
	.align	1
ip_find_client:
;	.frame	%sp,12,$31		# vars= 0, regs= 1/0, args= 8, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	sub	%sp,0x2		; 	xsub	%sp,%sp,8
	ext	ip_driver+0x20@h	; 	xld.w	%r14,ip_driver+32
	ext	ip_driver+0x20@m
	ld.w	%r14,ip_driver+0x20@l
	ld.w	%r11,[%r14]	; 	xld.w	%r11,[%r14]
	cmp	%r11,%r14
	jreq	__LX264		; 	xjreq	__L264
	ext	__LC0+0x0@h	; 	xld.w	%r15,__LC0
	ext	__LC0+0x0@m
	ld.w	%r15,__LC0+0x0@l
__LX265:				; __L265:
	cmp	%r11,0x0
	jrne	__LX266		; 	xjrne	__L266
	ld.w	[%sp+0x0],%r15	; 	xld.w	[%sp],%r15
	ext	0x8		; 	xld.w	%r10,0x00000216		; 534
	ld.w	%r10,0x16
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX266:				; __L266:
	ext	0xc		; 	xsub	%r13,%r11,12
	sub	%r13,%r11
	ld.w	%r10,[%r13]	; 	xld.w	%r10,[%r13]
	cmp	%r10,%r12
	jrne	__LX267		; 	xjrne	__L267
	ld.w	%r10,%r13
	jp	__LX269		; 	xjp	__L269
__LX267:				; __L267:
	ld.w	%r11,[%r11]	; 	xld.w	%r11,[%r11]
	cmp	%r11,%r14
	jrne	__LX265		; 	xjrne	__L265
__LX264:				; __L264:
	ld.w	%r10,0x0
__LX269:				; __L269:
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret
	.align	1
	.global	ip_start
ip_start:
;	.frame	%sp,12,$31		# vars= 4, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	call	ip_stop		; 	xcall	ip_stop
	ext	ip_driver+0x0@h	; 	xld.w	%r0,ip_driver
	ext	ip_driver+0x0@m
	ld.w	%r0,ip_driver+0x0@l
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x0		; 	xld.w	%r14,0x00000028		; 40
	ld.w	%r14,0x28
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ext	0x20		; 	xadd	%r12,%r0,32
	add	%r12,%r0
	ext	InitializeListHead@rm	; 	xcall	InitializeListHead
	call	InitializeListHead@rl
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ld.w	%r14,0x14	; 	xld.w	%r14,0x00000014		; 20
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ext	0x20		; 	xld.w	%r10,0x00000800		; 2048
	ld.w	%r10,0x0
	ld.w	[%r0],%r10	; 	xld.w	[%r0],%r10
	ext	ip_recv+0x0@h	; 	xld.w	%r10,ip_recv
	ext	ip_recv+0x0@m
	ld.w	%r10,ip_recv+0x0@l
	ext	0x4		; 	xld.w	[%r0+4],%r10
	ld.w	[%r0],%r10
	ld.w	%r12,%r0
	ext	ethernet_open@rm	; 	xcall	ethernet_open
	call	ethernet_open@rl
	ext	arp_start@rm	; 	xcall	arp_start
	call	arp_start@rl
	ext	icmp_start@rm	; 	xcall	icmp_start
	call	icmp_start@rl
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r0
	ret
	.align	1
	.global	ip_stop
ip_stop:
;	.frame	%sp,12,$31		# vars= 4, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ext	ip_driver+0x20@h	; 	xld.w	%r0,ip_driver+32
	ext	ip_driver+0x20@m
	ld.w	%r0,ip_driver+0x20@l
	ld.w	%r10,[%r0]	; 	xld.w	%r10,[%r0]
	cmp	%r10,0x0
	jreq	__LX275		; 	xjreq	__L275
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	icmp_stop@rm	; 	xcall	icmp_stop
	call	icmp_stop@rl
	ext	arp_stop@rm	; 	xcall	arp_stop
	call	arp_stop@rl
	sub	%r0,0x20	; 	xsub	%r0,%r0,32
	ld.w	%r12,%r0
	ext	ethernet_close@rm	; 	xcall	ethernet_close
	call	ethernet_close@rl
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x0		; 	xld.w	%r14,0x00000028		; 40
	ld.w	%r14,0x28
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
__LX275:				; __L275:
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r0
	ret
	.align	1
	.global	ip_open
ip_open:
;	.frame	%sp,20,$31		# vars= 4, regs= 2/0, args= 8, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x3		; 	xsub	%sp,%sp,12
	ld.w	%r0,%r12
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ld.w	%r12,[%r0]	; 	xld.w	%r12,[%r0]
	ext	0x3		; 	xcmp	%r12,255
	cmp	%r12,0x3f
	jrule	__LX285		; 	xjrule	__L285
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x9		; 	xld.w	%r10,0x0000025e		; 606
	ld.w	%r10,0x1e
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX285:				; __L285:
	ext	ip_find_client@rm	; 	xcall	ip_find_client
	call	ip_find_client@rl
	cmp	%r10,0x0
	jreq	__LX286		; 	xjreq	__L286
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x9		; 	xld.w	%r10,0x00000262		; 610
	ld.w	%r10,0x22
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX286:				; __L286:
	ext	ip_driver+0x20@h	; 	xld.w	%r12,ip_driver+32
	ext	ip_driver+0x20@m
	ld.w	%r12,ip_driver+0x20@l
	ext	0xc		; 	xadd	%r13,%r0,12
	add	%r13,%r0
	ext	InsertTailList@rm	; 	xcall	InsertTailList
	call	InsertTailList@rl
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x3		; 	xadd	%sp,%sp,12
	popn	%r0
	ret
	.align	1
	.global	ip_close
ip_close:
;	.frame	%sp,20,$31		# vars= 4, regs= 2/0, args= 8, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x3		; 	xsub	%sp,%sp,12
	ld.w	%r0,%r12
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ld.w	%r12,[%r0]	; 	xld.w	%r12,[%r0]
	ext	ip_find_client@rm	; 	xcall	ip_find_client
	call	ip_find_client@rl
	cmp	%r10,%r0
	jreq	__LX292		; 	xjreq	__L292
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x9		; 	xld.w	%r10,0x00000271		; 625
	ld.w	%r10,0x31
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX292:				; __L292:
	ext	0xc		; 	xadd	%r12,%r10,12
	add	%r12,%r10
	ext	RemoveEntryList@rm	; 	xcall	RemoveEntryList
	call	RemoveEntryList@rl
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x3		; 	xadd	%sp,%sp,12
	popn	%r0
	ret
	.align	1
	.global	ip_send
ip_send:
;	.frame	%sp,56,$31		# vars= 28, regs= 5/0, args= 8, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x9		; 	xsub	%sp,%sp,36
	ld.w	[%sp+0x7],%r12	; 	xld.w	[%sp+28],%r12
	ld.w	%r1,%r13
	ld.w	[%sp+0x8],%r14	; 	xld.w	[%sp+32],%r14
	ld.w	%r2,%r15
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,16
	add	%r12,0x10
	ext	ip_get_config@rm	; 	xcall	ip_get_config
	call	ip_get_config@rl
	cmp	%r2,0x0
	jrge	__LX295		; 	xjrge	__L295
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0xa		; 	xld.w	%r10,0x00000289		; 649
	ld.w	%r10,0x9
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX295:				; __L295:
	ext	0x14		; 	xadd	%r3,%r2,20
	add	%r3,%r2
	ld.w	%r12,%r3
	ext	malloc@rm	; 	xcall	malloc
	call	malloc@rl
	ld.w	%r0,%r10
	cmp	%r0,0x0
	jrne	__LX296		; 	xjrne	__L296
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0xa		; 	xld.w	%r10,0x00000290		; 656
	ld.w	%r10,0x10
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX296:				; __L296:
	ld.w	%r12,[%sp+0x5]	; 	xld.w	%r12,[%sp+20]
	not	%r10,%r12
	ld.w	%r13,[%sp+0x4]	; 	xld.w	%r13,[%sp+16]
	ld.w	%r4,%r13
	or	%r4,%r10
	ld.w	%r10,%r4
	cmp	%r1,%r10
	jrne	__LX297		; 	xjrne	__L297
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	ethernet_broadcast_address+0x0@h	; 	xld.w	%r13,ethernet_broadcast_address
	ext	ethernet_broadcast_address+0x0@m
	ld.w	%r13,ethernet_broadcast_address+0x0@l
	ld.w	%r14,0x6	; 	xld.w	%r14,0x00000006		; 6
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	jp	__LX298		; 	xjp	__L298
__LX297:				; __L297:
	ld.w	%r11,%r1
	and	%r11,%r12
	ld.w	%r10,%r13
	and	%r10,%r12
	ld.w	%r12,%r1
	cmp	%r11,%r10
	jreq	__LX299		; 	xjreq	__L299
	ld.w	%r12,[%sp+0x6]	; 	xld.w	%r12,[%sp+24]
__LX299:				; __L299:
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,8
	add	%r13,0x8
	ld.w	%r14,0x3f	; 	xld.w	%r14,-1			; 0xffffffff
	ext	arp_request@rm	; 	xcall	arp_request
	call	arp_request@rl
	cmp	%r10,0x0
	jrne	__LX305		; 	xjrne	__L305
__LX298:				; __L298:
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x0		; 	xld.w	%r14,0x00000020		; 32
	ld.w	%r14,0x20
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ld.w	%r4,[%sp+0x7]	; 	xld.w	%r4,[%sp+28]
	ld.w	%r10,[%r4]	; 	xld.w	%r10,[%r4]
	ext	0xc		; 	xld.w	[%r0+12],%r10
	ld.w	[%r0],%r10
	ext	ip_driver+0x14@ah	; 	xld.w	%r10,[ip_driver+20]
	ext	ip_driver+0x14@al
	ld.w	%r10,[%r8]
	ext	0x10		; 	xld.w	[%r0+16],%r10
	ld.w	[%r0],%r10
	ext	0x14		; 	xld.w	[%r0+20],%r1
	ld.w	[%r0],%r1
	ld.w	%r4,[%sp+0x8]	; 	xld.w	%r4,[%sp+32]
	ext	0x18		; 	xld.w	[%r0+24],%r4
	ld.w	[%r0],%r4
	ext	0x1c		; 	xld.w	[%r0+28],%r2
	ld.w	[%r0],%r2
	ld.w	%r12,%r0
	ld.w	%r13,%r0
	ld.w	%r14,%r3
	ext	pack_ip_header@rm	; 	xcall	pack_ip_header
	call	pack_ip_header@rl
	cmp	%r10,%r3
	jreq	__LX303		; 	xjreq	__L303
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0xa		; 	xld.w	%r10,0x000002ac		; 684
	ld.w	%r10,0x2c
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX303:				; __L303:
	ext	ip_driver+0x14@h	; 	xld.w	%r12,ip_driver+20
	ext	ip_driver+0x14@m
	ld.w	%r12,ip_driver+0x14@l
	sub	%r12,0x14	; 	xsub	%r12,%r12,20
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,8
	add	%r13,0x8
	ld.w	%r14,%r0
	ld.w	%r15,%r10
	ext	ethernet_send@rm	; 	xcall	ethernet_send
	call	ethernet_send@rl
	cmp	%r10,0x0
	jrge	__LX302		; 	xjrge	__L302
__LX305:				; __L305:
	ld.w	%r2,0x3f	; 	xld.w	%r2,-1			; 0xffffffff
__LX302:				; __L302:
	ld.w	%r12,%r0
	ext	free@rm		; 	xcall	free
	call	free@rl
	ld.w	%r10,%r2
	add	%sp,0x9		; 	xadd	%sp,%sp,36
	popn	%r3
	ret
	.align	1
	.global	ip_set_config
ip_set_config:
;	.frame	%sp,28,$31		# vars= 4, regs= 4/0, args= 8, extra= 0
;	.mask	0x80070000,-4
;	.fmask	0x00000000,0
	pushn	%r2
	sub	%sp,0x3		; 	xsub	%sp,%sp,12
	ld.w	%r1,%r12
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	ip_driver+0x14@h	; 	xld.w	%r0,ip_driver+20
	ext	ip_driver+0x14@m
	ld.w	%r0,ip_driver+0x14@l
	ld.w	%r12,%r0
	ld.w	%r13,%r1
	ld.w	%r14,0xc	; 	xld.w	%r14,0x0000000c		; 12
	ext	memcmp@rm	; 	xcall	memcmp
	call	memcmp@rl
	cmp	%r10,0x0
	jreq	__LX310		; 	xjreq	__L310
	ld.w	%r12,%r0
	ld.w	%r13,%r1
	ld.w	%r14,0xc	; 	xld.w	%r14,0x0000000c		; 12
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ext	arp_gratuitous@rm	; 	xcall	arp_gratuitous
	call	arp_gratuitous@rl
	ext	0xc		; 	xadd	%r1,%r0,12
	add	%r1,%r0
	ld.w	%r0,[%r1]	; 	xld.w	%r0,[%r1]
	cmp	%r0,%r1
	jreq	__LX310		; 	xjreq	__L310
	ext	__LC0+0x0@h	; 	xld.w	%r2,__LC0
	ext	__LC0+0x0@m
	ld.w	%r2,__LC0+0x0@l
__LX313:				; __L313:
	cmp	%r0,0x0
	jrne	__LX314		; 	xjrne	__L314
	ld.w	[%sp+0x0],%r2	; 	xld.w	[%sp],%r2
	ext	0xb		; 	xld.w	%r10,0x000002e1		; 737
	ld.w	%r10,0x21
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX314:				; __L314:
	ext	0xc		; 	xsub	%r12,%r0,12
	sub	%r12,%r0
	ext	0x8		; 	xld.w	%r10,[%r12+8]
	ld.w	%r10,[%r12]
	cmp	%r10,0x0
	jreq	__LX315		; 	xjreq	__L315
	call	%r10
__LX315:				; __L315:
	ld.w	%r0,[%r0]	; 	xld.w	%r0,[%r0]
	cmp	%r0,%r1
	jrne	__LX313		; 	xjrne	__L313
__LX310:				; __L310:
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x3		; 	xadd	%sp,%sp,12
	popn	%r2
	ret
	.align	1
	.global	ip_get_config
ip_get_config:
;	.frame	%sp,12,$31		# vars= 4, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ld.w	%r0,%r12
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ld.w	%r12,%r0
	ext	ip_driver+0x14@h	; 	xld.w	%r13,ip_driver+20
	ext	ip_driver+0x14@m
	ld.w	%r13,ip_driver+0x14@l
	ld.w	%r14,0xc	; 	xld.w	%r14,0x0000000c		; 12
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r0
	ret
	.align	1
ip_recv:
;	.frame	%sp,40,$31		# vars= 32, regs= 1/0, args= 4, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	sub	%sp,0x9		; 	xsub	%sp,%sp,36
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,4
	add	%r12,0x4
	ld.w	%r13,%r14
	ld.w	%r14,%r15
	ext	unpack_ip_header@rm	; 	xcall	unpack_ip_header
	call	unpack_ip_header@rl
	cmp	%r10,0x0
	jrlt	__LX323		; 	xjrlt	__L323
	ld.w	%r10,[%sp+0x2]	; 	xld.w	%r10,[%sp+8]
	and	%r10,0x4	; 	xand	%r10,%r10,0x00000004
	jrne	__LX323		; 	xjrne	__L323
	ld.w	%r10,[%sp+0x3]	; 	xld.w	%r10,[%sp+12]
	cmp	%r10,0x0
	jrne	__LX323		; 	xjrne	__L323
	ext	ip_driver+0x14@h	; 	xld.w	%r10,ip_driver+20
	ext	ip_driver+0x14@m
	ld.w	%r10,ip_driver+0x14@l
	ld.w	%r12,[%sp+0x6]	; 	xld.w	%r12,[%sp+24]
	ld.w	%r11,[%r10]	; 	xld.w	%r11,[%r10]
	cmp	%r12,%r11
	jreq	__LX327		; 	xjreq	__L327
	ext	0x4		; 	xld.w	%r10,[%r10+4]
	ld.w	%r10,[%r10]
	not	%r10,%r10
	or	%r11,%r10
	ld.w	%r10,%r11
	cmp	%r12,%r10
	jrne	__LX323		; 	xjrne	__L323
__LX327:				; __L327:
	ld.w	%r12,[%sp+0x4]	; 	xld.w	%r12,[%sp+16]
	ext	ip_find_client@rm	; 	xcall	ip_find_client
	call	ip_find_client@rl
	ld.w	%r12,%r10
	cmp	%r12,0x0
	jreq	__LX323		; 	xjreq	__L323
	ext	0x4		; 	xld.w	%r10,[%r12+4]
	ld.w	%r10,[%r12]
	cmp	%r10,0x0
	jreq	__LX323		; 	xjreq	__L323
	ld.w	%r13,[%sp+0x5]	; 	xld.w	%r13,[%sp+20]
	ld.w	%r14,[%sp+0x6]	; 	xld.w	%r14,[%sp+24]
	ld.w	%r15,[%sp+0x7]	; 	xld.w	%r15,[%sp+28]
	ld.w	%r10,[%sp+0x8]	; 	xld.w	%r10,[%sp+32]
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x4		; 	xld.w	%r10,[%r12+4]
	ld.w	%r10,[%r12]
	call	%r10
__LX323:				; __L323:
	add	%sp,0x9		; 	xadd	%sp,%sp,36
	ret

	.lcomm	arp_driver 212

	.lcomm	icmp_driver 40

	.lcomm	ip_driver 40

