# Copyright (C) 2002 by Howard Chu, hyc@highlandsun.com

#NO_APP
gcc2_compiled.:
___gnu_compiled_c:
.text
	.even
.globl _bn_mul_add_words
_bn_mul_add_words:
	movm.l #0x001c,-12(sp)
	move.l 4(sp),a0
	move.l 8(sp),a1
	move.l 12(sp),d4
	clr.l d0
	tst.l d4
	jble L26
	move.l 16(sp),d3
	moveq.l #-4,d2
	and.l d4,d2
	jbeq L20
	.even
L21:
	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	add.l (a0),d1
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	add.l (a0),d1
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	add.l (a0),d1
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	add.l (a0),d1
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	subq.l #4,d4
	moveq.l #-4,d2
	and.l d4,d2
	jbne L21
L20:
	tst.l d4
	jbeq L26

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	add.l (a0),d1
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	subq.l #1,d4
	jbeq L26

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	add.l (a0),d1
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	subq.l #1,d4
	jbeq L26

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	add.l (a0),d1
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0
L26:
	movm.l -12(sp),#0x001c
	rts

	.even
.globl _bn_mul_words
_bn_mul_words:
	movm.l #0x001c,-12(sp)
	move.l 4(sp),a0
	move.l 8(sp),a1
	move.l 12(sp),d4
	clr.l d0
	tst.l d4
	jble L34
	move.l 16(sp),d3
	moveq.l #-4,d2
	and.l d4,d2
	jbeq L31
L32:
	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	subq.l #4,d4
	moveq.l #-4,d2
	and.l d4,d2
	jbne L32
L31:
	tst.l d4
	jbeq L34

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	subq.l #1,d4
	jbeq L34

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0

	subq.l #1,d4
	jbeq L34

	move.l d3,d1
	mulu.l (a1)+,d2:d1
	add.l d0,d1
	clr.l d0
	addx.l d0,d2
	move.l d1,(a0)+
	move.l d2,d0
L34:
	movm.l -12(sp),#0x001c
	rts

	.even
.globl _bn_sqr_words
_bn_sqr_words:
	move.l d2,-4(sp)
	move.l 4(sp),a0
	move.l 8(sp),a1
	move.l 12(sp),d2
	jble L39
	moveq.l #-4,d1
	and.l d2,d1
	jbeq L42
	.even
L43:
	move.l (a1)+,d0
	mulu.l d0,d1:d0
	move.l d0,(a0)+
	move.l d1,(a0)+

	move.l (a1)+,d0
	mulu.l d0,d1:d0
	move.l d0,(a0)+
	move.l d1,(a0)+

	move.l (a1)+,d0
	mulu.l d0,d1:d0
	move.l d0,(a0)+
	move.l d1,(a0)+

	move.l (a1)+,d0
	mulu.l d0,d1:d0
	move.l d0,(a0)+
	move.l d1,(a0)+

	subq.l #4,d2
	moveq.l #-4,d1
	and.l d2,d1
	jbne L43
L42:
	tst.l d2
	jbeq L39

	move.l (a1)+,d0
	mulu.l d0,d1:d0
	move.l d0,(a0)+
	move.l d1,(a0)+

	subq.l #1,d2
	jbeq L39

	move.l (a1)+,d0
	mulu.l d0,d1:d0
	move.l d0,(a0)+
	move.l d1,(a0)+

	subq.l #1,d2
	jbeq L39

	move.l (a1)+,d0
	mulu.l d0,d1:d0
	move.l d0,(a0)+
	move.l d1,(a0)+

L39:
	move.l -4(sp),d2
	rts

	.even
.globl _bn_mul_comba8
_bn_mul_comba8:
	movm.l #0x3e22,-(sp)
	move.l 32(sp),a0
	move.l 36(sp),a1
	move.l 40(sp),a2
	clr.l d2
	clr.l d3
	clr.l d4
	move.l (a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,(a0)
	clr.l d2
	move.l (a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 4(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l d3,4(a0)
	clr.l d3
	move.l 8(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 4(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l (a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l d4,8(a0)
	clr.l d4
	move.l (a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 4(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 8(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 12(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,12(a0)
	clr.l d2
	move.l 16(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 12(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 8(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 4(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l (a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l d3,16(a0)
	clr.l d3
	move.l (a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 4(a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 8(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 12(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 16(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 20(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l d4,20(a0)
	clr.l d4
	move.l 24(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 20(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 16(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 12(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 8(a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 4(a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l (a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,24(a0)
	clr.l d2
	move.l (a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 4(a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 8(a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 12(a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 16(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 20(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 24(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 28(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l d3,28(a0)
	clr.l d3
	move.l 28(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 24(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 20(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 16(a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 12(a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 8(a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 4(a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l d4,32(a0)
	clr.l d4
	move.l 8(a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 12(a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 16(a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 20(a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 24(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 28(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,36(a0)
	clr.l d2
	move.l 28(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 24(a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 20(a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 16(a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 12(a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l d3,40(a0)
	clr.l d3
	move.l 16(a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 20(a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 24(a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 28(a1),d5
	move.l 16(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l d4,44(a0)
	clr.l d4
	move.l 28(a1),d5
	move.l 20(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 24(a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 20(a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,48(a0)
	clr.l d2
	move.l 24(a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 28(a1),d5
	move.l 24(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l d3,52(a0)
	clr.l d3
	move.l 28(a1),d5
	move.l 28(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l d4,56(a0)
	move.l d2,60(a0)
L65:
	movm.l (sp)+,#0x447c
	rts
	.even
.globl _bn_mul_comba4
_bn_mul_comba4:
	movm.l #0x3e22,-(sp)
	move.l 32(sp),a0
	move.l 36(sp),a1
	move.l 40(sp),a2
	clr.l d2
	clr.l d3
	clr.l d4
	move.l (a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,(a0)
	clr.l d2
	move.l (a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 4(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l d3,4(a0)
	clr.l d3
	move.l 8(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 4(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l (a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l d4,8(a0)
	clr.l d4
	move.l (a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 4(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 8(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l 12(a1),d5
	move.l (a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,12(a0)
	clr.l d2
	move.l 12(a1),d5
	move.l 4(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 8(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l 4(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d3; 			addx.l d1,d4; 			clr.l d0; 			addx.l d0,d2
#NO_APP
	move.l d3,16(a0)
	clr.l d3
	move.l 8(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l 12(a1),d5
	move.l 8(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d4; 			addx.l d1,d2; 			clr.l d0; 			addx.l d0,d3
#NO_APP
	move.l d4,20(a0)
	clr.l d4
	move.l 12(a1),d5
	move.l 12(a2),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0; 			add.l d0,d2; 			addx.l d1,d3; 			clr.l d0; 			addx.l d0,d4
#NO_APP
	move.l d2,24(a0)
	move.l d3,28(a0)
L66:
	movm.l (sp)+,#0x447c
	rts
	.even
.globl _bn_sqr_comba8
_bn_sqr_comba8:
	movm.l #0x3e02,-(sp)
	move.l 28(sp),a0
	move.l 32(sp),a1
	clr.l d2
	clr.l d3
	clr.l d4
	move.l (a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d2;				addx.l d1,d3;				clr.l d0;				addx.l d0,d4
#NO_APP
	move.l d2,(a0)
	clr.l d2
	move.l 4(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L680
	addq.l #1,d2
L680:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L690
	addq.l #1,d1
L690:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L70
	addq.l #1,d1
	tst.l d1
	jbne L70
	addq.l #1,d2
L70:
	add.l d1,d4
	cmp.l d4,d1
	jbls L71
	addq.l #1,d2
L71:
	move.l d3,4(a0)
	clr.l d3
	move.l 4(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d4;				addx.l d1,d2;				clr.l d0;				addx.l d0,d3
#NO_APP
	move.l 8(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L72
	addq.l #1,d3
L72:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L730
	addq.l #1,d1
L730:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L74
	addq.l #1,d1
	tst.l d1
	jbne L74
	addq.l #1,d3
L74:
	add.l d1,d2
	cmp.l d2,d1
	jbls L75
	addq.l #1,d3
L75:
	move.l d4,8(a0)
	clr.l d4
	move.l 12(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L76
	addq.l #1,d4
L76:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L770
	addq.l #1,d1
L770:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L780
	addq.l #1,d1
	tst.l d1
	jbne L780
	addq.l #1,d4
L780:
	add.l d1,d3
	cmp.l d3,d1
	jbls L790
	addq.l #1,d4
L790:
	move.l 8(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L80
	addq.l #1,d4
L80:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L810
	addq.l #1,d1
L810:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L820
	addq.l #1,d1
	tst.l d1
	jbne L820
	addq.l #1,d4
L820:
	add.l d1,d3
	cmp.l d3,d1
	jbls L830
	addq.l #1,d4
L830:
	move.l d2,12(a0)
	clr.l d2
	move.l 8(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d3;				addx.l d1,d4;				clr.l d0;				addx.l d0,d2
#NO_APP
	move.l 12(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L84
	addq.l #1,d2
L84:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L850
	addq.l #1,d1
L850:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L86
	addq.l #1,d1
	tst.l d1
	jbne L86
	addq.l #1,d2
L86:
	add.l d1,d4
	cmp.l d4,d1
	jbls L870
	addq.l #1,d2
L870:
	move.l 16(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L88
	addq.l #1,d2
L88:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L89
	addq.l #1,d1
L89:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L90
	addq.l #1,d1
	tst.l d1
	jbne L90
	addq.l #1,d2
L90:
	add.l d1,d4
	cmp.l d4,d1
	jbls L91
	addq.l #1,d2
L91:
	move.l d3,16(a0)
	clr.l d3
	move.l 20(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L92
	addq.l #1,d3
L92:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L93
	addq.l #1,d1
L93:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L94
	addq.l #1,d1
	tst.l d1
	jbne L94
	addq.l #1,d3
L94:
	add.l d1,d2
	cmp.l d2,d1
	jbls L95
	addq.l #1,d3
L95:
	move.l 16(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L96
	addq.l #1,d3
L96:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L97
	addq.l #1,d1
L97:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L98
	addq.l #1,d1
	tst.l d1
	jbne L98
	addq.l #1,d3
L98:
	add.l d1,d2
	cmp.l d2,d1
	jbls L99
	addq.l #1,d3
L99:
	move.l 12(a1),d5
	move.l 8(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L100
	addq.l #1,d3
L100:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L101
	addq.l #1,d1
L101:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L102
	addq.l #1,d1
	tst.l d1
	jbne L102
	addq.l #1,d3
L102:
	add.l d1,d2
	cmp.l d2,d1
	jbls L103
	addq.l #1,d3
L103:
	move.l d4,20(a0)
	clr.l d4
	move.l 12(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d2;				addx.l d1,d3;				clr.l d0;				addx.l d0,d4
#NO_APP
	move.l 16(a1),d5
	move.l 8(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L104
	addq.l #1,d4
L104:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L105
	addq.l #1,d1
L105:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L106
	addq.l #1,d1
	tst.l d1
	jbne L106
	addq.l #1,d4
L106:
	add.l d1,d3
	cmp.l d3,d1
	jbls L107
	addq.l #1,d4
L107:
	move.l 20(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L108
	addq.l #1,d4
L108:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L109
	addq.l #1,d1
L109:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L110
	addq.l #1,d1
	tst.l d1
	jbne L110
	addq.l #1,d4
L110:
	add.l d1,d3
	cmp.l d3,d1
	jbls L111
	addq.l #1,d4
L111:
	move.l 24(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L112
	addq.l #1,d4
L112:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L113
	addq.l #1,d1
L113:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L114
	addq.l #1,d1
	tst.l d1
	jbne L114
	addq.l #1,d4
L114:
	add.l d1,d3
	cmp.l d3,d1
	jbls L115
	addq.l #1,d4
L115:
	move.l d2,24(a0)
	clr.l d2
	move.l 28(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L116
	addq.l #1,d2
L116:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L117
	addq.l #1,d1
L117:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L118
	addq.l #1,d1
	tst.l d1
	jbne L118
	addq.l #1,d2
L118:
	add.l d1,d4
	cmp.l d4,d1
	jbls L119
	addq.l #1,d2
L119:
	move.l 24(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L120
	addq.l #1,d2
L120:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L121
	addq.l #1,d1
L121:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L122
	addq.l #1,d1
	tst.l d1
	jbne L122
	addq.l #1,d2
L122:
	add.l d1,d4
	cmp.l d4,d1
	jbls L123
	addq.l #1,d2
L123:
	move.l 20(a1),d5
	move.l 8(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L124
	addq.l #1,d2
L124:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L125
	addq.l #1,d1
L125:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L126
	addq.l #1,d1
	tst.l d1
	jbne L126
	addq.l #1,d2
L126:
	add.l d1,d4
	cmp.l d4,d1
	jbls L127
	addq.l #1,d2
L127:
	move.l 16(a1),d5
	move.l 12(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L128
	addq.l #1,d2
L128:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L129
	addq.l #1,d1
L129:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L130
	addq.l #1,d1
	tst.l d1
	jbne L130
	addq.l #1,d2
L130:
	add.l d1,d4
	cmp.l d4,d1
	jbls L131
	addq.l #1,d2
L131:
	move.l d3,28(a0)
	clr.l d3
	move.l 16(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d4;				addx.l d1,d2;				clr.l d0;				addx.l d0,d3
#NO_APP
	move.l 20(a1),d5
	move.l 12(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L132
	addq.l #1,d3
L132:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L133
	addq.l #1,d1
L133:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L134
	addq.l #1,d1
	tst.l d1
	jbne L134
	addq.l #1,d3
L134:
	add.l d1,d2
	cmp.l d2,d1
	jbls L135
	addq.l #1,d3
L135:
	move.l 24(a1),d5
	move.l 8(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L136
	addq.l #1,d3
L136:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L137
	addq.l #1,d1
L137:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L138
	addq.l #1,d1
	tst.l d1
	jbne L138
	addq.l #1,d3
L138:
	add.l d1,d2
	cmp.l d2,d1
	jbls L139
	addq.l #1,d3
L139:
	move.l 28(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L140
	addq.l #1,d3
L140:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L141
	addq.l #1,d1
L141:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L142
	addq.l #1,d1
	tst.l d1
	jbne L142
	addq.l #1,d3
L142:
	add.l d1,d2
	cmp.l d2,d1
	jbls L143
	addq.l #1,d3
L143:
	move.l d4,32(a0)
	clr.l d4
	move.l 28(a1),d5
	move.l 8(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L144
	addq.l #1,d4
L144:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L145
	addq.l #1,d1
L145:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L146
	addq.l #1,d1
	tst.l d1
	jbne L146
	addq.l #1,d4
L146:
	add.l d1,d3
	cmp.l d3,d1
	jbls L147
	addq.l #1,d4
L147:
	move.l 24(a1),d5
	move.l 12(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L148
	addq.l #1,d4
L148:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L149
	addq.l #1,d1
L149:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L150
	addq.l #1,d1
	tst.l d1
	jbne L150
	addq.l #1,d4
L150:
	add.l d1,d3
	cmp.l d3,d1
	jbls L151
	addq.l #1,d4
L151:
	move.l 20(a1),d5
	move.l 16(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L152
	addq.l #1,d4
L152:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L153
	addq.l #1,d1
L153:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L154
	addq.l #1,d1
	tst.l d1
	jbne L154
	addq.l #1,d4
L154:
	add.l d1,d3
	cmp.l d3,d1
	jbls L155
	addq.l #1,d4
L155:
	move.l d2,36(a0)
	clr.l d2
	move.l 20(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d3;				addx.l d1,d4;				clr.l d0;				addx.l d0,d2
#NO_APP
	move.l 24(a1),d5
	move.l 16(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L156
	addq.l #1,d2
L156:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L157
	addq.l #1,d1
L157:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L158
	addq.l #1,d1
	tst.l d1
	jbne L158
	addq.l #1,d2
L158:
	add.l d1,d4
	cmp.l d4,d1
	jbls L159
	addq.l #1,d2
L159:
	move.l 28(a1),d5
	move.l 12(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L160
	addq.l #1,d2
L160:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L161
	addq.l #1,d1
L161:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L162
	addq.l #1,d1
	tst.l d1
	jbne L162
	addq.l #1,d2
L162:
	add.l d1,d4
	cmp.l d4,d1
	jbls L163
	addq.l #1,d2
L163:
	move.l d3,40(a0)
	clr.l d3
	move.l 28(a1),d5
	move.l 16(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L164
	addq.l #1,d3
L164:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L165
	addq.l #1,d1
L165:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L166
	addq.l #1,d1
	tst.l d1
	jbne L166
	addq.l #1,d3
L166:
	add.l d1,d2
	cmp.l d2,d1
	jbls L167
	addq.l #1,d3
L167:
	move.l 24(a1),d5
	move.l 20(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L168
	addq.l #1,d3
L168:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L169
	addq.l #1,d1
L169:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L170
	addq.l #1,d1
	tst.l d1
	jbne L170
	addq.l #1,d3
L170:
	add.l d1,d2
	cmp.l d2,d1
	jbls L171
	addq.l #1,d3
L171:
	move.l d4,44(a0)
	clr.l d4
	move.l 24(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d2;				addx.l d1,d3;				clr.l d0;				addx.l d0,d4
#NO_APP
	move.l 28(a1),d5
	move.l 20(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L172
	addq.l #1,d4
L172:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L173
	addq.l #1,d1
L173:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L174
	addq.l #1,d1
	tst.l d1
	jbne L174
	addq.l #1,d4
L174:
	add.l d1,d3
	cmp.l d3,d1
	jbls L175
	addq.l #1,d4
L175:
	move.l d2,48(a0)
	clr.l d2
	move.l 28(a1),d5
	move.l 24(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L176
	addq.l #1,d2
L176:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L177
	addq.l #1,d1
L177:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L178
	addq.l #1,d1
	tst.l d1
	jbne L178
	addq.l #1,d2
L178:
	add.l d1,d4
	cmp.l d4,d1
	jbls L179
	addq.l #1,d2
L179:
	move.l d3,52(a0)
	clr.l d3
	move.l 28(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d4;				addx.l d1,d2;				clr.l d0;				addx.l d0,d3
#NO_APP
	move.l d4,56(a0)
	move.l d2,60(a0)

	movm.l (sp)+,#0x407c
	rts
	.even
.globl _bn_sqr_comba4
_bn_sqr_comba4:
	movm.l #0x3e02,-(sp)
	move.l 28(sp),a0
	move.l 32(sp),a1
	clr.l d2
	clr.l d3
	clr.l d4
	move.l (a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d2;				addx.l d1,d3;				clr.l d0;				addx.l d0,d4
#NO_APP
	move.l d2,(a0)
	clr.l d2
	move.l 4(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L181
	addq.l #1,d2
L181:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L182
	addq.l #1,d1
L182:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L183
	addq.l #1,d1
	tst.l d1
	jbne L183
	addq.l #1,d2
L183:
	add.l d1,d4
	cmp.l d4,d1
	jbls L184
	addq.l #1,d2
L184:
	move.l d3,4(a0)
	clr.l d3
	move.l 4(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d4;				addx.l d1,d2;				clr.l d0;				addx.l d0,d3
#NO_APP
	move.l 8(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L185
	addq.l #1,d3
L185:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L186
	addq.l #1,d1
L186:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L187
	addq.l #1,d1
	tst.l d1
	jbne L187
	addq.l #1,d3
L187:
	add.l d1,d2
	cmp.l d2,d1
	jbls L188
	addq.l #1,d3
L188:
	move.l d4,8(a0)
	clr.l d4
	move.l 12(a1),d5
	move.l (a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L189
	addq.l #1,d4
L189:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L190
	addq.l #1,d1
L190:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L191
	addq.l #1,d1
	tst.l d1
	jbne L191
	addq.l #1,d4
L191:
	add.l d1,d3
	cmp.l d3,d1
	jbls L192
	addq.l #1,d4
L192:
	move.l 8(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L193
	addq.l #1,d4
L193:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L194
	addq.l #1,d1
L194:
	add.l d0,d0
	add.l d0,d2
	cmp.l d2,d0
	jbls L195
	addq.l #1,d1
	tst.l d1
	jbne L195
	addq.l #1,d4
L195:
	add.l d1,d3
	cmp.l d3,d1
	jbls L196
	addq.l #1,d4
L196:
	move.l d2,12(a0)
	clr.l d2
	move.l 8(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d3;				addx.l d1,d4;				clr.l d0;				addx.l d0,d2
#NO_APP
	move.l 12(a1),d5
	move.l 4(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L197
	addq.l #1,d2
L197:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L198
	addq.l #1,d1
L198:
	add.l d0,d0
	add.l d0,d3
	cmp.l d3,d0
	jbls L199
	addq.l #1,d1
	tst.l d1
	jbne L199
	addq.l #1,d2
L199:
	add.l d1,d4
	cmp.l d4,d1
	jbls L200
	addq.l #1,d2
L200:
	move.l d3,16(a0)
	clr.l d3
	move.l 12(a1),d5
	move.l 8(a1),d6
	move.l d5,d0
	move.l d6,d1
#APP
	mulu.l d1,d1:d0
#NO_APP
	move.l d1,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L201
	addq.l #1,d3
L201:
	add.l d1,d1
	move.l d0,d5
	and.l #-2147483648,d5
	tst.l d5
	jbeq L202
	addq.l #1,d1
L202:
	add.l d0,d0
	add.l d0,d4
	cmp.l d4,d0
	jbls L203
	addq.l #1,d1
	tst.l d1
	jbne L203
	addq.l #1,d3
L203:
	add.l d1,d2
	cmp.l d2,d1
	jbls L204
	addq.l #1,d3
L204:
	move.l d4,20(a0)
	clr.l d4
	move.l 12(a1),d5
	move.l d5,d0
#APP
	mulu.l d0,d1:d0;				add.l d0,d2;				addx.l d1,d3;				clr.l d0;				addx.l d0,d4
#NO_APP
	move.l d2,24(a0)
	move.l d3,28(a0)
L180:
	movm.l (sp)+,#0x407c
	rts

	.even
.globl _bn_div_words
_bn_div_words:
	move.l 4(sp),d1
	move.l 8(sp),d0
	divu.l 12(sp),d1:d0
	rts

	.even
.globl _bn_add_words
_bn_add_words:
	pea (a6)
	move.l sp,a6
	movm.l #0x3c30,-(sp)
	move.l 20(a6),a0
	clr.l d4
	clr.l d5
	tst.l a0
	jbgt L67
	clr.l d0
	jbra L391
	.even
L67:
	move.l 8(a6),a3
	move.l 16(a6),a2
	move.l 12(a6),a1
	jbra L68
	.even
L73:
	move.l 12(a1),d1
	clr.l d0
	move.l 12(a2),d3
	clr.l d2
	add.l d3,d1
	addx.l d2,d0
	add.l d1,d5
	addx.l d0,d4
	move.l d5,12(a3)
	move.l d4,d5
	clr.l d4
	subq.l #1,a0
	tst.l a0
	jble L69
	add.w #16,a1
	add.w #16,a2
	add.w #16,a3
L68:
	move.l (a1),d1
	clr.l d0
	move.l (a2),d3
	clr.l d2
	add.l d3,d1
	addx.l d2,d0
	add.l d1,d5
	addx.l d0,d4
	move.l d5,(a3)
	move.l d4,d5
	clr.l d4
	subq.l #1,a0
	tst.l a0
	jble L69
	move.l 4(a1),d1
	clr.l d0
	move.l 4(a2),d3
	clr.l d2
	add.l d3,d1
	addx.l d2,d0
	add.l d1,d5
	addx.l d0,d4
	move.l d5,4(a3)
	move.l d4,d5
	clr.l d4
	subq.l #1,a0
	tst.l a0
	jble L69
	move.l 8(a1),d1
	clr.l d0
	move.l 8(a2),d3
	clr.l d2
	add.l d3,d1
	addx.l d2,d0
	add.l d1,d5
	addx.l d0,d4
	move.l d5,8(a3)
	move.l d4,d5
	clr.l d4
	subq.l #1,a0
	tst.l a0
	jbgt L73
L69:
	move.l d5,d0
L391:
	movm.l (sp)+,#0xc3c
	unlk a6
	rts
	.even
.globl _bn_sub_words
_bn_sub_words:
	pea (a6)
	move.l sp,a6
	movm.l #0x2038,-(sp)
	move.l 20(a6),a1
	clr.l d2
	tst.l a1
	jbgt L77
	clr.l d0
	jbra L392
	.even
L77:
	move.l 8(a6),a4
	move.l 16(a6),a3
	move.l 12(a6),a2
	jbra L78
	.even
L82:
	move.l 4(a2),a0
	move.l 4(a3),d1
	move.l a0,d0
	sub.l d1,d0
	sub.l d2,d0
	move.l d0,4(a4)
	cmp.l a0,d1
	jbeq L83
	shi d0
	move.b d0,d2
	extb.l d2
	neg.l d2
L83:
	subq.l #1,a1
	tst.l a1
	jble L79
	move.l 8(a2),a0
	move.l 8(a3),d1
	move.l a0,d0
	sub.l d1,d0
	sub.l d2,d0
	move.l d0,8(a4)
	cmp.l a0,d1
	jbeq L85
	shi d0
	move.b d0,d2
	extb.l d2
	neg.l d2
L85:
	subq.l #1,a1
	tst.l a1
	jble L79
	move.l 12(a2),a0
	move.l 12(a3),d1
	move.l a0,d0
	sub.l d1,d0
	sub.l d2,d0
	move.l d0,12(a4)
	cmp.l a0,d1
	jbeq L87
	shi d0
	move.b d0,d2
	extb.l d2
	neg.l d2
L87:
	subq.l #1,a1
	tst.l a1
	jble L79
	add.w #16,a2
	add.w #16,a3
	add.w #16,a4
L78:
	move.l (a2),a0
	move.l (a3),d1
	move.l a0,d0
	sub.l d1,d0
	sub.l d2,d0
	move.l d0,(a4)
	cmp.l a0,d1
	jbeq L81
	shi d0
	move.b d0,d2
	extb.l d2
	neg.l d2
L81:
	subq.l #1,a1
	tst.l a1
	jbgt L82
L79:
	move.l d2,d0
L392:
	movm.l (sp)+,#0x1c04
	unlk a6
	rts
