Moxie Marlinspike d83a3d71bc Support for Signal calls.
Merge in RedPhone

// FREEBIE
2015-09-30 14:30:09 -07:00

1665 lines
23 KiB
ArmAsm

#ifdef OPENSSL_FIPSCANISTER
# include <openssl/fipssyms.h>
#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 <appro@openssl.org>"