alpha.s   [plain text]


 # DEC Alpha assember
 # The bn_div_words is actually gcc output but the other parts are hand done.
 # Thanks to tzeruch@ceddec.com for sending me the gcc output for
 # bn_div_words.
 # I've gone back and re-done most of routines.
 # The key thing to remeber for the 164 CPU is that while a
 # multiply operation takes 8 cycles, another one can only be issued
 # after 4 cycles have elapsed.  I've done modification to help
 # improve this.  Also, normally, a ld instruction will not be available
 # for about 3 cycles.
	.file	1 "bn_asm.c"
	.set noat
gcc2_compiled.:
__gnu_compiled_c:
	.text
	.align 3
	.globl bn_mul_add_words
	.ent bn_mul_add_words
bn_mul_add_words:
bn_mul_add_words..ng:
	.frame $30,0,$26,0
	.prologue 0
	.align 5
	subq	$18,4,$18
	bis	$31,$31,$0
	blt	$18,$43		# if we are -1, -2, -3 or -4 goto tail code
	ldq	$20,0($17)	# 1 1
	ldq	$1,0($16)	# 1 1
	.align 3
$42:
	mulq	$20,$19,$5	# 1 2 1	######
	ldq	$21,8($17)	# 2 1
	ldq	$2,8($16)	# 2 1
	umulh	$20,$19,$20	# 1 2	######
	ldq	$27,16($17)	# 3 1
	ldq	$3,16($16)	# 3 1
	mulq	$21,$19,$6	# 2 2 1	######
	 ldq	$28,24($17)	# 4 1
	addq	$1,$5,$1	# 1 2 2
	 ldq	$4,24($16)	# 4 1
	umulh	$21,$19,$21	# 2 2	######
	 cmpult	$1,$5,$22	# 1 2 3 1
	addq	$20,$22,$20	# 1 3 1
	 addq	$1,$0,$1	# 1 2 3 1
	mulq	$27,$19,$7	# 3 2 1	######
	 cmpult	$1,$0,$0	# 1 2 3 2
	addq	$2,$6,$2	# 2 2 2
	 addq	$20,$0,$0	# 1 3 2 
	cmpult	$2,$6,$23	# 2 2 3 1
	 addq	$21,$23,$21	# 2 3 1
	umulh	$27,$19,$27	# 3 2	######
	 addq	$2,$0,$2	# 2 2 3 1
	cmpult	$2,$0,$0	# 2 2 3 2
	 subq	$18,4,$18
	mulq	$28,$19,$8	# 4 2 1	######
	 addq	$21,$0,$0	# 2 3 2 
	addq	$3,$7,$3	# 3 2 2
	 addq	$16,32,$16
	cmpult	$3,$7,$24	# 3 2 3 1
	 stq	$1,-32($16)	# 1 2 4
	umulh	$28,$19,$28	# 4 2	######
	 addq	$27,$24,$27	# 3 3 1
	addq	$3,$0,$3	# 3 2 3 1
	 stq	$2,-24($16)	# 2 2 4
	cmpult	$3,$0,$0	# 3 2 3 2
	 stq	$3,-16($16)	# 3 2 4
	addq	$4,$8,$4	# 4 2 2
	 addq	$27,$0,$0	# 3 3 2 
	cmpult	$4,$8,$25	# 4 2 3 1
	 addq	$17,32,$17
	addq	$28,$25,$28	# 4 3 1
	 addq	$4,$0,$4	# 4 2 3 1
	cmpult	$4,$0,$0	# 4 2 3 2
	 stq	$4,-8($16)	# 4 2 4
	addq	$28,$0,$0	# 4 3 2 
	 blt	$18,$43

	ldq	$20,0($17)	# 1 1
	ldq	$1,0($16)	# 1 1

	br	$42

	.align 4
$45:
	ldq	$20,0($17)	# 4 1
	ldq	$1,0($16)	# 4 1
	mulq	$20,$19,$5	# 4 2 1
	subq	$18,1,$18
	addq	$16,8,$16
	addq	$17,8,$17
	umulh	$20,$19,$20	# 4 2
	addq	$1,$5,$1	# 4 2 2
	cmpult	$1,$5,$22	# 4 2 3 1
	addq	$20,$22,$20	# 4 3 1
	addq	$1,$0,$1	# 4 2 3 1
	cmpult	$1,$0,$0	# 4 2 3 2
	addq	$20,$0,$0	# 4 3 2 
	stq	$1,-8($16)	# 4 2 4
	bgt	$18,$45
	ret	$31,($26),1	# else exit

	.align 4
$43:
	addq	$18,4,$18
	bgt	$18,$45		# goto tail code
	ret	$31,($26),1	# else exit

	.end bn_mul_add_words
	.align 3
	.globl bn_mul_words
	.ent bn_mul_words
bn_mul_words:
bn_mul_words..ng:
	.frame $30,0,$26,0
	.prologue 0
	.align 5
	subq	$18,4,$18
	bis	$31,$31,$0
	blt	$18,$143	# if we are -1, -2, -3 or -4 goto tail code
	ldq	$20,0($17)	# 1 1
	.align 3
$142:

	mulq	$20,$19,$5	# 1 2 1	#####
	 ldq	$21,8($17)	# 2 1
	 ldq	$27,16($17)	# 3 1
	umulh	$20,$19,$20	# 1 2	#####
	 ldq	$28,24($17)	# 4 1
	mulq	$21,$19,$6	# 2 2 1	#####
	 addq	$5,$0,$5	# 1 2 3 1
	subq	$18,4,$18
	 cmpult	$5,$0,$0	# 1 2 3 2
	umulh	$21,$19,$21	# 2 2	#####
	 addq	$20,$0,$0	# 1 3 2 
	addq	$17,32,$17
	 addq	$6,$0,$6	# 2 2 3 1
	mulq	$27,$19,$7	# 3 2 1	#####
	 cmpult	$6,$0,$0	# 2 2 3 2
	addq	$21,$0,$0	# 2 3 2 
	 addq	$16,32,$16
	umulh	$27,$19,$27	# 3 2	#####
	 stq	$5,-32($16)	# 1 2 4
	mulq	$28,$19,$8	# 4 2 1	#####
	 addq	$7,$0,$7	# 3 2 3 1
	stq	$6,-24($16)	# 2 2 4
	 cmpult	$7,$0,$0	# 3 2 3 2
	umulh	$28,$19,$28	# 4 2	#####
	 addq	$27,$0,$0	# 3 3 2 
	stq	$7,-16($16)	# 3 2 4
	 addq	$8,$0,$8	# 4 2 3 1
	cmpult	$8,$0,$0	# 4 2 3 2

	addq	$28,$0,$0	# 4 3 2 

	stq	$8,-8($16)	# 4 2 4

	blt	$18,$143

	ldq	$20,0($17)	# 1 1

	br	$142

	.align 4
$145:
	ldq	$20,0($17)	# 4 1
	mulq	$20,$19,$5	# 4 2 1
	subq	$18,1,$18
	umulh	$20,$19,$20	# 4 2
	addq	$5,$0,$5	# 4 2 3 1
	 addq	$16,8,$16
	cmpult	$5,$0,$0	# 4 2 3 2
	 addq	$17,8,$17
	addq	$20,$0,$0	# 4 3 2 
	stq	$5,-8($16)	# 4 2 4

	bgt	$18,$145
	ret	$31,($26),1	# else exit

	.align 4
$143:
	addq	$18,4,$18
	bgt	$18,$145	# goto tail code
	ret	$31,($26),1	# else exit

	.end bn_mul_words
	.align 3
	.globl bn_sqr_words
	.ent bn_sqr_words
bn_sqr_words:
bn_sqr_words..ng:
	.frame $30,0,$26,0
	.prologue 0

	subq	$18,4,$18
	blt	$18,$543	# if we are -1, -2, -3 or -4 goto tail code
	ldq	$20,0($17)	# 1 1
	.align 3
$542:
	mulq	$20,$20,$5		######
	 ldq	$21,8($17)	# 1 1
	subq	$18,4
 	umulh	$20,$20,$1		######
	ldq	$27,16($17)	# 1 1
	mulq	$21,$21,$6		######
	ldq	$28,24($17)	# 1 1
	stq	$5,0($16)	# r[0]
 	umulh	$21,$21,$2		######
	stq	$1,8($16)	# r[1]
	mulq	$27,$27,$7		######
	stq	$6,16($16)	# r[0]
 	umulh	$27,$27,$3		######
	stq	$2,24($16)	# r[1]
	mulq	$28,$28,$8		######
	stq	$7,32($16)	# r[0]
 	umulh	$28,$28,$4		######
	stq	$3,40($16)	# r[1]

 	addq	$16,64,$16
 	addq	$17,32,$17
	stq	$8,-16($16)	# r[0]
	stq	$4,-8($16)	# r[1]

	blt	$18,$543
	ldq	$20,0($17)	# 1 1
 	br 	$542

$442:
	ldq	$20,0($17)   # a[0]
	mulq	$20,$20,$5  # a[0]*w low part       r2
	addq	$16,16,$16
	addq	$17,8,$17
	subq	$18,1,$18
        umulh	$20,$20,$1  # a[0]*w high part       r3
	stq	$5,-16($16)   # r[0]
        stq	$1,-8($16)   # r[1]

	bgt	$18,$442
	ret	$31,($26),1	# else exit

	.align 4
$543:
	addq	$18,4,$18
	bgt	$18,$442	# goto tail code
	ret	$31,($26),1	# else exit
	.end bn_sqr_words

	.align 3
	.globl bn_add_words
	.ent bn_add_words
bn_add_words:
bn_add_words..ng:
	.frame $30,0,$26,0
	.prologue 0

	subq	$19,4,$19
	bis	$31,$31,$0	# carry = 0
	blt	$19,$900
	ldq	$5,0($17)	# a[0]
	ldq	$1,0($18)	# b[1]
	.align 3
$901:
	addq	$1,$5,$1	# r=a+b;
	 ldq	$6,8($17)	# a[1]
	cmpult	$1,$5,$22	# did we overflow?
	 ldq	$2,8($18)	# b[1]
	addq	$1,$0,$1	# c+= overflow
	 ldq	$7,16($17)	# a[2]
	cmpult	$1,$0,$0	# overflow?
	 ldq	$3,16($18)	# b[2]
	addq	$0,$22,$0
	 ldq	$8,24($17)	# a[3]
	addq	$2,$6,$2	# r=a+b;
	 ldq	$4,24($18)	# b[3]
	cmpult	$2,$6,$23	# did we overflow?
	 addq	$3,$7,$3	# r=a+b;
	addq	$2,$0,$2	# c+= overflow
	 cmpult	$3,$7,$24	# did we overflow?
	cmpult	$2,$0,$0	# overflow?
	 addq	$4,$8,$4	# r=a+b;
	addq	$0,$23,$0
	 cmpult	$4,$8,$25	# did we overflow?
	addq	$3,$0,$3	# c+= overflow
	 stq	$1,0($16)	# r[0]=c
	cmpult	$3,$0,$0	# overflow?
	 stq	$2,8($16)	# r[1]=c
	addq	$0,$24,$0
	 stq	$3,16($16)	# r[2]=c
	addq	$4,$0,$4	# c+= overflow
	 subq	$19,4,$19	# loop--
	cmpult	$4,$0,$0	# overflow?
	 addq	$17,32,$17	# a++
	addq	$0,$25,$0
	 stq	$4,24($16)	# r[3]=c
	addq	$18,32,$18	# b++
	 addq	$16,32,$16	# r++

	blt	$19,$900
	 ldq	$5,0($17)	# a[0]
	ldq	$1,0($18)	# b[1]
	 br	$901
	.align 4
$945:
	ldq	$5,0($17)	# a[0]
	 ldq	$1,0($18)	# b[1]
	addq	$1,$5,$1	# r=a+b;
	 subq	$19,1,$19	# loop--
	addq	$1,$0,$1	# c+= overflow
	 addq	$17,8,$17	# a++
	cmpult	$1,$5,$22	# did we overflow?
	 cmpult	$1,$0,$0	# overflow?
	addq	$18,8,$18	# b++
	 stq	$1,0($16)	# r[0]=c
	addq	$0,$22,$0
	 addq	$16,8,$16	# r++

	bgt	$19,$945
	ret	$31,($26),1	# else exit

$900:
	addq	$19,4,$19
	bgt	$19,$945	# goto tail code
	ret	$31,($26),1	# else exit
	.end bn_add_words

 #
 # What follows was taken directly from the C compiler with a few
 # hacks to redo the lables.
 #
.text
	.align 3
	.globl bn_div_words
	.ent bn_div_words
bn_div_words:
	ldgp $29,0($27)
bn_div_words..ng:
	lda $30,-48($30)
	.frame $30,48,$26,0
	stq $26,0($30)
	stq $9,8($30)
	stq $10,16($30)
	stq $11,24($30)
	stq $12,32($30)
	stq $13,40($30)
	.mask 0x4003e00,-48
	.prologue 1
	bis $16,$16,$9
	bis $17,$17,$10
	bis $18,$18,$11
	bis $31,$31,$13
	bis $31,2,$12
	bne $11,$119
	lda $0,-1
	br $31,$136
	.align 4
$119:
	bis $11,$11,$16
	jsr $26,BN_num_bits_word
	ldgp $29,0($26)
	subq $0,64,$1
	beq $1,$120
	bis $31,1,$1
	sll $1,$0,$1
	cmpule $9,$1,$1
	bne $1,$120
 #	lda $16,_IO_stderr_
 #	lda $17,$C32
 #	bis $0,$0,$18
 #	jsr $26,fprintf
 #	ldgp $29,0($26)
	jsr $26,abort
	ldgp $29,0($26)
	.align 4
$120:
	bis $31,64,$3
	cmpult $9,$11,$2
	subq $3,$0,$1
	addl $1,$31,$0
	subq $9,$11,$1
	cmoveq $2,$1,$9
	beq $0,$122
	zapnot $0,15,$2
	subq $3,$0,$1
	sll $11,$2,$11
	sll $9,$2,$3
	srl $10,$1,$1
	sll $10,$2,$10
	bis $3,$1,$9
$122:
	srl $11,32,$5
	zapnot $11,15,$6
	lda $7,-1
	.align 5
$123:
	srl $9,32,$1
	subq $1,$5,$1
	bne $1,$126
	zapnot $7,15,$27
	br $31,$127
	.align 4
$126:
	bis $9,$9,$24
	bis $5,$5,$25
	divqu $24,$25,$27
$127:
	srl $10,32,$4
	.align 5
$128:
	mulq $27,$5,$1
	subq $9,$1,$3
	zapnot $3,240,$1
	bne $1,$129
	mulq $6,$27,$2
	sll $3,32,$1
	addq $1,$4,$1
	cmpule $2,$1,$2
	bne $2,$129
	subq $27,1,$27
	br $31,$128
	.align 4
$129:
	mulq $27,$6,$1
	mulq $27,$5,$4
	srl $1,32,$3
	sll $1,32,$1
	addq $4,$3,$4
	cmpult $10,$1,$2
	subq $10,$1,$10
	addq $2,$4,$2
	cmpult $9,$2,$1
	bis $2,$2,$4
	beq $1,$134
	addq $9,$11,$9
	subq $27,1,$27
$134:
	subl $12,1,$12
	subq $9,$4,$9
	beq $12,$124
	sll $27,32,$13
	sll $9,32,$2
	srl $10,32,$1
	sll $10,32,$10
	bis $2,$1,$9
	br $31,$123
	.align 4
$124:
	bis $13,$27,$0
$136:
	ldq $26,0($30)
	ldq $9,8($30)
	ldq $10,16($30)
	ldq $11,24($30)
	ldq $12,32($30)
	ldq $13,40($30)
	addq $30,48,$30
	ret $31,($26),1
	.end bn_div_words

	.set noat
	.text
	.align 3
	.globl bn_sub_words
	.ent bn_sub_words
bn_sub_words:
bn_sub_words..ng:
	.frame $30,0,$26,0
	.prologue 0

	subq	$19,	4,	$19
	bis	$31,	$31,	$0
	blt	$19,	$100
	ldq	$1,	0($17)
	ldq	$2,	0($18)
$101:
	ldq	$3,	8($17)
	cmpult	$1,	$2,	$4
	ldq	$5,	8($18)
	subq	$1,	$2,	$1
	ldq	$6,	16($17)
	cmpult	$1,	$0,	$2
	ldq	$7,	16($18)
	subq	$1,	$0,	$23
	ldq	$8,	24($17)
	addq	$2,	$4,	$0
	cmpult	$3,	$5,	$24
	subq	$3,	$5,	$3
	ldq	$22,	24($18)
	cmpult	$3,	$0,	$5
	subq	$3,	$0,	$25
	addq	$5,	$24,	$0
	cmpult	$6,	$7,	$27
	subq	$6,	$7,	$6
	stq	$23,	0($16)
	cmpult	$6,	$0,	$7
	subq	$6,	$0,	$28
	addq	$7,	$27,	$0
	cmpult	$8,	$22,	$21
	subq	$8,	$22,	$8
	stq	$25,	8($16)
	cmpult	$8,	$0,	$22
	subq	$8,	$0,	$20
	addq	$22,	$21,	$0
	stq	$28,	16($16)
	subq	$19,	4,	$19
	stq	$20,	24($16)
	addq	$17,	32,	$17
	addq	$18,	32,	$18
	addq	$16,	32,	$16
	blt	$19,	$100
	ldq	$1,	0($17)
	ldq	$2,	0($18)
	br	$101
$102:
	ldq	$1,	0($17)
	ldq	$2,	0($18)
	cmpult	$1,	$2,	$27
	subq	$1,	$2,	$1
	cmpult	$1,	$0,	$2
	subq	$1,	$0,	$1
	stq	$1,	0($16)
	addq	$2,	$27,	$0
	addq	$17,	8,	$17
	addq	$18,	8,	$18
	addq	$16,	8,	$16
	subq	$19,	1,	$19
	bgt	$19,	$102
	ret	$31,($26),1
$100:
	addq	$19,	4,	$19
	bgt	$19,	$102
$103:
	ret	$31,($26),1
	.end bn_sub_words
	.text
	.align 3
	.globl bn_mul_comba4
	.ent bn_mul_comba4
bn_mul_comba4:
bn_mul_comba4..ng:
	.frame $30,0,$26,0
	.prologue 0

	ldq	$0,	0($17)
	ldq	$1,	0($18)
	ldq	$2,	8($17)
	ldq	$3,	8($18)
	ldq	$4,	16($17)
	ldq	$5,	16($18)
	ldq	$6,	24($17)
	ldq	$7,	24($18)
	bis	$31,	$31,	$23
	mulq	$0,	$1,	$8
	umulh	$0,	$1,	$22
	stq	$8,	0($16)
	bis	$31,	$31,	$8
	mulq	$0,	$3,	$24
	umulh	$0,	$3,	$25
	addq	$22,	$24,	$22
	cmpult	$22,	$24,	$27
	addq	$27,	$25,	$25
	addq	$23,	$25,	$23
	cmpult	$23,	$25,	$28
	addq	$8,	$28,	$8
	mulq	$2,	$1,	$21
	umulh	$2,	$1,	$20
	addq	$22,	$21,	$22
	cmpult	$22,	$21,	$19
	addq	$19,	$20,	$20
	addq	$23,	$20,	$23
	cmpult	$23,	$20,	$17
	addq	$8,	$17,	$8
	stq	$22,	8($16)
	bis	$31,	$31,	$22
	mulq	$2,	$3,	$18
	umulh	$2,	$3,	$24
	addq	$23,	$18,	$23
	cmpult	$23,	$18,	$27
	addq	$27,	$24,	$24
	addq	$8,	$24,	$8
	cmpult	$8,	$24,	$25
	addq	$22,	$25,	$22
	mulq	$0,	$5,	$28
	umulh	$0,	$5,	$21
	addq	$23,	$28,	$23
	cmpult	$23,	$28,	$19
	addq	$19,	$21,	$21
	addq	$8,	$21,	$8
	cmpult	$8,	$21,	$20
	addq	$22,	$20,	$22
	mulq	$4,	$1,	$17
	umulh	$4,	$1,	$18
	addq	$23,	$17,	$23
	cmpult	$23,	$17,	$27
	addq	$27,	$18,	$18
	addq	$8,	$18,	$8
	cmpult	$8,	$18,	$24
	addq	$22,	$24,	$22
	stq	$23,	16($16)
	bis	$31,	$31,	$23
	mulq	$0,	$7,	$25
	umulh	$0,	$7,	$28
	addq	$8,	$25,	$8
	cmpult	$8,	$25,	$19
	addq	$19,	$28,	$28
	addq	$22,	$28,	$22
	cmpult	$22,	$28,	$21
	addq	$23,	$21,	$23
	mulq	$2,	$5,	$20
	umulh	$2,	$5,	$17
	addq	$8,	$20,	$8
	cmpult	$8,	$20,	$27
	addq	$27,	$17,	$17
	addq	$22,	$17,	$22
	cmpult	$22,	$17,	$18
	addq	$23,	$18,	$23
	mulq	$4,	$3,	$24
	umulh	$4,	$3,	$25
	addq	$8,	$24,	$8
	cmpult	$8,	$24,	$19
	addq	$19,	$25,	$25
	addq	$22,	$25,	$22
	cmpult	$22,	$25,	$28
	addq	$23,	$28,	$23
	mulq	$6,	$1,	$21
	umulh	$6,	$1,	$0
	addq	$8,	$21,	$8
	cmpult	$8,	$21,	$20
	addq	$20,	$0,	$0
	addq	$22,	$0,	$22
	cmpult	$22,	$0,	$27
	addq	$23,	$27,	$23
	stq	$8,	24($16)
	bis	$31,	$31,	$8
	mulq	$2,	$7,	$17
	umulh	$2,	$7,	$18
	addq	$22,	$17,	$22
	cmpult	$22,	$17,	$24
	addq	$24,	$18,	$18
	addq	$23,	$18,	$23
	cmpult	$23,	$18,	$19
	addq	$8,	$19,	$8
	mulq	$4,	$5,	$25
	umulh	$4,	$5,	$28
	addq	$22,	$25,	$22
	cmpult	$22,	$25,	$21
	addq	$21,	$28,	$28
	addq	$23,	$28,	$23
	cmpult	$23,	$28,	$20
	addq	$8,	$20,	$8
	mulq	$6,	$3,	$0
	umulh	$6,	$3,	$27
	addq	$22,	$0,	$22
	cmpult	$22,	$0,	$1
	addq	$1,	$27,	$27
	addq	$23,	$27,	$23
	cmpult	$23,	$27,	$17
	addq	$8,	$17,	$8
	stq	$22,	32($16)
	bis	$31,	$31,	$22
	mulq	$4,	$7,	$24
	umulh	$4,	$7,	$18
	addq	$23,	$24,	$23
	cmpult	$23,	$24,	$19
	addq	$19,	$18,	$18
	addq	$8,	$18,	$8
	cmpult	$8,	$18,	$2
	addq	$22,	$2,	$22
	mulq	$6,	$5,	$25
	umulh	$6,	$5,	$21
	addq	$23,	$25,	$23
	cmpult	$23,	$25,	$28
	addq	$28,	$21,	$21
	addq	$8,	$21,	$8
	cmpult	$8,	$21,	$20
	addq	$22,	$20,	$22
	stq	$23,	40($16)
	bis	$31,	$31,	$23
	mulq	$6,	$7,	$0
	umulh	$6,	$7,	$1
	addq	$8,	$0,	$8
	cmpult	$8,	$0,	$27
	addq	$27,	$1,	$1
	addq	$22,	$1,	$22
	cmpult	$22,	$1,	$17
	addq	$23,	$17,	$23
	stq	$8,	48($16)
	stq	$22,	56($16)
	ret	$31,($26),1
	.end bn_mul_comba4
	.text
	.align 3
	.globl bn_mul_comba8
	.ent bn_mul_comba8
bn_mul_comba8:
bn_mul_comba8..ng:
	.frame $30,0,$26,0
	.prologue 0
	ldq	$1,	0($17)
	ldq	$2,	0($18)
	zapnot	$1,	15,	$7
	srl	$2,	32,	$8
	mulq	$8,	$7,	$22
	srl	$1,	32,	$6
	zapnot	$2,	15,	$5
	mulq	$5,	$6,	$4
	mulq	$7,	$5,	$24
	addq	$22,	$4,	$22
	cmpult	$22,	$4,	$1
	mulq	$6,	$8,	$3
	beq	$1,	$173
	bis	$31,	1,	$1
	sll	$1,	32,	$1
	addq	$3,	$1,	$3
$173:
	sll	$22,	32,	$4
	addq	$24,	$4,	$24
	stq	$24,	0($16)
	ldq	$2,	0($17)
	ldq	$1,	8($18)
	zapnot	$2,	15,	$7
	srl	$1,	32,	$8
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$0
	srl	$2,	32,	$6
	mulq	$5,	$6,	$23
	mulq	$6,	$8,	$6
	srl	$22,	32,	$1
	cmpult	$24,	$4,	$2
	addq	$3,	$1,	$3
	addq	$2,	$3,	$22
	addq	$25,	$23,	$25
	cmpult	$25,	$23,	$1
	bis	$31,	1,	$2
	beq	$1,	$177
	sll	$2,	32,	$1
	addq	$6,	$1,	$6
$177:
	sll	$25,	32,	$23
	ldq	$1,	0($18)
	addq	$0,	$23,	$0
	bis	$0,	$0,	$7
	ldq	$3,	8($17)
	addq	$22,	$7,	$22
	srl	$1,	32,	$8
	cmpult	$22,	$7,	$4
	zapnot	$3,	15,	$7
	mulq	$8,	$7,	$28
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$21
	srl	$25,	32,	$1
	cmpult	$0,	$23,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$4,	$6,	$24
	srl	$3,	32,	$6
	mulq	$5,	$6,	$2
	mulq	$6,	$8,	$6
	addq	$28,	$2,	$28
	cmpult	$28,	$2,	$1
	bis	$31,	1,	$2
	beq	$1,	$181
	sll	$2,	32,	$1
	addq	$6,	$1,	$6
$181:
	sll	$28,	32,	$2
	addq	$21,	$2,	$21
	bis	$21,	$21,	$7
	addq	$22,	$7,	$22
	stq	$22,	8($16)
	ldq	$3,	16($17)
	ldq	$1,	0($18)
	cmpult	$22,	$7,	$4
	zapnot	$3,	15,	$7
	srl	$1,	32,	$8
	mulq	$8,	$7,	$22
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$20
	srl	$28,	32,	$1
	cmpult	$21,	$2,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$4,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$23
	srl	$3,	32,	$6
	mulq	$5,	$6,	$2
	mulq	$6,	$8,	$6
	addq	$22,	$2,	$22
	cmpult	$22,	$2,	$1
	bis	$31,	1,	$2
	beq	$1,	$185
	sll	$2,	32,	$1
	addq	$6,	$1,	$6
$185:
	sll	$22,	32,	$2
	ldq	$1,	8($18)
	addq	$20,	$2,	$20
	bis	$20,	$20,	$7
	ldq	$4,	8($17)
	addq	$24,	$7,	$24
	srl	$1,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$0
	srl	$22,	32,	$1
	cmpult	$20,	$2,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$22
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$21
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$189
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$189:
	sll	$25,	32,	$5
	ldq	$2,	16($18)
	addq	$0,	$5,	$0
	bis	$0,	$0,	$7
	ldq	$4,	0($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$0,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$22,	$22
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$193
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$193:
	sll	$28,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$24,	$7,	$24
	stq	$24,	16($16)
	ldq	$4,	0($17)
	ldq	$5,	24($18)
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$24
	mulq	$7,	$5,	$2
	addq	$1,	$22,	$22
	addq	$0,	$24,	$0
	cmpult	$0,	$24,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$197
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$197:
	sll	$0,	32,	$24
	ldq	$1,	16($18)
	addq	$2,	$24,	$2
	bis	$2,	$2,	$7
	ldq	$4,	8($17)
	addq	$23,	$7,	$23
	srl	$1,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$21
	srl	$0,	32,	$1
	cmpult	$2,	$24,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$24
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$20
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$201
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$201:
	sll	$25,	32,	$5
	ldq	$2,	8($18)
	addq	$21,	$5,	$21
	bis	$21,	$21,	$7
	ldq	$4,	16($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$21,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$205
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$205:
	sll	$28,	32,	$25
	ldq	$2,	0($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	24($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$24,	$24
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$209
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$209:
	sll	$0,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$23,	$7,	$23
	stq	$23,	24($16)
	ldq	$4,	32($17)
	ldq	$5,	0($18)
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$23
	mulq	$7,	$5,	$2
	addq	$1,	$24,	$24
	addq	$28,	$23,	$28
	cmpult	$28,	$23,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$213
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$213:
	sll	$28,	32,	$23
	ldq	$1,	8($18)
	addq	$2,	$23,	$2
	bis	$2,	$2,	$7
	ldq	$4,	24($17)
	addq	$22,	$7,	$22
	srl	$1,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$23,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$23
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$21
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$217
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$217:
	sll	$25,	32,	$5
	ldq	$2,	16($18)
	addq	$0,	$5,	$0
	bis	$0,	$0,	$7
	ldq	$4,	16($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$0,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$221
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$221:
	sll	$28,	32,	$25
	ldq	$2,	24($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	8($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$225
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$225:
	sll	$0,	32,	$25
	ldq	$2,	32($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	0($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$23,	$23
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$229
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$229:
	sll	$28,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$22,	$7,	$22
	stq	$22,	32($16)
	ldq	$4,	0($17)
	ldq	$5,	40($18)
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$22
	mulq	$7,	$5,	$2
	addq	$1,	$23,	$23
	addq	$0,	$22,	$0
	cmpult	$0,	$22,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$233
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$233:
	sll	$0,	32,	$22
	ldq	$1,	32($18)
	addq	$2,	$22,	$2
	bis	$2,	$2,	$7
	ldq	$4,	8($17)
	addq	$24,	$7,	$24
	srl	$1,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$21
	srl	$0,	32,	$1
	cmpult	$2,	$22,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$22
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$20
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$237
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$237:
	sll	$25,	32,	$5
	ldq	$2,	24($18)
	addq	$21,	$5,	$21
	bis	$21,	$21,	$7
	ldq	$4,	16($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$21,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$241
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$241:
	sll	$28,	32,	$25
	ldq	$2,	16($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	24($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$245
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$245:
	sll	$0,	32,	$25
	ldq	$2,	8($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	32($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$249
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$249:
	sll	$28,	32,	$25
	ldq	$2,	0($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	40($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$22,	$22
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$253
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$253:
	sll	$0,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$24,	$7,	$24
	stq	$24,	40($16)
	ldq	$4,	48($17)
	ldq	$5,	0($18)
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$24
	mulq	$7,	$5,	$2
	addq	$1,	$22,	$22
	addq	$28,	$24,	$28
	cmpult	$28,	$24,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$257
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$257:
	sll	$28,	32,	$24
	ldq	$1,	8($18)
	addq	$2,	$24,	$2
	bis	$2,	$2,	$7
	ldq	$4,	40($17)
	addq	$23,	$7,	$23
	srl	$1,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$24,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$24
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$21
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$261
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$261:
	sll	$25,	32,	$5
	ldq	$2,	16($18)
	addq	$0,	$5,	$0
	bis	$0,	$0,	$7
	ldq	$4,	32($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$0,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$265
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$265:
	sll	$28,	32,	$25
	ldq	$2,	24($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	24($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$269
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$269:
	sll	$0,	32,	$25
	ldq	$2,	32($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	16($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$273
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$273:
	sll	$28,	32,	$25
	ldq	$2,	40($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	8($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$277
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$277:
	sll	$0,	32,	$25
	ldq	$2,	48($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	0($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$24,	$24
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$281
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$281:
	sll	$28,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$23,	$7,	$23
	stq	$23,	48($16)
	ldq	$4,	0($17)
	ldq	$5,	56($18)
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$23
	mulq	$7,	$5,	$2
	addq	$1,	$24,	$24
	addq	$0,	$23,	$0
	cmpult	$0,	$23,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$285
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$285:
	sll	$0,	32,	$23
	ldq	$1,	48($18)
	addq	$2,	$23,	$2
	bis	$2,	$2,	$7
	ldq	$4,	8($17)
	addq	$22,	$7,	$22
	srl	$1,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$21
	srl	$0,	32,	$1
	cmpult	$2,	$23,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$23
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$20
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$289
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$289:
	sll	$25,	32,	$5
	ldq	$2,	40($18)
	addq	$21,	$5,	$21
	bis	$21,	$21,	$7
	ldq	$4,	16($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$21,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$293
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$293:
	sll	$28,	32,	$25
	ldq	$2,	32($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	24($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$297
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$297:
	sll	$0,	32,	$25
	ldq	$2,	24($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	32($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$301
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$301:
	sll	$28,	32,	$25
	ldq	$2,	16($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	40($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$305
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$305:
	sll	$0,	32,	$25
	ldq	$2,	8($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	48($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$309
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$309:
	sll	$28,	32,	$25
	ldq	$2,	0($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	56($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$23,	$23
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$313
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$313:
	sll	$0,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$22,	$7,	$22
	stq	$22,	56($16)
	ldq	$4,	56($17)
	ldq	$5,	8($18)
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$22
	mulq	$7,	$5,	$2
	addq	$1,	$23,	$23
	addq	$28,	$22,	$28
	cmpult	$28,	$22,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$317
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$317:
	sll	$28,	32,	$22
	ldq	$1,	16($18)
	addq	$2,	$22,	$2
	bis	$2,	$2,	$7
	ldq	$4,	48($17)
	addq	$24,	$7,	$24
	srl	$1,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$22,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$22
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$21
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$321
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$321:
	sll	$25,	32,	$5
	ldq	$2,	24($18)
	addq	$0,	$5,	$0
	bis	$0,	$0,	$7
	ldq	$4,	40($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$0,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$325
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$325:
	sll	$28,	32,	$25
	ldq	$2,	32($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	32($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$329
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$329:
	sll	$0,	32,	$25
	ldq	$2,	40($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	24($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$333
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$333:
	sll	$28,	32,	$25
	ldq	$2,	48($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	16($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$337
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$337:
	sll	$0,	32,	$25
	ldq	$2,	56($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	8($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$22,	$22
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$341
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$341:
	sll	$28,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$24,	$7,	$24
	stq	$24,	64($16)
	ldq	$4,	16($17)
	ldq	$5,	56($18)
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$24
	mulq	$7,	$5,	$2
	addq	$1,	$22,	$22
	addq	$0,	$24,	$0
	cmpult	$0,	$24,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$345
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$345:
	sll	$0,	32,	$24
	ldq	$1,	48($18)
	addq	$2,	$24,	$2
	bis	$2,	$2,	$7
	ldq	$4,	24($17)
	addq	$23,	$7,	$23
	srl	$1,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$21
	srl	$0,	32,	$1
	cmpult	$2,	$24,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$24
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$20
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$349
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$349:
	sll	$25,	32,	$5
	ldq	$2,	40($18)
	addq	$21,	$5,	$21
	bis	$21,	$21,	$7
	ldq	$4,	32($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$21,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$353
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$353:
	sll	$28,	32,	$25
	ldq	$2,	32($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	40($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$357
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$357:
	sll	$0,	32,	$25
	ldq	$2,	24($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	48($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$361
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$361:
	sll	$28,	32,	$25
	ldq	$2,	16($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	56($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$24,	$24
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$365
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$365:
	sll	$0,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$23,	$7,	$23
	stq	$23,	72($16)
	ldq	$4,	56($17)
	ldq	$5,	24($18)
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$23
	mulq	$7,	$5,	$2
	addq	$1,	$24,	$24
	addq	$28,	$23,	$28
	cmpult	$28,	$23,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$369
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$369:
	sll	$28,	32,	$23
	ldq	$1,	32($18)
	addq	$2,	$23,	$2
	bis	$2,	$2,	$7
	ldq	$4,	48($17)
	addq	$22,	$7,	$22
	srl	$1,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$23,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$23
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$21
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$373
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$373:
	sll	$25,	32,	$5
	ldq	$2,	40($18)
	addq	$0,	$5,	$0
	bis	$0,	$0,	$7
	ldq	$4,	40($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$0,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$377
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$377:
	sll	$28,	32,	$25
	ldq	$2,	48($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	32($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$23,	$23
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$381
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$381:
	sll	$0,	32,	$25
	ldq	$2,	56($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	24($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$23,	$23
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$385
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$385:
	sll	$28,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$22,	$7,	$22
	stq	$22,	80($16)
	ldq	$4,	32($17)
	ldq	$5,	56($18)
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$22
	mulq	$7,	$5,	$2
	addq	$1,	$23,	$23
	addq	$0,	$22,	$0
	cmpult	$0,	$22,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$389
	sll	$21,	32,	$1
	addq	$6,	$1,	$6
$389:
	sll	$0,	32,	$22
	ldq	$1,	48($18)
	addq	$2,	$22,	$2
	bis	$2,	$2,	$7
	ldq	$4,	40($17)
	addq	$24,	$7,	$24
	srl	$1,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$25
	zapnot	$1,	15,	$5
	mulq	$7,	$5,	$21
	srl	$0,	32,	$1
	cmpult	$2,	$22,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$22
	srl	$4,	32,	$6
	mulq	$5,	$6,	$5
	bis	$31,	1,	$20
	addq	$25,	$5,	$25
	cmpult	$25,	$5,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$393
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$393:
	sll	$25,	32,	$5
	ldq	$2,	40($18)
	addq	$21,	$5,	$21
	bis	$21,	$21,	$7
	ldq	$4,	48($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$25,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$21,	$5,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$397
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$397:
	sll	$28,	32,	$25
	ldq	$2,	32($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	56($17)
	addq	$24,	$7,	$24
	srl	$2,	32,	$8
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$21
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$22,	$22
	addq	$21,	$25,	$21
	cmpult	$21,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$401
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$401:
	sll	$21,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$24,	$7,	$24
	stq	$24,	88($16)
	ldq	$4,	56($17)
	ldq	$5,	40($18)
	cmpult	$24,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$0
	srl	$21,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$23,	$6,	$23
	cmpult	$23,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$24
	mulq	$7,	$5,	$5
	addq	$1,	$22,	$22
	addq	$0,	$24,	$0
	cmpult	$0,	$24,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$405
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$405:
	sll	$0,	32,	$24
	ldq	$2,	48($18)
	addq	$5,	$24,	$5
	bis	$5,	$5,	$7
	ldq	$4,	48($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$24,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$24
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$5
	addq	$28,	$25,	$28
	cmpult	$28,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$409
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$409:
	sll	$28,	32,	$25
	ldq	$2,	56($18)
	addq	$5,	$25,	$5
	bis	$5,	$5,	$7
	ldq	$4,	40($17)
	addq	$23,	$7,	$23
	srl	$2,	32,	$8
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$25,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$1,	$24,	$24
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$413
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$413:
	sll	$0,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$23,	$7,	$23
	stq	$23,	96($16)
	ldq	$4,	48($17)
	ldq	$5,	56($18)
	cmpult	$23,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$22,	$6,	$22
	cmpult	$22,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$23
	mulq	$7,	$5,	$5
	addq	$1,	$24,	$24
	addq	$28,	$23,	$28
	cmpult	$28,	$23,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$417
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$417:
	sll	$28,	32,	$23
	ldq	$2,	48($18)
	addq	$5,	$23,	$5
	bis	$5,	$5,	$7
	ldq	$4,	56($17)
	addq	$22,	$7,	$22
	srl	$2,	32,	$8
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	mulq	$8,	$7,	$0
	srl	$28,	32,	$1
	addq	$6,	$1,	$6
	cmpult	$5,	$23,	$1
	zapnot	$2,	15,	$5
	addq	$1,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$23
	srl	$4,	32,	$6
	mulq	$5,	$6,	$25
	mulq	$7,	$5,	$2
	addq	$0,	$25,	$0
	cmpult	$0,	$25,	$1
	mulq	$6,	$8,	$6
	beq	$1,	$421
	sll	$20,	32,	$1
	addq	$6,	$1,	$6
$421:
	sll	$0,	32,	$25
	addq	$2,	$25,	$2
	bis	$2,	$2,	$7
	addq	$22,	$7,	$22
	stq	$22,	104($16)
	ldq	$4,	56($17)
	ldq	$5,	56($18)
	cmpult	$22,	$7,	$3
	zapnot	$4,	15,	$7
	srl	$5,	32,	$8
	mulq	$8,	$7,	$28
	srl	$0,	32,	$1
	cmpult	$2,	$25,	$2
	addq	$6,	$1,	$6
	addq	$2,	$6,	$6
	addq	$3,	$6,	$6
	addq	$24,	$6,	$24
	cmpult	$24,	$6,	$1
	srl	$4,	32,	$6
	zapnot	$5,	15,	$5
	mulq	$5,	$6,	$22
	mulq	$7,	$5,	$2
	addq	$1,	$23,	$23
	addq	$28,	$22,	$28
	cmpult	$28,	$22,	$1
	mulq	$6,	$8,	$3
	beq	$1,	$425
	sll	$20,	32,	$1
	addq	$3,	$1,	$3
$425:
	sll	$28,	32,	$22
	srl	$28,	32,	$1
	addq	$2,	$22,	$2
	addq	$3,	$1,	$3
	bis	$2,	$2,	$7
	addq	$24,	$7,	$24
	cmpult	$7,	$22,	$1
	cmpult	$24,	$7,	$2
	addq	$1,	$3,	$6
	addq	$2,	$6,	$6
	stq	$24,	112($16)
	addq	$23,	$6,	$23
	stq	$23,	120($16)
	ret	$31,	($26),	1
	.end bn_mul_comba8
	.text
	.align 3
	.globl bn_sqr_comba4
	.ent bn_sqr_comba4
bn_sqr_comba4:
bn_sqr_comba4..ng:
	.frame $30,0,$26,0
	.prologue 0

	ldq	$0,	0($17)
	ldq	$1,	8($17)
	ldq	$2,	16($17)
	ldq	$3,	24($17)
	bis	$31,	$31,	$6
	mulq	$0,	$0,	$4
	umulh	$0,	$0,	$5
	stq	$4,	0($16)
	bis	$31,	$31,	$4
	mulq	$0,	$1,	$7
	umulh	$0,	$1,	$8
	cmplt	$7,	$31,	$22
	cmplt	$8,	$31,	$23
	addq	$7,	$7,	$7
	addq	$8,	$8,	$8
	addq	$8,	$22,	$8
	addq	$4,	$23,	$4
	addq	$5,	$7,	$5
	addq	$6,	$8,	$6
	cmpult	$5,	$7,	$24
	cmpult	$6,	$8,	$25
	addq	$6,	$24,	$6
	addq	$4,	$25,	$4
	stq	$5,	8($16)
	bis	$31,	$31,	$5
	mulq	$1,	$1,	$27
	umulh	$1,	$1,	$28
	addq	$6,	$27,	$6
	addq	$4,	$28,	$4
	cmpult	$6,	$27,	$21
	cmpult	$4,	$28,	$20
	addq	$4,	$21,	$4
	addq	$5,	$20,	$5
	mulq	$2,	$0,	$19
	umulh	$2,	$0,	$18
	cmplt	$19,	$31,	$17
	cmplt	$18,	$31,	$22
	addq	$19,	$19,	$19
	addq	$18,	$18,	$18
	addq	$18,	$17,	$18
	addq	$5,	$22,	$5
	addq	$6,	$19,	$6
	addq	$4,	$18,	$4
	cmpult	$6,	$19,	$23
	cmpult	$4,	$18,	$7
	addq	$4,	$23,	$4
	addq	$5,	$7,	$5
	stq	$6,	16($16)
	bis	$31,	$31,	$6
	mulq	$3,	$0,	$8
	umulh	$3,	$0,	$24
	cmplt	$8,	$31,	$25
	cmplt	$24,	$31,	$27
	addq	$8,	$8,	$8
	addq	$24,	$24,	$24
	addq	$24,	$25,	$24
	addq	$6,	$27,	$6
	addq	$4,	$8,	$4
	addq	$5,	$24,	$5
	cmpult	$4,	$8,	$28
	cmpult	$5,	$24,	$21
	addq	$5,	$28,	$5
	addq	$6,	$21,	$6
	mulq	$2,	$1,	$20
	umulh	$2,	$1,	$17
	cmplt	$20,	$31,	$22
	cmplt	$17,	$31,	$19
	addq	$20,	$20,	$20
	addq	$17,	$17,	$17
	addq	$17,	$22,	$17
	addq	$6,	$19,	$6
	addq	$4,	$20,	$4
	addq	$5,	$17,	$5
	cmpult	$4,	$20,	$18
	cmpult	$5,	$17,	$23
	addq	$5,	$18,	$5
	addq	$6,	$23,	$6
	stq	$4,	24($16)
	bis	$31,	$31,	$4
	mulq	$2,	$2,	$7
	umulh	$2,	$2,	$25
	addq	$5,	$7,	$5
	addq	$6,	$25,	$6
	cmpult	$5,	$7,	$27
	cmpult	$6,	$25,	$8
	addq	$6,	$27,	$6
	addq	$4,	$8,	$4
	mulq	$3,	$1,	$24
	umulh	$3,	$1,	$28
	cmplt	$24,	$31,	$21
	cmplt	$28,	$31,	$22
	addq	$24,	$24,	$24
	addq	$28,	$28,	$28
	addq	$28,	$21,	$28
	addq	$4,	$22,	$4
	addq	$5,	$24,	$5
	addq	$6,	$28,	$6
	cmpult	$5,	$24,	$19
	cmpult	$6,	$28,	$20
	addq	$6,	$19,	$6
	addq	$4,	$20,	$4
	stq	$5,	32($16)
	bis	$31,	$31,	$5
	mulq	$3,	$2,	$17
	umulh	$3,	$2,	$18
	cmplt	$17,	$31,	$23
	cmplt	$18,	$31,	$7
	addq	$17,	$17,	$17
	addq	$18,	$18,	$18
	addq	$18,	$23,	$18
	addq	$5,	$7,	$5
	addq	$6,	$17,	$6
	addq	$4,	$18,	$4
	cmpult	$6,	$17,	$25
	cmpult	$4,	$18,	$27
	addq	$4,	$25,	$4
	addq	$5,	$27,	$5
	stq	$6,	40($16)
	bis	$31,	$31,	$6
	mulq	$3,	$3,	$8
	umulh	$3,	$3,	$21
	addq	$4,	$8,	$4
	addq	$5,	$21,	$5
	cmpult	$4,	$8,	$22
	cmpult	$5,	$21,	$24
	addq	$5,	$22,	$5
	addq	$6,	$24,	$6
	stq	$4,	48($16)
	stq	$5,	56($16)
	ret	$31,($26),1
	.end bn_sqr_comba4
	.text
	.align 3
	.globl bn_sqr_comba8
	.ent bn_sqr_comba8
bn_sqr_comba8:
bn_sqr_comba8..ng:
	.frame $30,0,$26,0
	.prologue 0

	ldq	$0,	0($17)
	ldq	$1,	8($17)
	ldq	$2,	16($17)
	ldq	$3,	24($17)
	ldq	$4,	32($17)
	ldq	$5,	40($17)
	ldq	$6,	48($17)
	ldq	$7,	56($17)
	bis	$31,	$31,	$23
	mulq	$0,	$0,	$8
	umulh	$0,	$0,	$22
	stq	$8,	0($16)
	bis	$31,	$31,	$8
	mulq	$1,	$0,	$24
	umulh	$1,	$0,	$25
	cmplt	$24,	$31,	$27
	cmplt	$25,	$31,	$28
	addq	$24,	$24,	$24
	addq	$25,	$25,	$25
	addq	$25,	$27,	$25
	addq	$8,	$28,	$8
	addq	$22,	$24,	$22
	addq	$23,	$25,	$23
	cmpult	$22,	$24,	$21
	cmpult	$23,	$25,	$20
	addq	$23,	$21,	$23
	addq	$8,	$20,	$8
	stq	$22,	8($16)
	bis	$31,	$31,	$22
	mulq	$1,	$1,	$19
	umulh	$1,	$1,	$18
	addq	$23,	$19,	$23
	addq	$8,	$18,	$8
	cmpult	$23,	$19,	$17
	cmpult	$8,	$18,	$27
	addq	$8,	$17,	$8
	addq	$22,	$27,	$22
	mulq	$2,	$0,	$28
	umulh	$2,	$0,	$24
	cmplt	$28,	$31,	$25
	cmplt	$24,	$31,	$21
	addq	$28,	$28,	$28
	addq	$24,	$24,	$24
	addq	$24,	$25,	$24
	addq	$22,	$21,	$22
	addq	$23,	$28,	$23
	addq	$8,	$24,	$8
	cmpult	$23,	$28,	$20
	cmpult	$8,	$24,	$19
	addq	$8,	$20,	$8
	addq	$22,	$19,	$22
	stq	$23,	16($16)
	bis	$31,	$31,	$23
	mulq	$2,	$1,	$18
	umulh	$2,	$1,	$17
	cmplt	$18,	$31,	$27
	cmplt	$17,	$31,	$25
	addq	$18,	$18,	$18
	addq	$17,	$17,	$17
	addq	$17,	$27,	$17
	addq	$23,	$25,	$23
	addq	$8,	$18,	$8
	addq	$22,	$17,	$22
	cmpult	$8,	$18,	$21
	cmpult	$22,	$17,	$28
	addq	$22,	$21,	$22
	addq	$23,	$28,	$23
	mulq	$3,	$0,	$24
	umulh	$3,	$0,	$20
	cmplt	$24,	$31,	$19
	cmplt	$20,	$31,	$27
	addq	$24,	$24,	$24
	addq	$20,	$20,	$20
	addq	$20,	$19,	$20
	addq	$23,	$27,	$23
	addq	$8,	$24,	$8
	addq	$22,	$20,	$22
	cmpult	$8,	$24,	$25
	cmpult	$22,	$20,	$18
	addq	$22,	$25,	$22
	addq	$23,	$18,	$23
	stq	$8,	24($16)
	bis	$31,	$31,	$8
	mulq	$2,	$2,	$17
	umulh	$2,	$2,	$21
	addq	$22,	$17,	$22
	addq	$23,	$21,	$23
	cmpult	$22,	$17,	$28
	cmpult	$23,	$21,	$19
	addq	$23,	$28,	$23
	addq	$8,	$19,	$8
	mulq	$3,	$1,	$27
	umulh	$3,	$1,	$24
	cmplt	$27,	$31,	$20
	cmplt	$24,	$31,	$25
	addq	$27,	$27,	$27
	addq	$24,	$24,	$24
	addq	$24,	$20,	$24
	addq	$8,	$25,	$8
	addq	$22,	$27,	$22
	addq	$23,	$24,	$23
	cmpult	$22,	$27,	$18
	cmpult	$23,	$24,	$17
	addq	$23,	$18,	$23
	addq	$8,	$17,	$8
	mulq	$4,	$0,	$21
	umulh	$4,	$0,	$28
	cmplt	$21,	$31,	$19
	cmplt	$28,	$31,	$20
	addq	$21,	$21,	$21
	addq	$28,	$28,	$28
	addq	$28,	$19,	$28
	addq	$8,	$20,	$8
	addq	$22,	$21,	$22
	addq	$23,	$28,	$23
	cmpult	$22,	$21,	$25
	cmpult	$23,	$28,	$27
	addq	$23,	$25,	$23
	addq	$8,	$27,	$8
	stq	$22,	32($16)
	bis	$31,	$31,	$22
	mulq	$3,	$2,	$24
	umulh	$3,	$2,	$18
	cmplt	$24,	$31,	$17
	cmplt	$18,	$31,	$19
	addq	$24,	$24,	$24
	addq	$18,	$18,	$18
	addq	$18,	$17,	$18
	addq	$22,	$19,	$22
	addq	$23,	$24,	$23
	addq	$8,	$18,	$8
	cmpult	$23,	$24,	$20
	cmpult	$8,	$18,	$21
	addq	$8,	$20,	$8
	addq	$22,	$21,	$22
	mulq	$4,	$1,	$28
	umulh	$4,	$1,	$25
	cmplt	$28,	$31,	$27
	cmplt	$25,	$31,	$17
	addq	$28,	$28,	$28
	addq	$25,	$25,	$25
	addq	$25,	$27,	$25
	addq	$22,	$17,	$22
	addq	$23,	$28,	$23
	addq	$8,	$25,	$8
	cmpult	$23,	$28,	$19
	cmpult	$8,	$25,	$24
	addq	$8,	$19,	$8
	addq	$22,	$24,	$22
	mulq	$5,	$0,	$18
	umulh	$5,	$0,	$20
	cmplt	$18,	$31,	$21
	cmplt	$20,	$31,	$27
	addq	$18,	$18,	$18
	addq	$20,	$20,	$20
	addq	$20,	$21,	$20
	addq	$22,	$27,	$22
	addq	$23,	$18,	$23
	addq	$8,	$20,	$8
	cmpult	$23,	$18,	$17
	cmpult	$8,	$20,	$28
	addq	$8,	$17,	$8
	addq	$22,	$28,	$22
	stq	$23,	40($16)
	bis	$31,	$31,	$23
	mulq	$3,	$3,	$25
	umulh	$3,	$3,	$19
	addq	$8,	$25,	$8
	addq	$22,	$19,	$22
	cmpult	$8,	$25,	$24
	cmpult	$22,	$19,	$21
	addq	$22,	$24,	$22
	addq	$23,	$21,	$23
	mulq	$4,	$2,	$27
	umulh	$4,	$2,	$18
	cmplt	$27,	$31,	$20
	cmplt	$18,	$31,	$17
	addq	$27,	$27,	$27
	addq	$18,	$18,	$18
	addq	$18,	$20,	$18
	addq	$23,	$17,	$23
	addq	$8,	$27,	$8
	addq	$22,	$18,	$22
	cmpult	$8,	$27,	$28
	cmpult	$22,	$18,	$25
	addq	$22,	$28,	$22
	addq	$23,	$25,	$23
	mulq	$5,	$1,	$19
	umulh	$5,	$1,	$24
	cmplt	$19,	$31,	$21
	cmplt	$24,	$31,	$20
	addq	$19,	$19,	$19
	addq	$24,	$24,	$24
	addq	$24,	$21,	$24
	addq	$23,	$20,	$23
	addq	$8,	$19,	$8
	addq	$22,	$24,	$22
	cmpult	$8,	$19,	$17
	cmpult	$22,	$24,	$27
	addq	$22,	$17,	$22
	addq	$23,	$27,	$23
	mulq	$6,	$0,	$18
	umulh	$6,	$0,	$28
	cmplt	$18,	$31,	$25
	cmplt	$28,	$31,	$21
	addq	$18,	$18,	$18
	addq	$28,	$28,	$28
	addq	$28,	$25,	$28
	addq	$23,	$21,	$23
	addq	$8,	$18,	$8
	addq	$22,	$28,	$22
	cmpult	$8,	$18,	$20
	cmpult	$22,	$28,	$19
	addq	$22,	$20,	$22
	addq	$23,	$19,	$23
	stq	$8,	48($16)
	bis	$31,	$31,	$8
	mulq	$4,	$3,	$24
	umulh	$4,	$3,	$17
	cmplt	$24,	$31,	$27
	cmplt	$17,	$31,	$25
	addq	$24,	$24,	$24
	addq	$17,	$17,	$17
	addq	$17,	$27,	$17
	addq	$8,	$25,	$8
	addq	$22,	$24,	$22
	addq	$23,	$17,	$23
	cmpult	$22,	$24,	$21
	cmpult	$23,	$17,	$18
	addq	$23,	$21,	$23
	addq	$8,	$18,	$8
	mulq	$5,	$2,	$28
	umulh	$5,	$2,	$20
	cmplt	$28,	$31,	$19
	cmplt	$20,	$31,	$27
	addq	$28,	$28,	$28
	addq	$20,	$20,	$20
	addq	$20,	$19,	$20
	addq	$8,	$27,	$8
	addq	$22,	$28,	$22
	addq	$23,	$20,	$23
	cmpult	$22,	$28,	$25
	cmpult	$23,	$20,	$24
	addq	$23,	$25,	$23
	addq	$8,	$24,	$8
	mulq	$6,	$1,	$17
	umulh	$6,	$1,	$21
	cmplt	$17,	$31,	$18
	cmplt	$21,	$31,	$19
	addq	$17,	$17,	$17
	addq	$21,	$21,	$21
	addq	$21,	$18,	$21
	addq	$8,	$19,	$8
	addq	$22,	$17,	$22
	addq	$23,	$21,	$23
	cmpult	$22,	$17,	$27
	cmpult	$23,	$21,	$28
	addq	$23,	$27,	$23
	addq	$8,	$28,	$8
	mulq	$7,	$0,	$20
	umulh	$7,	$0,	$25
	cmplt	$20,	$31,	$24
	cmplt	$25,	$31,	$18
	addq	$20,	$20,	$20
	addq	$25,	$25,	$25
	addq	$25,	$24,	$25
	addq	$8,	$18,	$8
	addq	$22,	$20,	$22
	addq	$23,	$25,	$23
	cmpult	$22,	$20,	$19
	cmpult	$23,	$25,	$17
	addq	$23,	$19,	$23
	addq	$8,	$17,	$8
	stq	$22,	56($16)
	bis	$31,	$31,	$22
	mulq	$4,	$4,	$21
	umulh	$4,	$4,	$27
	addq	$23,	$21,	$23
	addq	$8,	$27,	$8
	cmpult	$23,	$21,	$28
	cmpult	$8,	$27,	$24
	addq	$8,	$28,	$8
	addq	$22,	$24,	$22
	mulq	$5,	$3,	$18
	umulh	$5,	$3,	$20
	cmplt	$18,	$31,	$25
	cmplt	$20,	$31,	$19
	addq	$18,	$18,	$18
	addq	$20,	$20,	$20
	addq	$20,	$25,	$20
	addq	$22,	$19,	$22
	addq	$23,	$18,	$23
	addq	$8,	$20,	$8
	cmpult	$23,	$18,	$17
	cmpult	$8,	$20,	$21
	addq	$8,	$17,	$8
	addq	$22,	$21,	$22
	mulq	$6,	$2,	$27
	umulh	$6,	$2,	$28
	cmplt	$27,	$31,	$24
	cmplt	$28,	$31,	$25
	addq	$27,	$27,	$27
	addq	$28,	$28,	$28
	addq	$28,	$24,	$28
	addq	$22,	$25,	$22
	addq	$23,	$27,	$23
	addq	$8,	$28,	$8
	cmpult	$23,	$27,	$19
	cmpult	$8,	$28,	$18
	addq	$8,	$19,	$8
	addq	$22,	$18,	$22
	mulq	$7,	$1,	$20
	umulh	$7,	$1,	$17
	cmplt	$20,	$31,	$21
	cmplt	$17,	$31,	$24
	addq	$20,	$20,	$20
	addq	$17,	$17,	$17
	addq	$17,	$21,	$17
	addq	$22,	$24,	$22
	addq	$23,	$20,	$23
	addq	$8,	$17,	$8
	cmpult	$23,	$20,	$25
	cmpult	$8,	$17,	$27
	addq	$8,	$25,	$8
	addq	$22,	$27,	$22
	stq	$23,	64($16)
	bis	$31,	$31,	$23
	mulq	$5,	$4,	$28
	umulh	$5,	$4,	$19
	cmplt	$28,	$31,	$18
	cmplt	$19,	$31,	$21
	addq	$28,	$28,	$28
	addq	$19,	$19,	$19
	addq	$19,	$18,	$19
	addq	$23,	$21,	$23
	addq	$8,	$28,	$8
	addq	$22,	$19,	$22
	cmpult	$8,	$28,	$24
	cmpult	$22,	$19,	$20
	addq	$22,	$24,	$22
	addq	$23,	$20,	$23
	mulq	$6,	$3,	$17
	umulh	$6,	$3,	$25
	cmplt	$17,	$31,	$27
	cmplt	$25,	$31,	$18
	addq	$17,	$17,	$17
	addq	$25,	$25,	$25
	addq	$25,	$27,	$25
	addq	$23,	$18,	$23
	addq	$8,	$17,	$8
	addq	$22,	$25,	$22
	cmpult	$8,	$17,	$21
	cmpult	$22,	$25,	$28
	addq	$22,	$21,	$22
	addq	$23,	$28,	$23
	mulq	$7,	$2,	$19
	umulh	$7,	$2,	$24
	cmplt	$19,	$31,	$20
	cmplt	$24,	$31,	$27
	addq	$19,	$19,	$19
	addq	$24,	$24,	$24
	addq	$24,	$20,	$24
	addq	$23,	$27,	$23
	addq	$8,	$19,	$8
	addq	$22,	$24,	$22
	cmpult	$8,	$19,	$18
	cmpult	$22,	$24,	$17
	addq	$22,	$18,	$22
	addq	$23,	$17,	$23
	stq	$8,	72($16)
	bis	$31,	$31,	$8
	mulq	$5,	$5,	$25
	umulh	$5,	$5,	$21
	addq	$22,	$25,	$22
	addq	$23,	$21,	$23
	cmpult	$22,	$25,	$28
	cmpult	$23,	$21,	$20
	addq	$23,	$28,	$23
	addq	$8,	$20,	$8
	mulq	$6,	$4,	$27
	umulh	$6,	$4,	$19
	cmplt	$27,	$31,	$24
	cmplt	$19,	$31,	$18
	addq	$27,	$27,	$27
	addq	$19,	$19,	$19
	addq	$19,	$24,	$19
	addq	$8,	$18,	$8
	addq	$22,	$27,	$22
	addq	$23,	$19,	$23
	cmpult	$22,	$27,	$17
	cmpult	$23,	$19,	$25
	addq	$23,	$17,	$23
	addq	$8,	$25,	$8
	mulq	$7,	$3,	$21
	umulh	$7,	$3,	$28
	cmplt	$21,	$31,	$20
	cmplt	$28,	$31,	$24
	addq	$21,	$21,	$21
	addq	$28,	$28,	$28
	addq	$28,	$20,	$28
	addq	$8,	$24,	$8
	addq	$22,	$21,	$22
	addq	$23,	$28,	$23
	cmpult	$22,	$21,	$18
	cmpult	$23,	$28,	$27
	addq	$23,	$18,	$23
	addq	$8,	$27,	$8
	stq	$22,	80($16)
	bis	$31,	$31,	$22
	mulq	$6,	$5,	$19
	umulh	$6,	$5,	$17
	cmplt	$19,	$31,	$25
	cmplt	$17,	$31,	$20
	addq	$19,	$19,	$19
	addq	$17,	$17,	$17
	addq	$17,	$25,	$17
	addq	$22,	$20,	$22
	addq	$23,	$19,	$23
	addq	$8,	$17,	$8
	cmpult	$23,	$19,	$24
	cmpult	$8,	$17,	$21
	addq	$8,	$24,	$8
	addq	$22,	$21,	$22
	mulq	$7,	$4,	$28
	umulh	$7,	$4,	$18
	cmplt	$28,	$31,	$27
	cmplt	$18,	$31,	$25
	addq	$28,	$28,	$28
	addq	$18,	$18,	$18
	addq	$18,	$27,	$18
	addq	$22,	$25,	$22
	addq	$23,	$28,	$23
	addq	$8,	$18,	$8
	cmpult	$23,	$28,	$20
	cmpult	$8,	$18,	$19
	addq	$8,	$20,	$8
	addq	$22,	$19,	$22
	stq	$23,	88($16)
	bis	$31,	$31,	$23
	mulq	$6,	$6,	$17
	umulh	$6,	$6,	$24
	addq	$8,	$17,	$8
	addq	$22,	$24,	$22
	cmpult	$8,	$17,	$21
	cmpult	$22,	$24,	$27
	addq	$22,	$21,	$22
	addq	$23,	$27,	$23
	mulq	$7,	$5,	$25
	umulh	$7,	$5,	$28
	cmplt	$25,	$31,	$18
	cmplt	$28,	$31,	$20
	addq	$25,	$25,	$25
	addq	$28,	$28,	$28
	addq	$28,	$18,	$28
	addq	$23,	$20,	$23
	addq	$8,	$25,	$8
	addq	$22,	$28,	$22
	cmpult	$8,	$25,	$19
	cmpult	$22,	$28,	$17
	addq	$22,	$19,	$22
	addq	$23,	$17,	$23
	stq	$8,	96($16)
	bis	$31,	$31,	$8
	mulq	$7,	$6,	$24
	umulh	$7,	$6,	$21
	cmplt	$24,	$31,	$27
	cmplt	$21,	$31,	$18
	addq	$24,	$24,	$24
	addq	$21,	$21,	$21
	addq	$21,	$27,	$21
	addq	$8,	$18,	$8
	addq	$22,	$24,	$22
	addq	$23,	$21,	$23
	cmpult	$22,	$24,	$20
	cmpult	$23,	$21,	$25
	addq	$23,	$20,	$23
	addq	$8,	$25,	$8
	stq	$22,	104($16)
	bis	$31,	$31,	$22
	mulq	$7,	$7,	$28
	umulh	$7,	$7,	$19
	addq	$23,	$28,	$23
	addq	$8,	$19,	$8
	cmpult	$23,	$28,	$17
	cmpult	$8,	$19,	$27
	addq	$8,	$17,	$8
	addq	$22,	$27,	$22
	stq	$23,	112($16)
	stq	$8,	120($16)
	ret	$31,($26),1
	.end bn_sqr_comba8