diff options
author | Roman Yeryomin <roman@advem.lv> | 2012-09-13 00:40:35 +0300 |
---|---|---|
committer | Roman Yeryomin <roman@advem.lv> | 2012-12-03 00:13:21 +0200 |
commit | 5deb3317cb51ac52de922bb55f8492624018906d (patch) | |
tree | c2fbe6346699d9bb0f2100490c3029519bb8fde8 /target/linux/realtek/files/drivers/net/wireless/rtl8192cd/96C/wapiCrypto.S | |
parent | 0239d37124f9184b478a42de8a7fa1bc85a6a6fe (diff) |
Add realtek target files
Signed-off-by: Roman Yeryomin <roman@advem.lv>
Diffstat (limited to 'target/linux/realtek/files/drivers/net/wireless/rtl8192cd/96C/wapiCrypto.S')
-rw-r--r-- | target/linux/realtek/files/drivers/net/wireless/rtl8192cd/96C/wapiCrypto.S | 7065 |
1 files changed, 7065 insertions, 0 deletions
diff --git a/target/linux/realtek/files/drivers/net/wireless/rtl8192cd/96C/wapiCrypto.S b/target/linux/realtek/files/drivers/net/wireless/rtl8192cd/96C/wapiCrypto.S new file mode 100644 index 000000000..eab21aae6 --- /dev/null +++ b/target/linux/realtek/files/drivers/net/wireless/rtl8192cd/96C/wapiCrypto.S @@ -0,0 +1,7065 @@ + .file 1 "wapiCrypto.c" + .section .mdebug.abi32 + .previous +#APP + .macro _ssnop; sll $0, $0, 1; .endm + .macro _ehb; sll $0, $0, 3; .endm + .macro mtc0_tlbw_hazard; nop; nop; .endm + .macro tlbw_use_hazard; nop; nop; nop; .endm + .macro tlb_probe_hazard; nop; nop; nop; .endm + .macro irq_enable_hazard; _ssnop; _ssnop; _ssnop;; .endm + .macro irq_disable_hazard; nop; nop; nop; .endm + .macro back_to_back_c0_hazard; _ssnop; _ssnop; _ssnop;; .endm + .macro raw_local_irq_enable + .set push + .set reorder + .set noat + mfc0 $1,$12 + ori $1,0x1f + xori $1,0x1e + mtc0 $1,$12 + irq_enable_hazard + .set pop + .endm + .macro raw_local_irq_disable + .set push + .set noat + mfc0 $1,$12 + ori $1,0x1f + xori $1,0x1f + .set noreorder + mtc0 $1,$12 + irq_disable_hazard + .set pop + .endm + + .macro raw_local_save_flags flags + .set push + .set reorder + mfc0 \flags, $12 + .set pop + .endm + + .macro raw_local_irq_save result + .set push + .set reorder + .set noat + mfc0 \result, $12 + ori $1, \result, 0x1f + xori $1, 0x1f + .set noreorder + mtc0 $1, $12 + irq_disable_hazard + .set pop + .endm + + .macro raw_local_irq_restore flags + .set push + .set noreorder + .set noat + mfc0 $1, $12 + andi \flags, 1 + ori $1, 0x1f + xori $1, 0x1f + or \flags, $1 + mtc0 \flags, $12 + irq_disable_hazard + .set pop + .endm + +#NO_APP + .data + .align 2 + .type mti, @object + .size mti, 4 +mti: + .word 625 + .rdata + .align 2 + .type sha2_padding, @object + .size sha2_padding, 64 +sha2_padding: + .byte -128 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .section .text.sha2_starts,"ax",@progbits + .align 2 + .globl sha2_starts + .ent sha2_starts + .type sha2_starts, @function +sha2_starts: + .set nomips16 + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + sw $0,0($4) + bne $5,$0,$L2 + sw $0,4($4) + + li $2,1778974720 # 0x6a090000 + ori $2,$2,0xe667 + sw $2,8($4) + li $2,-1150877696 # 0xffffffffbb670000 + ori $2,$2,0xae85 + sw $2,12($4) + li $2,1013841920 # 0x3c6e0000 + ori $2,$2,0xf372 + sw $2,16($4) + li $2,-1521549312 # 0xffffffffa54f0000 + ori $2,$2,0xf53a + sw $2,20($4) + li $2,1359872000 # 0x510e0000 + ori $2,$2,0x527f + sw $2,24($4) + li $2,-1694171136 # 0xffffffff9b050000 + ori $2,$2,0x688c + sw $2,28($4) + li $2,528678912 # 0x1f830000 + ori $2,$2,0xd9ab + sw $2,32($4) + li $2,1541406720 # 0x5be00000 + j $L4 + ori $2,$2,0xcd19 + +$L2: + li $2,-1056636928 # 0xffffffffc1050000 + ori $2,$2,0x9ed8 + sw $2,8($4) + li $2,914096128 # 0x367c0000 + ori $2,$2,0xd507 + sw $2,12($4) + li $2,812646400 # 0x30700000 + ori $2,$2,0xdd17 + sw $2,16($4) + li $2,-150077440 # 0xfffffffff70e0000 + ori $2,$2,0x5939 + sw $2,20($4) + li $2,-4194304 # 0xffffffffffc00000 + ori $2,$2,0xb31 + sw $2,24($4) + li $2,1750597632 # 0x68580000 + ori $2,$2,0x1511 + sw $2,28($4) + li $2,1694040064 # 0x64f90000 + ori $2,$2,0x8fa7 + sw $2,32($4) + li $2,-1090912256 # 0xffffffffbefa0000 + ori $2,$2,0x4fa4 +$L4: + sw $2,36($4) + j $31 + sw $5,232($4) + + .set macro + .set reorder + .end sha2_starts + .section .text.sha2_process,"ax",@progbits + .align 2 + .ent sha2_process + .type sha2_process, @function +sha2_process: + .set nomips16 + .frame $sp,616,$31 # vars= 576, regs= 9/0, args= 0, gp= 0 + .mask 0x40ff0000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-616 + sw $fp,608($sp) + sw $22,600($sp) + sw $23,604($sp) + sw $21,596($sp) + sw $20,592($sp) + sw $19,588($sp) + sw $18,584($sp) + sw $17,580($sp) + sw $16,576($sp) + lbu $23,24($5) + lbu $21,20($5) + lbu $16,8($5) + sll $23,$23,24 + lbu $9,9($5) + lbu $17,12($5) + lbu $8,13($5) + lbu $20,16($5) + lbu $7,17($5) + lbu $6,21($5) + lbu $3,25($5) + lbu $24,28($5) + lbu $2,29($5) + lbu $10,10($5) + lbu $11,14($5) + lbu $12,18($5) + lbu $13,22($5) + lbu $14,26($5) + lbu $15,30($5) + sw $23,332($sp) + lw $25,332($sp) + sll $16,$16,24 + sll $17,$17,24 + sll $20,$20,24 + sll $24,$24,24 + sll $3,$3,16 + sw $16,292($sp) + sw $17,300($sp) + sw $20,312($sp) + sw $24,348($sp) + or $3,$25,$3 + lbu $16,11($5) + lbu $17,15($5) + lbu $18,19($5) + lbu $19,23($5) + lbu $20,27($5) + lw $22,292($sp) + lw $23,300($sp) + lw $24,312($sp) + sll $fp,$21,24 + lbu $21,31($5) + sw $3,336($sp) + lw $3,348($sp) + sll $2,$2,16 + sll $9,$9,16 + or $2,$3,$2 + sw $2,352($sp) + or $9,$22,$9 + sll $10,$10,8 + or $2,$9,$10 + lw $9,336($sp) + lw $10,352($sp) + sll $6,$6,16 + sll $8,$8,16 + sll $7,$7,16 + or $8,$23,$8 + or $7,$24,$7 + or $fp,$fp,$6 + sll $11,$11,8 + sll $12,$12,8 + sll $13,$13,8 + sll $14,$14,8 + sll $15,$15,8 + or $3,$8,$11 + or $6,$7,$12 + or $8,$9,$14 + or $7,$fp,$13 + or $9,$10,$15 + or $2,$2,$16 + or $3,$3,$17 + or $6,$6,$18 + or $7,$7,$19 + or $8,$8,$20 + or $9,$9,$21 + sw $2,296($sp) + sw $3,308($sp) + sw $6,320($sp) + sw $7,328($sp) + sw $8,344($sp) + sw $9,360($sp) + sw $2,8($sp) + sw $3,12($sp) + sw $6,16($sp) + sw $7,20($sp) + sw $8,24($sp) + lbu $11,0($5) + nop + sw $11,256($sp) + lbu $13,1($5) + nop + sw $13,260($sp) + lbu $14,2($5) + nop + sw $14,264($sp) + lbu $15,3($5) + nop + sw $15,268($sp) + lbu $16,4($5) + nop + sw $16,276($sp) + lbu $17,5($5) + nop + sw $17,280($sp) + lbu $18,6($5) + nop + sw $18,284($sp) + lbu $19,7($5) + sw $9,28($sp) + sw $19,288($sp) + lbu $21,32($5) + lbu $20,40($5) + lbu $22,44($5) + lbu $24,52($5) + lbu $25,56($5) + lbu $fp,36($5) + lbu $17,58($5) + sll $21,$21,24 + lbu $23,48($5) + lbu $10,33($5) + lbu $9,37($5) + lbu $8,41($5) + lbu $7,45($5) + lbu $6,49($5) + lbu $3,53($5) + lbu $2,57($5) + lbu $11,34($5) + lbu $12,38($5) + lbu $13,42($5) + lbu $14,46($5) + lbu $15,50($5) + lbu $16,54($5) + sll $18,$20,24 + sw $17,448($sp) + sll $19,$22,24 + sw $21,364($sp) + sll $20,$24,24 + sll $21,$25,24 + sll $fp,$fp,24 + sw $fp,372($sp) + sw $20,420($sp) + sw $21,440($sp) + sw $18,384($sp) + sw $19,400($sp) + lbu $22,35($5) + sll $fp,$23,24 + lw $20,364($sp) + sw $22,368($sp) + lbu $23,39($5) + lw $22,384($sp) + sll $3,$3,16 + sw $23,376($sp) + lbu $24,43($5) + sll $2,$2,16 + sll $10,$10,16 + sw $24,388($sp) + lbu $25,47($5) + lw $24,420($sp) + sll $8,$8,16 + sw $25,404($sp) + lbu $17,51($5) + lw $25,440($sp) + or $3,$24,$3 + sw $17,412($sp) + lbu $18,55($5) + or $2,$25,$2 + lw $21,372($sp) + sw $18,428($sp) + lbu $19,59($5) + or $8,$22,$8 + sw $3,424($sp) + sw $2,444($sp) + sll $6,$6,16 + lw $2,448($sp) + or $10,$20,$10 + sll $11,$11,8 + sll $13,$13,8 + lw $23,400($sp) + or $fp,$fp,$6 + or $10,$10,$11 + or $3,$8,$13 + lw $11,424($sp) + lw $13,444($sp) + sll $15,$15,8 + or $8,$fp,$15 + lw $20,428($sp) + lw $15,388($sp) + sll $9,$9,16 + lw $18,404($sp) + or $9,$21,$9 + sll $12,$12,8 + sll $16,$16,8 + sll $6,$2,8 + sll $7,$7,16 + or $2,$9,$12 + or $7,$23,$7 + or $9,$11,$16 + sll $14,$14,8 + or $6,$13,$6 + or $13,$6,$19 + or $3,$3,$15 + lw $19,412($sp) + or $9,$9,$20 + or $7,$7,$14 + lw $14,376($sp) + or $12,$7,$18 + lw $17,368($sp) + sw $3,392($sp) + sw $9,432($sp) + lw $18,24($4) + or $16,$2,$14 + lw $20,28($4) + or $14,$8,$19 + lw $22,256($sp) + lw $19,32($4) + lw $23,260($sp) + sw $3,40($sp) + lw $24,264($sp) + srl $7,$18,6 + srl $6,$18,11 + sll $3,$18,26 + sll $2,$18,21 + or $2,$2,$6 + lw $21,36($4) + or $3,$3,$7 + sll $6,$18,7 + srl $7,$18,25 + lw $25,268($sp) + or $6,$6,$7 + sll $8,$22,24 + xor $3,$3,$2 + sll $7,$23,16 + xor $2,$20,$19 + or $7,$8,$7 + xor $3,$3,$6 + and $2,$18,$2 + sll $15,$24,8 + xor $2,$19,$2 + addu $3,$21,$3 + or $15,$7,$15 + or $15,$15,$25 + addu $3,$3,$2 + lw $24,20($4) + li $2,1116340224 # 0x428a0000 + addu $3,$3,$15 + ori $2,$2,0x2f98 + or $11,$10,$17 + addu $17,$3,$2 + addu $24,$24,$17 + srl $7,$24,6 + srl $3,$24,11 + sll $6,$24,26 + sll $2,$24,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$24,25 + sll $7,$24,7 + lw $22,8($4) + or $7,$7,$3 + xor $6,$6,$2 + lw $3,280($sp) + lw $2,276($sp) + lw $23,12($4) + xor $6,$6,$7 + lw $7,284($sp) + sw $15,272($sp) + sw $9,52($sp) + lw $25,16($4) + sll $21,$2,24 + sll $15,$3,16 + srl $8,$22,2 + srl $2,$22,13 + sll $3,$22,30 + sll $9,$22,19 + or $9,$9,$2 + or $3,$3,$8 + or $fp,$21,$15 + xor $10,$18,$20 + or $8,$22,$23 + srl $2,$22,22 + sll $21,$7,8 + xor $3,$3,$9 + sll $7,$22,10 + lw $9,288($sp) + or $7,$7,$2 + and $8,$25,$8 + and $2,$22,$23 + and $10,$24,$10 + or $21,$fp,$21 + xor $10,$20,$10 + xor $3,$3,$7 + or $2,$2,$8 + addu $6,$19,$6 + or $15,$21,$9 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,1899429888 # 0x71370000 + addu $6,$6,$15 + ori $2,$2,0x4491 + addu $21,$17,$fp + addu $17,$6,$2 + addu $25,$25,$17 + srl $7,$25,6 + srl $3,$25,11 + sll $6,$25,26 + sll $2,$25,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$25,25 + sll $7,$25,7 + or $7,$7,$3 + xor $10,$24,$18 + xor $6,$6,$2 + srl $9,$21,2 + srl $2,$21,13 + sll $3,$21,30 + sll $8,$21,19 + xor $6,$6,$7 + and $10,$25,$10 + or $8,$8,$2 + xor $10,$18,$10 + srl $2,$21,22 + or $3,$3,$9 + sll $7,$21,10 + or $9,$21,$22 + addu $6,$20,$6 + or $7,$7,$2 + and $9,$23,$9 + and $2,$21,$22 + xor $3,$3,$8 + addu $6,$6,$10 + lw $10,296($sp) + xor $3,$3,$7 + or $2,$2,$9 + addu $fp,$3,$2 + li $2,-1245708288 # 0xffffffffb5c00000 + addu $6,$6,$10 + ori $2,$2,0xfbcf + addu $19,$17,$fp + addu $17,$6,$2 + addu $23,$23,$17 + srl $7,$23,6 + srl $3,$23,11 + sll $6,$23,26 + sll $2,$23,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$23,25 + sll $7,$23,7 + or $7,$7,$3 + srl $9,$19,2 + xor $6,$6,$2 + sll $3,$19,30 + srl $2,$19,13 + sll $8,$19,19 + xor $10,$25,$24 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$19,22 + or $9,$19,$21 + xor $6,$6,$7 + sll $7,$19,10 + or $7,$7,$2 + and $9,$22,$9 + and $2,$19,$21 + and $10,$23,$10 + addu $6,$18,$6 + xor $3,$3,$8 + lw $18,308($sp) + xor $10,$24,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,-374013952 # 0xffffffffe9b50000 + addu $6,$6,$18 + ori $2,$2,0xdba5 + addu $20,$17,$fp + addu $17,$6,$2 + addu $22,$22,$17 + srl $7,$22,6 + srl $3,$22,11 + sll $6,$22,26 + sll $2,$22,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$22,25 + sll $7,$22,7 + or $7,$7,$3 + srl $9,$20,2 + xor $6,$6,$2 + sll $3,$20,30 + srl $2,$20,13 + sll $8,$20,19 + xor $10,$23,$25 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$20,22 + or $9,$20,$19 + xor $6,$6,$7 + sll $7,$20,10 + or $7,$7,$2 + and $9,$21,$9 + and $2,$20,$19 + and $10,$22,$10 + addu $6,$24,$6 + xor $3,$3,$8 + lw $24,320($sp) + xor $10,$25,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,961937408 # 0x39560000 + addu $6,$6,$24 + ori $2,$2,0xc25b + addu $18,$17,$fp + addu $17,$6,$2 + addu $21,$21,$17 + srl $7,$21,6 + srl $3,$21,11 + sll $6,$21,26 + sll $2,$21,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$21,25 + sll $7,$21,7 + or $7,$7,$3 + srl $9,$18,2 + xor $6,$6,$2 + sll $3,$18,30 + srl $2,$18,13 + sll $8,$18,19 + xor $10,$22,$23 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$18,22 + or $9,$18,$20 + xor $6,$6,$7 + sll $7,$18,10 + or $7,$7,$2 + and $9,$19,$9 + and $2,$18,$20 + and $10,$21,$10 + addu $6,$25,$6 + xor $3,$3,$8 + lw $25,328($sp) + xor $10,$23,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,1508966400 # 0x59f10000 + addu $6,$6,$25 + ori $2,$2,0x11f1 + addu $24,$17,$fp + addu $17,$6,$2 + addu $19,$19,$17 + srl $7,$19,6 + srl $3,$19,11 + sll $6,$19,26 + sll $2,$19,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$19,25 + sll $7,$19,7 + or $7,$7,$3 + srl $9,$24,2 + xor $6,$6,$2 + sll $3,$24,30 + srl $2,$24,13 + sll $8,$24,19 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$24,22 + or $9,$24,$18 + xor $6,$6,$7 + sll $7,$24,10 + or $7,$7,$2 + and $9,$20,$9 + and $2,$24,$18 + xor $3,$3,$8 + xor $10,$21,$22 + xor $3,$3,$7 + or $2,$2,$9 + addu $fp,$3,$2 + and $10,$19,$10 + lw $2,344($sp) + xor $10,$22,$10 + addu $6,$23,$6 + addu $6,$6,$10 + addu $6,$6,$2 + li $2,-1841364992 # 0xffffffff923f0000 + ori $2,$2,0x82a4 + addu $25,$17,$fp + addu $17,$6,$2 + addu $20,$20,$17 + srl $7,$20,6 + srl $3,$20,11 + sll $6,$20,26 + sll $2,$20,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$20,25 + sll $7,$20,7 + or $7,$7,$3 + srl $9,$25,2 + xor $6,$6,$2 + sll $3,$25,30 + srl $2,$25,13 + sll $8,$25,19 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$25,22 + or $9,$25,$24 + xor $6,$6,$7 + sll $7,$25,10 + or $7,$7,$2 + and $9,$18,$9 + and $2,$25,$24 + xor $3,$3,$8 + xor $10,$19,$21 + xor $3,$3,$7 + or $2,$2,$9 + addu $fp,$3,$2 + and $10,$20,$10 + lw $3,360($sp) + xor $10,$21,$10 + addu $6,$22,$6 + addu $6,$6,$10 + li $2,-1424228352 # 0xffffffffab1c0000 + addu $6,$6,$3 + ori $2,$2,0x5ed5 + addu $23,$17,$fp + addu $17,$6,$2 + addu $18,$18,$17 + srl $7,$18,6 + srl $3,$18,11 + sll $6,$18,26 + sll $2,$18,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$18,25 + sll $7,$18,7 + or $7,$7,$3 + srl $9,$23,2 + xor $6,$6,$2 + sll $3,$23,30 + srl $2,$23,13 + sll $8,$23,19 + xor $10,$20,$19 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$23,22 + or $9,$23,$25 + xor $6,$6,$7 + sll $7,$23,10 + or $7,$7,$2 + and $9,$24,$9 + and $2,$23,$25 + and $10,$18,$10 + xor $3,$3,$8 + xor $10,$19,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $6,$21,$6 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,-670629888 # 0xffffffffd8070000 + addu $6,$6,$11 + ori $2,$2,0xaa98 + addu $22,$17,$fp + addu $17,$6,$2 + addu $24,$24,$17 + srl $7,$24,6 + srl $3,$24,11 + sll $6,$24,26 + sll $2,$24,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$24,25 + sll $7,$24,7 + or $7,$7,$3 + srl $9,$22,2 + xor $6,$6,$2 + sll $3,$22,30 + srl $2,$22,13 + sll $8,$22,19 + xor $10,$18,$20 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$22,22 + or $9,$22,$23 + xor $6,$6,$7 + sll $7,$22,10 + or $7,$7,$2 + and $9,$25,$9 + and $2,$22,$23 + and $10,$24,$10 + xor $3,$3,$8 + xor $10,$20,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $6,$19,$6 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,310575104 # 0x12830000 + addu $6,$6,$16 + ori $2,$2,0x5b01 + addu $21,$17,$fp + addu $17,$6,$2 + addu $25,$25,$17 + srl $7,$25,6 + srl $3,$25,11 + sll $6,$25,26 + sll $2,$25,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$25,25 + sll $7,$25,7 + or $7,$7,$3 + srl $9,$21,2 + xor $6,$6,$2 + sll $3,$21,30 + srl $2,$21,13 + sll $8,$21,19 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$21,22 + xor $6,$6,$7 + sll $7,$21,10 + xor $10,$24,$18 + or $9,$21,$22 + or $7,$7,$2 + xor $3,$3,$8 + and $9,$23,$9 + and $2,$21,$22 + xor $3,$3,$7 + and $10,$25,$10 + lw $7,392($sp) + xor $10,$18,$10 + or $2,$2,$9 + addu $6,$20,$6 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,607191040 # 0x24310000 + addu $6,$6,$7 + ori $2,$2,0x85be + addu $19,$17,$fp + addu $17,$6,$2 + addu $23,$23,$17 + srl $7,$23,6 + srl $3,$23,11 + sll $6,$23,26 + sll $2,$23,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$23,25 + sll $7,$23,7 + or $7,$7,$3 + srl $9,$19,2 + xor $6,$6,$2 + sll $3,$19,30 + srl $2,$19,13 + sll $8,$19,19 + xor $10,$25,$24 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$19,22 + or $9,$19,$21 + xor $6,$6,$7 + sll $7,$19,10 + or $7,$7,$2 + and $9,$22,$9 + and $2,$19,$21 + and $10,$23,$10 + xor $3,$3,$8 + xor $10,$24,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $6,$18,$6 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,1426849792 # 0x550c0000 + addu $6,$6,$12 + ori $2,$2,0x7dc3 + addu $20,$17,$fp + addu $17,$6,$2 + addu $22,$22,$17 + srl $7,$22,6 + srl $3,$22,11 + sll $6,$22,26 + sll $2,$22,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$22,25 + sll $7,$22,7 + or $7,$7,$3 + srl $9,$20,2 + xor $6,$6,$2 + sll $3,$20,30 + srl $2,$20,13 + sll $8,$20,19 + xor $10,$23,$25 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$20,22 + or $9,$20,$19 + xor $6,$6,$7 + sll $7,$20,10 + or $7,$7,$2 + and $9,$21,$9 + and $2,$20,$19 + and $10,$22,$10 + xor $3,$3,$8 + xor $10,$25,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $6,$24,$6 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,1925054464 # 0x72be0000 + addu $6,$6,$14 + ori $2,$2,0x5d74 + addu $18,$17,$fp + addu $17,$6,$2 + addu $21,$21,$17 + srl $7,$21,6 + srl $3,$21,11 + sll $6,$21,26 + sll $2,$21,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$21,25 + sll $7,$21,7 + or $7,$7,$3 + srl $9,$18,2 + xor $6,$6,$2 + sll $3,$18,30 + srl $2,$18,13 + sll $8,$18,19 + xor $10,$22,$23 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$18,22 + or $9,$18,$20 + xor $6,$6,$7 + sll $7,$18,10 + or $7,$7,$2 + and $9,$19,$9 + and $2,$18,$20 + and $10,$21,$10 + xor $3,$3,$8 + lw $8,432($sp) + xor $10,$23,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $6,$25,$6 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,-2132934656 # 0xffffffff80de0000 + addu $6,$6,$8 + ori $2,$2,0xb1fe + addu $24,$17,$fp + addu $17,$6,$2 + addu $19,$19,$17 + srl $7,$19,6 + srl $3,$19,11 + sll $6,$19,26 + sll $2,$19,21 + or $2,$2,$3 + or $6,$6,$7 + srl $3,$19,25 + sll $7,$19,7 + or $7,$7,$3 + srl $9,$24,2 + xor $6,$6,$2 + sll $3,$24,30 + srl $2,$24,13 + sll $8,$24,19 + xor $10,$21,$22 + or $8,$8,$2 + or $3,$3,$9 + srl $2,$24,22 + or $9,$24,$18 + xor $6,$6,$7 + sll $7,$24,10 + or $7,$7,$2 + and $9,$20,$9 + and $2,$24,$18 + and $10,$19,$10 + xor $3,$3,$8 + xor $10,$22,$10 + xor $3,$3,$7 + or $2,$2,$9 + addu $6,$23,$6 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,-1680080896 # 0xffffffff9bdc0000 + addu $6,$6,$13 + ori $2,$2,0x6a7 + addu $25,$17,$fp + addu $17,$6,$2 + addu $20,$20,$17 + sw $16,36($sp) + sw $13,56($sp) + sw $11,32($sp) + sw $12,44($sp) + sw $14,48($sp) + lbu $14,60($5) + lbu $10,61($5) + srl $7,$20,6 + srl $3,$20,11 + sll $6,$20,26 + sll $2,$20,21 + lbu $11,62($5) + or $2,$2,$3 + or $6,$6,$7 + srl $3,$20,25 + sll $7,$20,7 + lbu $12,63($5) + or $7,$7,$3 + srl $5,$25,2 + xor $6,$6,$2 + sll $3,$25,30 + srl $2,$25,13 + sll $8,$25,19 + xor $9,$19,$21 + or $8,$8,$2 + sll $10,$10,16 + srl $2,$25,22 + or $3,$3,$5 + xor $6,$6,$7 + sll $5,$25,10 + or $7,$25,$24 + sll $14,$14,24 + or $5,$5,$2 + and $7,$18,$7 + and $2,$25,$24 + or $14,$14,$10 + and $9,$20,$9 + sll $11,$11,8 + xor $3,$3,$8 + xor $9,$21,$9 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$22,$6 + or $14,$14,$11 + or $14,$14,$12 + addu $fp,$3,$2 + addu $6,$6,$9 + li $2,-1046806528 # 0xffffffffc19b0000 + addu $6,$6,$14 + ori $2,$2,0xf174 + addu $23,$17,$fp + addu $17,$6,$2 + addu $18,$18,$17 + sll $5,$13,15 + srl $3,$13,17 + srl $2,$13,19 + sll $6,$13,13 + or $12,$5,$3 + or $6,$6,$2 + srl $11,$18,6 + srl $9,$18,11 + srl $10,$15,7 + srl $2,$15,18 + sll $5,$18,26 + sll $8,$18,21 + sll $7,$15,25 + sll $3,$15,14 + or $8,$8,$9 + or $3,$3,$2 + srl $9,$13,10 + srl $2,$18,25 + or $5,$5,$11 + or $7,$7,$10 + xor $11,$12,$6 + sll $6,$18,7 + or $6,$6,$2 + xor $12,$11,$9 + srl $2,$23,13 + xor $5,$5,$8 + xor $7,$7,$3 + srl $8,$23,2 + sll $3,$23,30 + sll $9,$23,19 + or $9,$9,$2 + or $3,$3,$8 + xor $10,$20,$19 + srl $11,$15,3 + or $8,$23,$25 + srl $2,$23,22 + xor $5,$5,$6 + xor $3,$3,$9 + sll $6,$23,10 + lw $9,272($sp) + xor $7,$7,$11 + or $6,$6,$2 + and $8,$24,$8 + and $2,$23,$25 + addu $12,$12,$16 + and $10,$18,$10 + xor $10,$19,$10 + xor $3,$3,$6 + or $2,$2,$8 + addu $5,$21,$5 + addu $12,$12,$7 + addu $12,$12,$9 + addu $fp,$3,$2 + addu $5,$5,$10 + li $2,-459603968 # 0xffffffffe49b0000 + sw $12,64($sp) + addu $5,$5,$12 + lw $13,296($sp) + lw $10,296($sp) + ori $2,$2,0x69c1 + addu $22,$17,$fp + addu $17,$5,$2 + addu $24,$24,$17 + srl $3,$14,17 + srl $2,$14,19 + sll $12,$14,15 + sll $6,$14,13 + or $6,$6,$2 + srl $11,$24,6 + srl $9,$24,11 + srl $2,$13,18 + or $12,$12,$3 + sll $5,$24,26 + sll $8,$24,21 + sll $7,$10,25 + sll $3,$13,14 + srl $10,$10,7 + lw $16,392($sp) + or $8,$8,$9 + or $3,$3,$2 + or $5,$5,$11 + srl $2,$24,25 + xor $12,$12,$6 + or $7,$7,$10 + srl $6,$14,10 + sll $9,$24,7 + or $9,$9,$2 + xor $5,$5,$8 + srl $2,$22,13 + xor $12,$12,$6 + xor $7,$7,$3 + srl $6,$22,2 + sll $3,$22,30 + sll $8,$22,19 + srl $11,$13,3 + xor $10,$18,$20 + or $8,$8,$2 + or $3,$3,$6 + srl $2,$22,22 + xor $5,$5,$9 + sll $6,$22,10 + or $9,$22,$23 + xor $7,$7,$11 + or $6,$6,$2 + and $9,$25,$9 + and $2,$22,$23 + addu $12,$12,$16 + and $10,$24,$10 + xor $3,$3,$8 + xor $10,$20,$10 + xor $3,$3,$6 + or $2,$2,$9 + addu $5,$19,$5 + addu $12,$12,$7 + lw $19,64($sp) + addu $12,$12,$15 + addu $fp,$3,$2 + addu $5,$5,$10 + li $2,-272760832 # 0xffffffffefbe0000 + lw $15,12($sp) + addu $5,$5,$12 + ori $2,$2,0x4786 + addu $21,$17,$fp + addu $17,$5,$2 + addu $25,$25,$17 + sll $6,$19,15 + srl $3,$19,17 + or $13,$6,$3 + srl $11,$25,6 + srl $9,$25,11 + srl $3,$15,18 + sll $6,$25,26 + sll $8,$25,21 + sll $7,$15,14 + or $8,$8,$9 + or $7,$7,$3 + or $6,$6,$11 + srl $3,$25,25 + sll $9,$25,7 + srl $2,$19,19 + or $9,$9,$3 + sll $5,$19,13 + srl $3,$21,13 + xor $6,$6,$8 + sll $8,$21,19 + or $5,$5,$2 + srl $10,$15,7 + or $8,$8,$3 + sll $2,$15,25 + lw $3,44($sp) + xor $11,$13,$5 + or $2,$2,$10 + srl $5,$19,10 + xor $13,$11,$5 + srl $10,$15,3 + xor $2,$2,$7 + sll $5,$21,30 + srl $7,$21,2 + xor $2,$2,$10 + addu $13,$13,$3 + or $5,$5,$7 + xor $11,$24,$18 + xor $5,$5,$8 + addu $8,$13,$2 + lw $2,8($sp) + srl $3,$21,22 + xor $6,$6,$9 + and $11,$25,$11 + or $9,$21,$22 + sll $7,$21,10 + or $7,$7,$3 + and $9,$23,$9 + xor $11,$18,$11 + and $3,$21,$22 + addu $6,$20,$6 + addu $8,$8,$2 + xor $5,$5,$7 + or $3,$3,$9 + addu $6,$6,$11 + li $2,264306688 # 0xfc10000 + addu $fp,$5,$3 + addu $6,$6,$8 + ori $2,$2,0x9dc6 + sw $19,460($sp) + addu $19,$17,$fp + addu $17,$6,$2 + addu $23,$23,$17 + sll $5,$12,15 + srl $3,$12,17 + lw $13,16($sp) + sw $12,68($sp) + srl $2,$12,19 + srl $11,$23,6 + sll $6,$12,13 + or $12,$5,$3 + sll $5,$23,26 + or $5,$5,$11 + lw $11,68($sp) + sw $8,464($sp) + lw $20,48($sp) + or $6,$6,$2 + srl $9,$23,11 + srl $10,$13,7 + srl $3,$13,18 + sll $8,$23,21 + sll $2,$13,25 + sll $7,$13,14 + or $8,$8,$9 + or $7,$7,$3 + xor $9,$12,$6 + srl $3,$23,25 + srl $6,$11,10 + or $2,$2,$10 + sll $10,$23,7 + xor $12,$9,$6 + or $10,$10,$3 + srl $6,$19,13 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$13,3 + srl $7,$19,2 + sll $3,$19,30 + sll $9,$19,19 + xor $11,$25,$24 + or $9,$9,$6 + xor $2,$2,$8 + addu $16,$12,$20 + srl $8,$19,22 + or $3,$3,$7 + sll $6,$19,10 + or $7,$19,$21 + or $6,$6,$8 + and $7,$22,$7 + xor $5,$5,$10 + and $11,$23,$11 + xor $3,$3,$9 + addu $16,$16,$2 + and $2,$19,$21 + xor $11,$24,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$18,$5 + addu $16,$16,$15 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,604766208 # 0x240c0000 + addu $5,$5,$16 + ori $2,$2,0xa1cc + addu $20,$17,$fp + addu $17,$5,$2 + lw $2,464($sp) + lw $15,20($sp) + addu $22,$22,$17 + srl $3,$2,17 + sll $12,$2,15 + sll $6,$2,13 + srl $2,$2,19 + or $6,$6,$2 + srl $11,$22,6 + srl $9,$22,11 + srl $10,$15,7 + or $12,$12,$3 + sll $5,$22,26 + srl $3,$15,18 + sll $8,$22,21 + sll $2,$15,25 + sll $7,$15,14 + or $8,$8,$9 + or $7,$7,$3 + lw $9,464($sp) + srl $3,$22,25 + or $5,$5,$11 + or $2,$2,$10 + sll $10,$22,7 + or $10,$10,$3 + xor $5,$5,$8 + xor $5,$5,$10 + lw $10,52($sp) + xor $12,$12,$6 + srl $6,$9,10 + srl $8,$15,3 + xor $12,$12,$6 + xor $2,$2,$7 + srl $6,$20,13 + srl $7,$20,2 + sll $3,$20,30 + sll $9,$20,19 + xor $11,$23,$25 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$20,22 + or $7,$20,$19 + addu $12,$12,$10 + sll $6,$20,10 + or $6,$6,$8 + and $7,$21,$7 + and $11,$22,$11 + xor $3,$3,$9 + addu $12,$12,$2 + and $2,$20,$19 + xor $11,$25,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$24,$5 + addu $12,$12,$13 + sw $16,468($sp) + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,770244608 # 0x2de90000 + lw $24,468($sp) + addu $5,$5,$12 + ori $2,$2,0x2c6f + addu $18,$17,$fp + srl $3,$16,17 + addu $17,$5,$2 + sll $13,$16,15 + srl $2,$16,19 + sll $6,$16,13 + addu $21,$21,$17 + lw $16,24($sp) + or $6,$6,$2 + or $13,$13,$3 + srl $9,$21,11 + sll $8,$21,21 + xor $13,$13,$6 + srl $6,$24,10 + or $8,$8,$9 + xor $13,$13,$6 + sll $9,$18,19 + srl $6,$18,13 + srl $11,$21,6 + srl $10,$16,7 + srl $3,$16,18 + or $9,$9,$6 + sll $5,$21,26 + lw $6,56($sp) + sll $2,$16,25 + sll $7,$16,14 + or $7,$7,$3 + or $5,$5,$11 + srl $3,$21,25 + or $2,$2,$10 + sll $10,$21,7 + or $10,$10,$3 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$16,3 + srl $7,$18,2 + sll $3,$18,30 + xor $11,$22,$23 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$18,22 + or $7,$18,$20 + addu $13,$13,$6 + sll $6,$18,10 + or $6,$6,$8 + and $7,$19,$7 + xor $5,$5,$10 + and $11,$21,$11 + xor $3,$3,$9 + addu $13,$13,$2 + and $2,$18,$20 + xor $11,$23,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$25,$5 + addu $13,$13,$15 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,1249116160 # 0x4a740000 + lw $7,28($sp) + sw $14,60($sp) + addu $5,$5,$13 + lw $14,28($sp) + ori $2,$2,0x84aa + addu $24,$17,$fp + addu $17,$5,$2 + addu $19,$19,$17 + srl $3,$12,17 + srl $2,$12,19 + sll $16,$12,15 + sll $6,$12,13 + or $6,$6,$2 + srl $11,$19,6 + srl $9,$19,11 + srl $10,$7,7 + or $16,$16,$3 + sll $5,$19,26 + srl $3,$14,18 + sll $8,$19,21 + sll $2,$7,25 + sll $7,$7,14 + lw $15,60($sp) + or $8,$8,$9 + or $7,$7,$3 + or $5,$5,$11 + srl $3,$19,25 + or $2,$2,$10 + sll $10,$19,7 + or $10,$10,$3 + xor $16,$16,$6 + xor $5,$5,$8 + srl $6,$12,10 + srl $8,$14,3 + xor $16,$16,$6 + xor $2,$2,$7 + srl $6,$24,13 + srl $7,$24,2 + sll $3,$24,30 + sll $9,$24,19 + xor $5,$5,$10 + xor $11,$21,$22 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$24,22 + or $7,$24,$18 + addu $16,$16,$15 + sll $6,$24,10 + addu $5,$23,$5 + lw $23,24($sp) + or $6,$6,$8 + and $7,$20,$7 + and $11,$19,$11 + xor $3,$3,$9 + addu $16,$16,$2 + and $2,$24,$18 + xor $11,$22,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $16,$16,$23 + addu $fp,$3,$2 + addu $5,$5,$11 + srl $3,$13,17 + sll $15,$13,15 + li $2,1555038208 # 0x5cb00000 + addu $5,$5,$16 + ori $2,$2,0xa9dc + or $15,$15,$3 + lw $3,32($sp) + addu $25,$17,$fp + addu $17,$5,$2 + addu $20,$20,$17 + lw $14,32($sp) + srl $2,$13,19 + sll $6,$13,13 + or $6,$6,$2 + srl $11,$20,6 + srl $9,$20,11 + srl $10,$3,7 + sll $5,$20,26 + sll $8,$20,21 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + lw $23,460($sp) + or $8,$8,$9 + or $7,$7,$3 + or $5,$5,$11 + xor $15,$15,$6 + or $2,$2,$10 + srl $6,$13,10 + srl $3,$20,25 + sll $10,$20,7 + xor $5,$5,$8 + xor $15,$15,$6 + srl $8,$14,3 + srl $6,$25,13 + xor $2,$2,$7 + sll $9,$25,19 + or $10,$10,$3 + srl $7,$25,2 + or $9,$9,$6 + xor $2,$2,$8 + sll $3,$25,30 + srl $8,$25,22 + sll $6,$25,10 + xor $11,$19,$21 + or $6,$6,$8 + or $3,$3,$7 + lw $8,28($sp) + or $7,$25,$24 + addu $15,$15,$23 + and $7,$18,$7 + xor $5,$5,$10 + and $11,$20,$11 + xor $3,$3,$9 + addu $15,$15,$2 + and $2,$25,$24 + xor $11,$21,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$22,$5 + addu $15,$15,$8 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,1996029952 # 0x76f90000 + addu $5,$5,$15 + ori $2,$2,0x88da + addu $23,$17,$fp + srl $3,$16,17 + addu $17,$5,$2 + sll $14,$16,15 + srl $2,$16,19 + sll $5,$16,13 + addu $18,$18,$17 + lw $22,36($sp) + lw $10,36($sp) + or $5,$5,$2 + or $14,$14,$3 + srl $9,$18,11 + sll $8,$18,21 + xor $14,$14,$5 + srl $5,$16,10 + or $8,$8,$9 + xor $14,$14,$5 + sll $9,$23,19 + srl $5,$23,13 + srl $11,$18,6 + srl $3,$22,18 + or $9,$9,$5 + sll $6,$18,26 + lw $5,68($sp) + sll $2,$10,25 + sll $7,$22,14 + srl $10,$10,7 + or $7,$7,$3 + or $6,$6,$11 + or $2,$2,$10 + srl $3,$18,25 + sll $10,$18,7 + xor $6,$6,$8 + xor $2,$2,$7 + srl $8,$22,3 + or $10,$10,$3 + srl $7,$23,2 + xor $2,$2,$8 + sll $3,$23,30 + srl $8,$23,22 + addu $14,$14,$5 + sll $5,$23,10 + xor $11,$20,$19 + or $5,$5,$8 + or $3,$3,$7 + lw $8,32($sp) + or $7,$23,$25 + and $7,$24,$7 + xor $6,$6,$10 + and $11,$18,$11 + xor $3,$3,$9 + addu $14,$14,$2 + and $2,$23,$25 + xor $11,$19,$11 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$21,$6 + addu $14,$14,$8 + addu $fp,$3,$2 + addu $6,$6,$11 + li $2,-1740767232 # 0xffffffff983e0000 + addu $6,$6,$14 + ori $2,$2,0x5152 + addu $22,$17,$fp + addu $17,$6,$2 + addu $24,$24,$17 + sll $5,$15,15 + srl $3,$15,17 + srl $2,$15,19 + sll $6,$15,13 + sw $12,80($sp) + or $fp,$5,$3 + lw $21,40($sp) + lw $10,40($sp) + or $6,$6,$2 + srl $9,$24,11 + sll $8,$24,21 + or $8,$8,$9 + xor $9,$fp,$6 + srl $6,$15,10 + xor $fp,$9,$6 + srl $6,$22,13 + sll $9,$22,19 + srl $11,$24,6 + srl $3,$21,18 + or $9,$9,$6 + sll $5,$24,26 + lw $6,464($sp) + sll $2,$10,25 + sll $7,$21,14 + srl $10,$10,7 + or $7,$7,$3 + or $5,$5,$11 + or $2,$2,$10 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$21,3 + xor $2,$2,$8 + addu $fp,$fp,$6 + srl $8,$22,22 + sll $6,$22,10 + or $6,$6,$8 + lw $8,36($sp) + srl $3,$24,25 + sll $10,$24,7 + addu $fp,$fp,$2 + or $10,$10,$3 + srl $7,$22,2 + addu $fp,$fp,$8 + sll $3,$22,30 + sw $fp,472($sp) + xor $11,$18,$20 + or $3,$3,$7 + or $7,$22,$23 + and $7,$25,$7 + and $2,$22,$23 + xor $5,$5,$10 + and $11,$24,$11 + xor $3,$3,$9 + lw $9,472($sp) + xor $11,$20,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$19,$5 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-1473183744 # 0xffffffffa8310000 + addu $5,$5,$9 + ori $2,$2,0xc66d + addu $21,$17,$fp + addu $17,$5,$2 + addu $25,$25,$17 + sll $5,$14,15 + srl $3,$14,17 + srl $2,$14,19 + sll $6,$14,13 + lw $19,44($sp) + or $fp,$5,$3 + lw $10,44($sp) + or $6,$6,$2 + srl $9,$25,11 + sll $8,$25,21 + or $8,$8,$9 + xor $9,$fp,$6 + srl $6,$14,10 + xor $fp,$9,$6 + srl $6,$21,13 + sll $9,$21,19 + srl $11,$25,6 + srl $3,$19,18 + or $9,$9,$6 + sll $5,$25,26 + lw $6,468($sp) + sll $2,$10,25 + sll $7,$19,14 + srl $10,$10,7 + or $7,$7,$3 + or $5,$5,$11 + or $2,$2,$10 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$19,3 + xor $2,$2,$8 + addu $fp,$fp,$6 + srl $8,$21,22 + sll $6,$21,10 + or $6,$6,$8 + lw $8,40($sp) + srl $3,$25,25 + sll $10,$25,7 + addu $fp,$fp,$2 + or $10,$10,$3 + srl $7,$21,2 + addu $fp,$fp,$8 + sll $3,$21,30 + sw $fp,476($sp) + xor $11,$24,$18 + or $3,$3,$7 + or $7,$21,$22 + and $7,$23,$7 + and $2,$21,$22 + xor $5,$5,$10 + and $11,$25,$11 + xor $3,$3,$9 + lw $9,476($sp) + xor $11,$18,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$20,$5 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-1341980672 # 0xffffffffb0030000 + lw $11,472($sp) + addu $5,$5,$9 + ori $2,$2,0x27c8 + addu $19,$17,$fp + lw $10,472($sp) + addu $17,$5,$2 + addu $23,$23,$17 + lw $20,48($sp) + srl $3,$11,17 + srl $2,$11,19 + sll $6,$11,13 + sll $5,$23,26 + srl $11,$23,6 + sll $10,$10,15 + or $5,$5,$11 + lw $11,472($sp) + or $fp,$10,$3 + sw $10,480($sp) + or $6,$6,$2 + srl $9,$23,11 + srl $10,$20,7 + srl $3,$20,18 + sll $8,$23,21 + sll $2,$20,25 + sll $7,$20,14 + or $8,$8,$9 + or $7,$7,$3 + or $2,$2,$10 + srl $3,$23,25 + sll $10,$23,7 + xor $9,$fp,$6 + or $10,$10,$3 + srl $6,$11,10 + xor $5,$5,$8 + xor $fp,$9,$6 + srl $8,$20,3 + srl $6,$19,13 + xor $2,$2,$7 + sll $3,$19,30 + srl $7,$19,2 + sll $9,$19,19 + xor $5,$5,$10 + xor $11,$25,$24 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$19,22 + or $7,$19,$21 + addu $fp,$fp,$12 + sll $6,$19,10 + addu $5,$18,$5 + lw $18,44($sp) + addu $fp,$fp,$2 + or $6,$6,$8 + and $7,$22,$7 + and $2,$19,$21 + and $11,$23,$11 + xor $3,$3,$9 + xor $11,$24,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $18,$fp,$18 + sw $fp,484($sp) + addu $5,$5,$11 + addu $fp,$3,$2 + li $2,-1084686336 # 0xffffffffbf590000 + addu $5,$5,$18 + ori $2,$2,0x7fc7 + addu $20,$17,$fp + addu $17,$5,$2 + lw $2,476($sp) + addu $22,$22,$17 + srl $9,$22,11 + srl $3,$2,17 + sll $12,$2,15 + or $12,$12,$3 + lw $3,52($sp) + sll $8,$22,21 + or $8,$8,$9 + sll $6,$2,13 + lw $9,476($sp) + srl $2,$2,19 + sw $18,488($sp) + or $6,$6,$2 + lw $18,52($sp) + srl $11,$22,6 + srl $10,$3,7 + sll $5,$22,26 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + or $7,$7,$3 + or $5,$5,$11 + srl $3,$22,25 + or $2,$2,$10 + sll $10,$22,7 + or $10,$10,$3 + xor $12,$12,$6 + xor $5,$5,$8 + srl $6,$9,10 + srl $8,$18,3 + xor $12,$12,$6 + xor $2,$2,$7 + srl $6,$20,13 + srl $7,$20,2 + sll $3,$20,30 + sll $9,$20,19 + xor $5,$5,$10 + xor $11,$23,$25 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$20,22 + or $7,$20,$19 + addu $12,$12,$13 + sll $6,$20,10 + addu $5,$24,$5 + lw $24,48($sp) + or $6,$6,$8 + and $7,$21,$7 + and $11,$22,$11 + xor $3,$3,$9 + addu $12,$12,$2 + and $2,$20,$19 + xor $11,$25,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $12,$12,$24 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-958398464 # 0xffffffffc6e00000 + addu $5,$5,$12 + ori $2,$2,0xbf3 + addu $18,$17,$fp + addu $17,$5,$2 + lw $2,488($sp) + sw $13,84($sp) + addu $21,$21,$17 + srl $3,$2,17 + sll $13,$2,15 + or $13,$13,$3 + lw $3,56($sp) + srl $9,$21,11 + sll $8,$21,21 + or $8,$8,$9 + sll $6,$2,13 + lw $9,488($sp) + srl $2,$2,19 + lw $24,56($sp) + or $6,$6,$2 + srl $11,$21,6 + srl $10,$3,7 + sll $5,$21,26 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + or $7,$7,$3 + or $5,$5,$11 + srl $3,$21,25 + or $2,$2,$10 + sll $10,$21,7 + or $10,$10,$3 + xor $13,$13,$6 + xor $5,$5,$8 + srl $6,$9,10 + srl $8,$24,3 + xor $13,$13,$6 + xor $2,$2,$7 + srl $6,$18,13 + srl $7,$18,2 + sll $3,$18,30 + sll $9,$18,19 + xor $5,$5,$10 + xor $11,$22,$23 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$18,22 + or $7,$18,$20 + addu $13,$13,$16 + sll $6,$18,10 + addu $5,$25,$5 + lw $25,52($sp) + or $6,$6,$8 + and $7,$19,$7 + and $11,$21,$11 + xor $3,$3,$9 + addu $13,$13,$2 + and $2,$18,$20 + xor $11,$23,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $13,$13,$25 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-710475776 # 0xffffffffd5a70000 + addu $5,$5,$13 + ori $2,$2,0x9147 + addu $24,$17,$fp + sll $6,$12,13 + addu $17,$5,$2 + srl $2,$12,19 + or $6,$6,$2 + lw $2,60($sp) + addu $19,$19,$17 + lw $25,60($sp) + sw $16,88($sp) + srl $3,$12,17 + sll $16,$12,15 + srl $9,$19,11 + srl $10,$2,7 + or $16,$16,$3 + sll $8,$19,21 + sll $7,$2,25 + sll $3,$2,14 + srl $2,$2,18 + srl $11,$19,6 + or $8,$8,$9 + or $3,$3,$2 + srl $9,$12,10 + sll $5,$19,26 + xor $16,$16,$6 + or $7,$7,$10 + srl $2,$19,25 + or $5,$5,$11 + sll $6,$19,7 + srl $11,$25,3 + xor $16,$16,$9 + xor $7,$7,$3 + or $6,$6,$2 + xor $7,$7,$11 + srl $2,$24,13 + xor $5,$5,$8 + sll $3,$24,30 + srl $8,$24,2 + sll $9,$24,19 + addu $16,$16,$15 + xor $10,$21,$22 + or $9,$9,$2 + or $3,$3,$8 + srl $2,$24,22 + or $8,$24,$18 + xor $5,$5,$6 + addu $16,$16,$7 + sll $6,$24,10 + lw $7,56($sp) + or $6,$6,$2 + and $8,$20,$8 + and $2,$24,$18 + and $10,$19,$10 + xor $3,$3,$9 + xor $10,$22,$10 + xor $3,$3,$6 + or $2,$2,$8 + addu $5,$23,$5 + addu $16,$16,$7 + addu $fp,$3,$2 + addu $5,$5,$10 + li $2,113901568 # 0x6ca0000 + lw $23,460($sp) + lw $10,460($sp) + addu $5,$5,$16 + ori $2,$2,0x6351 + addu $25,$17,$fp + addu $17,$5,$2 + addu $20,$20,$17 + sll $5,$13,15 + srl $3,$13,17 + srl $2,$13,19 + sll $6,$13,13 + sw $15,92($sp) + or $6,$6,$2 + or $15,$5,$3 + srl $11,$20,6 + srl $2,$23,18 + sll $5,$20,26 + sll $7,$10,25 + sll $3,$23,14 + srl $10,$10,7 + srl $9,$20,11 + or $3,$3,$2 + sll $8,$20,21 + or $5,$5,$11 + or $7,$7,$10 + xor $11,$15,$6 + srl $6,$13,10 + or $8,$8,$9 + srl $2,$20,25 + xor $15,$11,$6 + sll $9,$20,7 + srl $11,$23,3 + xor $7,$7,$3 + or $9,$9,$2 + srl $6,$25,2 + srl $2,$25,13 + xor $7,$7,$11 + xor $5,$5,$8 + sll $3,$25,30 + sll $8,$25,19 + addu $15,$15,$14 + xor $10,$19,$21 + or $8,$8,$2 + or $3,$3,$6 + srl $2,$25,22 + xor $5,$5,$9 + sll $6,$25,10 + or $9,$25,$24 + addu $15,$15,$7 + lw $7,60($sp) + or $6,$6,$2 + and $9,$18,$9 + and $2,$25,$24 + and $10,$20,$10 + xor $3,$3,$8 + xor $10,$21,$10 + xor $3,$3,$6 + or $2,$2,$9 + addu $5,$22,$5 + addu $15,$15,$7 + addu $fp,$3,$2 + addu $5,$5,$10 + li $2,338231296 # 0x14290000 + sw $14,96($sp) + addu $5,$5,$15 + sw $15,124($sp) + ori $2,$2,0x2967 + lw $15,68($sp) + lw $10,68($sp) + addu $23,$17,$fp + addu $17,$5,$2 + addu $18,$18,$17 + sll $6,$16,15 + srl $3,$16,17 + srl $2,$16,19 + sll $5,$16,13 + lw $22,472($sp) + or $14,$6,$3 + or $5,$5,$2 + srl $11,$18,6 + srl $3,$15,18 + sll $6,$18,26 + sll $2,$10,25 + sll $7,$15,14 + srl $10,$10,7 + or $7,$7,$3 + or $6,$6,$11 + or $2,$2,$10 + xor $11,$14,$5 + srl $5,$16,10 + xor $14,$11,$5 + srl $9,$18,11 + srl $10,$15,3 + sll $8,$18,21 + xor $2,$2,$7 + or $8,$8,$9 + srl $3,$18,25 + xor $2,$2,$10 + addu $15,$14,$22 + sll $9,$18,7 + or $9,$9,$3 + xor $11,$20,$19 + srl $7,$23,2 + srl $3,$23,13 + xor $6,$6,$8 + sll $5,$23,30 + sll $8,$23,19 + addu $15,$15,$2 + lw $2,64($sp) + or $8,$8,$3 + or $5,$5,$7 + srl $3,$23,22 + xor $6,$6,$9 + and $11,$18,$11 + or $9,$23,$25 + sll $7,$23,10 + or $7,$7,$3 + and $9,$24,$9 + xor $11,$19,$11 + and $3,$23,$25 + addu $6,$21,$6 + xor $5,$5,$8 + addu $15,$15,$2 + xor $5,$5,$7 + or $3,$3,$9 + addu $6,$6,$11 + li $2,666304512 # 0x27b70000 + addu $fp,$5,$3 + addu $6,$6,$15 + ori $2,$2,0xa85 + sw $22,492($sp) + addu $22,$17,$fp + addu $17,$6,$2 + lw $2,124($sp) + addu $24,$24,$17 + srl $11,$24,6 + sll $5,$2,15 + srl $3,$2,17 + sw $2,496($sp) + or $14,$5,$3 + lw $3,464($sp) + sll $5,$24,26 + or $5,$5,$11 + lw $11,496($sp) + lw $21,464($sp) + sll $6,$2,13 + srl $2,$2,19 + or $6,$6,$2 + srl $9,$24,11 + srl $10,$3,7 + sll $8,$24,21 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + sw $15,128($sp) + or $8,$8,$9 + lw $15,476($sp) + xor $9,$14,$6 + or $7,$7,$3 + srl $6,$11,10 + or $2,$2,$10 + srl $3,$24,25 + xor $14,$9,$6 + sll $10,$24,7 + srl $6,$22,13 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$21,3 + sll $9,$22,19 + or $10,$10,$3 + srl $7,$22,2 + or $9,$9,$6 + xor $2,$2,$8 + sll $3,$22,30 + srl $8,$22,22 + sll $6,$22,10 + xor $11,$18,$20 + or $6,$6,$8 + or $3,$3,$7 + lw $8,68($sp) + or $7,$22,$23 + addu $14,$14,$15 + and $7,$25,$7 + xor $5,$5,$10 + and $11,$24,$11 + xor $3,$3,$9 + addu $14,$14,$2 + and $2,$22,$23 + lw $9,128($sp) + xor $11,$20,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$19,$5 + addu $14,$14,$8 + addu $fp,$3,$2 + lw $10,468($sp) + sw $15,500($sp) + addu $5,$5,$11 + lw $15,468($sp) + li $2,773521408 # 0x2e1b0000 + addu $5,$5,$14 + ori $2,$2,0x2138 + addu $21,$17,$fp + sll $6,$9,15 + addu $17,$5,$2 + srl $3,$9,17 + srl $2,$9,19 + sll $5,$9,13 + addu $25,$25,$17 + sw $14,132($sp) + or $5,$5,$2 + or $14,$6,$3 + sll $2,$10,25 + srl $3,$15,18 + srl $10,$10,7 + sll $7,$15,14 + lw $19,128($sp) + or $7,$7,$3 + or $2,$2,$10 + srl $3,$25,25 + sll $10,$25,7 + or $10,$10,$3 + lw $3,488($sp) + srl $9,$25,11 + sll $8,$25,21 + or $8,$8,$9 + xor $9,$14,$5 + srl $5,$19,10 + sw $3,504($sp) + xor $14,$9,$5 + srl $5,$21,13 + sll $9,$21,19 + srl $11,$25,6 + or $9,$9,$5 + sll $6,$25,26 + lw $5,504($sp) + or $6,$6,$11 + xor $6,$6,$8 + xor $2,$2,$7 + srl $8,$15,3 + srl $7,$21,2 + xor $2,$2,$8 + sll $3,$21,30 + srl $8,$21,22 + addu $14,$14,$5 + sll $5,$21,10 + xor $11,$24,$18 + or $5,$5,$8 + or $3,$3,$7 + lw $8,464($sp) + or $7,$21,$22 + and $7,$23,$7 + xor $6,$6,$10 + and $11,$25,$11 + xor $3,$3,$9 + addu $14,$14,$2 + and $2,$21,$22 + xor $11,$18,$11 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$20,$6 + lw $9,132($sp) + addu $14,$14,$8 + addu $fp,$3,$2 + addu $6,$6,$11 + li $2,1294729216 # 0x4d2c0000 + addu $6,$6,$14 + ori $2,$2,0x6dfc + addu $19,$17,$fp + addu $17,$6,$2 + addu $23,$23,$17 + sll $5,$9,15 + srl $3,$9,17 + lw $15,80($sp) + sw $12,112($sp) + srl $11,$23,6 + or $12,$5,$3 + sll $5,$23,26 + or $5,$5,$11 + lw $11,132($sp) + srl $2,$9,19 + sll $6,$9,13 + or $6,$6,$2 + srl $9,$23,11 + srl $10,$15,7 + srl $3,$15,18 + sll $8,$23,21 + sll $2,$15,25 + sll $7,$15,14 + lw $20,112($sp) + or $8,$8,$9 + or $7,$7,$3 + xor $9,$12,$6 + or $2,$2,$10 + srl $6,$11,10 + xor $12,$9,$6 + srl $3,$23,25 + srl $6,$19,13 + sll $10,$23,7 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$15,3 + sll $9,$19,19 + or $10,$10,$3 + srl $7,$19,2 + or $9,$9,$6 + xor $2,$2,$8 + sll $3,$19,30 + srl $8,$19,22 + sll $6,$19,10 + sw $14,136($sp) + xor $11,$25,$24 + addu $14,$12,$20 + or $6,$6,$8 + or $3,$3,$7 + lw $8,468($sp) + or $7,$19,$21 + and $7,$22,$7 + xor $5,$5,$10 + and $11,$23,$11 + xor $3,$3,$9 + addu $14,$14,$2 + and $2,$19,$21 + xor $11,$24,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$18,$5 + lw $9,136($sp) + addu $14,$14,$8 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,1396178944 # 0x53380000 + addu $5,$5,$14 + ori $2,$2,0xd13 + addu $20,$17,$fp + addu $17,$5,$2 + addu $22,$22,$17 + sll $5,$9,15 + srl $3,$9,17 + or $12,$5,$3 + sw $14,508($sp) + srl $11,$22,6 + lw $14,84($sp) + sll $5,$22,26 + or $5,$5,$11 + lw $11,136($sp) + srl $2,$9,19 + sll $6,$9,13 + or $6,$6,$2 + srl $9,$22,11 + srl $10,$14,7 + srl $3,$14,18 + sll $8,$22,21 + sll $2,$14,25 + sll $7,$14,14 + or $8,$8,$9 + or $7,$7,$3 + xor $9,$12,$6 + srl $3,$22,25 + srl $6,$11,10 + or $2,$2,$10 + sll $10,$22,7 + xor $12,$9,$6 + or $10,$10,$3 + srl $6,$20,13 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$14,3 + srl $7,$20,2 + sll $3,$20,30 + sll $9,$20,19 + addu $fp,$12,$13 + xor $11,$23,$25 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$20,22 + or $7,$20,$19 + xor $5,$5,$10 + sll $6,$20,10 + or $6,$6,$8 + and $7,$21,$7 + and $11,$22,$11 + addu $5,$24,$5 + xor $3,$3,$9 + addu $24,$fp,$2 + and $2,$20,$19 + addu $24,$24,$15 + xor $11,$25,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $fp,$3,$2 + sw $13,116($sp) + addu $5,$5,$11 + sw $24,144($sp) + li $2,1695154176 # 0x650a0000 + lw $15,508($sp) + lw $12,88($sp) + addu $5,$5,$24 + ori $2,$2,0x7354 + addu $18,$17,$fp + addu $17,$5,$2 + addu $21,$21,$17 + sll $5,$15,15 + srl $3,$15,17 + srl $2,$15,19 + sll $6,$15,13 + or $13,$5,$3 + or $6,$6,$2 + srl $11,$21,6 + srl $9,$21,11 + srl $10,$12,7 + srl $3,$12,18 + sll $5,$21,26 + sll $8,$21,21 + sll $2,$12,25 + sll $7,$12,14 + or $8,$8,$9 + or $7,$7,$3 + xor $9,$13,$6 + srl $3,$21,25 + srl $6,$15,10 + or $5,$5,$11 + or $2,$2,$10 + sll $10,$21,7 + xor $13,$9,$6 + or $10,$10,$3 + srl $6,$18,13 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$12,3 + srl $7,$18,2 + sll $3,$18,30 + sll $9,$18,19 + xor $11,$22,$23 + or $9,$9,$6 + xor $2,$2,$8 + addu $15,$13,$16 + srl $8,$18,22 + or $3,$3,$7 + sll $6,$18,10 + or $7,$18,$20 + or $6,$6,$8 + and $7,$19,$7 + xor $5,$5,$10 + and $11,$21,$11 + xor $3,$3,$9 + addu $15,$15,$2 + and $2,$18,$20 + xor $11,$23,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$25,$5 + addu $15,$15,$14 + lw $25,144($sp) + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,1986658304 # 0x766a0000 + addu $5,$5,$15 + ori $2,$2,0xabb + addu $24,$17,$fp + addu $17,$5,$2 + addu $19,$19,$17 + sll $5,$25,15 + srl $3,$25,17 + srl $2,$25,19 + sll $6,$25,13 + lw $13,92($sp) + or $14,$5,$3 + or $6,$6,$2 + srl $9,$19,11 + sll $8,$19,21 + or $8,$8,$9 + xor $9,$14,$6 + srl $6,$25,10 + xor $14,$9,$6 + srl $6,$24,13 + sll $9,$24,19 + srl $11,$19,6 + srl $10,$13,7 + srl $3,$13,18 + or $9,$9,$6 + sll $5,$19,26 + lw $6,496($sp) + sll $2,$13,25 + sll $7,$13,14 + or $7,$7,$3 + or $5,$5,$11 + srl $3,$19,25 + or $2,$2,$10 + sll $10,$19,7 + or $10,$10,$3 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$13,3 + srl $7,$24,2 + sll $3,$24,30 + sw $15,148($sp) + xor $11,$21,$22 + xor $2,$2,$8 + addu $15,$14,$6 + srl $8,$24,22 + or $3,$3,$7 + sll $6,$24,10 + or $7,$24,$18 + or $6,$6,$8 + and $7,$20,$7 + xor $5,$5,$10 + and $11,$19,$11 + xor $3,$3,$9 + addu $15,$15,$2 + and $2,$24,$18 + xor $11,$22,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$23,$5 + lw $7,148($sp) + addu $15,$15,$12 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-2117992448 # 0xffffffff81c20000 + addu $5,$5,$15 + ori $2,$2,0xc92e + addu $25,$17,$fp + addu $17,$5,$2 + addu $20,$20,$17 + sll $5,$7,15 + srl $3,$7,17 + lw $12,96($sp) + or $14,$5,$3 + srl $11,$20,6 + sll $5,$20,26 + or $5,$5,$11 + lw $11,148($sp) + srl $2,$7,19 + sll $6,$7,13 + lw $23,128($sp) + or $6,$6,$2 + srl $9,$20,11 + srl $10,$12,7 + srl $3,$12,18 + sll $8,$20,21 + sll $2,$12,25 + sll $7,$12,14 + or $8,$8,$9 + or $7,$7,$3 + xor $9,$14,$6 + srl $3,$20,25 + srl $6,$11,10 + or $2,$2,$10 + sll $10,$20,7 + xor $14,$9,$6 + or $10,$10,$3 + srl $6,$25,13 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$12,3 + srl $7,$25,2 + sll $3,$25,30 + sll $9,$25,19 + sw $15,152($sp) + xor $11,$19,$21 + addu $15,$14,$23 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$25,22 + or $7,$25,$24 + xor $5,$5,$10 + sll $6,$25,10 + or $6,$6,$8 + and $7,$18,$7 + and $11,$20,$11 + addu $5,$22,$5 + xor $3,$3,$9 + addu $22,$15,$2 + and $2,$25,$24 + xor $11,$21,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $22,$22,$13 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-1838022656 # 0xffffffff92720000 + addu $5,$5,$22 + ori $2,$2,0x2c85 + addu $23,$17,$fp + addu $17,$5,$2 + lw $2,152($sp) + addu $18,$18,$17 + srl $11,$18,6 + sll $5,$2,15 + srl $3,$2,17 + or $13,$5,$3 + lw $3,492($sp) + sll $5,$18,26 + or $5,$5,$11 + lw $11,152($sp) + lw $14,492($sp) + sll $6,$2,13 + srl $2,$2,19 + lw $15,132($sp) + or $6,$6,$2 + srl $9,$18,11 + srl $10,$3,7 + sll $8,$18,21 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + or $8,$8,$9 + or $7,$7,$3 + xor $9,$13,$6 + srl $3,$18,25 + srl $6,$11,10 + or $2,$2,$10 + sll $10,$18,7 + or $10,$10,$3 + xor $13,$9,$6 + xor $5,$5,$8 + srl $6,$23,13 + srl $8,$14,3 + xor $2,$2,$7 + sll $3,$23,30 + srl $7,$23,2 + sll $9,$23,19 + xor $11,$20,$19 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$23,22 + or $7,$23,$25 + addu $13,$13,$15 + sll $6,$23,10 + sw $22,156($sp) + or $6,$6,$8 + addu $13,$13,$2 + and $7,$24,$7 + and $2,$23,$25 + xor $5,$5,$10 + and $11,$18,$11 + xor $3,$3,$9 + xor $11,$19,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$21,$5 + lw $21,156($sp) + addu $15,$13,$12 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-1564540928 # 0xffffffffa2bf0000 + addu $5,$5,$15 + ori $2,$2,0xe8a1 + addu $22,$17,$fp + srl $3,$21,17 + addu $17,$5,$2 + sll $5,$21,15 + or $12,$5,$3 + lw $3,500($sp) + addu $24,$24,$17 + srl $2,$21,19 + sll $6,$21,13 + lw $13,500($sp) + or $6,$6,$2 + srl $11,$24,6 + srl $9,$24,11 + srl $10,$3,7 + sll $5,$24,26 + sll $8,$24,21 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + lw $14,136($sp) + or $8,$8,$9 + or $7,$7,$3 + or $5,$5,$11 + srl $3,$24,25 + or $2,$2,$10 + sll $10,$24,7 + xor $9,$12,$6 + or $10,$10,$3 + srl $6,$21,10 + xor $5,$5,$8 + xor $12,$9,$6 + srl $8,$13,3 + srl $6,$22,13 + xor $2,$2,$7 + sll $3,$22,30 + srl $7,$22,2 + sll $9,$22,19 + xor $5,$5,$10 + xor $11,$18,$20 + or $9,$9,$6 + addu $13,$12,$14 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$22,22 + or $7,$22,$23 + sll $6,$22,10 + addu $5,$19,$5 + lw $19,492($sp) + or $6,$6,$8 + and $7,$25,$7 + and $11,$24,$11 + xor $3,$3,$9 + addu $13,$13,$2 + and $2,$22,$23 + xor $11,$20,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $13,$13,$19 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-1474691072 # 0xffffffffa81a0000 + addu $5,$5,$13 + ori $2,$2,0x664b + addu $21,$17,$fp + srl $3,$15,17 + addu $17,$5,$2 + sll $5,$15,15 + or $12,$5,$3 + lw $3,504($sp) + addu $25,$25,$17 + sw $13,512($sp) + srl $2,$15,19 + lw $13,504($sp) + sll $6,$15,13 + lw $14,508($sp) + or $6,$6,$2 + srl $11,$25,6 + srl $9,$25,11 + srl $10,$3,7 + sll $5,$25,26 + sll $8,$25,21 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + or $8,$8,$9 + or $7,$7,$3 + xor $9,$12,$6 + srl $3,$25,25 + srl $6,$15,10 + or $5,$5,$11 + or $2,$2,$10 + sll $10,$25,7 + xor $12,$9,$6 + or $10,$10,$3 + srl $6,$21,13 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$13,3 + srl $7,$21,2 + sll $3,$21,30 + sll $9,$21,19 + lw $19,500($sp) + xor $11,$24,$18 + or $9,$9,$6 + xor $2,$2,$8 + addu $13,$12,$14 + srl $8,$21,22 + or $3,$3,$7 + sll $6,$21,10 + or $7,$21,$22 + or $6,$6,$8 + and $7,$23,$7 + xor $5,$5,$10 + and $11,$25,$11 + xor $3,$3,$9 + addu $13,$13,$2 + and $2,$21,$22 + xor $11,$18,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$20,$5 + lw $20,512($sp) + addu $13,$13,$19 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-1035272192 # 0xffffffffc24b0000 + addu $5,$5,$13 + ori $2,$2,0x8b70 + addu $19,$17,$fp + srl $3,$20,17 + addu $17,$5,$2 + sll $5,$20,15 + or $12,$5,$3 + lw $3,112($sp) + addu $23,$23,$17 + sw $13,516($sp) + srl $2,$20,19 + lw $13,112($sp) + sll $6,$20,13 + or $6,$6,$2 + srl $11,$23,6 + srl $9,$23,11 + srl $10,$3,7 + sll $5,$23,26 + sll $8,$23,21 + sll $2,$3,25 + sll $7,$3,14 + srl $3,$3,18 + or $8,$8,$9 + or $7,$7,$3 + xor $9,$12,$6 + or $5,$5,$11 + srl $6,$20,10 + or $2,$2,$10 + xor $12,$9,$6 + lw $20,144($sp) + srl $6,$19,13 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$13,3 + sll $9,$19,19 + srl $3,$23,25 + or $9,$9,$6 + xor $2,$2,$8 + sll $10,$23,7 + srl $8,$19,22 + sll $6,$19,10 + or $10,$10,$3 + srl $7,$19,2 + or $6,$6,$8 + sll $3,$19,30 + lw $8,504($sp) + xor $11,$25,$24 + addu $14,$12,$20 + or $3,$3,$7 + or $7,$19,$21 + and $7,$22,$7 + xor $5,$5,$10 + and $11,$23,$11 + xor $3,$3,$9 + addu $14,$14,$2 + and $2,$19,$21 + addu $14,$14,$8 + xor $11,$24,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$18,$5 + sw $14,520($sp) + addu $fp,$3,$2 + lw $9,516($sp) + addu $5,$5,$11 + li $2,-949223424 # 0xffffffffc76c0000 + lw $13,116($sp) + lw $10,116($sp) + addu $5,$5,$14 + ori $2,$2,0x51a3 + addu $20,$17,$fp + addu $17,$5,$2 + addu $22,$22,$17 + lw $14,516($sp) + srl $3,$9,17 + srl $2,$9,19 + sll $12,$9,15 + sll $6,$9,13 + or $6,$6,$2 + srl $11,$22,6 + srl $9,$22,11 + or $12,$12,$3 + sll $5,$22,26 + srl $3,$13,18 + sll $8,$22,21 + sll $2,$10,25 + sll $7,$13,14 + srl $10,$10,7 + lw $18,148($sp) + or $8,$8,$9 + or $7,$7,$3 + or $5,$5,$11 + srl $3,$22,25 + or $2,$2,$10 + sll $10,$22,7 + or $10,$10,$3 + xor $12,$12,$6 + xor $5,$5,$8 + srl $6,$14,10 + srl $8,$13,3 + xor $12,$12,$6 + xor $2,$2,$7 + srl $6,$20,13 + srl $7,$20,2 + sll $3,$20,30 + sll $9,$20,19 + xor $5,$5,$10 + xor $11,$23,$25 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$20,22 + or $7,$20,$19 + addu $12,$12,$18 + sll $6,$20,10 + addu $5,$24,$5 + lw $24,112($sp) + or $6,$6,$8 + and $7,$21,$7 + and $11,$22,$11 + xor $3,$3,$9 + addu $12,$12,$2 + and $2,$20,$19 + xor $11,$25,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $12,$12,$24 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-778960896 # 0xffffffffd1920000 + addu $5,$5,$12 + ori $2,$2,0xe819 + addu $18,$17,$fp + addu $17,$5,$2 + lw $2,520($sp) + addu $21,$21,$17 + srl $11,$21,6 + sll $5,$2,15 + srl $3,$2,17 + or $13,$5,$3 + sll $5,$21,26 + sll $6,$2,13 + or $5,$5,$11 + srl $2,$2,19 + lw $11,520($sp) + or $6,$6,$2 + srl $9,$21,11 + srl $10,$16,7 + srl $3,$16,18 + sll $8,$21,21 + sll $2,$16,25 + sll $7,$16,14 + lw $24,152($sp) + or $8,$8,$9 + or $7,$7,$3 + or $2,$2,$10 + srl $3,$21,25 + sll $10,$21,7 + xor $9,$13,$6 + or $10,$10,$3 + srl $6,$11,10 + xor $5,$5,$8 + xor $13,$9,$6 + srl $8,$16,3 + srl $6,$18,13 + xor $2,$2,$7 + sll $3,$18,30 + srl $7,$18,2 + sll $9,$18,19 + xor $5,$5,$10 + xor $11,$22,$23 + or $9,$9,$6 + addu $14,$13,$24 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$18,22 + or $7,$18,$20 + sll $6,$18,10 + addu $5,$25,$5 + lw $25,116($sp) + or $6,$6,$8 + and $7,$19,$7 + and $11,$21,$11 + xor $3,$3,$9 + addu $14,$14,$2 + and $2,$18,$20 + xor $11,$23,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $14,$14,$25 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,-694616064 # 0xffffffffd6990000 + addu $5,$5,$14 + ori $2,$2,0x624 + addu $24,$17,$fp + addu $17,$5,$2 + srl $2,$12,19 + sll $5,$12,13 + or $5,$5,$2 + lw $2,496($sp) + sll $6,$12,15 + srl $3,$12,17 + or $13,$6,$3 + srl $10,$2,7 + sll $7,$2,25 + sll $3,$2,14 + srl $2,$2,18 + or $3,$3,$2 + or $7,$7,$10 + addu $19,$19,$17 + xor $7,$7,$3 + lw $3,496($sp) + srl $11,$19,6 + sll $6,$19,26 + or $6,$6,$11 + xor $11,$13,$5 + srl $5,$12,10 + xor $13,$11,$5 + srl $11,$3,3 + srl $5,$24,2 + sll $3,$24,30 + srl $9,$19,11 + sll $8,$19,21 + or $3,$3,$5 + lw $5,156($sp) + or $8,$8,$9 + srl $2,$19,25 + sll $9,$19,7 + or $9,$9,$2 + xor $6,$6,$8 + srl $2,$24,13 + sll $8,$24,19 + xor $10,$21,$22 + or $8,$8,$2 + addu $13,$13,$5 + srl $2,$24,22 + xor $6,$6,$9 + sll $5,$24,10 + or $9,$24,$18 + or $5,$5,$2 + and $9,$20,$9 + and $2,$24,$18 + xor $7,$7,$11 + and $10,$19,$10 + xor $3,$3,$8 + xor $10,$22,$10 + xor $3,$3,$5 + or $2,$2,$9 + addu $6,$23,$6 + addu $7,$13,$7 + addu $7,$7,$16 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,-200409088 # 0xfffffffff40e0000 + sw $14,180($sp) + addu $6,$6,$7 + ori $2,$2,0x3585 + addu $25,$17,$fp + addu $17,$6,$2 + lw $6,180($sp) + sw $7,184($sp) + lw $14,128($sp) + sw $6,524($sp) + lw $7,524($sp) + srl $10,$14,7 + addu $20,$20,$17 + srl $2,$7,19 + sll $5,$7,13 + or $5,$5,$2 + sll $2,$14,25 + or $2,$2,$10 + lw $10,524($sp) + srl $3,$7,17 + sll $6,$6,15 + or $13,$6,$3 + srl $11,$20,6 + srl $3,$14,18 + sll $6,$20,26 + sll $7,$14,14 + or $7,$7,$3 + or $6,$6,$11 + xor $11,$13,$5 + srl $5,$10,10 + srl $9,$20,11 + xor $13,$11,$5 + srl $10,$14,3 + sll $8,$20,21 + xor $2,$2,$7 + or $8,$8,$9 + srl $3,$20,25 + xor $2,$2,$10 + sll $9,$20,7 + addu $13,$13,$15 + or $9,$9,$3 + xor $11,$19,$21 + srl $7,$25,2 + srl $3,$25,13 + xor $6,$6,$8 + sll $5,$25,30 + sll $8,$25,19 + addu $13,$13,$2 + lw $2,124($sp) + or $8,$8,$3 + or $5,$5,$7 + srl $3,$25,22 + xor $6,$6,$9 + and $11,$20,$11 + or $9,$25,$24 + sll $7,$25,10 + or $7,$7,$3 + and $9,$18,$9 + xor $11,$21,$11 + and $3,$25,$24 + addu $6,$22,$6 + xor $5,$5,$8 + addu $13,$13,$2 + xor $5,$5,$7 + or $3,$3,$9 + addu $6,$6,$11 + li $2,275382272 # 0x106a0000 + lw $11,184($sp) + addu $fp,$5,$3 + addu $6,$6,$13 + ori $2,$2,0xa070 + addu $23,$17,$fp + addu $17,$6,$2 + addu $18,$18,$17 + sll $6,$11,15 + srl $3,$11,17 + srl $2,$11,19 + sll $5,$11,13 + sw $13,188($sp) + sw $15,528($sp) + lw $13,132($sp) + or $15,$6,$3 + or $5,$5,$2 + srl $9,$18,11 + sll $8,$18,21 + or $8,$8,$9 + xor $9,$15,$5 + lw $15,184($sp) + lw $16,512($sp) + srl $11,$18,6 + srl $10,$13,7 + srl $3,$13,18 + sll $6,$18,26 + sll $2,$13,25 + sll $7,$13,14 + or $7,$7,$3 + or $6,$6,$11 + srl $3,$18,25 + or $2,$2,$10 + srl $5,$15,10 + sll $10,$18,7 + or $10,$10,$3 + xor $15,$9,$5 + xor $6,$6,$8 + srl $5,$23,13 + srl $8,$13,3 + xor $2,$2,$7 + sll $3,$23,30 + srl $7,$23,2 + sll $9,$23,19 + xor $11,$20,$19 + or $9,$9,$5 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$23,22 + or $7,$23,$25 + addu $15,$15,$16 + sll $5,$23,10 + or $5,$5,$8 + and $7,$24,$7 + xor $6,$6,$10 + and $11,$18,$11 + xor $3,$3,$9 + addu $15,$15,$2 + and $2,$23,$25 + xor $11,$19,$11 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$21,$6 + lw $21,188($sp) + addu $15,$15,$14 + addu $fp,$3,$2 + lw $14,136($sp) + addu $6,$6,$11 + li $2,430178304 # 0x19a40000 + addu $6,$6,$15 + ori $2,$2,0xc116 + addu $22,$17,$fp + sll $5,$21,15 + addu $17,$6,$2 + srl $3,$21,17 + srl $2,$21,19 + sll $6,$21,13 + addu $24,$24,$17 + sw $15,192($sp) + or $6,$6,$2 + or $15,$5,$3 + srl $10,$14,7 + srl $3,$14,18 + sll $2,$14,25 + sll $7,$14,14 + or $7,$7,$3 + or $2,$2,$10 + srl $3,$24,25 + sll $10,$24,7 + or $10,$10,$3 + lw $3,516($sp) + srl $9,$24,11 + sll $8,$24,21 + or $8,$8,$9 + xor $9,$15,$6 + srl $6,$21,10 + xor $15,$9,$6 + sw $3,536($sp) + srl $6,$22,13 + sll $9,$22,19 + srl $11,$24,6 + or $9,$9,$6 + sll $5,$24,26 + lw $6,536($sp) + or $5,$5,$11 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$14,3 + srl $7,$22,2 + sll $3,$22,30 + sw $16,532($sp) + xor $11,$18,$20 + xor $2,$2,$8 + addu $16,$15,$6 + srl $8,$22,22 + or $3,$3,$7 + sll $6,$22,10 + or $7,$22,$23 + or $6,$6,$8 + and $7,$25,$7 + xor $5,$5,$10 + and $11,$24,$11 + xor $3,$3,$9 + addu $16,$16,$2 + and $2,$22,$23 + addu $16,$16,$13 + xor $11,$20,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$19,$5 + sw $16,540($sp) + addu $fp,$3,$2 + lw $7,192($sp) + addu $5,$5,$11 + li $2,506920960 # 0x1e370000 + lw $15,508($sp) + lw $10,508($sp) + addu $5,$5,$16 + ori $2,$2,0x6c08 + addu $21,$17,$fp + lw $16,192($sp) + addu $17,$5,$2 + addu $25,$25,$17 + srl $3,$7,17 + srl $2,$7,19 + sll $13,$7,15 + sll $5,$7,13 + lw $19,520($sp) + or $5,$5,$2 + srl $11,$25,6 + srl $9,$25,11 + or $13,$13,$3 + sll $6,$25,26 + srl $3,$15,18 + sll $8,$25,21 + sll $2,$10,25 + sll $7,$15,14 + srl $10,$10,7 + or $8,$8,$9 + or $7,$7,$3 + or $6,$6,$11 + srl $3,$25,25 + xor $13,$13,$5 + or $2,$2,$10 + srl $5,$16,10 + sll $10,$25,7 + or $10,$10,$3 + xor $6,$6,$8 + xor $13,$13,$5 + srl $8,$15,3 + srl $5,$21,13 + xor $2,$2,$7 + sll $3,$21,30 + srl $7,$21,2 + sll $9,$21,19 + xor $11,$24,$18 + or $9,$9,$5 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$21,22 + or $7,$21,$22 + addu $13,$13,$19 + sll $5,$21,10 + or $5,$5,$8 + and $7,$23,$7 + xor $6,$6,$10 + and $11,$25,$11 + xor $3,$3,$9 + addu $13,$13,$2 + and $2,$21,$22 + xor $11,$18,$11 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$20,$6 + addu $13,$13,$14 + lw $20,540($sp) + addu $fp,$3,$2 + addu $6,$6,$11 + li $2,659030016 # 0x27480000 + lw $15,144($sp) + addu $6,$6,$13 + ori $2,$2,0x774c + sw $19,544($sp) + addu $19,$17,$fp + addu $17,$6,$2 + addu $23,$23,$17 + srl $3,$20,17 + srl $2,$20,19 + sll $14,$20,15 + sll $5,$20,13 + or $5,$5,$2 + srl $11,$23,6 + srl $9,$23,11 + srl $10,$15,7 + or $14,$14,$3 + sll $6,$23,26 + srl $3,$15,18 + sll $8,$23,21 + sll $2,$15,25 + sll $7,$15,14 + or $8,$8,$9 + or $7,$7,$3 + or $6,$6,$11 + xor $14,$14,$5 + or $2,$2,$10 + srl $5,$20,10 + srl $3,$23,25 + sll $10,$23,7 + xor $6,$6,$8 + xor $14,$14,$5 + srl $8,$15,3 + srl $5,$19,13 + xor $2,$2,$7 + sll $9,$19,19 + or $10,$10,$3 + srl $7,$19,2 + or $9,$9,$5 + xor $2,$2,$8 + sll $3,$19,30 + srl $8,$19,22 + sll $5,$19,10 + xor $11,$25,$24 + or $5,$5,$8 + or $3,$3,$7 + lw $8,508($sp) + or $7,$19,$21 + addu $14,$14,$12 + and $7,$22,$7 + xor $6,$6,$10 + and $11,$23,$11 + xor $3,$3,$9 + addu $14,$14,$2 + and $2,$19,$21 + xor $11,$24,$11 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$18,$6 + addu $14,$14,$8 + addu $fp,$3,$2 + addu $6,$6,$11 + li $2,883949568 # 0x34b00000 + sw $12,176($sp) + addu $6,$6,$14 + lw $12,148($sp) + ori $2,$2,0xbcb5 + addu $20,$17,$fp + addu $17,$6,$2 + addu $22,$22,$17 + sll $9,$13,15 + srl $3,$13,17 + srl $2,$13,19 + sll $5,$13,13 + or $16,$9,$3 + or $5,$5,$2 + srl $11,$22,6 + srl $9,$22,11 + srl $10,$12,7 + srl $3,$12,18 + sll $6,$22,26 + sll $8,$22,21 + sll $2,$12,25 + sll $7,$12,14 + or $8,$8,$9 + or $7,$7,$3 + or $6,$6,$11 + srl $3,$22,25 + or $2,$2,$10 + sll $10,$22,7 + or $10,$10,$3 + xor $6,$6,$8 + xor $6,$6,$10 + lw $10,524($sp) + xor $9,$16,$5 + srl $5,$13,10 + xor $16,$9,$5 + srl $8,$12,3 + srl $5,$20,13 + xor $2,$2,$7 + sll $3,$20,30 + srl $7,$20,2 + sll $9,$20,19 + xor $11,$23,$25 + or $9,$9,$5 + xor $2,$2,$8 + addu $fp,$16,$10 + srl $8,$20,22 + or $3,$3,$7 + sll $5,$20,10 + or $7,$20,$19 + addu $fp,$fp,$2 + or $5,$5,$8 + and $7,$21,$7 + and $2,$20,$19 + and $11,$22,$11 + xor $3,$3,$9 + xor $11,$25,$11 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$24,$6 + addu $15,$fp,$15 + sw $fp,552($sp) + addu $6,$6,$11 + addu $fp,$3,$2 + li $2,958136320 # 0x391c0000 + lw $16,152($sp) + addu $6,$6,$15 + ori $2,$2,0xcb3 + addu $18,$17,$fp + addu $17,$6,$2 + addu $21,$21,$17 + sw $15,556($sp) + srl $3,$14,17 + srl $2,$14,19 + sll $15,$14,15 + sll $5,$14,13 + lw $24,184($sp) + or $5,$5,$2 + srl $11,$21,6 + srl $9,$21,11 + srl $10,$16,7 + or $15,$15,$3 + sll $6,$21,26 + srl $3,$16,18 + sll $8,$21,21 + sll $2,$16,25 + sll $7,$16,14 + or $8,$8,$9 + or $7,$7,$3 + or $6,$6,$11 + srl $3,$21,25 + xor $15,$15,$5 + or $2,$2,$10 + srl $5,$14,10 + sll $10,$21,7 + or $10,$10,$3 + xor $6,$6,$8 + xor $15,$15,$5 + srl $8,$16,3 + srl $5,$18,13 + xor $2,$2,$7 + sll $3,$18,30 + srl $7,$18,2 + sll $9,$18,19 + xor $11,$22,$23 + or $9,$9,$5 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$18,22 + or $7,$18,$20 + addu $15,$15,$24 + sll $5,$18,10 + or $5,$5,$8 + and $7,$19,$7 + xor $6,$6,$10 + and $11,$21,$11 + xor $3,$3,$9 + addu $15,$15,$2 + and $2,$18,$20 + xor $11,$23,$11 + xor $3,$3,$5 + or $2,$2,$7 + addu $6,$25,$6 + lw $25,556($sp) + addu $15,$15,$12 + addu $fp,$3,$2 + addu $6,$6,$11 + li $2,1322778624 # 0x4ed80000 + addu $6,$6,$15 + ori $2,$2,0xaa4a + addu $24,$17,$fp + srl $3,$25,17 + addu $17,$6,$2 + sll $16,$25,15 + srl $2,$25,19 + sll $6,$25,13 + addu $19,$19,$17 + lw $12,156($sp) + or $6,$6,$2 + or $16,$16,$3 + srl $9,$19,11 + sll $8,$19,21 + xor $16,$16,$6 + srl $6,$25,10 + or $8,$8,$9 + xor $16,$16,$6 + sll $9,$24,19 + srl $6,$24,13 + srl $11,$19,6 + srl $10,$12,7 + srl $3,$12,18 + or $9,$9,$6 + sll $5,$19,26 + lw $6,188($sp) + sll $2,$12,25 + sll $7,$12,14 + or $7,$7,$3 + or $5,$5,$11 + or $2,$2,$10 + srl $3,$19,25 + sll $10,$19,7 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$12,3 + or $10,$10,$3 + srl $7,$24,2 + xor $2,$2,$8 + sll $3,$24,30 + srl $8,$24,22 + addu $16,$16,$6 + sll $6,$24,10 + xor $11,$21,$22 + or $6,$6,$8 + or $3,$3,$7 + lw $8,152($sp) + or $7,$24,$18 + and $7,$20,$7 + xor $5,$5,$10 + and $11,$19,$11 + xor $3,$3,$9 + addu $16,$16,$2 + and $2,$24,$18 + xor $11,$22,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$23,$5 + addu $16,$16,$8 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,1536950272 # 0x5b9c0000 + addu $5,$5,$16 + ori $2,$2,0xca4f + addu $25,$17,$fp + addu $17,$5,$2 + addu $20,$20,$17 + sll $5,$15,15 + srl $3,$15,17 + srl $2,$15,19 + sll $6,$15,13 + lw $23,528($sp) + or $fp,$5,$3 + lw $10,528($sp) + or $6,$6,$2 + srl $9,$20,11 + sll $8,$20,21 + or $8,$8,$9 + xor $9,$fp,$6 + srl $6,$15,10 + xor $fp,$9,$6 + srl $6,$25,13 + sll $9,$25,19 + srl $11,$20,6 + srl $3,$23,18 + or $9,$9,$6 + sll $5,$20,26 + lw $6,192($sp) + sll $2,$10,25 + sll $7,$23,14 + srl $10,$10,7 + or $7,$7,$3 + or $5,$5,$11 + or $2,$2,$10 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$23,3 + srl $3,$20,25 + xor $2,$2,$8 + sll $10,$20,7 + addu $fp,$fp,$6 + or $10,$10,$3 + srl $7,$25,2 + sll $3,$25,30 + addu $fp,$fp,$2 + addu $fp,$fp,$12 + or $3,$3,$7 + or $7,$25,$24 + sw $fp,560($sp) + xor $11,$19,$21 + srl $8,$25,22 + and $7,$18,$7 + and $2,$25,$24 + sll $6,$25,10 + or $6,$6,$8 + or $2,$2,$7 + xor $5,$5,$10 + lw $7,560($sp) + and $11,$20,$11 + xor $3,$3,$9 + xor $11,$21,$11 + xor $3,$3,$6 + addu $5,$22,$5 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,1747845120 # 0x682e0000 + addu $5,$5,$7 + ori $2,$2,0x6ff3 + addu $23,$17,$fp + addu $17,$5,$2 + addu $18,$18,$17 + sll $5,$16,15 + srl $3,$16,17 + srl $2,$16,19 + sll $6,$16,13 + lw $22,532($sp) + or $12,$5,$3 + lw $10,532($sp) + or $6,$6,$2 + srl $9,$18,11 + sll $8,$18,21 + or $8,$8,$9 + xor $9,$12,$6 + srl $6,$16,10 + xor $12,$9,$6 + srl $6,$23,13 + sll $9,$23,19 + srl $11,$18,6 + srl $3,$22,18 + or $9,$9,$6 + sll $5,$18,26 + lw $6,540($sp) + sll $2,$10,25 + sll $7,$22,14 + srl $10,$10,7 + or $7,$7,$3 + or $5,$5,$11 + or $2,$2,$10 + srl $3,$18,25 + sll $10,$18,7 + xor $5,$5,$8 + xor $2,$2,$7 + srl $8,$22,3 + or $10,$10,$3 + srl $7,$23,2 + xor $2,$2,$8 + sll $3,$23,30 + srl $8,$23,22 + addu $12,$12,$6 + sll $6,$23,10 + xor $11,$20,$19 + or $6,$6,$8 + or $3,$3,$7 + lw $8,528($sp) + or $7,$23,$25 + and $7,$24,$7 + xor $5,$5,$10 + and $11,$18,$11 + xor $3,$3,$9 + addu $12,$12,$2 + and $2,$23,$25 + xor $11,$19,$11 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$21,$5 + addu $12,$12,$8 + addu $fp,$3,$2 + addu $5,$5,$11 + li $2,1955528704 # 0x748f0000 + lw $9,560($sp) + addu $5,$5,$12 + ori $2,$2,0x82ee + addu $22,$17,$fp + addu $17,$5,$2 + addu $24,$24,$17 + lw $21,536($sp) + lw $11,536($sp) + srl $3,$9,17 + srl $2,$9,19 + sll $10,$9,15 + sll $6,$9,13 + sll $8,$24,21 + srl $9,$24,11 + or $8,$8,$9 + lw $9,560($sp) + sw $12,564($sp) + or $6,$6,$2 + srl $12,$24,6 + or $10,$10,$3 + sll $5,$24,26 + srl $3,$21,18 + sll $2,$11,25 + sll $7,$21,14 + srl $11,$11,7 + or $7,$7,$3 + or $5,$5,$12 + srl $3,$24,25 + xor $10,$10,$6 + or $2,$2,$11 + srl $6,$9,10 + sll $11,$24,7 + or $11,$11,$3 + xor $5,$5,$8 + xor $10,$10,$6 + srl $8,$21,3 + srl $6,$22,13 + xor $2,$2,$7 + sll $3,$22,30 + srl $7,$22,2 + sll $9,$22,19 + xor $12,$18,$20 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$22,22 + or $7,$22,$23 + xor $5,$5,$11 + addu $10,$10,$13 + lw $11,532($sp) + sll $6,$22,10 + or $6,$6,$8 + and $7,$25,$7 + and $12,$24,$12 + xor $3,$3,$9 + addu $10,$10,$2 + and $2,$22,$23 + xor $12,$20,$12 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$19,$5 + addu $10,$10,$11 + addu $fp,$3,$2 + addu $5,$5,$12 + li $2,2024079360 # 0x78a50000 + addu $5,$5,$10 + ori $2,$2,0x636f + addu $21,$17,$fp + addu $17,$5,$2 + addu $25,$25,$17 + lw $13,564($sp) + lw $19,544($sp) + srl $9,$25,11 + sll $8,$25,21 + or $8,$8,$9 + lw $9,564($sp) + srl $3,$13,17 + srl $2,$13,19 + sll $11,$13,15 + sll $6,$13,13 + or $6,$6,$2 + srl $13,$25,6 + srl $12,$19,7 + or $11,$11,$3 + sll $5,$25,26 + srl $3,$19,18 + sll $2,$19,25 + sll $7,$19,14 + or $7,$7,$3 + or $5,$5,$13 + srl $3,$25,25 + xor $11,$11,$6 + or $2,$2,$12 + srl $6,$9,10 + sll $12,$25,7 + or $12,$12,$3 + xor $5,$5,$8 + xor $11,$11,$6 + srl $8,$19,3 + srl $6,$21,13 + xor $2,$2,$7 + sll $3,$21,30 + srl $7,$21,2 + sll $9,$21,19 + xor $13,$24,$18 + or $9,$9,$6 + xor $2,$2,$8 + or $3,$3,$7 + srl $8,$21,22 + or $7,$21,$22 + addu $11,$11,$14 + sll $6,$21,10 + lw $14,536($sp) + or $6,$6,$8 + and $7,$23,$7 + xor $5,$5,$12 + and $13,$25,$13 + xor $3,$3,$9 + addu $11,$11,$2 + and $2,$21,$22 + xor $13,$18,$13 + xor $3,$3,$6 + or $2,$2,$7 + addu $5,$20,$5 + addu $11,$11,$14 + lw $20,176($sp) + addu $fp,$3,$2 + addu $5,$5,$13 + li $2,-2067267584 # 0xffffffff84c80000 + addu $5,$5,$11 + ori $2,$2,0x7814 + addu $19,$17,$fp + srl $3,$10,17 + addu $17,$5,$2 + sll $12,$10,15 + srl $2,$10,19 + sll $6,$10,13 + addu $23,$23,$17 + or $6,$6,$2 + or $12,$12,$3 + srl $2,$20,18 + sll $3,$20,14 + srl $9,$23,11 + or $3,$3,$2 + sll $8,$23,21 + srl $2,$23,25 + xor $12,$12,$6 + sll $6,$23,7 + or $8,$8,$9 + or $6,$6,$2 + sll $9,$19,19 + srl $2,$19,13 + srl $13,$20,7 + or $9,$9,$2 + sll $7,$20,25 + lw $2,556($sp) + srl $14,$23,6 + sll $5,$23,26 + or $7,$7,$13 + srl $10,$10,10 + srl $13,$20,3 + or $5,$5,$14 + xor $12,$12,$10 + xor $7,$7,$3 + xor $7,$7,$13 + xor $5,$5,$8 + sll $3,$19,30 + srl $8,$19,2 + addu $12,$12,$2 + xor $10,$25,$24 + srl $2,$19,22 + or $3,$3,$8 + xor $5,$5,$6 + or $8,$19,$21 + sll $6,$19,10 + addu $12,$12,$7 + lw $7,544($sp) + or $6,$6,$2 + and $8,$22,$8 + and $2,$19,$21 + and $10,$23,$10 + xor $3,$3,$9 + xor $10,$24,$10 + xor $3,$3,$6 + or $2,$2,$8 + addu $5,$18,$5 + addu $12,$12,$7 + addu $fp,$3,$2 + addu $5,$5,$10 + li $2,-1933115392 # 0xffffffff8cc70000 + lw $18,524($sp) + addu $5,$5,$12 + ori $2,$2,0x208 + addu $20,$17,$fp + lw $10,524($sp) + addu $17,$5,$2 + addu $22,$22,$17 + srl $3,$11,17 + srl $2,$11,19 + sll $13,$11,15 + sll $5,$11,13 + or $5,$5,$2 + srl $14,$22,6 + srl $9,$22,11 + srl $2,$18,18 + or $13,$13,$3 + sll $6,$22,26 + sll $8,$22,21 + sll $3,$18,14 + or $8,$8,$9 + or $3,$3,$2 + sll $7,$10,25 + srl $2,$22,25 + srl $10,$10,7 + or $6,$6,$14 + sll $9,$22,7 + or $9,$9,$2 + or $7,$7,$10 + xor $6,$6,$8 + srl $2,$20,13 + xor $13,$13,$5 + srl $11,$11,10 + srl $5,$20,2 + xor $7,$7,$3 + sll $8,$20,19 + sll $3,$20,30 + xor $6,$6,$9 + xor $10,$23,$25 + or $8,$8,$2 + or $9,$20,$19 + srl $2,$20,22 + xor $13,$13,$11 + or $3,$3,$5 + srl $11,$18,3 + sll $5,$20,10 + addu $6,$24,$6 + lw $24,176($sp) + xor $7,$7,$11 + or $5,$5,$2 + and $9,$21,$9 + and $2,$20,$19 + addu $13,$13,$15 + and $10,$22,$10 + xor $3,$3,$8 + xor $10,$25,$10 + xor $3,$3,$5 + or $2,$2,$9 + addu $13,$13,$7 + addu $13,$13,$24 + addu $fp,$3,$2 + addu $6,$6,$10 + li $2,-1866596352 # 0xffffffff90be0000 + addu $6,$6,$13 + ori $2,$2,0xfffa + addu $18,$17,$fp + sll $5,$12,13 + addu $17,$6,$2 + srl $2,$12,19 + addu $21,$21,$17 + or $5,$5,$2 + lw $2,184($sp) + srl $14,$21,6 + sll $6,$21,26 + srl $3,$12,17 + sll $11,$12,15 + or $6,$6,$14 + lw $14,184($sp) + srl $9,$21,11 + srl $10,$2,7 + or $11,$11,$3 + sll $8,$21,21 + sll $3,$2,25 + sll $7,$2,14 + srl $2,$2,18 + or $8,$8,$9 + or $7,$7,$2 + xor $11,$11,$5 + srl $2,$21,25 + or $3,$3,$10 + srl $12,$12,10 + sll $9,$21,7 + or $9,$9,$2 + xor $6,$6,$8 + srl $2,$18,13 + xor $11,$11,$12 + xor $3,$3,$7 + srl $12,$14,3 + srl $7,$18,2 + sll $5,$18,30 + sll $8,$18,19 + or $8,$8,$2 + xor $3,$3,$12 + srl $2,$18,22 + or $5,$5,$7 + xor $6,$6,$9 + addu $11,$11,$16 + or $9,$18,$20 + sll $7,$18,10 + or $7,$7,$2 + and $9,$19,$9 + xor $5,$5,$8 + addu $11,$11,$3 + and $3,$18,$20 + xor $5,$5,$7 + or $3,$3,$9 + lw $2,180($sp) + addu $fp,$5,$3 + xor $10,$22,$23 + addu $24,$17,$fp + and $10,$21,$10 + xor $10,$23,$10 + addu $6,$25,$6 + srl $15,$24,2 + sw $15,568($sp) + addu $11,$11,$2 + lw $25,188($sp) + addu $6,$6,$10 + li $2,-1538260992 # 0xffffffffa4500000 + addu $6,$6,$11 + ori $2,$2,0x6ceb + addu $17,$6,$2 + sll $9,$13,13 + srl $2,$13,19 + addu $19,$19,$17 + srl $3,$13,17 + or $9,$9,$2 + srl $10,$25,7 + srl $2,$25,18 + sll $6,$13,15 + sll $7,$25,25 + sll $14,$25,14 + srl $12,$19,6 + lw $25,568($sp) + or $14,$14,$2 + or $6,$6,$3 + sll $5,$19,26 + srl $3,$19,11 + sll $15,$19,21 + or $7,$7,$10 + or $15,$15,$3 + or $5,$5,$12 + xor $7,$7,$14 + lw $14,188($sp) + srl $fp,$24,13 + xor $5,$5,$15 + sll $8,$24,30 + lw $15,560($sp) + sll $16,$24,19 + or $16,$16,$fp + srl $3,$19,25 + or $8,$8,$25 + xor $6,$6,$9 + srl $13,$13,10 + or $12,$24,$18 + srl $2,$24,22 + sll $10,$19,7 + sll $9,$24,10 + or $9,$9,$2 + or $10,$10,$3 + and $12,$20,$12 + xor $2,$21,$22 + xor $8,$8,$16 + xor $6,$6,$13 + lw $16,184($sp) + srl $13,$14,3 + and $3,$24,$18 + xor $8,$8,$9 + or $3,$3,$12 + xor $7,$7,$13 + xor $5,$5,$10 + addu $6,$6,$15 + and $2,$19,$2 + addu $fp,$8,$3 + xor $2,$22,$2 + addu $5,$23,$5 + addu $6,$6,$7 + addu $25,$17,$fp + addu $6,$6,$16 + addu $5,$5,$2 + li $2,-1090977792 # 0xffffffffbef90000 + lw $14,192($sp) + addu $5,$5,$6 + srl $8,$25,2 + srl $7,$25,13 + ori $2,$2,0xa3f7 + sll $6,$25,30 + sll $3,$25,19 + addu $17,$5,$2 + or $3,$3,$7 + or $6,$6,$8 + srl $7,$25,22 + sll $5,$25,10 + or $2,$25,$24 + addu $20,$20,$17 + or $5,$5,$7 + and $2,$18,$2 + srl $7,$11,17 + xor $6,$6,$3 + sll $8,$11,15 + and $12,$25,$24 + xor $6,$6,$5 + srl $16,$20,6 + srl $5,$20,11 + or $12,$12,$2 + or $8,$8,$7 + srl $2,$14,18 + sll $7,$20,26 + sll $10,$20,21 + sll $9,$14,14 + srl $3,$11,19 + addu $fp,$6,$12 + or $10,$10,$5 + or $9,$9,$2 + srl $5,$20,25 + sll $13,$11,13 + or $7,$7,$16 + sll $2,$20,7 + addu $23,$17,$fp + or $2,$2,$5 + lw $17,564($sp) + or $13,$13,$3 + srl $15,$14,7 + sll $3,$14,25 + xor $7,$7,$10 + xor $5,$19,$21 + xor $7,$7,$2 + xor $8,$8,$13 + or $3,$3,$15 + srl $11,$11,10 + srl $2,$23,13 + xor $3,$3,$9 + and $5,$20,$5 + sll $9,$23,19 + addu $7,$22,$7 + xor $8,$8,$11 + lw $22,188($sp) + srl $14,$14,3 + srl $10,$23,2 + or $9,$9,$2 + xor $5,$21,$5 + addu $8,$8,$17 + xor $3,$3,$14 + sll $6,$23,30 + or $2,$23,$25 + addu $8,$8,$3 + or $6,$6,$10 + sll $3,$23,10 + srl $10,$23,22 + addu $7,$7,$5 + and $2,$24,$2 + and $5,$23,$25 + addu $8,$8,$22 + or $5,$5,$2 + xor $6,$6,$9 + or $3,$3,$10 + li $2,-965672960 # 0xffffffffc6710000 + addu $7,$7,$8 + xor $6,$6,$3 + ori $2,$2,0x78f2 + lw $3,8($4) + addu $17,$7,$2 + addu $fp,$6,$5 + addu $22,$17,$fp + addu $3,$3,$22 + lw $7,24($4) + lw $8,28($4) + lw $9,32($4) + lw $2,36($4) + sw $3,8($4) + lw $3,12($4) + addu $18,$18,$17 + lw $5,16($4) + lw $6,20($4) + addu $3,$3,$23 + addu $7,$7,$18 + addu $8,$8,$20 + addu $9,$9,$19 + addu $2,$2,$21 + lw $fp,608($sp) + lw $23,604($sp) + lw $22,600($sp) + lw $21,596($sp) + lw $20,592($sp) + lw $19,588($sp) + lw $18,584($sp) + lw $17,580($sp) + lw $16,576($sp) + addu $5,$5,$25 + addu $6,$6,$24 + addiu $sp,$sp,616 + sw $2,36($4) + sw $3,12($4) + sw $5,16($4) + sw $6,20($4) + sw $7,24($4) + sw $8,28($4) + j $31 + sw $9,32($4) + + .set macro + .set reorder + .end sha2_process + .section .text.sha2_update,"ax",@progbits + .align 2 + .globl sha2_update + .ent sha2_update + .type sha2_update, @function +sha2_update: + .set nomips16 + .frame $sp,40,$31 # vars= 0, regs= 6/0, args= 16, gp= 0 + .mask 0x801f0000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-40 + sw $20,32($sp) + sw $17,20($sp) + sw $16,16($sp) + sw $31,36($sp) + sw $19,28($sp) + sw $18,24($sp) + move $16,$6 + move $17,$4 + blez $6,$L6 + move $20,$5 + + lw $2,0($4) + nop + addu $3,$2,$6 + andi $19,$2,0x3f + sltu $4,$3,$6 + li $2,64 # 0x40 + subu $18,$2,$19 + beq $4,$0,$L8 + sw $3,0($17) + + lw $2,4($17) + nop + addiu $2,$2,1 + sw $2,4($17) +$L8: + beq $19,$0,$L16 + slt $2,$16,64 + + slt $2,$16,$18 + bne $2,$0,$L16 + slt $2,$16,64 + + addu $4,$17,$19 + addiu $4,$4,40 + jal memcpy + move $6,$18 + + move $4,$17 + jal sha2_process + addiu $5,$17,40 + + subu $16,$16,$18 + addu $20,$20,$18 + move $19,$0 + slt $2,$16,64 +$L16: + bne $2,$0,$L15 + move $5,$20 + + addiu $16,$16,-64 + jal sha2_process + move $4,$17 + + addiu $20,$20,64 + j $L16 + slt $2,$16,64 + +$L15: + blez $16,$L6 + addu $4,$17,$19 + + move $5,$20 + move $6,$16 + lw $31,36($sp) + lw $20,32($sp) + lw $19,28($sp) + lw $18,24($sp) + lw $17,20($sp) + lw $16,16($sp) + addiu $4,$4,40 + j memcpy + addiu $sp,$sp,40 + +$L6: + lw $31,36($sp) + lw $20,32($sp) + lw $19,28($sp) + lw $18,24($sp) + lw $17,20($sp) + lw $16,16($sp) + j $31 + addiu $sp,$sp,40 + + .set macro + .set reorder + .end sha2_update + .section .text.sha2_finish,"ax",@progbits + .align 2 + .globl sha2_finish + .ent sha2_finish + .type sha2_finish, @function +sha2_finish: + .set nomips16 + .frame $sp,40,$31 # vars= 8, regs= 3/0, args= 16, gp= 0 + .mask 0x80030000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-40 + sw $17,28($sp) + sw $16,24($sp) + sw $31,32($sp) + lw $3,0($4) + lw $2,4($4) + move $16,$4 + srl $4,$3,29 + sll $2,$2,3 + or $4,$4,$2 + andi $11,$3,0x3f + sll $3,$3,3 + srl $2,$4,24 + move $17,$5 + srl $6,$4,8 + srl $5,$4,16 + srl $7,$3,24 + srl $8,$3,16 + srl $9,$3,8 + sltu $10,$11,56 + sb $2,16($sp) + sb $5,17($sp) + sb $6,18($sp) + sb $4,19($sp) + sb $7,20($sp) + sb $8,21($sp) + sb $9,22($sp) + sb $3,23($sp) + bne $10,$0,$L21 + li $2,56 # 0x38 + + li $2,120 # 0x78 +$L21: + lui $5,%hi(sha2_padding) + subu $6,$2,$11 + addiu $5,$5,%lo(sha2_padding) + jal sha2_update + move $4,$16 + + move $4,$16 + addiu $5,$sp,16 + jal sha2_update + li $6,8 # 0x8 + + lbu $2,8($16) + nop + sb $2,0($17) + lhu $2,8($16) + nop + sb $2,1($17) + lw $2,8($16) + nop + srl $2,$2,8 + sb $2,2($17) + lw $2,8($16) + nop + sb $2,3($17) + lbu $2,12($16) + nop + sb $2,4($17) + lhu $2,12($16) + nop + sb $2,5($17) + lw $2,12($16) + nop + srl $2,$2,8 + sb $2,6($17) + lw $2,12($16) + nop + sb $2,7($17) + lbu $2,16($16) + nop + sb $2,8($17) + lhu $2,16($16) + nop + sb $2,9($17) + lw $2,16($16) + nop + srl $2,$2,8 + sb $2,10($17) + lw $2,16($16) + nop + sb $2,11($17) + lbu $2,20($16) + nop + sb $2,12($17) + lhu $2,20($16) + nop + sb $2,13($17) + lw $2,20($16) + nop + srl $2,$2,8 + sb $2,14($17) + lw $2,20($16) + nop + sb $2,15($17) + lbu $2,24($16) + nop + sb $2,16($17) + lhu $2,24($16) + nop + sb $2,17($17) + lw $2,24($16) + nop + srl $2,$2,8 + sb $2,18($17) + lw $2,24($16) + nop + sb $2,19($17) + lbu $2,28($16) + nop + sb $2,20($17) + lhu $2,28($16) + nop + sb $2,21($17) + lw $2,28($16) + nop + srl $2,$2,8 + sb $2,22($17) + lw $2,28($16) + nop + sb $2,23($17) + lbu $2,32($16) + nop + sb $2,24($17) + lhu $2,32($16) + nop + sb $2,25($17) + lw $2,32($16) + nop + srl $2,$2,8 + sb $2,26($17) + lw $2,32($16) + nop + sb $2,27($17) + lw $2,232($16) + nop + bne $2,$0,$L17 + nop + + lbu $2,36($16) + nop + sb $2,28($17) + lhu $2,36($16) + nop + sb $2,29($17) + lw $2,36($16) + nop + srl $2,$2,8 + sb $2,30($17) + lw $2,36($16) + nop + sb $2,31($17) +$L17: + lw $31,32($sp) + lw $17,28($sp) + lw $16,24($sp) + j $31 + addiu $sp,$sp,40 + + .set macro + .set reorder + .end sha2_finish + .section .text.sha2,"ax",@progbits + .align 2 + .globl sha2 + .ent sha2 + .type sha2, @function +sha2: + .set nomips16 + .frame $sp,272,$31 # vars= 240, regs= 4/0, args= 16, gp= 0 + .mask 0x80070000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-272 + sw $17,260($sp) + sw $16,256($sp) + move $17,$5 + move $16,$4 + move $5,$7 + addiu $4,$sp,16 + sw $31,268($sp) + sw $18,264($sp) + jal sha2_starts + move $18,$6 + + move $6,$17 + move $5,$16 + jal sha2_update + addiu $4,$sp,16 + + move $5,$18 + jal sha2_finish + addiu $4,$sp,16 + + addiu $4,$sp,16 + move $5,$0 + jal memset + li $6,236 # 0xec + + lw $31,268($sp) + lw $18,264($sp) + lw $17,260($sp) + lw $16,256($sp) + j $31 + addiu $sp,$sp,272 + + .set macro + .set reorder + .end sha2 + .section .text.sha2_hmac_starts,"ax",@progbits + .align 2 + .globl sha2_hmac_starts + .ent sha2_hmac_starts + .type sha2_hmac_starts, @function +sha2_hmac_starts: + .set nomips16 + .frame $sp,72,$31 # vars= 32, regs= 6/0, args= 16, gp= 0 + .mask 0x801f0000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + slt $2,$6,65 + sw $20,64($sp) + sw $18,56($sp) + sw $17,52($sp) + sw $16,48($sp) + sw $31,68($sp) + sw $19,60($sp) + move $16,$6 + move $18,$4 + move $17,$5 + bne $2,$0,$L24 + move $20,$7 + + move $4,$5 + move $5,$6 + jal sha2 + addiu $6,$sp,16 + + li $16,28 # 0x1c + li $2,32 # 0x20 + movz $16,$2,$20 #RLX4181/RLX4281:conditional move + addiu $17,$sp,16 +$L24: + addiu $19,$18,104 + move $4,$19 + li $5,54 # 0x36 + jal memset + li $6,64 # 0x40 + + addiu $4,$18,168 + li $5,92 # 0x5c + jal memset + li $6,64 # 0x40 + + blez $16,$L32 + move $7,$0 + +$L30: + addu $4,$7,$18 + addu $6,$17,$7 + lbu $5,0($6) + lbu $2,104($4) + lbu $3,168($4) + addiu $7,$7,1 + xor $2,$2,$5 + sb $2,104($4) + lbu $2,0($6) + slt $5,$7,$16 + xor $3,$3,$2 + bne $5,$0,$L30 + sb $3,168($4) + +$L32: + move $5,$20 + jal sha2_starts + move $4,$18 + + move $4,$18 + move $5,$19 + jal sha2_update + li $6,64 # 0x40 + + addiu $4,$sp,16 + move $5,$0 + jal memset + li $6,32 # 0x20 + + lw $31,68($sp) + lw $20,64($sp) + lw $19,60($sp) + lw $18,56($sp) + lw $17,52($sp) + lw $16,48($sp) + j $31 + addiu $sp,$sp,72 + + .set macro + .set reorder + .end sha2_hmac_starts + .section .text.sha2_hmac_update,"ax",@progbits + .align 2 + .globl sha2_hmac_update + .ent sha2_hmac_update + .type sha2_hmac_update, @function +sha2_hmac_update: + .set nomips16 + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + j sha2_update + nop + + .set macro + .set reorder + .end sha2_hmac_update + .section .text.sha2_hmac_finish,"ax",@progbits + .align 2 + .globl sha2_hmac_finish + .ent sha2_hmac_finish + .type sha2_hmac_finish, @function +sha2_hmac_finish: + .set nomips16 + .frame $sp,72,$31 # vars= 32, regs= 5/0, args= 16, gp= 0 + .mask 0x800f0000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + sw $31,64($sp) + sw $19,60($sp) + sw $17,52($sp) + sw $16,48($sp) + sw $18,56($sp) + lw $18,232($4) + move $16,$4 + li $2,28 # 0x1c + move $19,$5 + li $17,32 # 0x20 + addiu $5,$sp,16 + jal sha2_finish + movn $17,$2,$18 #RLX4181/RLX4281:conditional move + + move $4,$16 + jal sha2_starts + move $5,$18 + + move $4,$16 + addiu $5,$16,168 + jal sha2_update + li $6,64 # 0x40 + + move $6,$17 + move $4,$16 + jal sha2_update + addiu $5,$sp,16 + + move $4,$16 + jal sha2_finish + move $5,$19 + + addiu $4,$sp,16 + move $5,$0 + jal memset + li $6,32 # 0x20 + + lw $31,64($sp) + lw $19,60($sp) + lw $18,56($sp) + lw $17,52($sp) + lw $16,48($sp) + j $31 + addiu $sp,$sp,72 + + .set macro + .set reorder + .end sha2_hmac_finish + .section .text.sha2_hmac,"ax",@progbits + .align 2 + .globl sha2_hmac + .ent sha2_hmac + .type sha2_hmac, @function +sha2_hmac: + .set nomips16 + .frame $sp,272,$31 # vars= 240, regs= 3/0, args= 16, gp= 0 + .mask 0x80030000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-272 + sw $17,260($sp) + move $17,$7 + lw $7,292($sp) + move $2,$5 + sw $16,256($sp) + move $5,$4 + move $16,$6 + addiu $4,$sp,16 + sw $31,264($sp) + jal sha2_hmac_starts + move $6,$2 + + move $6,$17 + move $5,$16 + jal sha2_hmac_update + addiu $4,$sp,16 + + lw $5,288($sp) + jal sha2_hmac_finish + addiu $4,$sp,16 + + addiu $4,$sp,16 + move $5,$0 + jal memset + li $6,236 # 0xec + + lw $31,264($sp) + lw $17,260($sp) + lw $16,256($sp) + j $31 + addiu $sp,$sp,272 + + .set macro + .set reorder + .end sha2_hmac + .section .text.sha256_hmac,"ax",@progbits + .align 2 + .globl sha256_hmac + .ent sha256_hmac + .type sha256_hmac, @function +sha256_hmac: + .set nomips16 + .frame $sp,64,$31 # vars= 32, regs= 2/0, args= 24, gp= 0 + .mask 0x80010000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-64 + sw $16,56($sp) + addiu $16,$sp,24 + sw $31,60($sp) + sw $16,16($sp) + jal sha2_hmac + sw $0,20($sp) + + lw $4,80($sp) + lw $6,84($sp) + jal memcpy + move $5,$16 + + move $4,$16 + move $5,$0 + jal memset + li $6,32 # 0x20 + + lw $31,60($sp) + lw $16,56($sp) + j $31 + addiu $sp,$sp,64 + + .set macro + .set reorder + .end sha256_hmac + .section .text.KD_hmac_sha256,"ax",@progbits + .align 2 + .globl KD_hmac_sha256 + .ent KD_hmac_sha256 + .type KD_hmac_sha256, @function +KD_hmac_sha256: + .set nomips16 + .frame $sp,56,$31 # vars= 0, regs= 7/0, args= 24, gp= 0 + .mask 0x803f0000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-56 + sw $21,44($sp) + sw $20,40($sp) + sw $19,36($sp) + sw $18,32($sp) + sw $16,24($sp) + sw $31,48($sp) + sw $17,28($sp) + move $20,$4 + move $21,$5 + move $9,$6 + move $8,$7 + lw $19,72($sp) + lw $16,76($sp) + j $L40 + move $18,$0 + +$L44: + li $2,32 # 0x20 + sw $2,20($sp) + sw $17,16($sp) + jal sha256_hmac + addiu $18,$18,1 + + addiu $16,$16,-32 + move $9,$17 + li $8,32 # 0x20 +$L40: + addiu $2,$16,31 + slt $3,$16,0 + movz $2,$16,$3 #RLX4181/RLX4281:conditional move + sll $4,$18,5 + sra $2,$2,5 + addu $17,$19,$4 + move $6,$9 + move $7,$8 + move $4,$20 + bne $2,$0,$L44 + move $5,$21 + + blez $16,$L39 + nop + + sw $17,72($sp) + sw $16,76($sp) + lw $31,48($sp) + lw $21,44($sp) + lw $20,40($sp) + lw $19,36($sp) + lw $18,32($sp) + lw $17,28($sp) + lw $16,24($sp) + j sha256_hmac + addiu $sp,$sp,56 + +$L39: + lw $31,48($sp) + lw $21,44($sp) + lw $20,40($sp) + lw $19,36($sp) + lw $18,32($sp) + lw $17,28($sp) + lw $16,24($sp) + j $31 + addiu $sp,$sp,56 + + .set macro + .set reorder + .end KD_hmac_sha256 + .data + .align 2 + .type Sbox_tmp.2, @object + .size Sbox_tmp.2, 256 +Sbox_tmp.2: + .byte -42 + .byte -112 + .byte -23 + .byte -2 + .byte -52 + .byte -31 + .byte 61 + .byte -73 + .byte 22 + .byte -74 + .byte 20 + .byte -62 + .byte 40 + .byte -5 + .byte 44 + .byte 5 + .byte 43 + .byte 103 + .byte -102 + .byte 118 + .byte 42 + .byte -66 + .byte 4 + .byte -61 + .byte -86 + .byte 68 + .byte 19 + .byte 38 + .byte 73 + .byte -122 + .byte 6 + .byte -103 + .byte -100 + .byte 66 + .byte 80 + .byte -12 + .byte -111 + .byte -17 + .byte -104 + .byte 122 + .byte 51 + .byte 84 + .byte 11 + .byte 67 + .byte -19 + .byte -49 + .byte -84 + .byte 98 + .byte -28 + .byte -77 + .byte 28 + .byte -87 + .byte -55 + .byte 8 + .byte -24 + .byte -107 + .byte -128 + .byte -33 + .byte -108 + .byte -6 + .byte 117 + .byte -113 + .byte 63 + .byte -90 + .byte 71 + .byte 7 + .byte -89 + .byte -4 + .byte -13 + .byte 115 + .byte 23 + .byte -70 + .byte -125 + .byte 89 + .byte 60 + .byte 25 + .byte -26 + .byte -123 + .byte 79 + .byte -88 + .byte 104 + .byte 107 + .byte -127 + .byte -78 + .byte 113 + .byte 100 + .byte -38 + .byte -117 + .byte -8 + .byte -21 + .byte 15 + .byte 75 + .byte 112 + .byte 86 + .byte -99 + .byte 53 + .byte 30 + .byte 36 + .byte 14 + .byte 94 + .byte 99 + .byte 88 + .byte -47 + .byte -94 + .byte 37 + .byte 34 + .byte 124 + .byte 59 + .byte 1 + .byte 33 + .byte 120 + .byte -121 + .byte -44 + .byte 0 + .byte 70 + .byte 87 + .byte -97 + .byte -45 + .byte 39 + .byte 82 + .byte 76 + .byte 54 + .byte 2 + .byte -25 + .byte -96 + .byte -60 + .byte -56 + .byte -98 + .byte -22 + .byte -65 + .byte -118 + .byte -46 + .byte 64 + .byte -57 + .byte 56 + .byte -75 + .byte -93 + .byte -9 + .byte -14 + .byte -50 + .byte -7 + .byte 97 + .byte 21 + .byte -95 + .byte -32 + .byte -82 + .byte 93 + .byte -92 + .byte -101 + .byte 52 + .byte 26 + .byte 85 + .byte -83 + .byte -109 + .byte 50 + .byte 48 + .byte -11 + .byte -116 + .byte -79 + .byte -29 + .byte 29 + .byte -10 + .byte -30 + .byte 46 + .byte -126 + .byte 102 + .byte -54 + .byte 96 + .byte -64 + .byte 41 + .byte 35 + .byte -85 + .byte 13 + .byte 83 + .byte 78 + .byte 111 + .byte -43 + .byte -37 + .byte 55 + .byte 69 + .byte -34 + .byte -3 + .byte -114 + .byte 47 + .byte 3 + .byte -1 + .byte 106 + .byte 114 + .byte 109 + .byte 108 + .byte 91 + .byte 81 + .byte -115 + .byte 27 + .byte -81 + .byte -110 + .byte -69 + .byte -35 + .byte -68 + .byte 127 + .byte 17 + .byte -39 + .byte 92 + .byte 65 + .byte 31 + .byte 16 + .byte 90 + .byte -40 + .byte 10 + .byte -63 + .byte 49 + .byte -120 + .byte -91 + .byte -51 + .byte 123 + .byte -67 + .byte 45 + .byte 116 + .byte -48 + .byte 18 + .byte -72 + .byte -27 + .byte -76 + .byte -80 + .byte -119 + .byte 105 + .byte -105 + .byte 74 + .byte 12 + .byte -106 + .byte 119 + .byte 126 + .byte 101 + .byte -71 + .byte -15 + .byte 9 + .byte -59 + .byte 110 + .byte -58 + .byte -124 + .byte 24 + .byte -16 + .byte 125 + .byte -20 + .byte 58 + .byte -36 + .byte 77 + .byte 32 + .byte 121 + .byte -18 + .byte 95 + .byte 62 + .byte -41 + .byte -53 + .byte 57 + .byte 72 + .align 2 + .type CK_tmp.3, @object + .size CK_tmp.3, 128 +CK_tmp.3: + .word 462357 + .word 472066609 + .word 943670861 + .word 1415275113 + .word 1886879365 + .word -1936483679 + .word -1464879427 + .word -993275175 + .word -521670923 + .word -66909679 + .word 404694573 + .word 876298825 + .word 1347903077 + .word 1819507329 + .word -2003855715 + .word -1532251463 + .word -1060647211 + .word -589042959 + .word -117504499 + .word 337322537 + .word 808926789 + .word 1280531041 + .word 1752135293 + .word -2071227751 + .word -1599623499 + .word -1128019247 + .word -656414995 + .word -184876535 + .word 269950501 + .word 741554753 + .word 1213159005 + .word 1684763257 + .section .text.init_SMS4_CK_Sbox,"ax",@progbits + .align 2 + .globl init_SMS4_CK_Sbox + .ent init_SMS4_CK_Sbox + .type init_SMS4_CK_Sbox, @function +init_SMS4_CK_Sbox: + .set nomips16 + .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + lui $4,%hi(Sbox) + lui $5,%hi(Sbox_tmp.2) + addiu $sp,$sp,-24 + addiu $4,$4,%lo(Sbox) + addiu $5,$5,%lo(Sbox_tmp.2) + sw $31,16($sp) + jal memcpy + li $6,256 # 0x100 + + lui $4,%hi(CK) + lui $5,%hi(CK_tmp.3) + addiu $4,$4,%lo(CK) + addiu $5,$5,%lo(CK_tmp.3) + jal memcpy + li $6,128 # 0x80 + + lw $31,16($sp) + li $2,1 # 0x1 + j $31 + addiu $sp,$sp,24 + + .set macro + .set reorder + .end init_SMS4_CK_Sbox + .section .text.SMS4Crypt,"ax",@progbits + .align 2 + .ent SMS4Crypt + .type SMS4Crypt, @function +SMS4Crypt: + .set nomips16 + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + lw $12,12($4) + lw $9,0($4) + lw $11,4($4) + lw $10,8($4) + lui $2,%hi(Sbox) + move $13,$5 + addiu $8,$2,%lo(Sbox) + li $14,28 # 0x1c +$L51: + lw $3,0($6) + xor $2,$11,$10 + xor $2,$2,$12 + xor $7,$2,$3 + srl $3,$7,16 + srl $2,$7,24 + srl $4,$7,8 + andi $3,$3,0xff + addu $3,$3,$8 + addu $2,$2,$8 + andi $4,$4,0xff + lbu $5,0($3) + lbu $2,0($2) + addu $4,$4,$8 + andi $3,$7,0xff + lbu $4,0($4) + addu $3,$3,$8 + sll $5,$5,16 + lbu $3,0($3) + sll $2,$2,24 + xor $2,$2,$5 + sll $4,$4,8 + xor $2,$2,$4 + xor $7,$2,$3 + srl $2,$7,30 + sll $3,$7,2 + or $3,$3,$2 + sll $4,$7,10 + srl $2,$7,22 + or $4,$4,$2 + xor $3,$7,$3 + srl $2,$7,14 + sll $5,$7,18 + or $5,$5,$2 + xor $3,$3,$4 + sll $2,$7,24 + srl $4,$7,8 + or $2,$2,$4 + xor $3,$3,$5 + xor $3,$3,$2 + lw $4,4($6) + xor $9,$9,$3 + xor $2,$10,$12 + xor $2,$2,$9 + xor $7,$2,$4 + srl $3,$7,16 + srl $2,$7,24 + srl $4,$7,8 + andi $3,$3,0xff + addu $3,$3,$8 + addu $2,$2,$8 + andi $4,$4,0xff + lbu $5,0($3) + lbu $2,0($2) + addu $4,$4,$8 + andi $3,$7,0xff + lbu $4,0($4) + addu $3,$3,$8 + sll $5,$5,16 + lbu $3,0($3) + sll $2,$2,24 + xor $2,$2,$5 + sll $4,$4,8 + xor $2,$2,$4 + xor $7,$2,$3 + srl $2,$7,30 + sll $3,$7,2 + or $3,$3,$2 + sll $4,$7,10 + srl $2,$7,22 + or $4,$4,$2 + xor $3,$7,$3 + srl $2,$7,14 + sll $5,$7,18 + or $5,$5,$2 + xor $3,$3,$4 + sll $2,$7,24 + srl $4,$7,8 + or $2,$2,$4 + xor $3,$3,$5 + xor $3,$3,$2 + lw $4,8($6) + xor $11,$11,$3 + xor $2,$12,$9 + xor $2,$2,$11 + xor $7,$2,$4 + srl $3,$7,16 + srl $2,$7,24 + srl $4,$7,8 + andi $3,$3,0xff + addu $3,$3,$8 + addu $2,$2,$8 + andi $4,$4,0xff + lbu $5,0($3) + lbu $2,0($2) + addu $4,$4,$8 + andi $3,$7,0xff + lbu $4,0($4) + addu $3,$3,$8 + sll $5,$5,16 + lbu $3,0($3) + sll $2,$2,24 + xor $2,$2,$5 + sll $4,$4,8 + xor $2,$2,$4 + xor $7,$2,$3 + srl $2,$7,30 + sll $3,$7,2 + or $3,$3,$2 + sll $4,$7,10 + srl $2,$7,22 + or $4,$4,$2 + xor $3,$7,$3 + srl $2,$7,14 + sll $5,$7,18 + or $5,$5,$2 + xor $3,$3,$4 + sll $2,$7,24 + srl $4,$7,8 + or $2,$2,$4 + xor $3,$3,$5 + xor $3,$3,$2 + lw $4,12($6) + xor $10,$10,$3 + xor $2,$9,$11 + xor $2,$2,$10 + xor $7,$2,$4 + srl $3,$7,16 + srl $2,$7,24 + srl $4,$7,8 + andi $3,$3,0xff + addu $3,$3,$8 + addu $2,$2,$8 + andi $4,$4,0xff + lbu $5,0($3) + lbu $2,0($2) + addu $4,$4,$8 + andi $3,$7,0xff + lbu $4,0($4) + addu $3,$3,$8 + sll $5,$5,16 + lbu $3,0($3) + sll $2,$2,24 + xor $2,$2,$5 + sll $4,$4,8 + xor $2,$2,$4 + xor $7,$2,$3 + srl $2,$7,30 + sll $3,$7,2 + or $3,$3,$2 + sll $4,$7,10 + srl $2,$7,22 + or $4,$4,$2 + xor $3,$7,$3 + srl $2,$7,14 + sll $5,$7,18 + xor $3,$3,$4 + or $5,$5,$2 + srl $4,$7,8 + sll $2,$7,24 + xor $3,$3,$5 + or $2,$2,$4 + xor $3,$3,$2 + addiu $14,$14,-4 + xor $12,$12,$3 + bgez $14,$L51 + addiu $6,$6,16 + + sw $9,12($13) + sw $12,0($13) + sw $10,4($13) + j $31 + sw $11,8($13) + + .set macro + .set reorder + .end SMS4Crypt + .section .text.SMS4KeyExt,"ax",@progbits + .align 2 + .ent SMS4KeyExt + .type SMS4KeyExt, @function +SMS4KeyExt: + .set nomips16 + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + lw $12,0($4) + li $2,-1548681216 # 0xffffffffa3b10000 + ori $2,$2,0xbac6 + lw $11,4($4) + xor $12,$12,$2 + li $2,1453981696 # 0x56aa0000 + ori $2,$2,0x3350 + lw $10,8($4) + xor $11,$11,$2 + li $2,1736245248 # 0x677d0000 + ori $2,$2,0x9197 + lw $13,12($4) + xor $10,$10,$2 + li $2,-1301282816 # 0xffffffffb2700000 + ori $2,$2,0x22dc + xor $13,$13,$2 + lui $2,%hi(CK) + addiu $24,$2,%lo(CK) + lui $2,%hi(Sbox) + move $15,$5 + addiu $9,$2,%lo(Sbox) + move $14,$0 +$L58: + sll $6,$14,2 + addu $7,$6,$24 + lw $3,0($7) + xor $2,$11,$10 + xor $2,$2,$13 + xor $8,$2,$3 + srl $4,$8,16 + srl $3,$8,24 + srl $2,$8,8 + andi $4,$4,0xff + addu $3,$3,$9 + addu $4,$4,$9 + andi $2,$2,0xff + lbu $3,0($3) + lbu $4,0($4) + addu $2,$2,$9 + lbu $5,0($2) + andi $2,$8,0xff + addu $2,$2,$9 + lbu $2,0($2) + sll $4,$4,16 + sll $3,$3,24 + xor $3,$3,$4 + sll $5,$5,8 + xor $3,$3,$5 + xor $8,$3,$2 + srl $3,$8,19 + sll $2,$8,13 + srl $4,$8,9 + or $2,$2,$3 + sll $3,$8,23 + or $3,$3,$4 + xor $2,$8,$2 + xor $2,$2,$3 + xor $12,$12,$2 + addu $6,$6,$15 + sw $12,0($6) + lw $3,4($7) + xor $2,$10,$13 + xor $2,$2,$12 + xor $8,$2,$3 + srl $4,$8,16 + srl $3,$8,24 + srl $2,$8,8 + andi $4,$4,0xff + addu $3,$3,$9 + addu $4,$4,$9 + andi $2,$2,0xff + lbu $3,0($3) + lbu $4,0($4) + addu $2,$2,$9 + lbu $5,0($2) + andi $2,$8,0xff + addu $2,$2,$9 + lbu $2,0($2) + sll $4,$4,16 + sll $3,$3,24 + xor $3,$3,$4 + sll $5,$5,8 + xor $3,$3,$5 + xor $8,$3,$2 + srl $3,$8,19 + sll $2,$8,13 + srl $4,$8,9 + or $2,$2,$3 + sll $3,$8,23 + or $3,$3,$4 + xor $2,$8,$2 + xor $2,$2,$3 + xor $11,$11,$2 + sw $11,4($6) + lw $3,8($7) + xor $2,$13,$12 + xor $2,$2,$11 + xor $8,$2,$3 + srl $4,$8,16 + srl $3,$8,24 + srl $2,$8,8 + andi $4,$4,0xff + addu $3,$3,$9 + addu $4,$4,$9 + andi $2,$2,0xff + lbu $3,0($3) + lbu $4,0($4) + addu $2,$2,$9 + lbu $5,0($2) + andi $2,$8,0xff + addu $2,$2,$9 + lbu $2,0($2) + sll $4,$4,16 + sll $3,$3,24 + xor $3,$3,$4 + sll $5,$5,8 + xor $3,$3,$5 + xor $8,$3,$2 + srl $3,$8,19 + sll $2,$8,13 + srl $4,$8,9 + or $2,$2,$3 + sll $3,$8,23 + or $3,$3,$4 + xor $2,$8,$2 + xor $2,$2,$3 + xor $10,$10,$2 + sw $10,8($6) + lw $3,12($7) + xor $2,$12,$11 + xor $2,$2,$10 + xor $8,$2,$3 + srl $4,$8,16 + srl $3,$8,24 + srl $2,$8,8 + andi $4,$4,0xff + addu $3,$3,$9 + addu $4,$4,$9 + andi $2,$2,0xff + lbu $3,0($3) + lbu $4,0($4) + addu $2,$2,$9 + lbu $5,0($2) + andi $2,$8,0xff + addu $2,$2,$9 + lbu $2,0($2) + sll $4,$4,16 + sll $3,$3,24 + xor $3,$3,$4 + sll $5,$5,8 + xor $3,$3,$5 + xor $8,$3,$2 + srl $3,$8,19 + sll $2,$8,13 + or $2,$2,$3 + srl $4,$8,9 + sll $3,$8,23 + or $3,$3,$4 + xor $2,$8,$2 + xor $2,$2,$3 + addiu $14,$14,4 + xor $13,$13,$2 + sltu $2,$14,32 + bne $2,$0,$L58 + sw $13,12($6) + + j $31 + nop + + .set macro + .set reorder + .end SMS4KeyExt + .section .text.WapiSMS4Cryption,"ax",@progbits + .align 2 + .globl WapiSMS4Cryption + .ent WapiSMS4Cryption + .type WapiSMS4Cryption, @function +WapiSMS4Cryption: + .set nomips16 + .frame $sp,56,$31 # vars= 0, regs= 10/0, args= 16, gp= 0 + .mask 0xc0ff0000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-56 + sw $fp,48($sp) + sw $18,24($sp) + lw $fp,76($sp) + lw $18,72($sp) + andi $7,$7,0xffff + lui $2,%hi(wapiBlockIn) + sw $22,40($sp) + sw $21,36($sp) + sw $19,28($sp) + sw $17,20($sp) + sw $16,16($sp) + sw $31,52($sp) + sw $23,44($sp) + sw $20,32($sp) + move $8,$4 + move $17,$6 + srl $22,$7,4 + addiu $19,$2,%lo(wapiBlockIn) + andi $21,$7,0xf + move $16,$0 +$L65: + subu $2,$5,$16 + lbu $4,15($2) + addu $3,$16,$19 + addiu $16,$16,1 + sltu $2,$16,16 + bne $2,$0,$L65 + sb $4,0($3) + + lui $23,%hi(wapiRK) + move $4,$8 + jal SMS4KeyExt + addiu $5,$23,%lo(wapiRK) + + lui $2,%hi(wapiTempBlock) + move $20,$19 + move $16,$0 + beq $22,$0,$L80 + addiu $19,$2,%lo(wapiTempBlock) + +$L70: + move $4,$20 + move $5,$19 + jal SMS4Crypt + addiu $6,$23,%lo(wapiRK) + + lw $3,0($19) + lw $2,0($17) + addiu $16,$16,1 + move $5,$20 + xor $2,$2,$3 + sw $2,0($18) + lw $3,4($19) + lw $2,4($17) + sltu $4,$16,$22 + move $20,$19 + xor $2,$2,$3 + sw $2,4($18) + lw $3,8($19) + lw $2,8($17) + nop + xor $2,$2,$3 + sw $2,8($18) + lw $2,12($17) + lw $3,12($19) + addiu $17,$17,16 + move $19,$5 + xor $2,$2,$3 + sw $2,12($18) + bne $4,$0,$L70 + addiu $18,$18,16 + +$L80: + beq $21,$0,$L71 + sll $2,$16,4 + + addu $2,$21,$2 + lui $6,%hi(wapiRK) + move $5,$19 + sh $2,0($fp) + move $4,$20 + jal SMS4Crypt + addiu $6,$6,%lo(wapiRK) + + beq $21,$0,$L61 + move $5,$0 + +$L75: + addu $2,$17,$5 + addu $3,$19,$5 + lbu $3,0($3) + lbu $2,0($2) + addu $4,$18,$5 + addiu $5,$5,1 + xor $2,$2,$3 + sltu $3,$5,$21 + bne $3,$0,$L75 + sb $2,0($4) + + j $L61 + nop + +$L71: + sh $2,0($fp) +$L61: + lw $31,52($sp) + lw $fp,48($sp) + lw $23,44($sp) + lw $22,40($sp) + lw $21,36($sp) + lw $20,32($sp) + lw $19,28($sp) + lw $18,24($sp) + lw $17,20($sp) + lw $16,16($sp) + j $31 + addiu $sp,$sp,56 + + .set macro + .set reorder + .end WapiSMS4Cryption + .section .text.WapiSMS4CalculateMic,"ax",@progbits + .align 2 + .globl WapiSMS4CalculateMic + .ent WapiSMS4CalculateMic + .type WapiSMS4CalculateMic, @function +WapiSMS4CalculateMic: + .set nomips16 + .frame $sp,72,$31 # vars= 16, regs= 9/0, args= 16, gp= 0 + .mask 0x80ff0000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + sw $23,60($sp) + sw $20,48($sp) + lhu $23,94($sp) + lw $20,88($sp) + andi $7,$7,0x00ff + sw $22,56($sp) + lui $22,%hi(wapiBlockIn) + sw $19,44($sp) + sw $18,40($sp) + sw $17,36($sp) + sw $16,32($sp) + move $18,$6 + sw $31,64($sp) + sw $21,52($sp) + move $8,$4 + srl $17,$7,4 + andi $19,$7,0xf + move $16,$0 + addiu $6,$22,%lo(wapiBlockIn) +$L87: + subu $2,$5,$16 + lbu $4,15($2) + addu $3,$16,$6 + addiu $16,$16,1 + sltu $2,$16,16 + bne $2,$0,$L87 + sb $4,0($3) + + lui $21,%hi(wapiRK) + move $4,$8 + jal SMS4KeyExt + addiu $5,$21,%lo(wapiRK) + + addiu $4,$22,%lo(wapiBlockIn) + addiu $5,$sp,16 + jal SMS4Crypt + addiu $6,$21,%lo(wapiRK) + + beq $17,$0,$L105 + move $16,$0 + +$L92: + lw $2,0($18) + lw $3,16($sp) + addiu $7,$22,%lo(wapiBlockIn) + move $4,$7 + xor $2,$2,$3 + sw $2,%lo(wapiBlockIn)($22) + lw $2,4($18) + lw $3,20($sp) + addiu $16,$16,1 + addiu $5,$sp,16 + xor $2,$2,$3 + sw $2,4($7) + lw $3,8($18) + lw $2,24($sp) + addiu $6,$21,%lo(wapiRK) + xor $3,$3,$2 + sw $3,8($7) + lw $3,12($18) + lw $2,28($sp) + addiu $18,$18,16 + xor $3,$3,$2 + jal SMS4Crypt + sw $3,12($7) + + sltu $2,$16,$17 + bne $2,$0,$L92 + nop + +$L105: + beq $19,$0,$L108 + srl $17,$23,4 + + lui $17,%hi(wapiTempBlock) + addiu $16,$17,%lo(wapiTempBlock) + li $6,16 # 0x10 + subu $6,$6,$19 + addu $4,$19,$16 + jal memset + move $5,$0 + + move $4,$16 + move $5,$18 + jal memcpy + move $6,$19 + + lw $2,16($sp) + lw $9,%lo(wapiTempBlock)($17) + lw $7,4($16) + lw $8,8($16) + xor $9,$9,$2 + lw $2,20($sp) + lw $10,12($16) + lui $11,%hi(wapiBlockIn) + xor $7,$7,$2 + lw $2,24($sp) + addiu $3,$11,%lo(wapiBlockIn) + lui $6,%hi(wapiRK) + xor $8,$8,$2 + lw $2,28($sp) + move $4,$3 + sw $9,%lo(wapiBlockIn)($11) + xor $10,$10,$2 + addiu $6,$6,%lo(wapiRK) + addiu $5,$sp,16 + sw $7,4($3) + sw $8,8($3) + jal SMS4Crypt + sw $10,12($3) + + srl $17,$23,4 +$L108: + andi $19,$23,0xf + beq $17,$0,$L107 + move $16,$0 + +$L99: + lw $2,0($20) + lw $3,16($sp) + lui $7,%hi(wapiBlockIn) + lui $6,%hi(wapiRK) + xor $2,$2,$3 + sw $2,%lo(wapiBlockIn)($7) + lw $2,4($20) + lw $3,20($sp) + addiu $7,$7,%lo(wapiBlockIn) + move $4,$7 + xor $2,$2,$3 + sw $2,4($7) + lw $2,8($20) + lw $3,24($sp) + addiu $6,$6,%lo(wapiRK) + addiu $16,$16,1 + xor $2,$2,$3 + sw $2,8($7) + lw $3,12($20) + lw $2,28($sp) + addiu $5,$sp,16 + addiu $20,$20,16 + xor $3,$3,$2 + jal SMS4Crypt + sw $3,12($7) + + sltu $2,$16,$17 + bne $2,$0,$L99 + nop + +$L107: + beq $19,$0,$L100 + lui $17,%hi(wapiTempBlock) + + addiu $16,$17,%lo(wapiTempBlock) + li $6,16 # 0x10 + subu $6,$6,$19 + addu $4,$19,$16 + jal memset + move $5,$0 + + move $4,$16 + move $5,$20 + jal memcpy + move $6,$19 + + lw $2,16($sp) + lw $9,%lo(wapiTempBlock)($17) + lw $7,4($16) + lw $8,8($16) + xor $9,$9,$2 + lw $2,20($sp) + lw $10,12($16) + lui $11,%hi(wapiBlockIn) + xor $7,$7,$2 + lw $2,24($sp) + addiu $3,$11,%lo(wapiBlockIn) + lui $6,%hi(wapiRK) + xor $8,$8,$2 + lw $2,28($sp) + move $4,$3 + sw $9,%lo(wapiBlockIn)($11) + xor $10,$10,$2 + addiu $6,$6,%lo(wapiRK) + addiu $5,$sp,16 + sw $7,4($3) + sw $8,8($3) + jal SMS4Crypt + sw $10,12($3) + +$L100: + lw $4,96($sp) + addiu $5,$sp,16 + jal memcpy + li $6,16 # 0x10 + + lw $31,64($sp) + lw $23,60($sp) + lw $22,56($sp) + lw $21,52($sp) + lw $20,48($sp) + lw $19,44($sp) + lw $18,40($sp) + lw $17,36($sp) + lw $16,32($sp) + j $31 + addiu $sp,$sp,72 + + .set macro + .set reorder + .end WapiSMS4CalculateMic + .section .text.WapiSMS4ForMNKEncrypt,"ax",@progbits + .align 2 + .globl WapiSMS4ForMNKEncrypt + .ent WapiSMS4ForMNKEncrypt + .type WapiSMS4ForMNKEncrypt, @function +WapiSMS4ForMNKEncrypt: + .set nomips16 + .frame $sp,56,$31 # vars= 0, regs= 9/0, args= 16, gp= 0 + .mask 0x80ff0000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-56 + sw $19,28($sp) + lw $19,76($sp) + andi $2,$7,0xf + sw $23,44($sp) + sb $0,0($19) + sw $22,40($sp) + sw $17,20($sp) + sw $16,16($sp) + sw $31,48($sp) + sw $21,36($sp) + sw $20,32($sp) + sw $18,24($sp) + move $17,$4 + move $22,$6 + lw $23,72($sp) + beq $2,$0,$L111 + srl $16,$7,4 + + addiu $16,$16,1 + sll $4,$16,4 + sltu $2,$7,$4 +$L129: + beq $2,$0,$L111 + addu $3,$22,$7 + + addiu $7,$7,1 + sltu $2,$7,$4 + j $L129 + sb $0,0($3) + +$L111: + lui $4,%hi(wapiBlockIn) + addiu $4,$4,%lo(wapiBlockIn) + li $6,16 # 0x10 + jal memcpy + lui $21,%hi(wapiRK) + + move $4,$17 + jal SMS4KeyExt + addiu $5,$21,%lo(wapiRK) + + beq $16,$0,$L126 + move $18,$0 + + lui $17,%hi(wapiTempBlock) +$L130: + lui $20,%hi(wapiBlockIn) + addiu $5,$17,%lo(wapiTempBlock) + addiu $6,$21,%lo(wapiRK) + jal SMS4Crypt + addiu $4,$20,%lo(wapiBlockIn) + + lbu $2,0($19) + sll $3,$18,4 + addu $6,$3,$22 + addiu $2,$2,16 + sb $2,0($19) + move $7,$0 + addu $5,$3,$23 + addiu $8,$17,%lo(wapiTempBlock) +$L122: + addu $2,$6,$7 + addu $3,$7,$8 + lbu $3,0($3) + lbu $2,0($2) + addu $4,$5,$7 + addiu $7,$7,1 + xor $2,$2,$3 + sltu $3,$7,16 + bne $3,$0,$L122 + sb $2,0($4) + + addiu $4,$20,%lo(wapiBlockIn) + addiu $5,$17,%lo(wapiTempBlock) + addiu $18,$18,1 + jal memcpy + li $6,16 # 0x10 + + sltu $2,$18,$16 + bne $2,$0,$L130 + lui $17,%hi(wapiTempBlock) + +$L126: + lw $31,48($sp) + lw $23,44($sp) + lw $22,40($sp) + lw $21,36($sp) + lw $20,32($sp) + lw $19,28($sp) + lw $18,24($sp) + lw $17,20($sp) + lw $16,16($sp) + j $31 + addiu $sp,$sp,56 + + .set macro + .set reorder + .end WapiSMS4ForMNKEncrypt + .local TempBuf.1 + .comm TempBuf.1,34,4 + .section .text.SecCalculateMicSMS4,"ax",@progbits + .align 2 + .globl SecCalculateMicSMS4 + .ent SecCalculateMicSMS4 + .type SecCalculateMicSMS4, @function +SecCalculateMicSMS4: + .set nomips16 + .frame $sp,64,$31 # vars= 0, regs= 8/0, args= 32, gp= 0 + .mask 0x807f0000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-64 + sw $31,60($sp) + sw $22,56($sp) + sw $21,52($sp) + sw $20,48($sp) + sw $19,44($sp) + sw $18,40($sp) + sw $17,36($sp) + sw $16,32($sp) + lhu $2,0($6) + andi $19,$4,0x00ff + lui $4,%hi(TempBuf.1+2) + move $17,$6 + lui $16,%hi(TempBuf.1+14) + andi $2,$2,0x8fc7 + addiu $4,$4,%lo(TempBuf.1+2) + move $22,$5 + lui $20,%hi(TempBuf.1) + addiu $5,$6,4 + li $6,12 # 0xc + sh $2,%lo(TempBuf.1)($20) + lhu $18,82($sp) + jal memcpy + move $21,$7 + + addiu $4,$16,%lo(TempBuf.1+14) + addiu $5,$17,22 + jal memcpy + li $6,2 # 0x2 + + lhu $2,%lo(TempBuf.1+14)($16) + lui $4,%hi(TempBuf.1+16) + addiu $4,$4,%lo(TempBuf.1+16) + andi $2,$2,0xf00 + addiu $5,$17,16 + li $6,6 # 0x6 + jal memcpy + sh $2,%lo(TempBuf.1+14)($16) + + lhu $2,0($17) + lui $7,%hi(TempBuf.1+22) + addiu $5,$17,24 + srl $3,$2,1 + andi $2,$2,0x1 + andi $3,$3,0x1 + sll $2,$2,1 + or $2,$2,$3 + li $3,3 # 0x3 + li $6,6 # 0x6 + bne $2,$3,$L132 + addiu $4,$7,%lo(TempBuf.1+22) + + jal memcpy + nop + + j $L133 + li $5,30 # 0x1e + +$L132: + move $5,$0 + jal memset + li $6,6 # 0x6 + + li $5,24 # 0x18 +$L133: + lhu $2,0($17) + lui $4,%hi(TempBuf.1+28) + addu $16,$17,$5 + srl $2,$2,8 + andi $2,$2,0x88 + li $3,136 # 0x88 + addiu $4,$4,%lo(TempBuf.1+28) + li $6,2 # 0x2 + bne $2,$3,$L134 + move $5,$16 + + jal memcpy + nop + + addiu $5,$16,4 + j $L138 + li $3,34 # 0x22 + +$L134: + addiu $5,$16,2 + li $3,32 # 0x20 +$L138: + addiu $2,$20,%lo(TempBuf.1) + move $6,$2 + move $7,$3 + addu $2,$3,$2 + srl $3,$18,8 + sb $3,-2($2) + lw $3,84($sp) + sb $19,-4($2) + move $4,$22 + sw $21,16($sp) + sw $18,20($sp) + sw $3,24($sp) + sb $18,-1($2) + jal WapiSMS4CalculateMic + sb $0,-3($2) + + lw $31,60($sp) + lw $22,56($sp) + lw $21,52($sp) + lw $20,48($sp) + lw $19,44($sp) + lw $18,40($sp) + lw $17,36($sp) + lw $16,32($sp) + j $31 + addiu $sp,$sp,64 + + .set macro + .set reorder + .end SecCalculateMicSMS4 + .section .text.SecSWSMS4Encryption,"ax",@progbits + .align 2 + .globl SecSWSMS4Encryption + .ent SecSWSMS4Encryption + .type SecSWSMS4Encryption, @function +SecSWSMS4Encryption: + .set nomips16 + .frame $sp,72,$31 # vars= 8, regs= 10/0, args= 24, gp= 0 + .mask 0xc0ff0000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + sw $18,40($sp) + sw $17,36($sp) + sw $31,68($sp) + sw $fp,64($sp) + sw $23,60($sp) + sw $22,56($sp) + sw $21,52($sp) + sw $20,48($sp) + sw $19,44($sp) + sw $16,32($sp) + lw $2,68($5) + move $18,$5 + lw $22,8($5) + bne $2,$0,$L140 + move $17,$4 + + lw $2,1232($4) + addiu $21,$4,928 + li $5,1 # 0x1 + srl $2,$2,15 + andi $20,$2,0x1 + sll $3,$20,5 + li $2,65536 # 0x10000 + addu $3,$4,$3 + addu $2,$4,$2 + move $4,$21 + lw $16,15800($2) + addiu $fp,$3,1238 + jal WapiIncreasePN + addiu $23,$3,1254 + + bne $2,$0,$L141 + nop + + lw $2,1232($17) + nop + andi $2,$2,0x2000 + bne $2,$0,$L141 + nop + + beq $16,$0,$L165 + move $4,$17 + + lw $2,6676($16) + nop + beq $2,$0,$L165 + nop + + lw $2,352($2) + nop + andi $2,$2,0x1000 + bne $2,$0,$L141 + nop + +$L165: + jal wapiUpdateMSK + move $5,$0 + +$L141: + lw $4,1304($17) + lw $3,20($18) + nop + sltu $2,$3,$4 + bne $2,$0,$L145 + subu $2,$4,$3 + + lw $3,8($17) + nop + lw $2,5260($3) + nop + sw $2,1304($17) + lw $2,5252($3) + nop + addiu $2,$2,-3 + sltu $2,$2,2 + beq $2,$0,$L150 + nop + + lw $2,1232($17) + nop + andi $2,$2,0x2000 + bne $2,$0,$L150 + nop + + beq $16,$0,$L147 + nop + + lw $2,6676($16) + nop + beq $2,$0,$L147 + nop + + lw $2,352($2) + nop + andi $2,$2,0x1000 + bne $2,$0,$L150 + nop + +$L147: + move $4,$17 + jal wapiUpdateMSK + move $5,$0 + + j $L150 + nop + +$L145: + sw $2,1304($17) +$L150: + lw $2,8($17) + nop + lw $16,668($2) + j $L151 + nop + +$L140: + lw $16,6676($2) + li $5,2 # 0x2 + lw $2,352($16) + addiu $21,$16,432 + move $4,$21 + srl $2,$2,15 + andi $20,$2,0x1 + sll $2,$20,5 + addu $2,$16,$2 + addiu $fp,$2,488 + jal WapiIncreasePN + addiu $23,$2,504 + + bne $2,$0,$L152 + nop + + lw $2,352($16) + nop + andi $2,$2,0x1000 + bne $2,$0,$L152 + nop + + lw $2,1232($17) + nop + andi $2,$2,0x2000 + bne $2,$0,$L152 + nop + + lw $5,68($18) + jal wapiUpdateUSK + move $4,$17 + +$L152: + lw $4,596($16) + lw $3,20($18) + nop + sltu $2,$3,$4 + bne $2,$0,$L156 + subu $2,$4,$3 + + lw $2,8($17) + lw $3,652($16) + lw $2,5248($2) + nop + sw $2,596($16) + lw $2,8($3) + nop + lw $2,5240($2) + nop + addiu $2,$2,-3 + sltu $2,$2,2 + beq $2,$0,$L161 + nop + + lw $2,352($16) + nop + andi $2,$2,0x1000 + bne $2,$0,$L161 + nop + + lw $2,1232($17) + nop + andi $2,$2,0x2000 + bne $2,$0,$L161 + nop + + lw $5,68($18) + jal wapiUpdateUSK + move $4,$17 + + j $L161 + nop + +$L156: + sw $2,596($16) +$L161: + lw $2,68($18) + nop + lw $16,6124($2) +$L151: + lw $2,12($18) + move $5,$21 + li $6,16 # 0x10 + addu $17,$22,$2 + sb $20,0($17) + sb $0,1($17) + jal memcpy + addiu $4,$17,2 + + li $2,1 # 0x1 + beq $16,$2,$L162 + nop + + lw $2,4($18) + lbu $6,56($18) + lw $3,20($18) + lw $2,176($2) + nop + addu $19,$2,$3 + beq $6,$0,$L163 + subu $16,$2,$6 + + lw $5,12($18) + lw $2,44($18) + move $4,$16 + addu $5,$22,$5 + jal memcpy + addu $5,$5,$2 + +$L163: + lbu $3,56($18) + lw $2,20($18) + move $4,$20 + move $5,$23 + addu $2,$2,$3 + andi $2,$2,0xffff + move $6,$22 + move $7,$16 + sw $2,16($sp) + jal SecCalculateMicSMS4 + sw $19,20($sp) + + lbu $2,56($18) + lw $7,20($18) + move $4,$fp + move $5,$21 + addu $7,$7,$2 + addiu $7,$7,16 + addiu $2,$sp,24 + andi $7,$7,0xffff + move $6,$16 + sw $2,20($sp) + jal WapiSMS4Cryption + sw $16,16($sp) + + lw $2,0($16) + nop + sw $2,18($17) + lw $2,4($16) + j $L139 + sw $2,22($17) + +$L162: + sw $0,52($18) +$L139: + lw $31,68($sp) + lw $fp,64($sp) + lw $23,60($sp) + lw $22,56($sp) + lw $21,52($sp) + lw $20,48($sp) + lw $19,44($sp) + lw $18,40($sp) + lw $17,36($sp) + lw $16,32($sp) + j $31 + addiu $sp,$sp,72 + + .set macro + .set reorder + .end SecSWSMS4Encryption + .section .text.SecSWSMS4Decryption,"ax",@progbits + .align 2 + .globl SecSWSMS4Decryption + .ent SecSWSMS4Decryption + .type SecSWSMS4Decryption, @function +SecSWSMS4Decryption: + .set nomips16 + .frame $sp,80,$31 # vars= 16, regs= 10/0, args= 24, gp= 0 + .mask 0xc0ff0000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-80 + sw $22,64($sp) + sw $21,60($sp) + sw $20,56($sp) + sw $17,44($sp) + sw $31,76($sp) + sw $fp,72($sp) + sw $23,68($sp) + sw $19,52($sp) + sw $18,48($sp) + sw $16,40($sp) + lw $2,0($6) + lbu $3,35($6) + move $22,$5 + lw $23,176($2) + addiu $2,$3,18 + andi $2,$2,0x00ff + sw $2,28($sp) + lbu $2,4($23) + addu $3,$23,$3 + lw $19,6676($5) + andi $2,$2,0x1 + move $20,$6 + addiu $21,$3,2 + move $17,$4 + lbu $fp,0($3) + beq $2,$0,$L167 + addiu $5,$23,10 + + jal get_stainfo + nop + + beq $2,$0,$L166 + move $5,$0 + + lw $2,6676($2) + nop + beq $2,$0,$L166 + nop + + lw $2,352($2) + nop + andi $2,$2,0x800 + beq $2,$0,$L166 + nop + + lw $3,1232($17) + nop + srl $2,$3,15 + andi $2,$2,0x1 + beq $fp,$2,$L168 + andi $2,$3,0x2000 + + beq $2,$0,$L166 + nop + +$L168: + addiu $16,$17,944 + move $5,$16 + jal WapiComparePN + move $4,$21 + + li $3,-1 # 0xffffffffffffffff + beq $2,$3,$L166 + move $5,$0 + + move $5,$21 + move $4,$16 + jal memcpy + li $6,16 # 0x10 + + lw $3,8($17) + sll $2,$fp,5 + addu $2,$17,$2 + lw $5,668($3) + addiu $22,$2,1238 + j $L188 + addiu $2,$2,1254 + +$L167: + lw $3,352($19) + nop + andi $2,$3,0x4000 + beq $2,$0,$L166 + move $5,$0 + + srl $2,$3,15 + andi $2,$2,0x1 + beq $fp,$2,$L172 + nop + + lw $2,1232($4) + nop + andi $2,$2,0x2000 + beq $2,$0,$L166 + nop + +$L172: + lhu $3,38($20) + nop + beq $3,$0,$L176 + move $4,$0 + + li $5,3 # 0x3 + beq $3,$5,$L176 + sltu $2,$3,3 + + bne $2,$0,$L176 + li $4,1 # 0x1 + + sltu $2,$3,6 + li $4,2 # 0x2 + movz $4,$5,$2 #RLX4181/RLX4281:conditional move +$L176: + lbu $2,15($21) + nop + andi $2,$2,0x1 + bne $2,$0,$L166 + move $5,$0 + + sll $2,$4,1 + addu $17,$2,$19 + lhu $3,448($17) + lhu $2,36($20) + nop + sltu $2,$2,$3 + bne $2,$0,$L182 + sll $18,$4,4 + + addu $2,$19,$18 + addiu $16,$2,368 + move $5,$16 + jal WapiComparePN + move $4,$21 + + li $3,-1 # 0xffffffffffffffff + beq $2,$3,$L166 + move $5,$0 + + move $4,$16 + move $5,$21 + jal memcpy + li $6,16 # 0x10 + + lhu $2,36($20) + j $L184 + sh $2,448($17) + +$L182: + lui $16,%hi(wapiCryptoTemp) + li $6,16 # 0x10 + addiu $4,$16,%lo(wapiCryptoTemp) + jal memcpy + move $5,$21 + + lbu $5,449($17) + lbu $2,37($20) + addiu $4,$16,%lo(wapiCryptoTemp) + subu $5,$5,$2 + addiu $5,$5,1 + sll $5,$5,1 + jal WapiIncreasePN + andi $5,$5,0xfe + + addu $5,$19,$18 + addiu $5,$5,368 + jal WapiComparePN + addiu $4,$16,%lo(wapiCryptoTemp) + + li $3,-1 # 0xffffffffffffffff + beq $2,$3,$L166 + move $5,$0 + +$L184: + sll $2,$fp,5 + addu $2,$19,$2 + lw $5,6124($22) + addiu $22,$2,488 + addiu $2,$2,504 +$L188: + sw $2,32($sp) + li $2,1 # 0x1 + beq $5,$2,$L186 + lui $16,%hi(wapiDecrytBuf) + + lhu $17,14($20) + lw $2,28($sp) + addiu $4,$16,%lo(wapiDecrytBuf) + addu $18,$23,$2 + subu $2,$17,$2 + andi $20,$2,0xffff + move $6,$20 + jal memcpy + move $5,$18 + + lw $6,28($sp) + lui $19,%hi(wapiDecrytHdrBuf) + move $5,$23 + jal memcpy + addiu $4,$19,%lo(wapiDecrytHdrBuf) + + addiu $6,$16,%lo(wapiDecrytBuf) + move $7,$20 + addiu $2,$sp,24 + move $4,$22 + move $5,$21 + sw $2,20($sp) + jal WapiSMS4Cryption + sw $18,16($sp) + + lw $5,32($sp) + addiu $2,$20,-16 + addu $17,$23,$17 + lui $16,%hi(wapiCryptoTemp) + andi $20,$2,0xffff + addiu $16,$16,%lo(wapiCryptoTemp) + move $4,$fp + addiu $6,$19,%lo(wapiDecrytHdrBuf) + move $7,$18 + addiu $17,$17,-16 + sw $20,16($sp) + jal SecCalculateMicSMS4 + sw $16,20($sp) + + move $5,$17 + move $4,$16 + jal memcmp + li $6,16 # 0x10 + + bne $2,$0,$L166 + move $5,$0 + +$L186: + li $5,1 # 0x1 +$L166: + lw $31,76($sp) + lw $fp,72($sp) + lw $23,68($sp) + lw $22,64($sp) + lw $21,60($sp) + lw $20,56($sp) + lw $19,52($sp) + lw $18,48($sp) + lw $17,44($sp) + lw $16,40($sp) + move $2,$5 + j $31 + addiu $sp,$sp,80 + + .set macro + .set reorder + .end SecSWSMS4Decryption + .section .text.WapiMTgenSeed,"ax",@progbits + .align 2 + .globl WapiMTgenSeed + .ent WapiMTgenSeed + .type WapiMTgenSeed, @function +WapiMTgenSeed: + .set nomips16 + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + lui $2,%hi(mt) + addiu $3,$2,%lo(mt) + sw $4,%lo(mt)($2) + lui $7,%hi(mti) + li $2,1 # 0x1 + sw $2,%lo(mti)($7) + li $2,1812398080 # 0x6c070000 + ori $6,$2,0x8965 + addiu $5,$3,4 + li $4,1 # 0x1 +$L193: + lw $2,-4($5) + nop + srl $3,$2,30 + xor $2,$2,$3 + mult $2,$6 + mflo $2 + addu $2,$2,$4 + addiu $4,$4,1 + slt $3,$4,624 + sw $2,0($5) + bne $3,$0,$L193 + addiu $5,$5,4 + + li $2,624 # 0x270 + j $31 + sw $2,%lo(mti)($7) + + .set macro + .set reorder + .end WapiMTgenSeed + .data + .align 2 + .type mag01.0, @object + .size mag01.0, 8 +mag01.0: + .word 0 + .word -1727483681 + .section .text.WapiMTgenrand,"ax",@progbits + .align 2 + .globl WapiMTgenrand + .ent WapiMTgenrand + .type WapiMTgenrand, @function +WapiMTgenrand: + .set nomips16 + .frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0 + .mask 0x80010000,-4 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-24 + sw $16,16($sp) + lui $16,%hi(mti) + lw $3,%lo(mti)($16) + nop + slt $2,$3,624 + bne $2,$0,$L198 + sw $31,20($sp) + + li $2,625 # 0x271 + bne $3,$2,$L212 + li $2,2147418112 # 0x7fff0000 + + jal WapiMTgenSeed + li $4,5489 # 0x1571 + + li $2,2147418112 # 0x7fff0000 +$L212: + ori $10,$2,0xffff + lui $2,%hi(mag01.0) + addiu $9,$2,%lo(mag01.0) + lui $2,%hi(mt) + addiu $5,$2,%lo(mt) + li $8,-2147483648 # 0xffffffff80000000 + li $7,226 # 0xe2 +$L203: + lw $3,0($5) + lw $2,4($5) + lw $4,1588($5) + and $3,$3,$8 + and $2,$2,$10 + or $6,$3,$2 + andi $2,$6,0x1 + sll $2,$2,2 + addu $2,$2,$9 + lw $3,0($2) + srl $2,$6,1 + xor $4,$4,$2 + xor $4,$4,$3 + addiu $7,$7,-1 + sw $4,0($5) + bgez $7,$L203 + addiu $5,$5,4 + + li $2,2147418112 # 0x7fff0000 + ori $10,$2,0xffff + lui $2,%hi(mag01.0) + addiu $9,$2,%lo(mag01.0) + lui $2,%hi(mt) + addiu $2,$2,%lo(mt) + addiu $5,$2,908 + li $7,227 # 0xe3 + li $8,-2147483648 # 0xffffffff80000000 +$L207: + lw $3,0($5) + lw $2,4($5) + lw $4,-908($5) + and $3,$3,$8 + and $2,$2,$10 + or $6,$3,$2 + andi $2,$6,0x1 + sll $2,$2,2 + addu $2,$2,$9 + lw $3,0($2) + srl $2,$6,1 + xor $4,$4,$2 + addiu $7,$7,1 + xor $4,$4,$3 + slt $2,$7,623 + sw $4,0($5) + bne $2,$0,$L207 + addiu $5,$5,4 + + lui $2,%hi(mt) + addiu $5,$2,%lo(mt) + lw $3,2492($5) + lw $4,%lo(mt)($2) + li $2,-2147483648 # 0xffffffff80000000 + and $3,$3,$2 + li $2,2147418112 # 0x7fff0000 + ori $2,$2,0xffff + and $4,$4,$2 + or $6,$3,$4 + andi $3,$6,0x1 + lui $2,%hi(mag01.0) + addiu $2,$2,%lo(mag01.0) + sll $3,$3,2 + addu $3,$3,$2 + lw $2,1584($5) + lw $4,0($3) + srl $3,$6,1 + xor $2,$2,$3 + xor $2,$2,$4 + sw $2,2492($5) + sw $0,%lo(mti)($16) +$L198: + lui $5,%hi(mti) + lw $4,%lo(mti)($5) + lui $2,%hi(mt) + addiu $2,$2,%lo(mt) + sll $3,$4,2 + addu $3,$3,$2 + lw $6,0($3) + lw $31,20($sp) + lw $16,16($sp) + srl $2,$6,11 + xor $6,$6,$2 + li $2,-1658060800 # 0xffffffff9d2c0000 + sll $3,$6,7 + ori $2,$2,0x5680 + and $3,$3,$2 + xor $6,$6,$3 + sll $2,$6,15 + li $3,-272236544 # 0xffffffffefc60000 + and $2,$2,$3 + xor $6,$6,$2 + srl $2,$6,18 + addiu $4,$4,1 + xor $2,$6,$2 + addiu $sp,$sp,24 + j $31 + sw $4,%lo(mti)($5) + + .set macro + .set reorder + .end WapiMTgenrand + .section .text.GenerateRandomData,"ax",@progbits + .align 2 + .globl GenerateRandomData + .ent GenerateRandomData + .type GenerateRandomData, @function +GenerateRandomData: + .set nomips16 + .frame $sp,80,$31 # vars= 40, regs= 5/0, args= 16, gp= 0 + .mask 0x800f0000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-80 + sw $31,72($sp) + sw $19,68($sp) + sw $18,64($sp) + sw $17,60($sp) + sw $16,56($sp) + lui $2,%hi(jiffies) + lw $2,%lo(jiffies)($2) + move $19,$4 + move $18,$5 + jal srandom32 + move $4,$2 + + jal random32 + move $17,$0 + + jal WapiMTgenSeed + move $4,$2 + + srl $3,$18,2 + addiu $4,$3,1 + andi $2,$18,0x3 + move $16,$3 + movn $16,$4,$2 #RLX4181/RLX4281:conditional move + move $5,$0 + addiu $4,$sp,16 + jal memset + sll $6,$16,2 + + blez $16,$L222 + move $4,$19 + +$L219: + jal WapiMTgenrand + nop + + sll $4,$17,2 + addiu $3,$sp,16 + addu $4,$3,$4 + addiu $17,$17,1 + addiu $5,$sp,48 + li $6,4 # 0x4 + jal memcpy + sw $2,48($sp) + + slt $2,$17,$16 + bne $2,$0,$L219 + move $4,$19 + +$L222: + move $6,$18 + jal memcpy + addiu $5,$sp,16 + + lw $31,72($sp) + lw $19,68($sp) + lw $18,64($sp) + lw $17,60($sp) + lw $16,56($sp) + j $31 + addiu $sp,$sp,80 + + .set macro + .set reorder + .end GenerateRandomData + .local wapiCryptoTemp + .comm wapiCryptoTemp,16,4 + .local wapiBlockIn + .comm wapiBlockIn,16,4 + .local wapiTempBlock + .comm wapiTempBlock,16,4 + .local wapiRK + .comm wapiRK,128,4 + .local wapiDecrytBuf + .comm wapiDecrytBuf,1560,4 + .local wapiDecrytHdrBuf + .comm wapiDecrytHdrBuf,64,4 + .globl Sbox + .section .dram-rtkwlan,"aw",@progbits + .align 2 + .type Sbox, @object + .size Sbox, 256 +Sbox: + .space 256 + .globl CK + .align 2 + .type CK, @object + .size CK, 128 +CK: + .space 128 + .local mt + .comm mt,2496,4 + .ident "GCC: (GNU) 3.4.6-1.3.6" |