# 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