#ifdef OPENSSL_FIPSCANISTER # include #endif .text .set noat .set noreorder .align 5 .globl sha1_block_data_order .ent sha1_block_data_order sha1_block_data_order: .frame $29,16*4,$31 .mask 3237937152,-4 .set noreorder sub $29,16*4 sw $31,(16-1)*4($29) sw $30,(16-2)*4($29) sw $23,(16-3)*4($29) sw $22,(16-4)*4($29) sw $21,(16-5)*4($29) sw $20,(16-6)*4($29) sw $19,(16-7)*4($29) sw $18,(16-8)*4($29) sw $17,(16-9)*4($29) sw $16,(16-10)*4($29) sll $6,6 add $6,$5 sw $6,0($29) lw $1,0($4) lw $2,4($4) lw $3,8($4) lw $7,12($4) b .Loop lw $24,16($4) .align 4 .Loop: .set reorder lwl $8,3($5) lui $31,0x5a82 lwr $8,0($5) ori $31,0x7999 # K_00_19 srl $25,$8,24 # byte swap(0) srl $6,$8,8 andi $30,$8,0xFF00 sll $8,$8,24 andi $6,0xFF00 sll $30,$30,8 or $8,$25 or $6,$30 or $8,$6 lwl $9,1*4+3($5) sll $25,$1,5 # 0 addu $24,$31 lwr $9,1*4+0($5) srl $6,$1,27 addu $24,$25 xor $25,$3,$7 addu $24,$6 sll $30,$2,30 and $25,$2 srl $2,$2,2 xor $25,$7 addu $24,$8 or $2,$30 addu $24,$25 srl $25,$9,24 # byte swap(1) srl $6,$9,8 andi $30,$9,0xFF00 sll $9,$9,24 andi $6,0xFF00 sll $30,$30,8 or $9,$25 or $6,$30 or $9,$6 lwl $10,2*4+3($5) sll $25,$24,5 # 1 addu $7,$31 lwr $10,2*4+0($5) srl $6,$24,27 addu $7,$25 xor $25,$2,$3 addu $7,$6 sll $30,$1,30 and $25,$1 srl $1,$1,2 xor $25,$3 addu $7,$9 or $1,$30 addu $7,$25 srl $25,$10,24 # byte swap(2) srl $6,$10,8 andi $30,$10,0xFF00 sll $10,$10,24 andi $6,0xFF00 sll $30,$30,8 or $10,$25 or $6,$30 or $10,$6 lwl $11,3*4+3($5) sll $25,$7,5 # 2 addu $3,$31 lwr $11,3*4+0($5) srl $6,$7,27 addu $3,$25 xor $25,$1,$2 addu $3,$6 sll $30,$24,30 and $25,$24 srl $24,$24,2 xor $25,$2 addu $3,$10 or $24,$30 addu $3,$25 srl $25,$11,24 # byte swap(3) srl $6,$11,8 andi $30,$11,0xFF00 sll $11,$11,24 andi $6,0xFF00 sll $30,$30,8 or $11,$25 or $6,$30 or $11,$6 lwl $12,4*4+3($5) sll $25,$3,5 # 3 addu $2,$31 lwr $12,4*4+0($5) srl $6,$3,27 addu $2,$25 xor $25,$24,$1 addu $2,$6 sll $30,$7,30 and $25,$7 srl $7,$7,2 xor $25,$1 addu $2,$11 or $7,$30 addu $2,$25 srl $25,$12,24 # byte swap(4) srl $6,$12,8 andi $30,$12,0xFF00 sll $12,$12,24 andi $6,0xFF00 sll $30,$30,8 or $12,$25 or $6,$30 or $12,$6 lwl $13,5*4+3($5) sll $25,$2,5 # 4 addu $1,$31 lwr $13,5*4+0($5) srl $6,$2,27 addu $1,$25 xor $25,$7,$24 addu $1,$6 sll $30,$3,30 and $25,$3 srl $3,$3,2 xor $25,$24 addu $1,$12 or $3,$30 addu $1,$25 srl $25,$13,24 # byte swap(5) srl $6,$13,8 andi $30,$13,0xFF00 sll $13,$13,24 andi $6,0xFF00 sll $30,$30,8 or $13,$25 or $6,$30 or $13,$6 lwl $14,6*4+3($5) sll $25,$1,5 # 5 addu $24,$31 lwr $14,6*4+0($5) srl $6,$1,27 addu $24,$25 xor $25,$3,$7 addu $24,$6 sll $30,$2,30 and $25,$2 srl $2,$2,2 xor $25,$7 addu $24,$13 or $2,$30 addu $24,$25 srl $25,$14,24 # byte swap(6) srl $6,$14,8 andi $30,$14,0xFF00 sll $14,$14,24 andi $6,0xFF00 sll $30,$30,8 or $14,$25 or $6,$30 or $14,$6 lwl $15,7*4+3($5) sll $25,$24,5 # 6 addu $7,$31 lwr $15,7*4+0($5) srl $6,$24,27 addu $7,$25 xor $25,$2,$3 addu $7,$6 sll $30,$1,30 and $25,$1 srl $1,$1,2 xor $25,$3 addu $7,$14 or $1,$30 addu $7,$25 srl $25,$15,24 # byte swap(7) srl $6,$15,8 andi $30,$15,0xFF00 sll $15,$15,24 andi $6,0xFF00 sll $30,$30,8 or $15,$25 or $6,$30 or $15,$6 lwl $16,8*4+3($5) sll $25,$7,5 # 7 addu $3,$31 lwr $16,8*4+0($5) srl $6,$7,27 addu $3,$25 xor $25,$1,$2 addu $3,$6 sll $30,$24,30 and $25,$24 srl $24,$24,2 xor $25,$2 addu $3,$15 or $24,$30 addu $3,$25 srl $25,$16,24 # byte swap(8) srl $6,$16,8 andi $30,$16,0xFF00 sll $16,$16,24 andi $6,0xFF00 sll $30,$30,8 or $16,$25 or $6,$30 or $16,$6 lwl $17,9*4+3($5) sll $25,$3,5 # 8 addu $2,$31 lwr $17,9*4+0($5) srl $6,$3,27 addu $2,$25 xor $25,$24,$1 addu $2,$6 sll $30,$7,30 and $25,$7 srl $7,$7,2 xor $25,$1 addu $2,$16 or $7,$30 addu $2,$25 srl $25,$17,24 # byte swap(9) srl $6,$17,8 andi $30,$17,0xFF00 sll $17,$17,24 andi $6,0xFF00 sll $30,$30,8 or $17,$25 or $6,$30 or $17,$6 lwl $18,10*4+3($5) sll $25,$2,5 # 9 addu $1,$31 lwr $18,10*4+0($5) srl $6,$2,27 addu $1,$25 xor $25,$7,$24 addu $1,$6 sll $30,$3,30 and $25,$3 srl $3,$3,2 xor $25,$24 addu $1,$17 or $3,$30 addu $1,$25 srl $25,$18,24 # byte swap(10) srl $6,$18,8 andi $30,$18,0xFF00 sll $18,$18,24 andi $6,0xFF00 sll $30,$30,8 or $18,$25 or $6,$30 or $18,$6 lwl $19,11*4+3($5) sll $25,$1,5 # 10 addu $24,$31 lwr $19,11*4+0($5) srl $6,$1,27 addu $24,$25 xor $25,$3,$7 addu $24,$6 sll $30,$2,30 and $25,$2 srl $2,$2,2 xor $25,$7 addu $24,$18 or $2,$30 addu $24,$25 srl $25,$19,24 # byte swap(11) srl $6,$19,8 andi $30,$19,0xFF00 sll $19,$19,24 andi $6,0xFF00 sll $30,$30,8 or $19,$25 or $6,$30 or $19,$6 lwl $20,12*4+3($5) sll $25,$24,5 # 11 addu $7,$31 lwr $20,12*4+0($5) srl $6,$24,27 addu $7,$25 xor $25,$2,$3 addu $7,$6 sll $30,$1,30 and $25,$1 srl $1,$1,2 xor $25,$3 addu $7,$19 or $1,$30 addu $7,$25 srl $25,$20,24 # byte swap(12) srl $6,$20,8 andi $30,$20,0xFF00 sll $20,$20,24 andi $6,0xFF00 sll $30,$30,8 or $20,$25 or $6,$30 or $20,$6 lwl $21,13*4+3($5) sll $25,$7,5 # 12 addu $3,$31 lwr $21,13*4+0($5) srl $6,$7,27 addu $3,$25 xor $25,$1,$2 addu $3,$6 sll $30,$24,30 and $25,$24 srl $24,$24,2 xor $25,$2 addu $3,$20 or $24,$30 addu $3,$25 srl $25,$21,24 # byte swap(13) srl $6,$21,8 andi $30,$21,0xFF00 sll $21,$21,24 andi $6,0xFF00 sll $30,$30,8 or $21,$25 or $6,$30 or $21,$6 lwl $22,14*4+3($5) sll $25,$3,5 # 13 addu $2,$31 lwr $22,14*4+0($5) srl $6,$3,27 addu $2,$25 xor $25,$24,$1 addu $2,$6 sll $30,$7,30 and $25,$7 srl $7,$7,2 xor $25,$1 addu $2,$21 or $7,$30 addu $2,$25 srl $25,$22,24 # byte swap(14) srl $6,$22,8 andi $30,$22,0xFF00 sll $22,$22,24 andi $6,0xFF00 sll $30,$30,8 or $22,$25 or $6,$30 or $22,$6 lwl $23,15*4+3($5) sll $25,$2,5 # 14 addu $1,$31 lwr $23,15*4+0($5) srl $6,$2,27 addu $1,$25 xor $25,$7,$24 addu $1,$6 sll $30,$3,30 and $25,$3 srl $3,$3,2 xor $25,$24 addu $1,$22 or $3,$30 addu $1,$25 srl $25,$23,24 # byte swap(15) srl $6,$23,8 andi $30,$23,0xFF00 sll $23,$23,24 andi $6,0xFF00 sll $30,$30,8 or $23,$25 or $23,$6 or $23,$30 xor $8,$10 sll $25,$1,5 # 15 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $8,$16 xor $25,$3,$7 addu $24,$6 xor $8,$21 sll $30,$2,30 and $25,$2 srl $6,$8,31 addu $8,$8 srl $2,$2,2 xor $25,$7 or $8,$6 addu $24,$23 or $2,$30 addu $24,$25 xor $9,$11 sll $25,$24,5 # 16 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $9,$17 xor $25,$2,$3 addu $7,$6 xor $9,$22 sll $30,$1,30 and $25,$1 srl $6,$9,31 addu $9,$9 srl $1,$1,2 xor $25,$3 or $9,$6 addu $7,$8 or $1,$30 addu $7,$25 xor $10,$12 sll $25,$7,5 # 17 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $10,$18 xor $25,$1,$2 addu $3,$6 xor $10,$23 sll $30,$24,30 and $25,$24 srl $6,$10,31 addu $10,$10 srl $24,$24,2 xor $25,$2 or $10,$6 addu $3,$9 or $24,$30 addu $3,$25 xor $11,$13 sll $25,$3,5 # 18 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $11,$19 xor $25,$24,$1 addu $2,$6 xor $11,$8 sll $30,$7,30 and $25,$7 srl $6,$11,31 addu $11,$11 srl $7,$7,2 xor $25,$1 or $11,$6 addu $2,$10 or $7,$30 addu $2,$25 xor $12,$14 sll $25,$2,5 # 19 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $12,$20 xor $25,$7,$24 addu $1,$6 xor $12,$9 sll $30,$3,30 and $25,$3 srl $6,$12,31 addu $12,$12 srl $3,$3,2 xor $25,$24 or $12,$6 addu $1,$11 or $3,$30 addu $1,$25 lui $31,0x6ed9 ori $31,0xeba1 # K_20_39 xor $13,$15 sll $25,$1,5 # 20 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $13,$21 xor $25,$3,$7 addu $24,$6 xor $13,$10 sll $30,$2,30 xor $25,$2 srl $6,$13,31 addu $13,$13 srl $2,$2,2 addu $24,$12 or $13,$6 or $2,$30 addu $24,$25 xor $14,$16 sll $25,$24,5 # 21 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $14,$22 xor $25,$2,$3 addu $7,$6 xor $14,$11 sll $30,$1,30 xor $25,$1 srl $6,$14,31 addu $14,$14 srl $1,$1,2 addu $7,$13 or $14,$6 or $1,$30 addu $7,$25 xor $15,$17 sll $25,$7,5 # 22 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $15,$23 xor $25,$1,$2 addu $3,$6 xor $15,$12 sll $30,$24,30 xor $25,$24 srl $6,$15,31 addu $15,$15 srl $24,$24,2 addu $3,$14 or $15,$6 or $24,$30 addu $3,$25 xor $16,$18 sll $25,$3,5 # 23 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $16,$8 xor $25,$24,$1 addu $2,$6 xor $16,$13 sll $30,$7,30 xor $25,$7 srl $6,$16,31 addu $16,$16 srl $7,$7,2 addu $2,$15 or $16,$6 or $7,$30 addu $2,$25 xor $17,$19 sll $25,$2,5 # 24 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $17,$9 xor $25,$7,$24 addu $1,$6 xor $17,$14 sll $30,$3,30 xor $25,$3 srl $6,$17,31 addu $17,$17 srl $3,$3,2 addu $1,$16 or $17,$6 or $3,$30 addu $1,$25 xor $18,$20 sll $25,$1,5 # 25 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $18,$10 xor $25,$3,$7 addu $24,$6 xor $18,$15 sll $30,$2,30 xor $25,$2 srl $6,$18,31 addu $18,$18 srl $2,$2,2 addu $24,$17 or $18,$6 or $2,$30 addu $24,$25 xor $19,$21 sll $25,$24,5 # 26 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $19,$11 xor $25,$2,$3 addu $7,$6 xor $19,$16 sll $30,$1,30 xor $25,$1 srl $6,$19,31 addu $19,$19 srl $1,$1,2 addu $7,$18 or $19,$6 or $1,$30 addu $7,$25 xor $20,$22 sll $25,$7,5 # 27 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $20,$12 xor $25,$1,$2 addu $3,$6 xor $20,$17 sll $30,$24,30 xor $25,$24 srl $6,$20,31 addu $20,$20 srl $24,$24,2 addu $3,$19 or $20,$6 or $24,$30 addu $3,$25 xor $21,$23 sll $25,$3,5 # 28 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $21,$13 xor $25,$24,$1 addu $2,$6 xor $21,$18 sll $30,$7,30 xor $25,$7 srl $6,$21,31 addu $21,$21 srl $7,$7,2 addu $2,$20 or $21,$6 or $7,$30 addu $2,$25 xor $22,$8 sll $25,$2,5 # 29 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $22,$14 xor $25,$7,$24 addu $1,$6 xor $22,$19 sll $30,$3,30 xor $25,$3 srl $6,$22,31 addu $22,$22 srl $3,$3,2 addu $1,$21 or $22,$6 or $3,$30 addu $1,$25 xor $23,$9 sll $25,$1,5 # 30 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $23,$15 xor $25,$3,$7 addu $24,$6 xor $23,$20 sll $30,$2,30 xor $25,$2 srl $6,$23,31 addu $23,$23 srl $2,$2,2 addu $24,$22 or $23,$6 or $2,$30 addu $24,$25 xor $8,$10 sll $25,$24,5 # 31 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $8,$16 xor $25,$2,$3 addu $7,$6 xor $8,$21 sll $30,$1,30 xor $25,$1 srl $6,$8,31 addu $8,$8 srl $1,$1,2 addu $7,$23 or $8,$6 or $1,$30 addu $7,$25 xor $9,$11 sll $25,$7,5 # 32 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $9,$17 xor $25,$1,$2 addu $3,$6 xor $9,$22 sll $30,$24,30 xor $25,$24 srl $6,$9,31 addu $9,$9 srl $24,$24,2 addu $3,$8 or $9,$6 or $24,$30 addu $3,$25 xor $10,$12 sll $25,$3,5 # 33 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $10,$18 xor $25,$24,$1 addu $2,$6 xor $10,$23 sll $30,$7,30 xor $25,$7 srl $6,$10,31 addu $10,$10 srl $7,$7,2 addu $2,$9 or $10,$6 or $7,$30 addu $2,$25 xor $11,$13 sll $25,$2,5 # 34 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $11,$19 xor $25,$7,$24 addu $1,$6 xor $11,$8 sll $30,$3,30 xor $25,$3 srl $6,$11,31 addu $11,$11 srl $3,$3,2 addu $1,$10 or $11,$6 or $3,$30 addu $1,$25 xor $12,$14 sll $25,$1,5 # 35 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $12,$20 xor $25,$3,$7 addu $24,$6 xor $12,$9 sll $30,$2,30 xor $25,$2 srl $6,$12,31 addu $12,$12 srl $2,$2,2 addu $24,$11 or $12,$6 or $2,$30 addu $24,$25 xor $13,$15 sll $25,$24,5 # 36 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $13,$21 xor $25,$2,$3 addu $7,$6 xor $13,$10 sll $30,$1,30 xor $25,$1 srl $6,$13,31 addu $13,$13 srl $1,$1,2 addu $7,$12 or $13,$6 or $1,$30 addu $7,$25 xor $14,$16 sll $25,$7,5 # 37 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $14,$22 xor $25,$1,$2 addu $3,$6 xor $14,$11 sll $30,$24,30 xor $25,$24 srl $6,$14,31 addu $14,$14 srl $24,$24,2 addu $3,$13 or $14,$6 or $24,$30 addu $3,$25 xor $15,$17 sll $25,$3,5 # 38 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $15,$23 xor $25,$24,$1 addu $2,$6 xor $15,$12 sll $30,$7,30 xor $25,$7 srl $6,$15,31 addu $15,$15 srl $7,$7,2 addu $2,$14 or $15,$6 or $7,$30 addu $2,$25 xor $16,$18 sll $25,$2,5 # 39 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $16,$8 xor $25,$7,$24 addu $1,$6 xor $16,$13 sll $30,$3,30 xor $25,$3 srl $6,$16,31 addu $16,$16 srl $3,$3,2 addu $1,$15 or $16,$6 or $3,$30 addu $1,$25 lui $31,0x8f1b ori $31,0xbcdc # K_40_59 xor $17,$19 sll $25,$1,5 # 40 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $17,$9 and $25,$3,$7 addu $24,$6 xor $17,$14 sll $30,$2,30 addu $24,$25 srl $6,$17,31 xor $25,$3,$7 addu $17,$17 and $25,$2 srl $2,$2,2 or $17,$6 addu $24,$16 or $2,$30 addu $24,$25 xor $18,$20 sll $25,$24,5 # 41 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $18,$10 and $25,$2,$3 addu $7,$6 xor $18,$15 sll $30,$1,30 addu $7,$25 srl $6,$18,31 xor $25,$2,$3 addu $18,$18 and $25,$1 srl $1,$1,2 or $18,$6 addu $7,$17 or $1,$30 addu $7,$25 xor $19,$21 sll $25,$7,5 # 42 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $19,$11 and $25,$1,$2 addu $3,$6 xor $19,$16 sll $30,$24,30 addu $3,$25 srl $6,$19,31 xor $25,$1,$2 addu $19,$19 and $25,$24 srl $24,$24,2 or $19,$6 addu $3,$18 or $24,$30 addu $3,$25 xor $20,$22 sll $25,$3,5 # 43 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $20,$12 and $25,$24,$1 addu $2,$6 xor $20,$17 sll $30,$7,30 addu $2,$25 srl $6,$20,31 xor $25,$24,$1 addu $20,$20 and $25,$7 srl $7,$7,2 or $20,$6 addu $2,$19 or $7,$30 addu $2,$25 xor $21,$23 sll $25,$2,5 # 44 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $21,$13 and $25,$7,$24 addu $1,$6 xor $21,$18 sll $30,$3,30 addu $1,$25 srl $6,$21,31 xor $25,$7,$24 addu $21,$21 and $25,$3 srl $3,$3,2 or $21,$6 addu $1,$20 or $3,$30 addu $1,$25 xor $22,$8 sll $25,$1,5 # 45 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $22,$14 and $25,$3,$7 addu $24,$6 xor $22,$19 sll $30,$2,30 addu $24,$25 srl $6,$22,31 xor $25,$3,$7 addu $22,$22 and $25,$2 srl $2,$2,2 or $22,$6 addu $24,$21 or $2,$30 addu $24,$25 xor $23,$9 sll $25,$24,5 # 46 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $23,$15 and $25,$2,$3 addu $7,$6 xor $23,$20 sll $30,$1,30 addu $7,$25 srl $6,$23,31 xor $25,$2,$3 addu $23,$23 and $25,$1 srl $1,$1,2 or $23,$6 addu $7,$22 or $1,$30 addu $7,$25 xor $8,$10 sll $25,$7,5 # 47 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $8,$16 and $25,$1,$2 addu $3,$6 xor $8,$21 sll $30,$24,30 addu $3,$25 srl $6,$8,31 xor $25,$1,$2 addu $8,$8 and $25,$24 srl $24,$24,2 or $8,$6 addu $3,$23 or $24,$30 addu $3,$25 xor $9,$11 sll $25,$3,5 # 48 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $9,$17 and $25,$24,$1 addu $2,$6 xor $9,$22 sll $30,$7,30 addu $2,$25 srl $6,$9,31 xor $25,$24,$1 addu $9,$9 and $25,$7 srl $7,$7,2 or $9,$6 addu $2,$8 or $7,$30 addu $2,$25 xor $10,$12 sll $25,$2,5 # 49 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $10,$18 and $25,$7,$24 addu $1,$6 xor $10,$23 sll $30,$3,30 addu $1,$25 srl $6,$10,31 xor $25,$7,$24 addu $10,$10 and $25,$3 srl $3,$3,2 or $10,$6 addu $1,$9 or $3,$30 addu $1,$25 xor $11,$13 sll $25,$1,5 # 50 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $11,$19 and $25,$3,$7 addu $24,$6 xor $11,$8 sll $30,$2,30 addu $24,$25 srl $6,$11,31 xor $25,$3,$7 addu $11,$11 and $25,$2 srl $2,$2,2 or $11,$6 addu $24,$10 or $2,$30 addu $24,$25 xor $12,$14 sll $25,$24,5 # 51 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $12,$20 and $25,$2,$3 addu $7,$6 xor $12,$9 sll $30,$1,30 addu $7,$25 srl $6,$12,31 xor $25,$2,$3 addu $12,$12 and $25,$1 srl $1,$1,2 or $12,$6 addu $7,$11 or $1,$30 addu $7,$25 xor $13,$15 sll $25,$7,5 # 52 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $13,$21 and $25,$1,$2 addu $3,$6 xor $13,$10 sll $30,$24,30 addu $3,$25 srl $6,$13,31 xor $25,$1,$2 addu $13,$13 and $25,$24 srl $24,$24,2 or $13,$6 addu $3,$12 or $24,$30 addu $3,$25 xor $14,$16 sll $25,$3,5 # 53 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $14,$22 and $25,$24,$1 addu $2,$6 xor $14,$11 sll $30,$7,30 addu $2,$25 srl $6,$14,31 xor $25,$24,$1 addu $14,$14 and $25,$7 srl $7,$7,2 or $14,$6 addu $2,$13 or $7,$30 addu $2,$25 xor $15,$17 sll $25,$2,5 # 54 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $15,$23 and $25,$7,$24 addu $1,$6 xor $15,$12 sll $30,$3,30 addu $1,$25 srl $6,$15,31 xor $25,$7,$24 addu $15,$15 and $25,$3 srl $3,$3,2 or $15,$6 addu $1,$14 or $3,$30 addu $1,$25 xor $16,$18 sll $25,$1,5 # 55 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $16,$8 and $25,$3,$7 addu $24,$6 xor $16,$13 sll $30,$2,30 addu $24,$25 srl $6,$16,31 xor $25,$3,$7 addu $16,$16 and $25,$2 srl $2,$2,2 or $16,$6 addu $24,$15 or $2,$30 addu $24,$25 xor $17,$19 sll $25,$24,5 # 56 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $17,$9 and $25,$2,$3 addu $7,$6 xor $17,$14 sll $30,$1,30 addu $7,$25 srl $6,$17,31 xor $25,$2,$3 addu $17,$17 and $25,$1 srl $1,$1,2 or $17,$6 addu $7,$16 or $1,$30 addu $7,$25 xor $18,$20 sll $25,$7,5 # 57 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $18,$10 and $25,$1,$2 addu $3,$6 xor $18,$15 sll $30,$24,30 addu $3,$25 srl $6,$18,31 xor $25,$1,$2 addu $18,$18 and $25,$24 srl $24,$24,2 or $18,$6 addu $3,$17 or $24,$30 addu $3,$25 xor $19,$21 sll $25,$3,5 # 58 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $19,$11 and $25,$24,$1 addu $2,$6 xor $19,$16 sll $30,$7,30 addu $2,$25 srl $6,$19,31 xor $25,$24,$1 addu $19,$19 and $25,$7 srl $7,$7,2 or $19,$6 addu $2,$18 or $7,$30 addu $2,$25 xor $20,$22 sll $25,$2,5 # 59 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $20,$12 and $25,$7,$24 addu $1,$6 xor $20,$17 sll $30,$3,30 addu $1,$25 srl $6,$20,31 xor $25,$7,$24 addu $20,$20 and $25,$3 srl $3,$3,2 or $20,$6 addu $1,$19 or $3,$30 addu $1,$25 lui $31,0xca62 ori $31,0xc1d6 # K_60_79 xor $21,$23 sll $25,$1,5 # 60 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $21,$13 xor $25,$3,$7 addu $24,$6 xor $21,$18 sll $30,$2,30 xor $25,$2 srl $6,$21,31 addu $21,$21 srl $2,$2,2 addu $24,$20 or $21,$6 or $2,$30 addu $24,$25 xor $22,$8 sll $25,$24,5 # 61 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $22,$14 xor $25,$2,$3 addu $7,$6 xor $22,$19 sll $30,$1,30 xor $25,$1 srl $6,$22,31 addu $22,$22 srl $1,$1,2 addu $7,$21 or $22,$6 or $1,$30 addu $7,$25 xor $23,$9 sll $25,$7,5 # 62 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $23,$15 xor $25,$1,$2 addu $3,$6 xor $23,$20 sll $30,$24,30 xor $25,$24 srl $6,$23,31 addu $23,$23 srl $24,$24,2 addu $3,$22 or $23,$6 or $24,$30 addu $3,$25 xor $8,$10 sll $25,$3,5 # 63 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $8,$16 xor $25,$24,$1 addu $2,$6 xor $8,$21 sll $30,$7,30 xor $25,$7 srl $6,$8,31 addu $8,$8 srl $7,$7,2 addu $2,$23 or $8,$6 or $7,$30 addu $2,$25 xor $9,$11 sll $25,$2,5 # 64 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $9,$17 xor $25,$7,$24 addu $1,$6 xor $9,$22 sll $30,$3,30 xor $25,$3 srl $6,$9,31 addu $9,$9 srl $3,$3,2 addu $1,$8 or $9,$6 or $3,$30 addu $1,$25 xor $10,$12 sll $25,$1,5 # 65 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $10,$18 xor $25,$3,$7 addu $24,$6 xor $10,$23 sll $30,$2,30 xor $25,$2 srl $6,$10,31 addu $10,$10 srl $2,$2,2 addu $24,$9 or $10,$6 or $2,$30 addu $24,$25 xor $11,$13 sll $25,$24,5 # 66 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $11,$19 xor $25,$2,$3 addu $7,$6 xor $11,$8 sll $30,$1,30 xor $25,$1 srl $6,$11,31 addu $11,$11 srl $1,$1,2 addu $7,$10 or $11,$6 or $1,$30 addu $7,$25 xor $12,$14 sll $25,$7,5 # 67 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $12,$20 xor $25,$1,$2 addu $3,$6 xor $12,$9 sll $30,$24,30 xor $25,$24 srl $6,$12,31 addu $12,$12 srl $24,$24,2 addu $3,$11 or $12,$6 or $24,$30 addu $3,$25 xor $13,$15 sll $25,$3,5 # 68 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $13,$21 xor $25,$24,$1 addu $2,$6 xor $13,$10 sll $30,$7,30 xor $25,$7 srl $6,$13,31 addu $13,$13 srl $7,$7,2 addu $2,$12 or $13,$6 or $7,$30 addu $2,$25 xor $14,$16 sll $25,$2,5 # 69 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $14,$22 xor $25,$7,$24 addu $1,$6 xor $14,$11 sll $30,$3,30 xor $25,$3 srl $6,$14,31 addu $14,$14 srl $3,$3,2 addu $1,$13 or $14,$6 or $3,$30 addu $1,$25 xor $15,$17 sll $25,$1,5 # 70 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $15,$23 xor $25,$3,$7 addu $24,$6 xor $15,$12 sll $30,$2,30 xor $25,$2 srl $6,$15,31 addu $15,$15 srl $2,$2,2 addu $24,$14 or $15,$6 or $2,$30 addu $24,$25 xor $16,$18 sll $25,$24,5 # 71 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $16,$8 xor $25,$2,$3 addu $7,$6 xor $16,$13 sll $30,$1,30 xor $25,$1 srl $6,$16,31 addu $16,$16 srl $1,$1,2 addu $7,$15 or $16,$6 or $1,$30 addu $7,$25 xor $17,$19 sll $25,$7,5 # 72 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $17,$9 xor $25,$1,$2 addu $3,$6 xor $17,$14 sll $30,$24,30 xor $25,$24 srl $6,$17,31 addu $17,$17 srl $24,$24,2 addu $3,$16 or $17,$6 or $24,$30 addu $3,$25 xor $18,$20 sll $25,$3,5 # 73 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $18,$10 xor $25,$24,$1 addu $2,$6 xor $18,$15 sll $30,$7,30 xor $25,$7 srl $6,$18,31 addu $18,$18 srl $7,$7,2 addu $2,$17 or $18,$6 or $7,$30 addu $2,$25 xor $19,$21 sll $25,$2,5 # 74 addu $1,$31 srl $6,$2,27 addu $1,$25 xor $19,$11 xor $25,$7,$24 addu $1,$6 xor $19,$16 sll $30,$3,30 xor $25,$3 srl $6,$19,31 addu $19,$19 srl $3,$3,2 addu $1,$18 or $19,$6 or $3,$30 addu $1,$25 xor $20,$22 sll $25,$1,5 # 75 addu $24,$31 srl $6,$1,27 addu $24,$25 xor $20,$12 xor $25,$3,$7 addu $24,$6 xor $20,$17 sll $30,$2,30 xor $25,$2 srl $6,$20,31 addu $20,$20 srl $2,$2,2 addu $24,$19 or $20,$6 or $2,$30 addu $24,$25 xor $21,$23 sll $25,$24,5 # 76 addu $7,$31 srl $6,$24,27 addu $7,$25 xor $21,$13 xor $25,$2,$3 addu $7,$6 xor $21,$18 sll $30,$1,30 xor $25,$1 srl $6,$21,31 addu $21,$21 srl $1,$1,2 addu $7,$20 or $21,$6 or $1,$30 addu $7,$25 xor $22,$8 sll $25,$7,5 # 77 addu $3,$31 srl $6,$7,27 addu $3,$25 xor $22,$14 xor $25,$1,$2 addu $3,$6 xor $22,$19 sll $30,$24,30 xor $25,$24 srl $6,$22,31 addu $22,$22 srl $24,$24,2 addu $3,$21 or $22,$6 or $24,$30 addu $3,$25 xor $23,$9 sll $25,$3,5 # 78 addu $2,$31 srl $6,$3,27 addu $2,$25 xor $23,$15 xor $25,$24,$1 addu $2,$6 xor $23,$20 sll $30,$7,30 xor $25,$7 srl $6,$23,31 addu $23,$23 srl $7,$7,2 addu $2,$22 or $23,$6 or $7,$30 addu $2,$25 lw $8,0($4) sll $25,$2,5 # 79 addu $1,$31 lw $9,4($4) srl $6,$2,27 addu $1,$25 lw $10,8($4) xor $25,$7,$24 addu $1,$6 lw $11,12($4) sll $30,$3,30 xor $25,$3 lw $12,16($4) srl $3,$3,2 addu $1,$23 or $3,$30 addu $1,$25 add $5,64 lw $6,0($29) addu $1,$8 addu $2,$9 sw $1,0($4) addu $3,$10 addu $7,$11 sw $2,4($4) addu $24,$12 sw $3,8($4) sw $7,12($4) sw $24,16($4) .set noreorder bne $5,$6,.Loop nop .set noreorder lw $31,(16-1)*4($29) lw $30,(16-2)*4($29) lw $23,(16-3)*4($29) lw $22,(16-4)*4($29) lw $21,(16-5)*4($29) lw $20,(16-6)*4($29) lw $19,(16-7)*4($29) lw $18,(16-8)*4($29) lw $17,(16-9)*4($29) lw $16,(16-10)*4($29) jr $31 add $29,16*4 .end sha1_block_data_order .rdata .asciiz "SHA1 for MIPS, CRYPTOGAMS by "