
;  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	2
IP:
	.byte	57
	.byte	49
	.byte	41
	.byte	33
	.byte	25
	.byte	17
	.byte	9
	.byte	1
	.byte	59
	.byte	51
	.byte	43
	.byte	35
	.byte	27
	.byte	19
	.byte	11
	.byte	3
	.byte	61
	.byte	53
	.byte	45
	.byte	37
	.byte	29
	.byte	21
	.byte	13
	.byte	5
	.byte	63
	.byte	55
	.byte	47
	.byte	39
	.byte	31
	.byte	23
	.byte	15
	.byte	7
	.byte	56
	.byte	48
	.byte	40
	.byte	32
	.byte	24
	.byte	16
	.byte	8
	.byte	0
	.byte	58
	.byte	50
	.byte	42
	.byte	34
	.byte	26
	.byte	18
	.byte	10
	.byte	2
	.byte	60
	.byte	52
	.byte	44
	.byte	36
	.byte	28
	.byte	20
	.byte	12
	.byte	4
	.byte	62
	.byte	54
	.byte	46
	.byte	38
	.byte	30
	.byte	22
	.byte	14
	.byte	6
	.align	2
E:
	.byte	31
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	5
	.byte	6
	.byte	7
	.byte	8
	.byte	7
	.byte	8
	.byte	9
	.byte	10
	.byte	11
	.byte	12
	.byte	11
	.byte	12
	.byte	13
	.byte	14
	.byte	15
	.byte	16
	.byte	15
	.byte	16
	.byte	17
	.byte	18
	.byte	19
	.byte	20
	.byte	19
	.byte	20
	.byte	21
	.byte	22
	.byte	23
	.byte	24
	.byte	23
	.byte	24
	.byte	25
	.byte	26
	.byte	27
	.byte	28
	.byte	27
	.byte	28
	.byte	29
	.byte	30
	.byte	31
	.byte	0
	.space	16
	.align	2
S:
	.byte	14
	.byte	4
	.byte	13
	.byte	1
	.byte	2
	.byte	15
	.byte	11
	.byte	8
	.byte	3
	.byte	10
	.byte	6
	.byte	12
	.byte	5
	.byte	9
	.byte	0
	.byte	7
	.byte	0
	.byte	15
	.byte	7
	.byte	4
	.byte	14
	.byte	2
	.byte	13
	.byte	1
	.byte	10
	.byte	6
	.byte	12
	.byte	11
	.byte	9
	.byte	5
	.byte	3
	.byte	8
	.byte	4
	.byte	1
	.byte	14
	.byte	8
	.byte	13
	.byte	6
	.byte	2
	.byte	11
	.byte	15
	.byte	12
	.byte	9
	.byte	7
	.byte	3
	.byte	10
	.byte	5
	.byte	0
	.byte	15
	.byte	12
	.byte	8
	.byte	2
	.byte	4
	.byte	9
	.byte	1
	.byte	7
	.byte	5
	.byte	11
	.byte	3
	.byte	14
	.byte	10
	.byte	0
	.byte	6
	.byte	13
	.byte	15
	.byte	1
	.byte	8
	.byte	14
	.byte	6
	.byte	11
	.byte	3
	.byte	4
	.byte	9
	.byte	7
	.byte	2
	.byte	13
	.byte	12
	.byte	0
	.byte	5
	.byte	10
	.byte	3
	.byte	13
	.byte	4
	.byte	7
	.byte	15
	.byte	2
	.byte	8
	.byte	14
	.byte	12
	.byte	0
	.byte	1
	.byte	10
	.byte	6
	.byte	9
	.byte	11
	.byte	5
	.byte	0
	.byte	14
	.byte	7
	.byte	11
	.byte	10
	.byte	4
	.byte	13
	.byte	1
	.byte	5
	.byte	8
	.byte	12
	.byte	6
	.byte	9
	.byte	3
	.byte	2
	.byte	15
	.byte	13
	.byte	8
	.byte	10
	.byte	1
	.byte	3
	.byte	15
	.byte	4
	.byte	2
	.byte	11
	.byte	6
	.byte	7
	.byte	12
	.byte	0
	.byte	5
	.byte	14
	.byte	9
	.byte	10
	.byte	0
	.byte	9
	.byte	14
	.byte	6
	.byte	3
	.byte	15
	.byte	5
	.byte	1
	.byte	13
	.byte	12
	.byte	7
	.byte	11
	.byte	4
	.byte	2
	.byte	8
	.byte	13
	.byte	7
	.byte	0
	.byte	9
	.byte	3
	.byte	4
	.byte	6
	.byte	10
	.byte	2
	.byte	8
	.byte	5
	.byte	14
	.byte	12
	.byte	11
	.byte	15
	.byte	1
	.byte	13
	.byte	6
	.byte	4
	.byte	9
	.byte	8
	.byte	15
	.byte	3
	.byte	0
	.byte	11
	.byte	1
	.byte	2
	.byte	12
	.byte	5
	.byte	10
	.byte	14
	.byte	7
	.byte	1
	.byte	10
	.byte	13
	.byte	0
	.byte	6
	.byte	9
	.byte	8
	.byte	7
	.byte	4
	.byte	15
	.byte	14
	.byte	3
	.byte	11
	.byte	5
	.byte	2
	.byte	12
	.byte	7
	.byte	13
	.byte	14
	.byte	3
	.byte	0
	.byte	6
	.byte	9
	.byte	10
	.byte	1
	.byte	2
	.byte	8
	.byte	5
	.byte	11
	.byte	12
	.byte	4
	.byte	15
	.byte	13
	.byte	8
	.byte	11
	.byte	5
	.byte	6
	.byte	15
	.byte	0
	.byte	3
	.byte	4
	.byte	7
	.byte	2
	.byte	12
	.byte	1
	.byte	10
	.byte	14
	.byte	9
	.byte	10
	.byte	6
	.byte	9
	.byte	0
	.byte	12
	.byte	11
	.byte	7
	.byte	13
	.byte	15
	.byte	1
	.byte	3
	.byte	14
	.byte	5
	.byte	2
	.byte	8
	.byte	4
	.byte	3
	.byte	15
	.byte	0
	.byte	6
	.byte	10
	.byte	1
	.byte	13
	.byte	8
	.byte	9
	.byte	4
	.byte	5
	.byte	11
	.byte	12
	.byte	7
	.byte	2
	.byte	14
	.byte	2
	.byte	12
	.byte	4
	.byte	1
	.byte	7
	.byte	10
	.byte	11
	.byte	6
	.byte	8
	.byte	5
	.byte	3
	.byte	15
	.byte	13
	.byte	0
	.byte	14
	.byte	9
	.byte	14
	.byte	11
	.byte	2
	.byte	12
	.byte	4
	.byte	7
	.byte	13
	.byte	1
	.byte	5
	.byte	0
	.byte	15
	.byte	10
	.byte	3
	.byte	9
	.byte	8
	.byte	6
	.byte	4
	.byte	2
	.byte	1
	.byte	11
	.byte	10
	.byte	13
	.byte	7
	.byte	8
	.byte	15
	.byte	9
	.byte	12
	.byte	5
	.byte	6
	.byte	3
	.byte	0
	.byte	14
	.byte	11
	.byte	8
	.byte	12
	.byte	7
	.byte	1
	.byte	14
	.byte	2
	.byte	13
	.byte	6
	.byte	15
	.byte	0
	.byte	9
	.byte	10
	.byte	4
	.byte	5
	.byte	3
	.byte	12
	.byte	1
	.byte	10
	.byte	15
	.byte	9
	.byte	2
	.byte	6
	.byte	8
	.byte	0
	.byte	13
	.byte	3
	.byte	4
	.byte	14
	.byte	7
	.byte	5
	.byte	11
	.byte	10
	.byte	15
	.byte	4
	.byte	2
	.byte	7
	.byte	12
	.byte	9
	.byte	5
	.byte	6
	.byte	1
	.byte	13
	.byte	14
	.byte	0
	.byte	11
	.byte	3
	.byte	8
	.byte	9
	.byte	14
	.byte	15
	.byte	5
	.byte	2
	.byte	8
	.byte	12
	.byte	3
	.byte	7
	.byte	0
	.byte	4
	.byte	10
	.byte	1
	.byte	13
	.byte	11
	.byte	6
	.byte	4
	.byte	3
	.byte	2
	.byte	12
	.byte	9
	.byte	5
	.byte	15
	.byte	10
	.byte	11
	.byte	14
	.byte	1
	.byte	7
	.byte	6
	.byte	0
	.byte	8
	.byte	13
	.byte	4
	.byte	11
	.byte	2
	.byte	14
	.byte	15
	.byte	0
	.byte	8
	.byte	13
	.byte	3
	.byte	12
	.byte	9
	.byte	7
	.byte	5
	.byte	10
	.byte	6
	.byte	1
	.byte	13
	.byte	0
	.byte	11
	.byte	7
	.byte	4
	.byte	9
	.byte	1
	.byte	10
	.byte	14
	.byte	3
	.byte	5
	.byte	12
	.byte	2
	.byte	15
	.byte	8
	.byte	6
	.byte	1
	.byte	4
	.byte	11
	.byte	13
	.byte	12
	.byte	3
	.byte	7
	.byte	14
	.byte	10
	.byte	15
	.byte	6
	.byte	8
	.byte	0
	.byte	5
	.byte	9
	.byte	2
	.byte	6
	.byte	11
	.byte	13
	.byte	8
	.byte	1
	.byte	4
	.byte	10
	.byte	7
	.byte	9
	.byte	5
	.byte	0
	.byte	15
	.byte	14
	.byte	2
	.byte	3
	.byte	12
	.byte	13
	.byte	2
	.byte	8
	.byte	4
	.byte	6
	.byte	15
	.byte	11
	.byte	1
	.byte	10
	.byte	9
	.byte	3
	.byte	14
	.byte	5
	.byte	0
	.byte	12
	.byte	7
	.byte	1
	.byte	15
	.byte	13
	.byte	8
	.byte	10
	.byte	3
	.byte	7
	.byte	4
	.byte	12
	.byte	5
	.byte	6
	.byte	11
	.byte	0
	.byte	14
	.byte	9
	.byte	2
	.byte	7
	.byte	11
	.byte	4
	.byte	1
	.byte	9
	.byte	12
	.byte	14
	.byte	2
	.byte	0
	.byte	6
	.byte	10
	.byte	13
	.byte	15
	.byte	3
	.byte	5
	.byte	8
	.byte	2
	.byte	1
	.byte	14
	.byte	7
	.byte	4
	.byte	10
	.byte	8
	.byte	13
	.byte	15
	.byte	12
	.byte	9
	.byte	0
	.byte	3
	.byte	5
	.byte	6
	.byte	11
	.align	2
P:
	.byte	15
	.byte	6
	.byte	19
	.byte	20
	.byte	28
	.byte	11
	.byte	27
	.byte	16
	.byte	0
	.byte	14
	.byte	22
	.byte	25
	.byte	4
	.byte	17
	.byte	30
	.byte	9
	.byte	1
	.byte	7
	.byte	23
	.byte	13
	.byte	31
	.byte	26
	.byte	2
	.byte	8
	.byte	18
	.byte	12
	.byte	29
	.byte	5
	.byte	21
	.byte	10
	.byte	3
	.byte	24
	.align	2
PC1:
	.byte	56
	.byte	48
	.byte	40
	.byte	32
	.byte	24
	.byte	16
	.byte	8
	.byte	0
	.byte	57
	.byte	49
	.byte	41
	.byte	33
	.byte	25
	.byte	17
	.byte	9
	.byte	1
	.byte	58
	.byte	50
	.byte	42
	.byte	34
	.byte	26
	.byte	18
	.byte	10
	.byte	2
	.byte	59
	.byte	51
	.byte	43
	.byte	35
	.byte	62
	.byte	54
	.byte	46
	.byte	38
	.byte	30
	.byte	22
	.byte	14
	.byte	6
	.byte	61
	.byte	53
	.byte	45
	.byte	37
	.byte	29
	.byte	21
	.byte	13
	.byte	5
	.byte	60
	.byte	52
	.byte	44
	.byte	36
	.byte	28
	.byte	20
	.byte	12
	.byte	4
	.byte	27
	.byte	19
	.byte	11
	.byte	3
	.align	2
shifts:
	.byte	1
	.byte	1
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	1
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	1
	.align	2
PC2:
	.byte	13
	.byte	16
	.byte	10
	.byte	23
	.byte	0
	.byte	4
	.byte	2
	.byte	27
	.byte	14
	.byte	5
	.byte	20
	.byte	9
	.byte	22
	.byte	18
	.byte	11
	.byte	3
	.byte	25
	.byte	7
	.byte	15
	.byte	6
	.byte	26
	.byte	19
	.byte	12
	.byte	1
	.byte	40
	.byte	51
	.byte	30
	.byte	36
	.byte	46
	.byte	54
	.byte	29
	.byte	39
	.byte	50
	.byte	44
	.byte	32
	.byte	47
	.byte	43
	.byte	48
	.byte	38
	.byte	55
	.byte	33
	.byte	52
	.byte	45
	.byte	41
	.byte	49
	.byte	35
	.byte	28
	.byte	31
	.code
	.align	1
des_byte_array_to_bit_array:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
__LX71:				; __L71:
	ld.ub	%r15,[%r13]	; 	xld.ub	%r15,[%r13]
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	ld.w	%r11,0x8	; 	xld.w	%r11,0x00000008		; 8
__LX74:				; __L74:
	ld.w	%r10,%r15
	sra	%r10,0x7	; 	xsra	%r10,7
	and	%r10,0x1	; 	xand	%r10,%r10,0x00000001
	ld.b	[%r12],%r10	; 	xld.b	[%r12],%r10
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	sll	%r15,0x1	; 	xsll	%r15,1
	sub	%r11,0x1	; 	xsub	%r11,%r11,1
	jrne	__LX74		; 	xjrne	__L74
	sub	%r14,0x1	; 	xsub	%r14,%r14,1
	jrne	__LX71		; 	xjrne	__L71
	ret
	.align	1
des_bit_array_to_byte_array:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
__LX80:				; __L80:
	ld.w	%r11,0x0
	ld.w	%r15,0x8	; 	xld.w	%r15,0x00000008		; 8
__LX83:				; __L83:
	sll	%r11,0x1	; 	xsll	%r11,1
	ld.ub	%r10,[%r13]	; 	xld.ub	%r10,[%r13]
	or	%r11,%r10
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	sub	%r15,0x1	; 	xsub	%r15,%r15,1
	jrne	__LX83		; 	xjrne	__L83
	ld.b	[%r12],%r11	; 	xld.b	[%r12],%r11
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	sub	%r14,0x1	; 	xsub	%r14,%r14,1
	jrne	__LX80		; 	xjrne	__L80
	ret
	.align	1
des_set_key:
;	.frame	%sp,156,$31		# vars= 136, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x22	; 	xsub	%sp,%sp,136
	ld.w	[%sp+0x1e],%r12	; 	xld.w	[%sp+120],%r12
	ld.w	[%sp+0x1f],%r14	; 	xld.w	[%sp+124],%r14
	ld.w	%r12,%sp
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	call	des_byte_array_to_bit_array	; 	xcall	des_byte_array_to_bit_array
	ld.w	%r11,%sp	; 	xadd	%r11,%sp,64
	ext	0x1
	add	%r11,0x0
	ext	PC1+0x0@h	; 	xld.w	%r12,PC1
	ext	PC1+0x0@m
	ld.w	%r12,PC1+0x0@l
	ext	0x37		; 	xadd	%r13,%r11,55
	add	%r13,%r11
__LX92:				; __L92:
	ld.ub	%r10,[%r12]	; 	xld.ub	%r10,[%r12]
	ld.w	%r4,%sp
	add	%r4,%r10
	ld.w	%r10,%r4
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r11,%r13
	jrle	__LX92		; 	xjrle	__L92
	ld.w	%r15,0x0
	ld.w	%r2,%sp		; 	xadd	%r2,%sp,64
	ext	0x1
	add	%r2,0x0
	ld.w	%r4,[%sp+0x1e]	; 	xld.w	%r4,[%sp+120]
	ld.w	[%sp+0x20],%r4	; 	xld.w	[%sp+128],%r4
	ext	shifts+0x0@h	; 	xld.w	%r3,shifts
	ext	shifts+0x0@m
	ld.w	%r3,shifts+0x0@l
__LX97:				; __L97:
	ld.w	%r1,0x0
	ld.ub	%r10,[%r3]	; 	xld.ub	%r10,[%r3]
	cmp	%r1,%r10
	jrge	__LX99		; 	xjrge	__L99
__LX101:				; __L101:
	ext	0x1		; 	xld.ub	%r0,[%sp+64]
	ld.ub	%r0,[%sp+0x0]
	ld.w	%r12,%r2
	ext	0x1		; 	xadd	%r13,%r2,1
	add	%r13,%r2
	ld.w	%r14,0x1b	; 	xld.w	%r14,0x0000001b		; 27
	ld.w	[%sp+0x21],%r15	; 	xld.w	[%sp+132],%r15
	ext	memmove@rm	; 	xcall	memmove
	call	memmove@rl
	ext	0x1		; 	xld.b	[%sp+91],%r0
	ld.b	[%sp+0x1b],%r0
	ext	0x1		; 	xld.ub	%r0,[%sp+92]
	ld.ub	%r0,[%sp+0x1c]
	ext	0x1c		; 	xadd	%r12,%r2,28
	add	%r12,%r2
	ext	0x1d		; 	xadd	%r13,%r2,29
	add	%r13,%r2
	ld.w	%r14,0x1b	; 	xld.w	%r14,0x0000001b		; 27
	ext	memmove@rm	; 	xcall	memmove
	call	memmove@rl
	ext	0x1		; 	xld.b	[%sp+119],%r0
	ld.b	[%sp+0x37],%r0
	add	%r1,0x1		; 	xadd	%r1,%r1,1
	ld.ub	%r10,[%r3]	; 	xld.ub	%r10,[%r3]
	ld.w	%r15,[%sp+0x21]	; 	xld.w	%r15,[%sp+132]
	cmp	%r1,%r10
	jrlt	__LX101		; 	xjrlt	__L101
__LX99:				; __L99:
	ld.w	%r1,0x0
	ld.w	%r10,0xf	; 	xld.w	%r10,0x0000000f		; 15
	sub	%r10,%r15
	ext	0x0		; 	xld.w	%r4,0x00000030		; 48
	ld.w	%r4,0x30
	mlt.w	%r10,%r4
	ld.w	%r13,%alr
	ld.w	%r4,[%sp+0x1e]	; 	xld.w	%r4,[%sp+120]
	add	%r13,%r4
	ext	PC2+0x0@h	; 	xld.w	%r11,PC2
	ext	PC2+0x0@m
	ld.w	%r11,PC2+0x0@l
	ld.w	%r12,[%sp+0x20]	; 	xld.w	%r12,[%sp+128]
__LX106:				; __L106:
	ld.w	%r4,[%sp+0x1f]	; 	xld.w	%r4,[%sp+124]
	cmp	%r4,0x0
	jrne	__LX107		; 	xjrne	__L107
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	ld.w	%r4,%r2
	add	%r4,%r10
	ld.w	%r10,%r4
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.b	[%r12],%r10	; 	xld.b	[%r12],%r10
	jp	__LX105		; 	xjp	__L105
__LX107:				; __L107:
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	ld.w	%r4,%r2
	add	%r4,%r10
	ld.w	%r10,%r4
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.b	[%r13],%r10	; 	xld.b	[%r13],%r10
__LX105:				; __L105:
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	add	%r1,0x1		; 	xadd	%r1,%r1,1
	ext	0x0		; 	xcmp	%r1,47
	cmp	%r1,0x2f
	jrle	__LX106		; 	xjrle	__L106
	ld.w	%r4,[%sp+0x20]	; 	xld.w	%r4,[%sp+128]
	add	%r4,0x30	; 	xadd	%r4,%r4,48
	ld.w	[%sp+0x20],%r4	; 	xld.w	[%sp+128],%r4
	add	%r3,0x1		; 	xadd	%r3,%r3,1
	add	%r15,0x1	; 	xadd	%r15,%r15,1
	cmp	%r15,0xf	; 	xcmp	%r15,15
	jrle	__LX97		; 	xjrle	__L97
	add	%sp,0x22	; 	xadd	%sp,%sp,136
	popn	%r3
	ret
	.align	1
des_encrypt_decrypt:
;	.frame	%sp,236,$31		# vars= 216, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x36	; 	xsub	%sp,%sp,216
	ld.w	[%sp+0x35],%r12	; 	xld.w	[%sp+212],%r12
	ld.w	%r1,%r14
	ld.w	%r12,%sp
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	des_byte_array_to_bit_array@rm	; 	xcall	des_byte_array_to_bit_array
	call	des_byte_array_to_bit_array@rl
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,96
	ext	0x1
	add	%r14,0x20
	ext	IP+0x20@h	; 	xld.w	%r11,IP+32
	ext	IP+0x20@m
	ld.w	%r11,IP+0x20@l
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,64
	ext	0x1
	add	%r13,0x0
	ext	0x20		; 	xsub	%r12,%r11,32
	sub	%r12,%r11
	ext	0x1f		; 	xadd	%r15,%r11,31
	add	%r15,%r11
__LX115:				; __L115:
	ld.ub	%r10,[%r12]	; 	xld.ub	%r10,[%r12]
	ld.w	%r3,%sp
	add	%r3,%r10
	ld.w	%r10,%r3
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.b	[%r13],%r10	; 	xld.b	[%r13],%r10
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	ld.w	%r3,%sp
	add	%r3,%r10
	ld.w	%r10,%r3
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.b	[%r14],%r10	; 	xld.b	[%r14],%r10
	add	%r14,0x1	; 	xadd	%r14,%r14,1
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r11,%r15
	jrle	__LX115		; 	xjrle	__L115
	ld.w	%r5,0x0
	ext	0x0		; 	xld.w	%r2,0x0000002f		; 47
	ld.w	%r2,0x2f
	ext	0x2		; 	xld.w	%r7,0x00000080		; 128
	ld.w	%r7,0x0
	ld.w	%r0,%sp
	add	%r0,%r7
	ld.w	%r6,%sp		; 	xadd	%r6,%sp,96
	ext	0x1
	add	%r6,0x20
__LX120:				; __L120:
	ext	0x0		; 	xld.w	%r10,0x00000030		; 48
	ld.w	%r10,0x30
	mlt.w	%r5,%r10
	ld.w	%r11,%r0
	ld.w	%r13,%alr
	add	%r13,%r1
	ext	E+0x0@h		; 	xld.w	%r12,E
	ext	E+0x0@m
	ld.w	%r12,E+0x0@l
	ld.w	%r14,%r2
	add	%r14,%r11
__LX124:				; __L124:
	ld.ub	%r10,[%r12]	; 	xld.ub	%r10,[%r12]
	ld.w	%r3,%r6
	add	%r3,%r10
	ld.w	%r10,%r3
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.ub	%r3,[%r13]	; 	xld.ub	%r3,[%r13]
	xor	%r10,%r3
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r11,%r14
	jrle	__LX124		; 	xjrle	__L124
	ld.w	%r14,0x0
	ld.w	%r13,%sp
	ext	S+0x0@h		; 	xld.w	%r15,S
	ext	S+0x0@m
	ld.w	%r15,S+0x0@l
__LX129:				; __L129:
	ld.w	%r10,0x6	; 	xld.w	%r10,0x00000006		; 6
	mlt.w	%r14,%r10
	ld.w	%r12,%alr
	ld.w	%r9,%sp		; 	xadd	%r12,%r12,%sp
	add	%r12,%r9
	ld.w	%r10,%r12
	add	%r10,%r7
	ld.ub	%r11,[%r10]	; 	xld.ub	%r11,[%r10]
	sll	%r11,0x5	; 	xsll	%r11,5
	ext	0x85		; 	xld.ub	%r10,[%r12+133]
	ld.ub	%r10,[%r12]
	sll	%r10,0x4	; 	xsll	%r10,4
	or	%r11,%r10
	ext	0x81		; 	xld.ub	%r10,[%r12+129]
	ld.ub	%r10,[%r12]
	sll	%r10,0x3	; 	xsll	%r10,3
	or	%r11,%r10
	ext	0x82		; 	xld.ub	%r10,[%r12+130]
	ld.ub	%r10,[%r12]
	sll	%r10,0x2	; 	xsll	%r10,2
	or	%r11,%r10
	ext	0x83		; 	xld.ub	%r10,[%r12+131]
	ld.ub	%r10,[%r12]
	sll	%r10,0x1	; 	xsll	%r10,1
	or	%r11,%r10
	ext	0x84		; 	xld.ub	%r10,[%r12+132]
	ld.ub	%r10,[%r12]
	or	%r11,%r10
	ld.w	%r3,%r15
	add	%r3,%r11
	ld.w	%r11,%r3
	ld.ub	%r12,[%r11]	; 	xld.ub	%r12,[%r11]
	ext	0x2		; 	xld.w	%r11,0x000000b0		; 176
	ld.w	%r11,0x30
	ld.w	%r10,%r12
	sra	%r10,0x3	; 	xsra	%r10,3
	and	%r10,0x1	; 	xand	%r10,%r10,0x00000001
	ext	0xb0		; 	xld.b	[%r13+176],%r10
	ld.b	[%r13],%r10
	ld.w	%r10,%r12
	sra	%r10,0x2	; 	xsra	%r10,2
	and	%r10,0x1	; 	xand	%r10,%r10,0x00000001
	ext	0xb1		; 	xld.b	[%r13+177],%r10
	ld.b	[%r13],%r10
	ld.w	%r10,%r12
	sra	%r10,0x1	; 	xsra	%r10,1
	and	%r10,0x1	; 	xand	%r10,%r10,0x00000001
	ext	0xb2		; 	xld.b	[%r13+178],%r10
	ld.b	[%r13],%r10
	ld.w	%r10,%r12
	and	%r10,0x1	; 	xand	%r10,%r10,0x00000001
	ext	0xb3		; 	xld.b	[%r13+179],%r10
	ld.b	[%r13],%r10
	add	%r13,0x4	; 	xadd	%r13,%r13,4
	ext	0x1		; 	xld.w	%r10,0x00000040		; 64
	ld.w	%r10,0x0
	add	%r15,%r10
	add	%r14,0x1	; 	xadd	%r14,%r14,1
	cmp	%r14,0x7	; 	xcmp	%r14,7
	jrle	__LX129		; 	xjrle	__L129
	ld.w	%r15,%sp
	add	%r15,%r11
	ld.w	%r14,%sp
	add	%r14,%r10
	ld.w	%r13,%r6
	ext	P+0x0@h		; 	xld.w	%r11,P
	ext	P+0x0@m
	ld.w	%r11,P+0x0@l
	ext	0x1f		; 	xadd	%r4,%r11,31
	add	%r4,%r11
__LX134:				; __L134:
	ld.ub	%r12,[%r13]	; 	xld.ub	%r12,[%r13]
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	ld.w	%r3,%r15
	add	%r3,%r10
	ld.w	%r10,%r3
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.ub	%r3,[%r14]	; 	xld.ub	%r3,[%r14]
	xor	%r10,%r3
	ld.b	[%r13],%r10	; 	xld.b	[%r13],%r10
	ld.b	[%r14],%r12	; 	xld.b	[%r14],%r12
	add	%r14,0x1	; 	xadd	%r14,%r14,1
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	cmp	%r11,%r4
	jrle	__LX134		; 	xjrle	__L134
	add	%r5,0x1		; 	xadd	%r5,%r5,1
	cmp	%r5,0xf		; 	xcmp	%r5,15
	jrle	__LX120		; 	xjrle	__L120
	ld.w	%r15,%sp	; 	xadd	%r15,%sp,64
	ext	0x1
	add	%r15,0x0
	ext	IP+0x20@h	; 	xld.w	%r12,IP+32
	ext	IP+0x20@m
	ld.w	%r12,IP+0x20@l
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,96
	ext	0x1
	add	%r14,0x20
	ext	0x20		; 	xsub	%r13,%r12,32
	sub	%r13,%r12
	ext	0x1f		; 	xadd	%r4,%r12,31
	add	%r4,%r12
__LX140:				; __L140:
	ld.ub	%r10,[%r13]	; 	xld.ub	%r10,[%r13]
	ld.w	%r11,%sp
	add	%r11,%r10
	ld.ub	%r10,[%r14]	; 	xld.ub	%r10,[%r14]
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	ld.ub	%r10,[%r12]	; 	xld.ub	%r10,[%r12]
	ld.w	%r11,%sp
	add	%r11,%r10
	ld.ub	%r10,[%r15]	; 	xld.ub	%r10,[%r15]
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	add	%r15,0x1	; 	xadd	%r15,%r15,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	add	%r14,0x1	; 	xadd	%r14,%r14,1
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	cmp	%r12,%r4
	jrle	__LX140		; 	xjrle	__L140
	ld.w	%r12,[%sp+0x35]	; 	xld.w	%r12,[%sp+212]
	ld.w	%r13,%sp
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	des_bit_array_to_byte_array@rm	; 	xcall	des_bit_array_to_byte_array
	call	des_bit_array_to_byte_array@rl
	add	%sp,0x36	; 	xadd	%sp,%sp,216
	popn	%r3
	ret
	.code
	.align	2
__LC0:
	.ascii	"clipdes.$(%d)\000"
	.code
	.align	1
des_ecb_cbc_encrypt:
;	.frame	%sp,828,$31		# vars= 800, regs= 5/0, args= 8, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0xca	; 	xsub	%sp,%sp,808
	ext	0xc		; 	xld.w	[%sp+792],%r13
	ld.w	[%sp+0x18],%r13
	ld.w	%r2,%r15
	ld.w	%r1,0x0
	ext	0xc		; 	xld.w	[%sp+796],%r12
	ld.w	[%sp+0x1c],%r12
	ld.w	%r3,%r14
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,24
	add	%r12,0x18
	ext	0xc		; 	xld.w	%r13,[%sp+828]
	ld.w	%r13,[%sp+0x3c]
	ld.w	%r14,%r1
	ext	des_set_key@rm	; 	xcall	des_set_key
	call	des_set_key@rl
	ld.w	%r0,%sp		; 	xadd	%r0,%sp,16
	add	%r0,0x10
	ld.w	%r12,%r0
	ld.w	%r13,%r1
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	cmp	%r2,0x7		; 	xcmp	%r2,7
	jrle	__LX144		; 	xjrle	__L144
	ld.w	%r4,%sp		; 	xadd	%r4,%sp,8
	add	%r4,0x8
	ext	0xc		; 	xld.w	[%sp+804],%r4
	ld.w	[%sp+0x24],%r4
	ext	0xc		; 	xld.w	[%sp+800],%r0
	ld.w	[%sp+0x20],%r0
__LX145:				; __L145:
	sub	%r2,0x8		; 	xsub	%r2,%r2,8
	add	%r1,0x8		; 	xadd	%r1,%r1,8
	ext	0xc		; 	xld.w	%r4,[%sp+792]
	ld.w	%r4,[%sp+0x18]
	cmp	%r4,%r1
	jrge	__LX146		; 	xjrge	__L146
	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	0x5		; 	xld.w	%r10,0x00000169		; 361
	ld.w	%r10,0x29
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX146:				; __L146:
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ld.w	%r13,%r3
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ext	0xc		; 	xld.w	%r11,[%sp+804]
	ld.w	%r11,[%sp+0x24]
	ext	0xc		; 	xld.w	%r12,[%sp+800]
	ld.w	%r12,[%sp+0x20]
	ext	0x7		; 	xadd	%r13,%r11,7
	add	%r13,%r11
__LX150:				; __L150:
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	ld.ub	%r4,[%r12]	; 	xld.ub	%r4,[%r12]
	xor	%r10,%r4
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r11,%r13
	jrle	__LX150		; 	xjrle	__L150
	ld.w	%r0,0x8		; 	xld.w	%r0,0x00000008		; 8
	ext	0xc		; 	xld.w	%r12,[%sp+796]
	ld.w	%r12,[%sp+0x1c]
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,8
	add	%r13,0x8
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,24
	add	%r14,0x18
	ext	des_encrypt_decrypt@rm	; 	xcall	des_encrypt_decrypt
	call	des_encrypt_decrypt@rl
	ext	0xd		; 	xld.w	%r4,[%sp+832]
	ld.w	%r4,[%sp+0x0]
	cmp	%r4,0x0
	jreq	__LX152		; 	xjreq	__L152
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,16
	add	%r12,0x10
	ext	0xc		; 	xld.w	%r13,[%sp+796]
	ld.w	%r13,[%sp+0x1c]
	ld.w	%r14,%r0
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
__LX152:				; __L152:
	add	%r3,0x8		; 	xadd	%r3,%r3,8
	ext	0xc		; 	xld.w	%r4,[%sp+796]
	ld.w	%r4,[%sp+0x1c]
	add	%r4,0x8		; 	xadd	%r4,%r4,8
	ext	0xc		; 	xld.w	[%sp+796],%r4
	ld.w	[%sp+0x1c],%r4
	cmp	%r2,0x7		; 	xcmp	%r2,7
	jrgt	__LX145		; 	xjrgt	__L145
__LX144:				; __L144:
	add	%r1,0x8		; 	xadd	%r1,%r1,8
	ext	0xc		; 	xld.w	%r4,[%sp+792]
	ld.w	%r4,[%sp+0x18]
	cmp	%r4,%r1
	jrge	__LX154		; 	xjrge	__L154
	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	0x5		; 	xld.w	%r10,0x00000178		; 376
	ld.w	%r10,0x38
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX154:				; __L154:
	ld.w	%r10,0x8	; 	xld.w	%r10,0x00000008		; 8
	sub	%r10,%r2
	ld.w	%r0,0x0
	cmp	%r0,%r10
	jrge	__LX156		; 	xjrge	__L156
	ld.w	%r11,%sp	; 	xadd	%r11,%sp,15
	add	%r11,0xf
__LX158:				; __L158:
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	sub	%r11,0x1	; 	xsub	%r11,%r11,1
	add	%r0,0x1		; 	xadd	%r0,%r0,1
	cmp	%r0,%r10
	jrlt	__LX158		; 	xjrlt	__L158
__LX156:				; __L156:
	ld.w	%r0,%sp		; 	xadd	%r0,%sp,8
	add	%r0,0x8
	ld.w	%r12,%r0
	ld.w	%r13,%r3
	ld.w	%r14,%r2
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r11,%sp	; 	xadd	%r11,%sp,16
	add	%r11,0x10
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,15
	add	%r12,0xf
__LX163:				; __L163:
	ld.ub	%r10,[%r0]	; 	xld.ub	%r10,[%r0]
	ld.ub	%r4,[%r11]	; 	xld.ub	%r4,[%r11]
	xor	%r10,%r4
	ld.b	[%r0],%r10	; 	xld.b	[%r0],%r10
	add	%r0,0x1		; 	xadd	%r0,%r0,1
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	cmp	%r0,%r12
	jrle	__LX163		; 	xjrle	__L163
	ext	0xc		; 	xld.w	%r12,[%sp+796]
	ld.w	%r12,[%sp+0x1c]
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,8
	add	%r13,0x8
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,24
	add	%r14,0x18
	ext	des_encrypt_decrypt@rm	; 	xcall	des_encrypt_decrypt
	call	des_encrypt_decrypt@rl
	ld.w	%r10,%r1
	add	%sp,0xca	; 	xadd	%sp,%sp,808
	popn	%r3
	ret
	.align	1
des_ecb_cbc_decrypt:
;	.frame	%sp,828,$31		# vars= 800, regs= 5/0, args= 8, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0xca	; 	xsub	%sp,%sp,808
	ext	0xc		; 	xld.w	[%sp+792],%r13
	ld.w	[%sp+0x18],%r13
	ld.w	%r2,%r15
	ld.w	%r3,0x0
	ext	0xc		; 	xld.w	[%sp+796],%r12
	ld.w	[%sp+0x1c],%r12
	ld.w	%r1,%r14
	cmp	%r2,0x0
	jrle	__LX167		; 	xjrle	__L167
	ld.w	%r10,%r2
	and	%r10,0x7	; 	xand	%r10,%r10,0x00000007
	jreq	__LX166		; 	xjreq	__L166
__LX167:				; __L167:
	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	0x6		; 	xld.w	%r10,0x000001ab		; 427
	ld.w	%r10,0x2b
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX166:				; __L166:
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,24
	add	%r12,0x18
	ext	0xc		; 	xld.w	%r13,[%sp+828]
	ld.w	%r13,[%sp+0x3c]
	ld.w	%r14,0x1	; 	xld.w	%r14,0x00000001		; 1
	ext	des_set_key@rm	; 	xcall	des_set_key
	call	des_set_key@rl
	ld.w	%r0,%sp		; 	xadd	%r0,%sp,16
	add	%r0,0x10
	ld.w	%r12,%r0
	ld.w	%r13,%r3
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	cmp	%r2,0x8		; 	xcmp	%r2,8
	jrle	__LX169		; 	xjrle	__L169
	ld.w	%r4,%sp		; 	xadd	%r4,%sp,8
	add	%r4,0x8
	ext	0xc		; 	xld.w	[%sp+804],%r4
	ld.w	[%sp+0x24],%r4
	ext	0xc		; 	xld.w	[%sp+800],%r0
	ld.w	[%sp+0x20],%r0
__LX170:				; __L170:
	sub	%r2,0x8		; 	xsub	%r2,%r2,8
	add	%r3,0x8		; 	xadd	%r3,%r3,8
	ext	0xc		; 	xld.w	%r4,[%sp+792]
	ld.w	%r4,[%sp+0x18]
	cmp	%r4,%r3
	jrge	__LX171		; 	xjrge	__L171
	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	0x6		; 	xld.w	%r10,0x000001b7		; 439
	ld.w	%r10,0x37
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX171:				; __L171:
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ld.w	%r13,%r1
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,24
	add	%r14,0x18
	ext	des_encrypt_decrypt@rm	; 	xcall	des_encrypt_decrypt
	call	des_encrypt_decrypt@rl
	ext	0xc		; 	xld.w	%r11,[%sp+804]
	ld.w	%r11,[%sp+0x24]
	ext	0xc		; 	xld.w	%r12,[%sp+800]
	ld.w	%r12,[%sp+0x20]
	ext	0x7		; 	xadd	%r13,%r11,7
	add	%r13,%r11
__LX175:				; __L175:
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	ld.ub	%r4,[%r12]	; 	xld.ub	%r4,[%r12]
	xor	%r10,%r4
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r11,%r13
	jrle	__LX175		; 	xjrle	__L175
	ld.w	%r0,0x8		; 	xld.w	%r0,0x00000008		; 8
	ext	0xd		; 	xld.w	%r4,[%sp+832]
	ld.w	%r4,[%sp+0x0]
	cmp	%r4,0x0
	jreq	__LX177		; 	xjreq	__L177
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,16
	add	%r12,0x10
	ld.w	%r13,%r1
	ld.w	%r14,%r0
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
__LX177:				; __L177:
	ext	0xc		; 	xld.w	%r12,[%sp+796]
	ld.w	%r12,[%sp+0x1c]
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,8
	add	%r13,0x8
	ld.w	%r14,%r0
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	add	%r1,0x8		; 	xadd	%r1,%r1,8
	ext	0xc		; 	xld.w	%r4,[%sp+796]
	ld.w	%r4,[%sp+0x1c]
	add	%r4,0x8		; 	xadd	%r4,%r4,8
	ext	0xc		; 	xld.w	[%sp+796],%r4
	ld.w	[%sp+0x1c],%r4
	cmp	%r2,0x8		; 	xcmp	%r2,8
	jrgt	__LX170		; 	xjrgt	__L170
__LX169:				; __L169:
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,8
	add	%r12,0x8
	ld.w	%r13,%r1
	ld.w	%r14,%sp	; 	xadd	%r14,%sp,24
	add	%r14,0x18
	ext	des_encrypt_decrypt@rm	; 	xcall	des_encrypt_decrypt
	call	des_encrypt_decrypt@rl
	ld.w	%r11,%sp	; 	xadd	%r11,%sp,8
	add	%r11,0x8
	ld.w	%r12,%sp	; 	xadd	%r12,%sp,16
	add	%r12,0x10
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,15
	add	%r13,0xf
__LX182:				; __L182:
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	ld.ub	%r4,[%r12]	; 	xld.ub	%r4,[%r12]
	xor	%r10,%r4
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r11,%r13
	jrle	__LX182		; 	xjrle	__L182
	ld.ub	%r15,[%sp+0xf]	; 	xld.ub	%r15,[%sp+15]
	ext	0x1		; 	xsub	%r10,%r15,1
	sub	%r10,%r15
	cmp	%r10,0x7	; 	xcmp	%r10,7
	jrule	__LX184		; 	xjrule	__L184
	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	0x7		; 	xld.w	%r10,0x000001cb		; 459
	ld.w	%r10,0xb
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX184:				; __L184:
	ld.w	%r0,0x0
	cmp	%r0,%r15
	jrge	__LX186		; 	xjrge	__L186
	ext	__LC0+0x0@h	; 	xld.w	%r12,__LC0
	ext	__LC0+0x0@m
	ld.w	%r12,__LC0+0x0@l
	ld.w	%r11,%sp	; 	xadd	%r11,%sp,15
	add	%r11,0xf
__LX188:				; __L188:
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	cmp	%r10,%r15
	jreq	__LX187		; 	xjreq	__L187
	ld.w	[%sp+0x0],%r12	; 	xld.w	[%sp],%r12
	ext	0x7		; 	xld.w	%r10,0x000001cd		; 461
	ld.w	%r10,0xd
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX187:				; __L187:
	sub	%r11,0x1	; 	xsub	%r11,%r11,1
	add	%r0,0x1		; 	xadd	%r0,%r0,1
	cmp	%r0,%r15
	jrlt	__LX188		; 	xjrlt	__L188
__LX186:				; __L186:
	ext	0x8		; 	xadd	%r10,%r3,8
	add	%r10,%r3
	ld.w	%r3,%r10
	sub	%r3,%r15
	ext	0xc		; 	xld.w	%r4,[%sp+792]
	ld.w	%r4,[%sp+0x18]
	cmp	%r4,%r3
	jrge	__LX191		; 	xjrge	__L191
	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	0x7		; 	xld.w	%r10,0x000001d1		; 465
	ld.w	%r10,0x11
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX191:				; __L191:
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	0xc		; 	xld.w	%r12,[%sp+796]
	ld.w	%r12,[%sp+0x1c]
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,8
	add	%r13,0x8
	sub	%r14,%r15
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r10,%r3
	add	%sp,0xca	; 	xadd	%sp,%sp,808
	popn	%r3
	ret
	.align	1
	.global	des_ecb_encrypt
des_ecb_encrypt:
;	.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
	ld.w	%r10,[%sp+0x3]	; 	xld.w	%r10,[%sp+12]
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ld.w	%r11,0x0
	ld.w	[%sp+0x1],%r11	; 	xld.w	[%sp+4],%r11
	ext	des_ecb_cbc_encrypt@rm	; 	xcall	des_ecb_cbc_encrypt
	call	des_ecb_cbc_encrypt@rl
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret
	.align	1
	.global	des_ecb_decrypt
des_ecb_decrypt:
;	.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
	ld.w	%r10,[%sp+0x3]	; 	xld.w	%r10,[%sp+12]
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ld.w	%r11,0x0
	ld.w	[%sp+0x1],%r11	; 	xld.w	[%sp+4],%r11
	ext	des_ecb_cbc_decrypt@rm	; 	xcall	des_ecb_cbc_decrypt
	call	des_ecb_cbc_decrypt@rl
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret
	.align	1
	.global	des_cbc_encrypt
des_cbc_encrypt:
;	.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
	ld.w	%r10,[%sp+0x3]	; 	xld.w	%r10,[%sp+12]
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ld.w	%r10,0x1	; 	xld.w	%r10,0x00000001		; 1
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	des_ecb_cbc_encrypt@rm	; 	xcall	des_ecb_cbc_encrypt
	call	des_ecb_cbc_encrypt@rl
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret
	.align	1
	.global	des_cbc_decrypt
des_cbc_decrypt:
;	.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
	ld.w	%r10,[%sp+0x3]	; 	xld.w	%r10,[%sp+12]
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ld.w	%r10,0x1	; 	xld.w	%r10,0x00000001		; 1
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	des_ecb_cbc_decrypt@rm	; 	xcall	des_ecb_cbc_decrypt
	call	des_ecb_cbc_decrypt@rl
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret

	.lcomm	out.86 8
	.align	1
	.global	des_64bit_key
des_64bit_key:
;	.frame	%sp,136,$31		# vars= 120, regs= 4/0, args= 0, extra= 0
;	.mask	0x80070000,-4
;	.fmask	0x00000000,0
	pushn	%r2
	sub	%sp,0x1e	; 	xsub	%sp,%sp,120
	ld.w	%r2,%r12
	ld.w	%r1,%r13
	cmp	%r1,0x7		; 	xcmp	%r1,7
	jrle	__LX197		; 	xjrle	__L197
	ld.w	%r1,0x7		; 	xld.w	%r1,0x00000007		; 7
__LX197:				; __L197:
	ext	0x0		; 	xld.w	%r0,0x00000038		; 56
	ld.w	%r0,0x38
	ld.w	%r12,%sp
	ld.w	%r13,0x0
	ld.w	%r14,%r0
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ld.w	%r12,%sp
	ld.w	%r13,%r2
	ld.w	%r14,%r1
	ext	des_byte_array_to_bit_array@rm	; 	xcall	des_byte_array_to_bit_array
	call	des_byte_array_to_bit_array@rl
	ld.w	%r14,%sp
	ld.w	%r11,%sp
	add	%r11,%r0
	ld.w	%r15,0x0
__LX201:				; __L201:
	ld.w	%r13,0x1	; 	xld.w	%r13,0x00000001		; 1
	ld.w	%r12,0x0
__LX205:				; __L205:
	ld.ub	%r10,[%r14]	; 	xld.ub	%r10,[%r14]
	add	%r14,0x1	; 	xadd	%r14,%r14,1
	xor	%r13,%r10
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r12,0x6	; 	xcmp	%r12,6
	jrle	__LX205		; 	xjrle	__L205
	ld.b	[%r11],%r13	; 	xld.b	[%r11],%r13
	add	%r11,0x1	; 	xadd	%r11,%r11,1
	add	%r15,0x1	; 	xadd	%r15,%r15,1
	cmp	%r15,0x7	; 	xcmp	%r15,7
	jrle	__LX201		; 	xjrle	__L201
	ext	out.86+0x0@h	; 	xld.w	%r0,out.86
	ext	out.86+0x0@m
	ld.w	%r0,out.86+0x0@l
	ld.w	%r12,%r0
	ld.w	%r13,%sp	; 	xadd	%r13,%sp,56
	add	%r13,0x38
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	des_bit_array_to_byte_array@rm	; 	xcall	des_bit_array_to_byte_array
	call	des_bit_array_to_byte_array@rl
	ld.w	%r10,%r0
	add	%sp,0x1e	; 	xadd	%sp,%sp,120
	popn	%r2
	ret
