diff options
Diffstat (limited to 'target/linux/realtek/files/drivers/net/wireless/rtl8192cd/98/wapiCrypto.S')
-rw-r--r-- | target/linux/realtek/files/drivers/net/wireless/rtl8192cd/98/wapiCrypto.S | 10153 |
1 files changed, 10153 insertions, 0 deletions
diff --git a/target/linux/realtek/files/drivers/net/wireless/rtl8192cd/98/wapiCrypto.S b/target/linux/realtek/files/drivers/net/wireless/rtl8192cd/98/wapiCrypto.S new file mode 100644 index 000000000..16910635d --- /dev/null +++ b/target/linux/realtek/files/drivers/net/wireless/rtl8192cd/98/wapiCrypto.S @@ -0,0 +1,10153 @@ + .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 + .rdata + .align 2 + .type rtl_ap_EDCA, @object + .size rtl_ap_EDCA, 120 +rtl_ap_EDCA: + .word 0 + .word 7 + .word 4 + .word 10 + .word 0 + .word 0 + .word 3 + .word 4 + .word 6 + .word 0 + .word 0 + .word 1 + .word 3 + .word 4 + .word 188 + .word 0 + .word 1 + .word 2 + .word 3 + .word 102 + .word 0 + .word 1 + .word 3 + .word 4 + .word 94 + .word 0 + .word 1 + .word 2 + .word 3 + .word 47 + .align 2 + .type rtl_sta_EDCA, @object + .size rtl_sta_EDCA, 120 +rtl_sta_EDCA: + .word 0 + .word 7 + .word 4 + .word 10 + .word 0 + .word 0 + .word 3 + .word 4 + .word 10 + .word 0 + .word 0 + .word 2 + .word 3 + .word 4 + .word 188 + .word 0 + .word 2 + .word 2 + .word 3 + .word 102 + .word 0 + .word 2 + .word 3 + .word 4 + .word 94 + .word 0 + .word 2 + .word 2 + .word 3 + .word 47 + .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 $4,0($sp) + sw $5,4($sp) + lw $2,0($sp) + sw $0,0($2) + lw $2,0($sp) + sw $0,4($2) + lw $2,4($sp) + bne $2,$0,$L2 + nop + + lw $3,0($sp) + li $2,1778974720 # 0x6a090000 + ori $2,$2,0xe667 + sw $2,8($3) + lw $3,0($sp) + li $2,-1150877696 # 0xbb670000 + ori $2,$2,0xae85 + sw $2,12($3) + lw $3,0($sp) + li $2,1013841920 # 0x3c6e0000 + ori $2,$2,0xf372 + sw $2,16($3) + lw $3,0($sp) + li $2,-1521549312 # 0xa54f0000 + ori $2,$2,0xf53a + sw $2,20($3) + lw $3,0($sp) + li $2,1359872000 # 0x510e0000 + ori $2,$2,0x527f + sw $2,24($3) + lw $3,0($sp) + li $2,-1694171136 # 0x9b050000 + ori $2,$2,0x688c + sw $2,28($3) + lw $3,0($sp) + li $2,528678912 # 0x1f830000 + ori $2,$2,0xd9ab + sw $2,32($3) + lw $3,0($sp) + li $2,1541406720 # 0x5be00000 + ori $2,$2,0xcd19 + sw $2,36($3) + j $L3 + nop + +$L2: + lw $3,0($sp) + li $2,-1056636928 # 0xc1050000 + ori $2,$2,0x9ed8 + sw $2,8($3) + lw $3,0($sp) + li $2,914096128 # 0x367c0000 + ori $2,$2,0xd507 + sw $2,12($3) + lw $3,0($sp) + li $2,812646400 # 0x30700000 + ori $2,$2,0xdd17 + sw $2,16($3) + lw $3,0($sp) + li $2,-150077440 # 0xf70e0000 + ori $2,$2,0x5939 + sw $2,20($3) + lw $3,0($sp) + li $2,-4194304 # 0xffc00000 + ori $2,$2,0xb31 + sw $2,24($3) + lw $3,0($sp) + li $2,1750597632 # 0x68580000 + ori $2,$2,0x1511 + sw $2,28($3) + lw $3,0($sp) + li $2,1694040064 # 0x64f90000 + ori $2,$2,0x8fa7 + sw $2,32($3) + lw $3,0($sp) + li $2,-1090912256 # 0xbefa0000 + ori $2,$2,0x4fa4 + sw $2,36($3) +$L3: + lw $3,0($sp) + lw $2,4($sp) + sw $2,232($3) + j $31 + nop + + .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,296,$31 # vars= 296, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-296 + sw $4,296($sp) + sw $5,300($sp) + lw $2,300($sp) + lbu $2,0($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,1($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,2($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,3($2) + or $2,$3,$2 + sw $2,8($sp) + lw $2,300($sp) + lbu $2,4($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,5($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,6($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,7($2) + or $2,$3,$2 + sw $2,12($sp) + lw $2,300($sp) + lbu $2,8($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,9($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,10($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,11($2) + or $2,$3,$2 + sw $2,16($sp) + lw $2,300($sp) + lbu $2,12($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,13($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,14($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,15($2) + or $2,$3,$2 + sw $2,20($sp) + lw $2,300($sp) + lbu $2,16($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,17($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,18($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,19($2) + or $2,$3,$2 + sw $2,24($sp) + lw $2,300($sp) + lbu $2,20($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,21($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,22($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,23($2) + or $2,$3,$2 + sw $2,28($sp) + lw $2,300($sp) + lbu $2,24($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,25($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,26($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,27($2) + or $2,$3,$2 + sw $2,32($sp) + lw $2,300($sp) + lbu $2,28($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,29($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,30($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,31($2) + or $2,$3,$2 + sw $2,36($sp) + lw $2,300($sp) + lbu $2,32($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,33($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,34($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,35($2) + or $2,$3,$2 + sw $2,40($sp) + lw $2,300($sp) + lbu $2,36($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,37($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,38($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,39($2) + or $2,$3,$2 + sw $2,44($sp) + lw $2,300($sp) + lbu $2,40($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,41($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,42($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,43($2) + or $2,$3,$2 + sw $2,48($sp) + lw $2,300($sp) + lbu $2,44($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,45($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,46($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,47($2) + or $2,$3,$2 + sw $2,52($sp) + lw $2,300($sp) + lbu $2,48($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,49($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,50($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,51($2) + or $2,$3,$2 + sw $2,56($sp) + lw $2,300($sp) + lbu $2,52($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,53($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,54($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,55($2) + or $2,$3,$2 + sw $2,60($sp) + lw $2,300($sp) + lbu $2,56($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,57($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,58($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,59($2) + or $2,$3,$2 + sw $2,64($sp) + lw $2,300($sp) + lbu $2,60($2) + sll $3,$2,24 + lw $2,300($sp) + lbu $2,61($2) + sll $2,$2,16 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,62($2) + sll $2,$2,8 + or $3,$3,$2 + lw $2,300($sp) + lbu $2,63($2) + or $2,$3,$2 + sw $2,68($sp) + lw $2,296($sp) + lw $2,8($2) + sw $2,264($sp) + lw $2,296($sp) + lw $2,12($2) + sw $2,268($sp) + lw $2,296($sp) + lw $2,16($2) + sw $2,272($sp) + lw $2,296($sp) + lw $2,20($2) + sw $2,276($sp) + lw $2,296($sp) + lw $2,24($2) + sw $2,280($sp) + lw $2,296($sp) + lw $2,28($2) + sw $2,284($sp) + lw $2,296($sp) + lw $2,32($2) + sw $2,288($sp) + lw $2,296($sp) + lw $2,36($2) + sw $2,292($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,8($sp) + addu $3,$3,$2 + li $2,1116340224 # 0x428a0000 + ori $2,$2,0x2f98 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,12($sp) + addu $3,$3,$2 + li $2,1899429888 # 0x71370000 + ori $2,$2,0x4491 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,16($sp) + addu $3,$3,$2 + li $2,-1245708288 # 0xb5c00000 + ori $2,$2,0xfbcf + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,20($sp) + addu $3,$3,$2 + li $2,-374013952 # 0xe9b50000 + ori $2,$2,0xdba5 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,24($sp) + addu $3,$3,$2 + li $2,961937408 # 0x39560000 + ori $2,$2,0xc25b + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,28($sp) + addu $3,$3,$2 + li $2,1508966400 # 0x59f10000 + ori $2,$2,0x11f1 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,32($sp) + addu $3,$3,$2 + li $2,-1841364992 # 0x923f0000 + ori $2,$2,0x82a4 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,36($sp) + addu $3,$3,$2 + li $2,-1424228352 # 0xab1c0000 + ori $2,$2,0x5ed5 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,40($sp) + addu $3,$3,$2 + li $2,-670629888 # 0xd8070000 + ori $2,$2,0xaa98 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,44($sp) + addu $3,$3,$2 + li $2,310575104 # 0x12830000 + ori $2,$2,0x5b01 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,48($sp) + addu $3,$3,$2 + li $2,607191040 # 0x24310000 + ori $2,$2,0x85be + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,52($sp) + addu $3,$3,$2 + li $2,1426849792 # 0x550c0000 + ori $2,$2,0x7dc3 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,56($sp) + addu $3,$3,$2 + li $2,1925054464 # 0x72be0000 + ori $2,$2,0x5d74 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,60($sp) + addu $3,$3,$2 + li $2,-2132934656 # 0x80de0000 + ori $2,$2,0xb1fe + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,64($sp) + addu $3,$3,$2 + li $2,-1680080896 # 0x9bdc0000 + ori $2,$2,0x6a7 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $3,$4,$2 + lw $2,68($sp) + addu $3,$3,$2 + li $2,-1046806528 # 0xc19b0000 + ori $2,$2,0xf174 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,64($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,64($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,64($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,44($sp) + addu $6,$3,$2 + lw $2,12($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,12($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,12($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,8($sp) + addu $2,$3,$2 + sw $2,72($sp) + addu $3,$5,$2 + li $2,-459603968 # 0xe49b0000 + ori $2,$2,0x69c1 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,68($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,68($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,68($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,48($sp) + addu $6,$3,$2 + lw $2,16($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,16($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,16($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,12($sp) + addu $2,$3,$2 + sw $2,76($sp) + addu $3,$5,$2 + li $2,-272760832 # 0xefbe0000 + ori $2,$2,0x4786 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,72($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,72($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,72($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,52($sp) + addu $6,$3,$2 + lw $2,20($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,20($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,20($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,16($sp) + addu $2,$3,$2 + sw $2,80($sp) + addu $3,$5,$2 + li $2,264306688 # 0xfc10000 + ori $2,$2,0x9dc6 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,76($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,76($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,76($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,56($sp) + addu $6,$3,$2 + lw $2,24($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,24($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,24($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,20($sp) + addu $2,$3,$2 + sw $2,84($sp) + addu $3,$5,$2 + li $2,604766208 # 0x240c0000 + ori $2,$2,0xa1cc + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,80($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,80($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,80($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,60($sp) + addu $6,$3,$2 + lw $2,28($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,28($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,28($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,24($sp) + addu $2,$3,$2 + sw $2,88($sp) + addu $3,$5,$2 + li $2,770244608 # 0x2de90000 + ori $2,$2,0x2c6f + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,84($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,84($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,84($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,64($sp) + addu $6,$3,$2 + lw $2,32($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,32($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,32($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,28($sp) + addu $2,$3,$2 + sw $2,92($sp) + addu $3,$5,$2 + li $2,1249116160 # 0x4a740000 + ori $2,$2,0x84aa + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,88($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,88($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,88($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,68($sp) + addu $6,$3,$2 + lw $2,36($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,36($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,36($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,32($sp) + addu $2,$3,$2 + sw $2,96($sp) + addu $3,$5,$2 + li $2,1555038208 # 0x5cb00000 + ori $2,$2,0xa9dc + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,92($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,92($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,92($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,72($sp) + addu $6,$3,$2 + lw $2,40($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,40($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,40($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,36($sp) + addu $2,$3,$2 + sw $2,100($sp) + addu $3,$5,$2 + li $2,1996029952 # 0x76f90000 + ori $2,$2,0x88da + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,96($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,96($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,96($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,76($sp) + addu $6,$3,$2 + lw $2,44($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,44($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,44($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,40($sp) + addu $2,$3,$2 + sw $2,104($sp) + addu $3,$5,$2 + li $2,-1740767232 # 0x983e0000 + ori $2,$2,0x5152 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,100($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,100($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,100($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,80($sp) + addu $6,$3,$2 + lw $2,48($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,48($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,48($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,44($sp) + addu $2,$3,$2 + sw $2,108($sp) + addu $3,$5,$2 + li $2,-1473183744 # 0xa8310000 + ori $2,$2,0xc66d + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,104($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,104($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,104($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,84($sp) + addu $6,$3,$2 + lw $2,52($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,52($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,52($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,48($sp) + addu $2,$3,$2 + sw $2,112($sp) + addu $3,$5,$2 + li $2,-1341980672 # 0xb0030000 + ori $2,$2,0x27c8 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,108($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,108($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,108($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,88($sp) + addu $6,$3,$2 + lw $2,56($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,56($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,56($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,52($sp) + addu $2,$3,$2 + sw $2,116($sp) + addu $3,$5,$2 + li $2,-1084686336 # 0xbf590000 + ori $2,$2,0x7fc7 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,112($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,112($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,112($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,92($sp) + addu $6,$3,$2 + lw $2,60($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,60($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,60($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,56($sp) + addu $2,$3,$2 + sw $2,120($sp) + addu $3,$5,$2 + li $2,-958398464 # 0xc6e00000 + ori $2,$2,0xbf3 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,116($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,116($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,116($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,96($sp) + addu $6,$3,$2 + lw $2,64($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,64($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,64($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,60($sp) + addu $2,$3,$2 + sw $2,124($sp) + addu $3,$5,$2 + li $2,-710475776 # 0xd5a70000 + ori $2,$2,0x9147 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,120($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,120($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,120($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,100($sp) + addu $6,$3,$2 + lw $2,68($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,68($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,68($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,64($sp) + addu $2,$3,$2 + sw $2,128($sp) + addu $3,$5,$2 + li $2,113901568 # 0x6ca0000 + ori $2,$2,0x6351 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,124($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,124($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,124($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,104($sp) + addu $6,$3,$2 + lw $2,72($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,72($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,72($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,68($sp) + addu $2,$3,$2 + sw $2,132($sp) + addu $3,$5,$2 + li $2,338231296 # 0x14290000 + ori $2,$2,0x2967 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,128($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,128($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,128($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,108($sp) + addu $6,$3,$2 + lw $2,76($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,76($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,76($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,72($sp) + addu $2,$3,$2 + sw $2,136($sp) + addu $3,$5,$2 + li $2,666304512 # 0x27b70000 + ori $2,$2,0xa85 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,132($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,132($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,132($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,112($sp) + addu $6,$3,$2 + lw $2,80($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,80($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,80($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,76($sp) + addu $2,$3,$2 + sw $2,140($sp) + addu $3,$5,$2 + li $2,773521408 # 0x2e1b0000 + ori $2,$2,0x2138 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,136($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,136($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,136($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,116($sp) + addu $6,$3,$2 + lw $2,84($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,84($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,84($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,80($sp) + addu $2,$3,$2 + sw $2,144($sp) + addu $3,$5,$2 + li $2,1294729216 # 0x4d2c0000 + ori $2,$2,0x6dfc + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,140($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,140($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,140($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,120($sp) + addu $6,$3,$2 + lw $2,88($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,88($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,88($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,84($sp) + addu $2,$3,$2 + sw $2,148($sp) + addu $3,$5,$2 + li $2,1396178944 # 0x53380000 + ori $2,$2,0xd13 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,144($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,144($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,144($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,124($sp) + addu $6,$3,$2 + lw $2,92($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,92($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,92($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,88($sp) + addu $2,$3,$2 + sw $2,152($sp) + addu $3,$5,$2 + li $2,1695154176 # 0x650a0000 + ori $2,$2,0x7354 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,148($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,148($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,148($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,128($sp) + addu $6,$3,$2 + lw $2,96($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,96($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,96($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,92($sp) + addu $2,$3,$2 + sw $2,156($sp) + addu $3,$5,$2 + li $2,1986658304 # 0x766a0000 + ori $2,$2,0xabb + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,152($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,152($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,152($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,132($sp) + addu $6,$3,$2 + lw $2,100($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,100($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,100($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,96($sp) + addu $2,$3,$2 + sw $2,160($sp) + addu $3,$5,$2 + li $2,-2117992448 # 0x81c20000 + ori $2,$2,0xc92e + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,156($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,156($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,156($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,136($sp) + addu $6,$3,$2 + lw $2,104($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,104($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,104($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,100($sp) + addu $2,$3,$2 + sw $2,164($sp) + addu $3,$5,$2 + li $2,-1838022656 # 0x92720000 + ori $2,$2,0x2c85 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,160($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,160($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,160($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,140($sp) + addu $6,$3,$2 + lw $2,108($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,108($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,108($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,104($sp) + addu $2,$3,$2 + sw $2,168($sp) + addu $3,$5,$2 + li $2,-1564540928 # 0xa2bf0000 + ori $2,$2,0xe8a1 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,164($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,164($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,164($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,144($sp) + addu $6,$3,$2 + lw $2,112($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,112($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,112($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,108($sp) + addu $2,$3,$2 + sw $2,172($sp) + addu $3,$5,$2 + li $2,-1474691072 # 0xa81a0000 + ori $2,$2,0x664b + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,168($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,168($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,168($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,148($sp) + addu $6,$3,$2 + lw $2,116($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,116($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,116($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,112($sp) + addu $2,$3,$2 + sw $2,176($sp) + addu $3,$5,$2 + li $2,-1035272192 # 0xc24b0000 + ori $2,$2,0x8b70 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,172($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,172($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,172($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,152($sp) + addu $6,$3,$2 + lw $2,120($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,120($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,120($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,116($sp) + addu $2,$3,$2 + sw $2,180($sp) + addu $3,$5,$2 + li $2,-949223424 # 0xc76c0000 + ori $2,$2,0x51a3 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,176($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,176($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,176($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,156($sp) + addu $6,$3,$2 + lw $2,124($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,124($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,124($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,120($sp) + addu $2,$3,$2 + sw $2,184($sp) + addu $3,$5,$2 + li $2,-778960896 # 0xd1920000 + ori $2,$2,0xe819 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,180($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,180($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,180($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,160($sp) + addu $6,$3,$2 + lw $2,128($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,128($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,128($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,124($sp) + addu $2,$3,$2 + sw $2,188($sp) + addu $3,$5,$2 + li $2,-694616064 # 0xd6990000 + ori $2,$2,0x624 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,184($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,184($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,184($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,164($sp) + addu $6,$3,$2 + lw $2,132($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,132($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,132($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,128($sp) + addu $2,$3,$2 + sw $2,192($sp) + addu $3,$5,$2 + li $2,-200409088 # 0xf40e0000 + ori $2,$2,0x3585 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,188($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,188($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,188($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,168($sp) + addu $6,$3,$2 + lw $2,136($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,136($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,136($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,132($sp) + addu $2,$3,$2 + sw $2,196($sp) + addu $3,$5,$2 + li $2,275382272 # 0x106a0000 + ori $2,$2,0xa070 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,192($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,192($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,192($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,172($sp) + addu $6,$3,$2 + lw $2,140($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,140($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,140($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,136($sp) + addu $2,$3,$2 + sw $2,200($sp) + addu $3,$5,$2 + li $2,430178304 # 0x19a40000 + ori $2,$2,0xc116 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,196($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,196($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,196($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,176($sp) + addu $6,$3,$2 + lw $2,144($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,144($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,144($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,140($sp) + addu $2,$3,$2 + sw $2,204($sp) + addu $3,$5,$2 + li $2,506920960 # 0x1e370000 + ori $2,$2,0x6c08 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,200($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,200($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,200($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,180($sp) + addu $6,$3,$2 + lw $2,148($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,148($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,148($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,144($sp) + addu $2,$3,$2 + sw $2,208($sp) + addu $3,$5,$2 + li $2,659030016 # 0x27480000 + ori $2,$2,0x774c + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,204($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,204($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,204($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,184($sp) + addu $6,$3,$2 + lw $2,152($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,152($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,152($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,148($sp) + addu $2,$3,$2 + sw $2,212($sp) + addu $3,$5,$2 + li $2,883949568 # 0x34b00000 + ori $2,$2,0xbcb5 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,208($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,208($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,208($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,188($sp) + addu $6,$3,$2 + lw $2,156($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,156($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,156($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,152($sp) + addu $2,$3,$2 + sw $2,216($sp) + addu $3,$5,$2 + li $2,958136320 # 0x391c0000 + ori $2,$2,0xcb3 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,212($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,212($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,212($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,192($sp) + addu $6,$3,$2 + lw $2,160($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,160($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,160($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,156($sp) + addu $2,$3,$2 + sw $2,220($sp) + addu $3,$5,$2 + li $2,1322778624 # 0x4ed80000 + ori $2,$2,0xaa4a + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,216($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,216($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,216($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,196($sp) + addu $6,$3,$2 + lw $2,164($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,164($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,164($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,160($sp) + addu $2,$3,$2 + sw $2,224($sp) + addu $3,$5,$2 + li $2,1536950272 # 0x5b9c0000 + ori $2,$2,0xca4f + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,220($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,220($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,220($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,200($sp) + addu $6,$3,$2 + lw $2,168($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,168($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,168($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,164($sp) + addu $2,$3,$2 + sw $2,228($sp) + addu $3,$5,$2 + li $2,1747845120 # 0x682e0000 + ori $2,$2,0x6ff3 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $2,280($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,292($sp) + addu $4,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + xor $3,$3,$2 + lw $2,280($sp) + and $3,$3,$2 + lw $2,288($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,224($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,224($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,224($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,204($sp) + addu $6,$3,$2 + lw $2,172($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,172($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,172($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,168($sp) + addu $2,$3,$2 + sw $2,232($sp) + addu $3,$5,$2 + li $2,1955528704 # 0x748f0000 + ori $2,$2,0x82ee + addu $2,$3,$2 + sw $2,0($sp) + lw $2,264($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,264($sp) + lw $2,268($sp) + and $5,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + or $3,$3,$2 + lw $2,272($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,276($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $2,276($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,288($sp) + addu $4,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + xor $3,$3,$2 + lw $2,276($sp) + and $3,$3,$2 + lw $2,284($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,228($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,228($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,228($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,208($sp) + addu $6,$3,$2 + lw $2,176($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,176($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,176($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,172($sp) + addu $2,$3,$2 + sw $2,236($sp) + addu $3,$5,$2 + li $2,2024079360 # 0x78a50000 + ori $2,$2,0x636f + addu $2,$3,$2 + sw $2,0($sp) + lw $2,292($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,292($sp) + lw $2,264($sp) + and $5,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + or $3,$3,$2 + lw $2,268($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,272($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $2,272($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,284($sp) + addu $4,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + xor $3,$3,$2 + lw $2,272($sp) + and $3,$3,$2 + lw $2,280($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,232($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,232($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,232($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,212($sp) + addu $6,$3,$2 + lw $2,180($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,180($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,180($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,176($sp) + addu $2,$3,$2 + sw $2,240($sp) + addu $3,$5,$2 + li $2,-2067267584 # 0x84c80000 + ori $2,$2,0x7814 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,288($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,288($sp) + lw $2,292($sp) + and $5,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + or $3,$3,$2 + lw $2,264($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,268($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $2,268($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,280($sp) + addu $4,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + xor $3,$3,$2 + lw $2,268($sp) + and $3,$3,$2 + lw $2,276($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,236($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,236($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,236($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,216($sp) + addu $6,$3,$2 + lw $2,184($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,184($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,184($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,180($sp) + addu $2,$3,$2 + sw $2,244($sp) + addu $3,$5,$2 + li $2,-1933115392 # 0x8cc70000 + ori $2,$2,0x208 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,284($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,284($sp) + lw $2,288($sp) + and $5,$3,$2 + lw $3,284($sp) + lw $2,288($sp) + or $3,$3,$2 + lw $2,292($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,264($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $2,264($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,264($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,264($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,276($sp) + addu $4,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + xor $3,$3,$2 + lw $2,264($sp) + and $3,$3,$2 + lw $2,272($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,240($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,240($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,240($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,220($sp) + addu $6,$3,$2 + lw $2,188($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,188($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,188($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,184($sp) + addu $2,$3,$2 + sw $2,248($sp) + addu $3,$5,$2 + li $2,-1866596352 # 0x90be0000 + ori $2,$2,0xfffa + addu $2,$3,$2 + sw $2,0($sp) + lw $2,280($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,280($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,280($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,280($sp) + lw $2,284($sp) + and $5,$3,$2 + lw $3,280($sp) + lw $2,284($sp) + or $3,$3,$2 + lw $2,288($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,292($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,292($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,276($sp) + lw $2,292($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,292($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,292($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,272($sp) + addu $4,$3,$2 + lw $3,264($sp) + lw $2,268($sp) + xor $3,$3,$2 + lw $2,292($sp) + and $3,$3,$2 + lw $2,268($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,244($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,244($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,244($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,224($sp) + addu $6,$3,$2 + lw $2,192($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,192($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,192($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,188($sp) + addu $2,$3,$2 + sw $2,252($sp) + addu $3,$5,$2 + li $2,-1538260992 # 0xa4500000 + ori $2,$2,0x6ceb + addu $2,$3,$2 + sw $2,0($sp) + lw $2,276($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,276($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,276($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,276($sp) + lw $2,280($sp) + and $5,$3,$2 + lw $3,276($sp) + lw $2,280($sp) + or $3,$3,$2 + lw $2,284($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,288($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,288($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,272($sp) + lw $2,288($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,288($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,288($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,268($sp) + addu $4,$3,$2 + lw $3,292($sp) + lw $2,264($sp) + xor $3,$3,$2 + lw $2,288($sp) + and $3,$3,$2 + lw $2,264($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,248($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,248($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,248($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,228($sp) + addu $6,$3,$2 + lw $2,196($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,196($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,196($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,192($sp) + addu $2,$3,$2 + sw $2,256($sp) + addu $3,$5,$2 + li $2,-1090977792 # 0xbef90000 + ori $2,$2,0xa3f7 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,272($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,272($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,272($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,272($sp) + lw $2,276($sp) + and $5,$3,$2 + lw $3,272($sp) + lw $2,276($sp) + or $3,$3,$2 + lw $2,280($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,284($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,284($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,268($sp) + lw $2,284($sp) + sll $3,$2,26 + srl $2,$2,6 + or $4,$3,$2 + lw $2,284($sp) + sll $3,$2,21 + srl $2,$2,11 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,284($sp) + sll $3,$2,7 + srl $2,$2,25 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,264($sp) + addu $4,$3,$2 + lw $3,288($sp) + lw $2,292($sp) + xor $3,$3,$2 + lw $2,284($sp) + and $3,$3,$2 + lw $2,292($sp) + xor $2,$3,$2 + addu $5,$4,$2 + lw $2,252($sp) + sll $3,$2,15 + srl $2,$2,17 + or $4,$3,$2 + lw $2,252($sp) + sll $3,$2,13 + srl $2,$2,19 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,252($sp) + srl $2,$2,10 + xor $3,$3,$2 + lw $2,232($sp) + addu $6,$3,$2 + lw $2,200($sp) + sll $3,$2,25 + srl $2,$2,7 + or $4,$3,$2 + lw $2,200($sp) + sll $3,$2,14 + srl $2,$2,18 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,200($sp) + srl $2,$2,3 + xor $2,$3,$2 + addu $3,$6,$2 + lw $2,196($sp) + addu $2,$3,$2 + sw $2,260($sp) + addu $3,$5,$2 + li $2,-965672960 # 0xc6710000 + ori $2,$2,0x78f2 + addu $2,$3,$2 + sw $2,0($sp) + lw $2,268($sp) + sll $3,$2,30 + srl $2,$2,2 + or $4,$3,$2 + lw $2,268($sp) + sll $3,$2,19 + srl $2,$2,13 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,268($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $3,268($sp) + lw $2,272($sp) + and $5,$3,$2 + lw $3,268($sp) + lw $2,272($sp) + or $3,$3,$2 + lw $2,276($sp) + and $2,$3,$2 + or $2,$5,$2 + addu $2,$4,$2 + sw $2,4($sp) + lw $3,280($sp) + lw $2,0($sp) + addu $2,$3,$2 + sw $2,280($sp) + lw $3,0($sp) + lw $2,4($sp) + addu $2,$3,$2 + sw $2,264($sp) + lw $4,296($sp) + lw $2,296($sp) + lw $3,8($2) + lw $2,264($sp) + addu $2,$3,$2 + sw $2,8($4) + lw $4,296($sp) + lw $2,296($sp) + lw $3,12($2) + lw $2,268($sp) + addu $2,$3,$2 + sw $2,12($4) + lw $4,296($sp) + lw $2,296($sp) + lw $3,16($2) + lw $2,272($sp) + addu $2,$3,$2 + sw $2,16($4) + lw $4,296($sp) + lw $2,296($sp) + lw $3,20($2) + lw $2,276($sp) + addu $2,$3,$2 + sw $2,20($4) + lw $4,296($sp) + lw $2,296($sp) + lw $3,24($2) + lw $2,280($sp) + addu $2,$3,$2 + sw $2,24($4) + lw $4,296($sp) + lw $2,296($sp) + lw $3,28($2) + lw $2,284($sp) + addu $2,$3,$2 + sw $2,28($4) + lw $4,296($sp) + lw $2,296($sp) + lw $3,32($2) + lw $2,288($sp) + addu $2,$3,$2 + sw $2,32($4) + lw $4,296($sp) + lw $2,296($sp) + lw $3,36($2) + lw $2,292($sp) + addu $2,$3,$2 + sw $2,36($4) + addiu $sp,$sp,296 + j $31 + nop + + .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,32,$31 # vars= 8, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-32 + sw $31,24($sp) + sw $4,32($sp) + sw $5,36($sp) + sw $6,40($sp) + lw $2,40($sp) + bgtz $2,$L6 + nop + + j $L5 + nop + +$L6: + lw $2,32($sp) + lw $2,0($2) + andi $2,$2,0x3f + sw $2,20($sp) + li $3,64 # 0x40 + lw $2,20($sp) + subu $2,$3,$2 + sw $2,16($sp) + lw $4,32($sp) + lw $2,32($sp) + lw $3,0($2) + lw $2,40($sp) + addu $2,$3,$2 + sw $2,0($4) + lw $3,32($sp) + lw $2,32($sp) + lw $2,0($2) + sw $2,0($3) + lw $2,32($sp) + lw $3,0($2) + lw $2,40($sp) + sltu $2,$3,$2 + beq $2,$0,$L7 + nop + + lw $3,32($sp) + lw $2,32($sp) + lw $2,4($2) + addiu $2,$2,1 + sw $2,4($3) +$L7: + lw $2,20($sp) + beq $2,$0,$L9 + nop + + lw $2,40($sp) + lw $3,16($sp) + slt $2,$2,$3 + bne $2,$0,$L9 + nop + + lw $3,32($sp) + lw $2,20($sp) + addu $2,$3,$2 + addiu $2,$2,40 + move $4,$2 + lw $5,36($sp) + lw $6,16($sp) + jal memcpy + nop + + lw $2,32($sp) + addiu $2,$2,40 + lw $4,32($sp) + move $5,$2 + jal sha2_process + nop + + lw $3,36($sp) + lw $2,16($sp) + addu $2,$3,$2 + sw $2,36($sp) + lw $3,40($sp) + lw $2,16($sp) + subu $2,$3,$2 + sw $2,40($sp) + sw $0,20($sp) +$L9: + lw $2,40($sp) + slt $2,$2,64 + bne $2,$0,$L10 + nop + + lw $4,32($sp) + lw $5,36($sp) + jal sha2_process + nop + + lw $2,36($sp) + addiu $2,$2,64 + sw $2,36($sp) + lw $2,40($sp) + addiu $2,$2,-64 + sw $2,40($sp) + j $L9 + nop + +$L10: + lw $2,40($sp) + blez $2,$L5 + nop + + lw $3,32($sp) + lw $2,20($sp) + addu $2,$3,$2 + addiu $2,$2,40 + move $4,$2 + lw $5,36($sp) + lw $6,40($sp) + jal memcpy + nop + +$L5: + lw $31,24($sp) + addiu $sp,$sp,32 + j $31 + nop + + .set macro + .set reorder + .end sha2_update + .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_finish,"ax",@progbits + .align 2 + .globl sha2_finish + .ent sha2_finish + .type sha2_finish, @function +sha2_finish: + .set nomips16 + .frame $sp,56,$31 # vars= 32, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-56 + sw $31,48($sp) + sw $4,56($sp) + sw $5,60($sp) + lw $2,56($sp) + lw $2,0($2) + srl $3,$2,29 + lw $2,56($sp) + lw $2,4($2) + sll $2,$2,3 + or $2,$3,$2 + sw $2,24($sp) + lw $2,56($sp) + lw $2,0($2) + sll $2,$2,3 + sw $2,28($sp) + lw $2,24($sp) + srl $2,$2,24 + sb $2,32($sp) + lw $2,24($sp) + srl $2,$2,16 + sb $2,33($sp) + lw $2,24($sp) + srl $2,$2,8 + sb $2,34($sp) + lw $2,24($sp) + sb $2,35($sp) + lw $2,28($sp) + srl $2,$2,24 + sb $2,36($sp) + lw $2,28($sp) + srl $2,$2,16 + sb $2,37($sp) + lw $2,28($sp) + srl $2,$2,8 + sb $2,38($sp) + lw $2,28($sp) + sb $2,39($sp) + lw $2,56($sp) + lw $2,0($2) + andi $2,$2,0x3f + sw $2,16($sp) + lw $2,16($sp) + sltu $2,$2,56 + beq $2,$0,$L13 + nop + + li $3,56 # 0x38 + lw $2,16($sp) + subu $3,$3,$2 + sw $3,40($sp) + j $L14 + nop + +$L13: + li $3,120 # 0x78 + lw $2,16($sp) + subu $3,$3,$2 + sw $3,40($sp) +$L14: + lw $2,40($sp) + sw $2,20($sp) + lw $4,56($sp) + lui $2,%hi(sha2_padding) + addiu $5,$2,%lo(sha2_padding) + lw $6,20($sp) + jal sha2_update + nop + + addiu $2,$sp,32 + lw $4,56($sp) + move $5,$2 + li $6,8 # 0x8 + jal sha2_update + nop + + lw $3,60($sp) + lw $2,56($sp) + lw $2,8($2) + srl $2,$2,24 + sb $2,0($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,8($2) + srl $2,$2,16 + sb $2,1($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,8($2) + srl $2,$2,8 + sb $2,2($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,8($2) + sb $2,3($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,12($2) + srl $2,$2,24 + sb $2,4($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,12($2) + srl $2,$2,16 + sb $2,5($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,12($2) + srl $2,$2,8 + sb $2,6($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,12($2) + sb $2,7($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,16($2) + srl $2,$2,24 + sb $2,8($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,16($2) + srl $2,$2,16 + sb $2,9($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,16($2) + srl $2,$2,8 + sb $2,10($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,16($2) + sb $2,11($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,20($2) + srl $2,$2,24 + sb $2,12($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,20($2) + srl $2,$2,16 + sb $2,13($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,20($2) + srl $2,$2,8 + sb $2,14($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,20($2) + sb $2,15($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,24($2) + srl $2,$2,24 + sb $2,16($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,24($2) + srl $2,$2,16 + sb $2,17($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,24($2) + srl $2,$2,8 + sb $2,18($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,24($2) + sb $2,19($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,28($2) + srl $2,$2,24 + sb $2,20($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,28($2) + srl $2,$2,16 + sb $2,21($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,28($2) + srl $2,$2,8 + sb $2,22($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,28($2) + sb $2,23($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,32($2) + srl $2,$2,24 + sb $2,24($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,32($2) + srl $2,$2,16 + sb $2,25($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,32($2) + srl $2,$2,8 + sb $2,26($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,32($2) + sb $2,27($3) + lw $2,56($sp) + lw $2,232($2) + bne $2,$0,$L12 + nop + + lw $3,60($sp) + lw $2,56($sp) + lw $2,36($2) + srl $2,$2,24 + sb $2,28($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,36($2) + srl $2,$2,16 + sb $2,29($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,36($2) + srl $2,$2,8 + sb $2,30($3) + lw $3,60($sp) + lw $2,56($sp) + lw $2,36($2) + sb $2,31($3) +$L12: + lw $31,48($sp) + addiu $sp,$sp,56 + j $31 + nop + + .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,264,$31 # vars= 240, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-264 + sw $31,256($sp) + sw $4,264($sp) + sw $5,268($sp) + sw $6,272($sp) + sw $7,276($sp) + addiu $4,$sp,16 + lw $5,276($sp) + jal sha2_starts + nop + + addiu $4,$sp,16 + lw $5,264($sp) + lw $6,268($sp) + jal sha2_update + nop + + addiu $4,$sp,16 + lw $5,272($sp) + jal sha2_finish + nop + + addiu $4,$sp,16 + move $5,$0 + li $6,236 # 0xec + jal memset + nop + + lw $31,256($sp) + addiu $sp,$sp,264 + j $31 + nop + + .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= 48, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + sw $31,64($sp) + sw $4,72($sp) + sw $5,76($sp) + sw $6,80($sp) + sw $7,84($sp) + lw $2,80($sp) + slt $2,$2,65 + bne $2,$0,$L18 + nop + + addiu $2,$sp,24 + lw $4,76($sp) + lw $5,80($sp) + move $6,$2 + lw $7,84($sp) + jal sha2 + nop + + lw $2,84($sp) + beq $2,$0,$L19 + nop + + li $2,28 # 0x1c + sw $2,56($sp) + j $L20 + nop + +$L19: + li $2,32 # 0x20 + sw $2,56($sp) +$L20: + lw $2,56($sp) + sw $2,80($sp) + addiu $2,$sp,24 + sw $2,76($sp) +$L18: + lw $2,72($sp) + addiu $2,$2,104 + move $4,$2 + li $5,54 # 0x36 + li $6,64 # 0x40 + jal memset + nop + + lw $2,72($sp) + addiu $2,$2,168 + move $4,$2 + li $5,92 # 0x5c + li $6,64 # 0x40 + jal memset + nop + + sw $0,16($sp) +$L21: + lw $2,16($sp) + lw $3,80($sp) + slt $2,$2,$3 + beq $2,$0,$L22 + nop + + lw $3,72($sp) + lw $2,16($sp) + addu $5,$3,$2 + lw $3,72($sp) + lw $2,16($sp) + addu $4,$3,$2 + lw $3,76($sp) + lw $2,16($sp) + addu $2,$3,$2 + lbu $3,104($4) + lbu $2,0($2) + xor $2,$3,$2 + sb $2,104($5) + lw $3,72($sp) + lw $2,16($sp) + addu $5,$3,$2 + lw $3,72($sp) + lw $2,16($sp) + addu $4,$3,$2 + lw $3,76($sp) + lw $2,16($sp) + addu $2,$3,$2 + lbu $3,168($4) + lbu $2,0($2) + xor $2,$3,$2 + sb $2,168($5) + lw $2,16($sp) + addiu $2,$2,1 + sw $2,16($sp) + j $L21 + nop + +$L22: + lw $4,72($sp) + lw $5,84($sp) + jal sha2_starts + nop + + lw $2,72($sp) + addiu $2,$2,104 + lw $4,72($sp) + move $5,$2 + li $6,64 # 0x40 + jal sha2_update + nop + + addiu $2,$sp,24 + move $4,$2 + move $5,$0 + li $6,32 # 0x20 + jal memset + nop + + lw $31,64($sp) + addiu $sp,$sp,72 + j $31 + nop + + .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,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-24 + sw $31,16($sp) + sw $4,24($sp) + sw $5,28($sp) + sw $6,32($sp) + lw $4,24($sp) + lw $5,28($sp) + lw $6,32($sp) + jal sha2_update + nop + + lw $31,16($sp) + addiu $sp,$sp,24 + j $31 + 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= 48, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + sw $31,64($sp) + sw $4,72($sp) + sw $5,76($sp) + lw $2,72($sp) + lw $2,232($2) + sw $2,16($sp) + lw $2,16($sp) + bne $2,$0,$L26 + nop + + li $2,32 # 0x20 + sw $2,56($sp) + j $L27 + nop + +$L26: + li $2,28 # 0x1c + sw $2,56($sp) +$L27: + lw $2,56($sp) + sw $2,20($sp) + addiu $2,$sp,24 + lw $4,72($sp) + move $5,$2 + jal sha2_finish + nop + + lw $4,72($sp) + lw $5,16($sp) + jal sha2_starts + nop + + lw $2,72($sp) + addiu $2,$2,168 + lw $4,72($sp) + move $5,$2 + li $6,64 # 0x40 + jal sha2_update + nop + + addiu $2,$sp,24 + lw $4,72($sp) + move $5,$2 + lw $6,20($sp) + jal sha2_update + nop + + lw $4,72($sp) + lw $5,76($sp) + jal sha2_finish + nop + + addiu $2,$sp,24 + move $4,$2 + move $5,$0 + li $6,32 # 0x20 + jal memset + nop + + lw $31,64($sp) + addiu $sp,$sp,72 + j $31 + nop + + .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,264,$31 # vars= 240, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-264 + sw $31,256($sp) + sw $4,264($sp) + sw $5,268($sp) + sw $6,272($sp) + sw $7,276($sp) + addiu $4,$sp,16 + lw $5,264($sp) + lw $6,268($sp) + lw $7,284($sp) + jal sha2_hmac_starts + nop + + addiu $4,$sp,16 + lw $5,272($sp) + lw $6,276($sp) + jal sha2_hmac_update + nop + + addiu $4,$sp,16 + lw $5,280($sp) + jal sha2_hmac_finish + nop + + addiu $4,$sp,16 + move $5,$0 + li $6,236 # 0xec + jal memset + nop + + lw $31,256($sp) + addiu $sp,$sp,264 + j $31 + nop + + .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= 1/0, args= 24, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-64 + sw $31,56($sp) + sw $4,64($sp) + sw $5,68($sp) + sw $6,72($sp) + sw $7,76($sp) + addiu $2,$sp,24 + sw $2,16($sp) + sw $0,20($sp) + lw $4,64($sp) + lw $5,68($sp) + lw $6,72($sp) + lw $7,76($sp) + jal sha2_hmac + nop + + lw $4,80($sp) + addiu $5,$sp,24 + lw $6,84($sp) + jal memcpy + nop + + addiu $4,$sp,24 + move $5,$0 + li $6,32 # 0x20 + jal memset + nop + + lw $31,56($sp) + addiu $sp,$sp,64 + j $31 + nop + + .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,40,$31 # vars= 8, regs= 1/0, args= 24, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-40 + sw $31,32($sp) + sw $4,40($sp) + sw $5,44($sp) + sw $6,48($sp) + sw $7,52($sp) + sw $0,24($sp) +$L31: + lw $2,60($sp) + sw $2,28($sp) + lw $2,28($sp) + bgez $2,$L34 + nop + + lw $3,28($sp) + addiu $3,$3,31 + sw $3,28($sp) +$L34: + lw $3,28($sp) + sra $2,$3,5 + beq $2,$0,$L32 + nop + + lw $2,24($sp) + sll $3,$2,5 + lw $2,56($sp) + addu $2,$3,$2 + sw $2,16($sp) + li $2,32 # 0x20 + sw $2,20($sp) + lw $4,40($sp) + lw $5,44($sp) + lw $6,48($sp) + lw $7,52($sp) + jal sha256_hmac + nop + + lw $2,24($sp) + sll $3,$2,5 + lw $2,56($sp) + addu $2,$3,$2 + sw $2,48($sp) + li $2,32 # 0x20 + sw $2,52($sp) + lw $2,24($sp) + addiu $2,$2,1 + sw $2,24($sp) + lw $2,60($sp) + addiu $2,$2,-32 + sw $2,60($sp) + j $L31 + nop + +$L32: + lw $2,60($sp) + blez $2,$L30 + nop + + lw $2,24($sp) + sll $3,$2,5 + lw $2,56($sp) + addu $2,$3,$2 + sw $2,16($sp) + lw $2,60($sp) + sw $2,20($sp) + lw $4,40($sp) + lw $5,44($sp) + lw $6,48($sp) + lw $7,52($sp) + jal sha256_hmac + nop + +$L30: + lw $31,32($sp) + addiu $sp,$sp,40 + j $31 + nop + + .set macro + .set reorder + .end KD_hmac_sha256 + .data + .align 2 + .type Sbox_tmp.3, @object + .size Sbox_tmp.3, 256 +Sbox_tmp.3: + .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.4, @object + .size CK_tmp.4, 128 +CK_tmp.4: + .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 + + addiu $sp,$sp,-24 + sw $31,16($sp) + lui $2,%hi(Sbox) + addiu $4,$2,%lo(Sbox) + lui $2,%hi(Sbox_tmp.3) + addiu $5,$2,%lo(Sbox_tmp.3) + li $6,256 # 0x100 + jal memcpy + nop + + lui $2,%hi(CK) + addiu $4,$2,%lo(CK) + lui $2,%hi(CK_tmp.4) + addiu $5,$2,%lo(CK_tmp.4) + li $6,128 # 0x80 + jal memcpy + nop + + li $2,1 # 0x1 + lw $31,16($sp) + addiu $sp,$sp,24 + j $31 + nop + + .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,32,$31 # vars= 32, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-32 + sw $4,32($sp) + sw $5,36($sp) + sw $6,40($sp) + lw $2,32($sp) + sw $2,24($sp) + lw $2,24($sp) + lw $2,0($2) + sw $2,8($sp) + lw $2,24($sp) + lw $2,4($2) + sw $2,12($sp) + lw $2,24($sp) + lw $2,8($2) + sw $2,16($sp) + lw $2,24($sp) + lw $2,12($2) + sw $2,20($sp) + sw $0,0($sp) +$L38: + lw $2,0($sp) + sltu $2,$2,32 + beq $2,$0,$L39 + nop + + lw $3,12($sp) + lw $2,16($sp) + xor $3,$3,$2 + lw $2,20($sp) + xor $4,$3,$2 + lw $2,0($sp) + sll $3,$2,2 + lw $2,40($sp) + addu $2,$3,$2 + lw $2,0($2) + xor $2,$4,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,4($sp) + sll $3,$2,2 + srl $2,$2,30 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,18 + srl $2,$2,14 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,24 + srl $2,$2,8 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,8($sp) + xor $2,$2,$3 + sw $2,8($sp) + lw $3,16($sp) + lw $2,20($sp) + xor $3,$3,$2 + lw $2,8($sp) + xor $4,$3,$2 + lw $2,0($sp) + sll $3,$2,2 + lw $2,40($sp) + addu $2,$3,$2 + lw $2,4($2) + xor $2,$4,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,4($sp) + sll $3,$2,2 + srl $2,$2,30 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,18 + srl $2,$2,14 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,24 + srl $2,$2,8 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,12($sp) + xor $2,$2,$3 + sw $2,12($sp) + lw $3,20($sp) + lw $2,8($sp) + xor $3,$3,$2 + lw $2,12($sp) + xor $4,$3,$2 + lw $2,0($sp) + sll $3,$2,2 + lw $2,40($sp) + addu $2,$3,$2 + lw $2,8($2) + xor $2,$4,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,4($sp) + sll $3,$2,2 + srl $2,$2,30 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,18 + srl $2,$2,14 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,24 + srl $2,$2,8 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,16($sp) + xor $2,$2,$3 + sw $2,16($sp) + lw $3,8($sp) + lw $2,12($sp) + xor $3,$3,$2 + lw $2,16($sp) + xor $4,$3,$2 + lw $2,0($sp) + sll $3,$2,2 + lw $2,40($sp) + addu $2,$3,$2 + lw $2,12($2) + xor $2,$4,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,4($sp) + sll $3,$2,2 + srl $2,$2,30 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,10 + srl $2,$2,22 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,18 + srl $2,$2,14 + or $2,$3,$2 + xor $4,$4,$2 + lw $2,4($sp) + sll $3,$2,24 + srl $2,$2,8 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,20($sp) + xor $2,$2,$3 + sw $2,20($sp) + lw $2,0($sp) + addiu $2,$2,4 + sw $2,0($sp) + j $L38 + nop + +$L39: + lw $2,36($sp) + sw $2,24($sp) + lw $3,24($sp) + lw $2,20($sp) + sw $2,0($3) + lw $3,24($sp) + lw $2,16($sp) + sw $2,4($3) + lw $3,24($sp) + lw $2,12($sp) + sw $2,8($3) + lw $3,24($sp) + lw $2,8($sp) + sw $2,12($3) + addiu $sp,$sp,32 + j $31 + nop + + .set macro + .set reorder + .end SMS4Crypt + .section .text.SMS4KeyExt,"ax",@progbits + .align 2 + .ent SMS4KeyExt + .type SMS4KeyExt, @function +SMS4KeyExt: + .set nomips16 + .frame $sp,32,$31 # vars= 32, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-32 + sw $4,32($sp) + sw $5,36($sp) + lw $2,32($sp) + sw $2,24($sp) + lw $2,24($sp) + lw $2,0($2) + sw $2,8($sp) + lw $2,24($sp) + lw $2,4($2) + sw $2,12($sp) + lw $2,24($sp) + lw $2,8($2) + sw $2,16($sp) + lw $2,24($sp) + lw $2,12($2) + sw $2,20($sp) + lw $3,8($sp) + li $2,-1548681216 # 0xa3b10000 + ori $2,$2,0xbac6 + xor $2,$3,$2 + sw $2,8($sp) + lw $3,12($sp) + li $2,1453981696 # 0x56aa0000 + ori $2,$2,0x3350 + xor $2,$3,$2 + sw $2,12($sp) + lw $3,16($sp) + li $2,1736245248 # 0x677d0000 + ori $2,$2,0x9197 + xor $2,$3,$2 + sw $2,16($sp) + lw $3,20($sp) + li $2,-1301282816 # 0xb2700000 + ori $2,$2,0x22dc + xor $2,$3,$2 + sw $2,20($sp) + sw $0,0($sp) +$L42: + lw $2,0($sp) + sltu $2,$2,32 + beq $2,$0,$L41 + nop + + lw $3,12($sp) + lw $2,16($sp) + xor $3,$3,$2 + lw $2,20($sp) + xor $5,$3,$2 + lui $4,%hi(CK) + lw $2,0($sp) + sll $3,$2,2 + addiu $2,$4,%lo(CK) + addu $2,$3,$2 + lw $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,0($sp) + sll $3,$2,2 + lw $2,36($sp) + addu $5,$3,$2 + lw $2,4($sp) + sll $3,$2,13 + srl $2,$2,19 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,23 + srl $2,$2,9 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,8($sp) + xor $2,$2,$3 + sw $2,8($sp) + sw $2,0($5) + lw $3,16($sp) + lw $2,20($sp) + xor $3,$3,$2 + lw $2,8($sp) + xor $5,$3,$2 + lui $4,%hi(CK) + lw $2,0($sp) + sll $3,$2,2 + addiu $2,$4,%lo(CK) + addu $2,$3,$2 + lw $2,4($2) + xor $2,$5,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,0($sp) + sll $3,$2,2 + lw $2,36($sp) + addu $5,$3,$2 + lw $2,4($sp) + sll $3,$2,13 + srl $2,$2,19 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,23 + srl $2,$2,9 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,12($sp) + xor $2,$2,$3 + sw $2,12($sp) + sw $2,4($5) + lw $3,20($sp) + lw $2,8($sp) + xor $3,$3,$2 + lw $2,12($sp) + xor $5,$3,$2 + lui $4,%hi(CK) + lw $2,0($sp) + sll $3,$2,2 + addiu $2,$4,%lo(CK) + addu $2,$3,$2 + lw $2,8($2) + xor $2,$5,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,0($sp) + sll $3,$2,2 + lw $2,36($sp) + addu $5,$3,$2 + lw $2,4($sp) + sll $3,$2,13 + srl $2,$2,19 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,23 + srl $2,$2,9 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,16($sp) + xor $2,$2,$3 + sw $2,16($sp) + sw $2,8($5) + lw $3,8($sp) + lw $2,12($sp) + xor $3,$3,$2 + lw $2,16($sp) + xor $5,$3,$2 + lui $4,%hi(CK) + lw $2,0($sp) + sll $3,$2,2 + addiu $2,$4,%lo(CK) + addu $2,$3,$2 + lw $2,12($2) + xor $2,$5,$2 + sw $2,4($sp) + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $3,$2,24 + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $5,$2,24 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,16 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,16 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + srl $2,$2,8 + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + sll $2,$2,8 + xor $5,$5,$2 + lui $4,%hi(Sbox) + lw $2,4($sp) + andi $3,$2,0xff + addiu $2,$4,%lo(Sbox) + addu $2,$3,$2 + lbu $2,0($2) + xor $2,$5,$2 + sw $2,4($sp) + lw $2,0($sp) + sll $3,$2,2 + lw $2,36($sp) + addu $5,$3,$2 + lw $2,4($sp) + sll $3,$2,13 + srl $2,$2,19 + or $3,$3,$2 + lw $2,4($sp) + xor $4,$3,$2 + lw $2,4($sp) + sll $3,$2,23 + srl $2,$2,9 + or $2,$3,$2 + xor $3,$4,$2 + lw $2,20($sp) + xor $2,$2,$3 + sw $2,20($sp) + sw $2,12($5) + lw $2,0($sp) + addiu $2,$2,4 + sw $2,0($sp) + j $L42 + nop + +$L41: + addiu $sp,$sp,32 + 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,64,$31 # vars= 40, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-64 + sw $31,56($sp) + sw $4,64($sp) + sw $5,68($sp) + sw $6,72($sp) + move $2,$7 + sh $2,76($sp) + lhu $2,76($sp) + andi $2,$2,0xf + sh $2,28($sp) + lhu $2,76($sp) + srl $2,$2,4 + andi $2,$2,0xffff + sw $2,16($sp) + sw $0,20($sp) +$L46: + lw $2,20($sp) + sltu $2,$2,16 + beq $2,$0,$L47 + nop + + lui $2,%hi(wapiBlockIn) + addiu $3,$2,%lo(wapiBlockIn) + lw $2,20($sp) + addu $4,$3,$2 + lw $3,68($sp) + lw $2,20($sp) + subu $2,$3,$2 + lbu $2,15($2) + sb $2,0($4) + lw $2,20($sp) + addiu $2,$2,1 + sw $2,20($sp) + j $L46 + nop + +$L47: + lw $4,64($sp) + lui $2,%hi(wapiRK) + addiu $5,$2,%lo(wapiRK) + jal SMS4KeyExt + nop + + lui $2,%hi(wapiBlockIn) + addiu $2,$2,%lo(wapiBlockIn) + sw $2,32($sp) + lui $2,%hi(wapiTempBlock) + addiu $2,$2,%lo(wapiTempBlock) + sw $2,36($sp) + sw $0,20($sp) +$L49: + lw $2,20($sp) + lw $3,16($sp) + sltu $2,$2,$3 + beq $2,$0,$L50 + nop + + lw $4,32($sp) + lw $5,36($sp) + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + + lw $2,80($sp) + sw $2,44($sp) + lw $2,72($sp) + sw $2,48($sp) + lw $2,36($sp) + sw $2,52($sp) + lw $5,44($sp) + lw $2,48($sp) + lw $3,52($sp) + lw $4,0($2) + lw $2,0($3) + xor $2,$4,$2 + sw $2,0($5) + lw $5,44($sp) + lw $2,48($sp) + lw $3,52($sp) + lw $4,4($2) + lw $2,4($3) + xor $2,$4,$2 + sw $2,4($5) + lw $5,44($sp) + lw $2,48($sp) + lw $3,52($sp) + lw $4,8($2) + lw $2,8($3) + xor $2,$4,$2 + sw $2,8($5) + lw $5,44($sp) + lw $2,48($sp) + lw $3,52($sp) + lw $4,12($2) + lw $2,12($3) + xor $2,$4,$2 + sw $2,12($5) + lw $2,32($sp) + sw $2,40($sp) + lw $2,36($sp) + sw $2,32($sp) + lw $2,40($sp) + sw $2,36($sp) + lw $2,80($sp) + addiu $2,$2,16 + sw $2,80($sp) + lw $2,72($sp) + addiu $2,$2,16 + sw $2,72($sp) + lw $2,20($sp) + addiu $2,$2,1 + sw $2,20($sp) + j $L49 + nop + +$L50: + lhu $2,28($sp) + beq $2,$0,$L53 + nop + + lw $4,84($sp) + lw $2,20($sp) + sll $2,$2,4 + move $3,$2 + lhu $2,28($sp) + addu $2,$3,$2 + sh $2,0($4) + lw $4,32($sp) + lw $5,36($sp) + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + + sw $0,24($sp) +$L54: + lhu $2,28($sp) + lw $3,24($sp) + sltu $2,$3,$2 + beq $2,$0,$L45 + nop + + lw $3,80($sp) + lw $2,24($sp) + addu $5,$3,$2 + lw $3,72($sp) + lw $2,24($sp) + addu $4,$3,$2 + lw $3,36($sp) + lw $2,24($sp) + addu $2,$3,$2 + lbu $3,0($4) + lbu $2,0($2) + xor $2,$3,$2 + sb $2,0($5) + lw $2,24($sp) + addiu $2,$2,1 + sw $2,24($sp) + j $L54 + nop + +$L53: + lw $3,84($sp) + lw $2,20($sp) + sll $2,$2,4 + sh $2,0($3) +$L45: + lw $31,56($sp) + addiu $sp,$sp,64 + j $31 + nop + + .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= 48, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + sw $31,64($sp) + sw $4,72($sp) + sw $5,76($sp) + sw $6,80($sp) + move $2,$7 + lw $3,92($sp) + sb $2,84($sp) + sh $3,16($sp) + lbu $2,84($sp) + andi $2,$2,0xf + sw $2,28($sp) + lbu $2,84($sp) + srl $2,$2,4 + andi $2,$2,0x00ff + sw $2,20($sp) + sw $0,24($sp) +$L59: + lw $2,24($sp) + sltu $2,$2,16 + beq $2,$0,$L60 + nop + + lui $2,%hi(wapiBlockIn) + addiu $3,$2,%lo(wapiBlockIn) + lw $2,24($sp) + addu $4,$3,$2 + lw $3,76($sp) + lw $2,24($sp) + subu $2,$3,$2 + lbu $2,15($2) + sb $2,0($4) + lw $2,24($sp) + addiu $2,$2,1 + sw $2,24($sp) + j $L59 + nop + +$L60: + lw $4,72($sp) + lui $2,%hi(wapiRK) + addiu $5,$2,%lo(wapiRK) + jal SMS4KeyExt + nop + + addiu $3,$sp,32 + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + move $5,$3 + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + + sw $0,24($sp) +$L62: + lw $2,24($sp) + lw $3,20($sp) + sltu $2,$2,$3 + beq $2,$0,$L63 + nop + + lui $2,%hi(wapiBlockIn) + addiu $2,$2,%lo(wapiBlockIn) + sw $2,48($sp) + lw $2,80($sp) + sw $2,52($sp) + addiu $2,$sp,32 + sw $2,56($sp) + lw $5,48($sp) + lw $2,52($sp) + lw $3,56($sp) + lw $4,0($2) + lw $2,0($3) + xor $2,$4,$2 + sw $2,0($5) + lw $5,48($sp) + lw $2,52($sp) + lw $3,56($sp) + lw $4,4($2) + lw $2,4($3) + xor $2,$4,$2 + sw $2,4($5) + lw $5,48($sp) + lw $2,52($sp) + lw $3,56($sp) + lw $4,8($2) + lw $2,8($3) + xor $2,$4,$2 + sw $2,8($5) + lw $5,48($sp) + lw $2,52($sp) + lw $3,56($sp) + lw $4,12($2) + lw $2,12($3) + xor $2,$4,$2 + sw $2,12($5) + addiu $3,$sp,32 + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + move $5,$3 + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + + lw $2,80($sp) + addiu $2,$2,16 + sw $2,80($sp) + lw $2,24($sp) + addiu $2,$2,1 + sw $2,24($sp) + j $L62 + nop + +$L63: + lw $2,28($sp) + beq $2,$0,$L66 + nop + + lw $3,28($sp) + lui $2,%hi(wapiTempBlock) + addiu $2,$2,%lo(wapiTempBlock) + addu $4,$3,$2 + li $3,16 # 0x10 + lw $2,28($sp) + subu $2,$3,$2 + move $5,$0 + move $6,$2 + jal memset + nop + + lui $2,%hi(wapiTempBlock) + addiu $4,$2,%lo(wapiTempBlock) + lw $5,80($sp) + lw $6,28($sp) + jal memcpy + nop + + lui $2,%hi(wapiBlockIn) + addiu $2,$2,%lo(wapiBlockIn) + sw $2,56($sp) + lui $2,%hi(wapiTempBlock) + addiu $2,$2,%lo(wapiTempBlock) + sw $2,52($sp) + addiu $2,$sp,32 + sw $2,48($sp) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,0($2) + lw $2,0($3) + xor $2,$4,$2 + sw $2,0($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,4($2) + lw $2,4($3) + xor $2,$4,$2 + sw $2,4($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,8($2) + lw $2,8($3) + xor $2,$4,$2 + sw $2,8($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,12($2) + lw $2,12($3) + xor $2,$4,$2 + sw $2,12($5) + addiu $3,$sp,32 + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + move $5,$3 + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + +$L66: + lhu $2,16($sp) + andi $2,$2,0xf + sw $2,28($sp) + lhu $2,16($sp) + srl $2,$2,4 + andi $2,$2,0xffff + sw $2,20($sp) + sw $0,24($sp) +$L68: + lw $2,24($sp) + lw $3,20($sp) + sltu $2,$2,$3 + beq $2,$0,$L69 + nop + + lui $2,%hi(wapiBlockIn) + addiu $2,$2,%lo(wapiBlockIn) + sw $2,56($sp) + lw $2,88($sp) + sw $2,52($sp) + addiu $2,$sp,32 + sw $2,48($sp) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,0($2) + lw $2,0($3) + xor $2,$4,$2 + sw $2,0($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,4($2) + lw $2,4($3) + xor $2,$4,$2 + sw $2,4($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,8($2) + lw $2,8($3) + xor $2,$4,$2 + sw $2,8($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,12($2) + lw $2,12($3) + xor $2,$4,$2 + sw $2,12($5) + addiu $3,$sp,32 + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + move $5,$3 + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + + lw $2,88($sp) + addiu $2,$2,16 + sw $2,88($sp) + lw $2,24($sp) + addiu $2,$2,1 + sw $2,24($sp) + j $L68 + nop + +$L69: + lw $2,28($sp) + beq $2,$0,$L72 + nop + + lw $3,28($sp) + lui $2,%hi(wapiTempBlock) + addiu $2,$2,%lo(wapiTempBlock) + addu $4,$3,$2 + li $3,16 # 0x10 + lw $2,28($sp) + subu $2,$3,$2 + move $5,$0 + move $6,$2 + jal memset + nop + + lui $2,%hi(wapiTempBlock) + addiu $4,$2,%lo(wapiTempBlock) + lw $5,88($sp) + lw $6,28($sp) + jal memcpy + nop + + lui $2,%hi(wapiBlockIn) + addiu $2,$2,%lo(wapiBlockIn) + sw $2,56($sp) + lui $2,%hi(wapiTempBlock) + addiu $2,$2,%lo(wapiTempBlock) + sw $2,52($sp) + addiu $2,$sp,32 + sw $2,48($sp) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,0($2) + lw $2,0($3) + xor $2,$4,$2 + sw $2,0($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,4($2) + lw $2,4($3) + xor $2,$4,$2 + sw $2,4($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,8($2) + lw $2,8($3) + xor $2,$4,$2 + sw $2,8($5) + lw $5,56($sp) + lw $2,52($sp) + lw $3,48($sp) + lw $4,12($2) + lw $2,12($3) + xor $2,$4,$2 + sw $2,12($5) + addiu $3,$sp,32 + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + move $5,$3 + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + +$L72: + addiu $2,$sp,32 + lw $4,96($sp) + move $5,$2 + li $6,16 # 0x10 + jal memcpy + nop + + lw $31,64($sp) + addiu $sp,$sp,72 + j $31 + nop + + .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,40,$31 # vars= 16, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-40 + sw $31,32($sp) + sw $4,40($sp) + sw $5,44($sp) + sw $6,48($sp) + sw $7,52($sp) + lw $2,60($sp) + sb $0,0($2) + lw $2,52($sp) + andi $2,$2,0xf + sw $2,28($sp) + lw $2,52($sp) + srl $2,$2,4 + sw $2,16($sp) + lw $2,28($sp) + beq $2,$0,$L75 + nop + + lw $2,16($sp) + addiu $2,$2,1 + sw $2,16($sp) +$L75: + lw $2,28($sp) + beq $2,$0,$L76 + nop + + lw $2,52($sp) + sw $2,24($sp) +$L77: + lw $2,16($sp) + sll $3,$2,4 + lw $2,24($sp) + sltu $2,$2,$3 + beq $2,$0,$L76 + nop + + lw $3,48($sp) + lw $2,24($sp) + addu $2,$3,$2 + sb $0,0($2) + lw $2,24($sp) + addiu $2,$2,1 + sw $2,24($sp) + j $L77 + nop + +$L76: + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + lw $5,44($sp) + li $6,16 # 0x10 + jal memcpy + nop + + lw $4,40($sp) + lui $2,%hi(wapiRK) + addiu $5,$2,%lo(wapiRK) + jal SMS4KeyExt + nop + + sw $0,20($sp) +$L80: + lw $2,20($sp) + lw $3,16($sp) + sltu $2,$2,$3 + beq $2,$0,$L74 + nop + + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + lui $2,%hi(wapiTempBlock) + addiu $5,$2,%lo(wapiTempBlock) + lui $2,%hi(wapiRK) + addiu $6,$2,%lo(wapiRK) + jal SMS4Crypt + nop + + lw $3,60($sp) + lw $2,60($sp) + lbu $2,0($2) + addiu $2,$2,16 + sb $2,0($3) + sw $0,24($sp) +$L83: + lw $2,24($sp) + sltu $2,$2,16 + beq $2,$0,$L84 + nop + + lw $2,20($sp) + sll $3,$2,4 + lw $2,56($sp) + addu $3,$3,$2 + lw $2,24($sp) + addu $5,$3,$2 + lw $2,20($sp) + sll $3,$2,4 + lw $2,48($sp) + addu $3,$3,$2 + lw $2,24($sp) + addu $4,$3,$2 + lui $2,%hi(wapiTempBlock) + addiu $3,$2,%lo(wapiTempBlock) + lw $2,24($sp) + addu $2,$3,$2 + lbu $3,0($4) + lbu $2,0($2) + xor $2,$3,$2 + sb $2,0($5) + lw $2,24($sp) + addiu $2,$2,1 + sw $2,24($sp) + j $L83 + nop + +$L84: + lui $2,%hi(wapiBlockIn) + addiu $4,$2,%lo(wapiBlockIn) + lui $2,%hi(wapiTempBlock) + addiu $5,$2,%lo(wapiTempBlock) + li $6,16 # 0x10 + jal memcpy + nop + + lw $2,20($sp) + addiu $2,$2,1 + sw $2,20($sp) + j $L80 + nop + +$L74: + lw $31,32($sp) + addiu $sp,$sp,40 + j $31 + nop + + .set macro + .set reorder + .end WapiSMS4ForMNKEncrypt + .local TempBuf.5 + .comm TempBuf.5,34,4 + .section .text.SecCalculateMicSMS4,"ax",@progbits + .align 2 + .globl SecCalculateMicSMS4 + .ent SecCalculateMicSMS4 + .type SecCalculateMicSMS4, @function +SecCalculateMicSMS4: + .set nomips16 + .frame $sp,64,$31 # vars= 24, regs= 1/0, args= 32, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-64 + sw $31,56($sp) + move $3,$4 + sw $5,68($sp) + sw $6,72($sp) + sw $7,76($sp) + lw $2,80($sp) + sb $3,64($sp) + sh $2,32($sp) + lui $3,%hi(TempBuf.5) + lw $2,72($sp) + lhu $2,0($2) + sh $2,%lo(TempBuf.5)($3) + lui $2,%hi(TempBuf.5) + addiu $2,$2,%lo(TempBuf.5) + sw $2,40($sp) + lui $4,%hi(TempBuf.5) + lui $2,%hi(TempBuf.5) + li $3,-28729 + lhu $2,%lo(TempBuf.5)($2) + and $2,$2,$3 + sh $2,%lo(TempBuf.5)($4) + lw $2,72($sp) + addiu $3,$2,4 + lui $2,%hi(TempBuf.5+2) + addiu $4,$2,%lo(TempBuf.5+2) + move $5,$3 + li $6,12 # 0xc + jal memcpy + nop + + lw $2,72($sp) + addiu $3,$2,22 + lui $2,%hi(TempBuf.5+14) + addiu $4,$2,%lo(TempBuf.5+14) + move $5,$3 + li $6,2 # 0x2 + jal memcpy + nop + + lui $2,%hi(TempBuf.5+14) + addiu $2,$2,%lo(TempBuf.5+14) + sw $2,40($sp) + lui $3,%hi(TempBuf.5+14) + lui $2,%hi(TempBuf.5+14) + lhu $2,%lo(TempBuf.5+14)($2) + andi $2,$2,0xf00 + sh $2,%lo(TempBuf.5+14)($3) + lw $2,72($sp) + addiu $3,$2,16 + lui $2,%hi(TempBuf.5+16) + addiu $4,$2,%lo(TempBuf.5+16) + move $5,$3 + li $6,6 # 0x6 + jal memcpy + nop + + lw $2,72($sp) + lhu $2,0($2) + andi $2,$2,0x1 + sll $3,$2,1 + lw $2,72($sp) + lhu $2,0($2) + srl $2,$2,1 + andi $2,$2,0x1 + or $3,$3,$2 + li $2,3 # 0x3 + bne $3,$2,$L87 + nop + + lw $2,72($sp) + addiu $3,$2,24 + lui $2,%hi(TempBuf.5+22) + addiu $4,$2,%lo(TempBuf.5+22) + move $5,$3 + li $6,6 # 0x6 + jal memcpy + nop + + li $2,30 + sb $2,35($sp) + j $L90 + nop + +$L87: + lui $2,%hi(TempBuf.5+22) + addiu $4,$2,%lo(TempBuf.5+22) + move $5,$0 + li $6,6 # 0x6 + jal memset + nop + + li $2,24 + sb $2,35($sp) +$L90: + lw $2,72($sp) + lhu $2,0($2) + sh $2,44($sp) + lhu $2,44($sp) + andi $2,$2,0xff + sll $3,$2,8 + lhu $2,44($sp) + andi $2,$2,0xff00 + sra $2,$2,8 + or $2,$3,$2 + andi $2,$2,0xffff + sw $2,48($sp) + lw $2,48($sp) + andi $2,$2,0xffff + andi $3,$2,0x88 + li $2,136 # 0x88 + beq $3,$2,$L91 + nop + + j $L89 + nop + +$L91: + lbu $3,35($sp) + lw $2,72($sp) + addu $3,$3,$2 + lui $2,%hi(TempBuf.5+28) + addiu $4,$2,%lo(TempBuf.5+28) + move $5,$3 + li $6,2 # 0x2 + jal memcpy + nop + + li $2,34 + sb $2,34($sp) + lbu $3,35($sp) + lw $2,72($sp) + addu $2,$3,$2 + addiu $2,$2,4 + sw $2,36($sp) + j $L93 + nop + +$L89: + li $2,32 + sb $2,34($sp) + lbu $3,35($sp) + lw $2,72($sp) + addu $2,$3,$2 + addiu $2,$2,2 + sw $2,36($sp) +$L93: + lui $2,%hi(TempBuf.5) + lbu $3,34($sp) + addiu $2,$2,%lo(TempBuf.5) + addu $3,$3,$2 + lhu $2,32($sp) + sb $2,-1($3) + lui $2,%hi(TempBuf.5) + lbu $3,34($sp) + addiu $2,$2,%lo(TempBuf.5) + addu $3,$3,$2 + lhu $2,32($sp) + andi $2,$2,0xff00 + sra $2,$2,8 + sb $2,-2($3) + lui $2,%hi(TempBuf.5) + lbu $3,34($sp) + addiu $2,$2,%lo(TempBuf.5) + addu $2,$3,$2 + sb $0,-3($2) + lui $2,%hi(TempBuf.5) + lbu $3,34($sp) + addiu $2,$2,%lo(TempBuf.5) + addu $3,$3,$2 + lbu $2,64($sp) + sb $2,-4($3) + lbu $3,34($sp) + lw $2,76($sp) + sw $2,16($sp) + lhu $2,32($sp) + sw $2,20($sp) + lw $2,84($sp) + sw $2,24($sp) + lw $4,68($sp) + lw $5,36($sp) + lui $2,%hi(TempBuf.5) + addiu $6,$2,%lo(TempBuf.5) + move $7,$3 + jal WapiSMS4CalculateMic + nop + + lw $31,56($sp) + addiu $sp,$sp,64 + j $31 + nop + + .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,88,$31 # vars= 56, regs= 1/0, args= 24, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-88 + sw $31,80($sp) + sw $4,88($sp) + sw $5,92($sp) + lw $2,92($sp) + lw $2,8($2) + sw $2,32($sp) + lw $2,92($sp) + lw $2,68($2) + bne $2,$0,$L95 + nop + + lw $3,88($sp) + li $2,65536 # 0x10000 + addu $2,$2,$3 + lw $2,15776($2) + sw $2,72($sp) + lw $2,88($sp) + lw $2,1232($2) + srl $2,$2,15 + andi $2,$2,0x1 + sb $2,36($sp) + lw $2,88($sp) + addiu $2,$2,928 + sw $2,52($sp) + lbu $2,36($sp) + sll $3,$2,5 + lw $2,88($sp) + addu $2,$3,$2 + addiu $2,$2,1254 + sw $2,44($sp) + lbu $2,36($sp) + sll $3,$2,5 + lw $2,88($sp) + addu $2,$3,$2 + addiu $2,$2,1238 + sw $2,48($sp) + lw $4,52($sp) + li $5,1 # 0x1 + jal WapiIncreasePN + nop + + sw $2,64($sp) + lw $2,64($sp) + bne $2,$0,$L96 + nop + + lw $2,88($sp) + lw $2,1232($2) + andi $2,$2,0x2000 + bne $2,$0,$L96 + nop + + lw $2,72($sp) + beq $2,$0,$L97 + nop + + lw $2,72($sp) + lw $2,6676($2) + beq $2,$0,$L97 + nop + + lw $2,72($sp) + lw $2,6676($2) + lw $2,352($2) + andi $2,$2,0x1000 + bne $2,$0,$L96 + nop + +$L97: + lw $4,88($sp) + move $5,$0 + jal wapiUpdateMSK + nop + +$L96: + lw $2,88($sp) + lw $3,92($sp) + lw $4,1304($2) + lw $2,20($3) + sltu $2,$2,$4 + bne $2,$0,$L100 + nop + + lw $3,88($sp) + lw $2,88($sp) + lw $2,8($2) + lw $2,5260($2) + sw $2,1304($3) + lw $2,88($sp) + lw $2,8($2) + lw $3,5252($2) + li $2,3 # 0x3 + beq $3,$2,$L102 + nop + + lw $2,88($sp) + lw $2,8($2) + lw $3,5252($2) + li $2,4 # 0x4 + beq $3,$2,$L102 + nop + + j $L106 + nop + +$L102: + lw $2,88($sp) + lw $2,1232($2) + andi $2,$2,0x2000 + bne $2,$0,$L106 + nop + + lw $2,72($sp) + beq $2,$0,$L103 + nop + + lw $2,72($sp) + lw $2,6676($2) + beq $2,$0,$L103 + nop + + lw $2,72($sp) + lw $2,6676($2) + lw $2,352($2) + andi $2,$2,0x1000 + bne $2,$0,$L106 + nop + +$L103: + lw $4,88($sp) + move $5,$0 + jal wapiUpdateMSK + nop + + j $L106 + nop + +$L100: + lw $5,88($sp) + lw $2,88($sp) + lw $3,92($sp) + lw $4,1304($2) + lw $2,20($3) + subu $2,$4,$2 + sw $2,1304($5) +$L106: + lw $2,88($sp) + lw $2,8($2) + lw $2,668($2) + sw $2,68($sp) + j $L107 + nop + +$L95: + lw $2,92($sp) + lw $2,68($2) + lw $2,6676($2) + sw $2,28($sp) + lw $2,28($sp) + lw $2,352($2) + srl $2,$2,15 + andi $2,$2,0x1 + sb $2,36($sp) + lw $2,28($sp) + addiu $2,$2,432 + sw $2,52($sp) + lbu $2,36($sp) + sll $3,$2,5 + lw $2,28($sp) + addu $2,$3,$2 + addiu $2,$2,504 + sw $2,44($sp) + lbu $2,36($sp) + sll $3,$2,5 + lw $2,28($sp) + addu $2,$3,$2 + addiu $2,$2,488 + sw $2,48($sp) + lw $4,52($sp) + li $5,2 # 0x2 + jal WapiIncreasePN + nop + + sw $2,64($sp) + lw $2,64($sp) + bne $2,$0,$L108 + nop + + lw $2,28($sp) + lw $2,352($2) + andi $2,$2,0x1000 + bne $2,$0,$L108 + nop + + lw $2,88($sp) + lw $2,1232($2) + andi $2,$2,0x2000 + bne $2,$0,$L108 + nop + + lw $2,92($sp) + lw $4,88($sp) + lw $5,68($2) + jal wapiUpdateUSK + nop + +$L108: + lw $2,28($sp) + lw $3,92($sp) + lw $4,596($2) + lw $2,20($3) + sltu $2,$2,$4 + bne $2,$0,$L112 + nop + + lw $3,28($sp) + lw $2,88($sp) + lw $2,8($2) + lw $2,5248($2) + sw $2,596($3) + lw $2,28($sp) + lw $2,652($2) + lw $2,8($2) + lw $3,5240($2) + li $2,3 # 0x3 + beq $3,$2,$L114 + nop + + lw $2,28($sp) + lw $2,652($2) + lw $2,8($2) + lw $3,5240($2) + li $2,4 # 0x4 + beq $3,$2,$L114 + nop + + j $L118 + nop + +$L114: + lw $2,28($sp) + lw $2,352($2) + andi $2,$2,0x1000 + bne $2,$0,$L118 + nop + + lw $2,88($sp) + lw $2,1232($2) + andi $2,$2,0x2000 + bne $2,$0,$L118 + nop + + lw $2,92($sp) + lw $4,88($sp) + lw $5,68($2) + jal wapiUpdateUSK + nop + + j $L118 + nop + +$L112: + lw $5,28($sp) + lw $2,28($sp) + lw $3,92($sp) + lw $4,596($2) + lw $2,20($3) + subu $2,$4,$2 + sw $2,596($5) +$L118: + lw $2,92($sp) + lw $2,68($2) + lw $2,6124($2) + sw $2,68($sp) +$L107: + lw $2,92($sp) + lw $3,12($2) + lw $2,32($sp) + addu $2,$3,$2 + sw $2,56($sp) + lw $3,56($sp) + lbu $2,36($sp) + sb $2,0($3) + lw $2,56($sp) + sb $0,1($2) + lw $2,56($sp) + addiu $2,$2,2 + move $4,$2 + lw $5,52($sp) + li $6,16 # 0x10 + jal memcpy + nop + + lw $3,68($sp) + li $2,1 # 0x1 + beq $3,$2,$L119 + nop + + lw $2,92($sp) + lw $4,4($2) + lw $2,92($sp) + lbu $3,56($2) + lw $2,176($4) + subu $2,$2,$3 + sw $2,60($sp) + lw $2,92($sp) + lw $2,4($2) + lw $3,92($sp) + lw $4,176($2) + lw $2,20($3) + addu $2,$4,$2 + sw $2,40($sp) + lw $2,92($sp) + lbu $2,56($2) + beq $2,$0,$L120 + nop + + lw $2,92($sp) + lw $3,12($2) + lw $2,32($sp) + addu $3,$3,$2 + lw $2,92($sp) + lw $2,44($2) + addu $3,$3,$2 + lw $2,92($sp) + lbu $2,56($2) + lw $4,60($sp) + move $5,$3 + move $6,$2 + jal memcpy + nop + +$L120: + lbu $5,36($sp) + lw $2,92($sp) + lw $4,20($2) + lw $2,92($sp) + lbu $3,56($2) + move $2,$4 + addu $2,$3,$2 + andi $2,$2,0xffff + sw $2,16($sp) + lw $2,40($sp) + sw $2,20($sp) + move $4,$5 + lw $5,44($sp) + lw $6,32($sp) + lw $7,60($sp) + jal SecCalculateMicSMS4 + nop + + lw $2,92($sp) + lw $4,20($2) + lw $2,92($sp) + lbu $3,56($2) + move $2,$4 + addu $2,$3,$2 + addiu $2,$2,16 + andi $3,$2,0xffff + lw $2,60($sp) + sw $2,16($sp) + addiu $2,$sp,24 + sw $2,20($sp) + lw $4,48($sp) + lw $5,52($sp) + lw $6,60($sp) + move $7,$3 + jal WapiSMS4Cryption + nop + + lw $3,56($sp) + lw $2,60($sp) + lw $2,0($2) + sw $2,18($3) + lw $3,56($sp) + lw $2,60($sp) + lw $2,4($2) + sw $2,22($3) + j $L94 + nop + +$L119: + lw $2,92($sp) + sw $0,52($2) +$L94: + lw $31,80($sp) + addiu $sp,$sp,88 + j $31 + nop + + .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,104,$31 # vars= 72, regs= 1/0, args= 24, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-104 + sw $31,96($sp) + sw $4,104($sp) + sw $5,108($sp) + sw $6,112($sp) + lw $2,108($sp) + lw $2,6676($2) + sw $2,28($sp) + lw $2,112($sp) + lw $2,0($2) + lw $2,176($2) + sw $2,32($sp) + lw $2,112($sp) + lw $2,32($2) + sb $2,24($sp) + lbu $2,24($sp) + addiu $2,$2,18 + sb $2,25($sp) + lbu $3,24($sp) + lw $2,32($sp) + addu $2,$3,$2 + sw $2,72($sp) + lw $2,32($sp) + addiu $2,$2,4 + sw $2,36($sp) + lw $2,32($sp) + addiu $2,$2,10 + sw $2,40($sp) + lw $2,72($sp) + lbu $2,0($2) + sb $2,44($sp) + lw $2,72($sp) + addiu $2,$2,2 + sw $2,56($sp) + lw $2,36($sp) + lbu $2,0($2) + andi $2,$2,0x1 + beq $2,$0,$L123 + nop + + lw $4,104($sp) + lw $5,40($sp) + jal get_stainfo + nop + + sw $2,80($sp) + lw $2,80($sp) + beq $2,$0,$L125 + nop + + lw $2,80($sp) + lw $2,6676($2) + beq $2,$0,$L125 + nop + + lw $2,80($sp) + lw $2,6676($2) + lw $2,352($2) + andi $2,$2,0x800 + beq $2,$0,$L125 + nop + + lw $2,104($sp) + lw $2,1232($2) + srl $2,$2,15 + andi $2,$2,0x1 + lbu $3,44($sp) + andi $2,$2,0x00ff + beq $3,$2,$L124 + nop + + lw $2,104($sp) + lw $2,1232($2) + andi $2,$2,0x2000 + bne $2,$0,$L124 + nop + +$L125: + sw $0,88($sp) + j $L122 + nop + +$L124: + lw $2,104($sp) + addiu $2,$2,944 + lw $4,56($sp) + move $5,$2 + jal WapiComparePN + nop + + move $3,$2 + li $2,-1 # 0xffffffff + bne $3,$2,$L126 + nop + + sw $0,88($sp) + j $L122 + nop + +$L126: + lw $2,104($sp) + addiu $2,$2,944 + move $4,$2 + lw $5,56($sp) + li $6,16 # 0x10 + jal memcpy + nop + + lbu $2,44($sp) + sll $3,$2,5 + lw $2,104($sp) + addu $2,$3,$2 + addiu $2,$2,1254 + sw $2,48($sp) + lbu $2,44($sp) + sll $3,$2,5 + lw $2,104($sp) + addu $2,$3,$2 + addiu $2,$2,1238 + sw $2,52($sp) + lw $2,104($sp) + lw $2,8($2) + lw $2,668($2) + sw $2,84($sp) + j $L127 + nop + +$L123: + lw $2,28($sp) + lw $2,352($2) + andi $2,$2,0x4000 + beq $2,$0,$L129 + nop + + lw $2,28($sp) + lw $2,352($2) + srl $2,$2,15 + andi $2,$2,0x1 + lbu $3,44($sp) + andi $2,$2,0x00ff + beq $3,$2,$L128 + nop + + lw $2,104($sp) + lw $2,1232($2) + andi $2,$2,0x2000 + bne $2,$0,$L128 + nop + +$L129: + sw $0,88($sp) + j $L122 + nop + +$L128: + lw $2,112($sp) + lhu $2,38($2) + beq $2,$0,$L131 + nop + + lw $2,112($sp) + lhu $3,38($2) + li $2,3 # 0x3 + beq $3,$2,$L131 + nop + + j $L130 + nop + +$L131: + sb $0,76($sp) + j $L132 + nop + +$L130: + lw $2,112($sp) + lhu $2,38($2) + sltu $2,$2,3 + beq $2,$0,$L133 + nop + + li $2,1 + sb $2,76($sp) + j $L132 + nop + +$L133: + lw $2,112($sp) + lhu $2,38($2) + sltu $2,$2,6 + beq $2,$0,$L135 + nop + + li $2,2 + sb $2,76($sp) + j $L132 + nop + +$L135: + li $2,3 + sb $2,76($sp) +$L132: + lw $2,56($sp) + lbu $2,15($2) + andi $2,$2,0x1 + beq $2,$0,$L137 + nop + + sw $0,88($sp) + j $L122 + nop + +$L137: + lw $4,112($sp) + lw $3,28($sp) + lbu $2,76($sp) + sll $2,$2,1 + addu $2,$2,$3 + lhu $3,36($4) + lhu $2,448($2) + sltu $2,$3,$2 + bne $2,$0,$L138 + nop + + lbu $2,76($sp) + sll $3,$2,4 + lw $2,28($sp) + addu $2,$3,$2 + addiu $2,$2,368 + lw $4,56($sp) + move $5,$2 + jal WapiComparePN + nop + + move $3,$2 + li $2,-1 # 0xffffffff + bne $3,$2,$L139 + nop + + sw $0,88($sp) + j $L122 + nop + +$L139: + lbu $2,76($sp) + sll $3,$2,4 + lw $2,28($sp) + addu $2,$3,$2 + addiu $2,$2,368 + move $4,$2 + lw $5,56($sp) + li $6,16 # 0x10 + jal memcpy + nop + + lw $3,28($sp) + lbu $2,76($sp) + sll $2,$2,1 + addu $3,$2,$3 + lw $2,112($sp) + lhu $2,36($2) + sh $2,448($3) + j $L140 + nop + +$L138: + lui $2,%hi(wapiCryptoTemp) + addiu $4,$2,%lo(wapiCryptoTemp) + lw $5,56($sp) + li $6,16 # 0x10 + jal memcpy + nop + + lw $3,28($sp) + lbu $2,76($sp) + sll $2,$2,1 + addu $2,$2,$3 + lhu $3,448($2) + lw $2,112($sp) + lhu $2,36($2) + subu $2,$3,$2 + addiu $2,$2,1 + sll $2,$2,1 + andi $3,$2,0x00ff + lui $2,%hi(wapiCryptoTemp) + addiu $4,$2,%lo(wapiCryptoTemp) + move $5,$3 + jal WapiIncreasePN + nop + + lbu $2,76($sp) + sll $3,$2,4 + lw $2,28($sp) + addu $2,$3,$2 + addiu $3,$2,368 + lui $2,%hi(wapiCryptoTemp) + addiu $4,$2,%lo(wapiCryptoTemp) + move $5,$3 + jal WapiComparePN + nop + + move $3,$2 + li $2,-1 # 0xffffffff + bne $3,$2,$L140 + nop + + sw $0,88($sp) + j $L122 + nop + +$L140: + lbu $2,44($sp) + sll $3,$2,5 + lw $2,28($sp) + addu $2,$3,$2 + addiu $2,$2,504 + sw $2,48($sp) + lbu $2,44($sp) + sll $3,$2,5 + lw $2,28($sp) + addu $2,$3,$2 + addiu $2,$2,488 + sw $2,52($sp) + lw $2,108($sp) + lw $2,6124($2) + sw $2,84($sp) +$L127: + lw $3,84($sp) + li $2,1 # 0x1 + beq $3,$2,$L142 + nop + + lbu $3,25($sp) + lw $2,32($sp) + addu $2,$3,$2 + sw $2,60($sp) + lw $2,112($sp) + lw $2,12($2) + sh $2,70($sp) + lbu $3,25($sp) + lhu $2,70($sp) + subu $2,$2,$3 + sh $2,68($sp) + lhu $3,70($sp) + lw $2,32($sp) + addu $2,$3,$2 + addiu $2,$2,-16 + sw $2,64($sp) + lhu $3,68($sp) + lui $2,%hi(wapiDecrytBuf) + addiu $4,$2,%lo(wapiDecrytBuf) + lw $5,60($sp) + move $6,$3 + jal memcpy + nop + + lbu $3,25($sp) + lui $2,%hi(wapiDecrytHdrBuf) + addiu $4,$2,%lo(wapiDecrytHdrBuf) + lw $5,32($sp) + move $6,$3 + jal memcpy + nop + + lhu $3,68($sp) + lw $2,60($sp) + sw $2,16($sp) + addiu $2,$sp,26 + sw $2,20($sp) + lw $4,52($sp) + lw $5,56($sp) + lui $2,%hi(wapiDecrytBuf) + addiu $6,$2,%lo(wapiDecrytBuf) + move $7,$3 + jal WapiSMS4Cryption + nop + + lhu $2,68($sp) + addiu $2,$2,-16 + sh $2,68($sp) + lbu $3,44($sp) + lhu $2,68($sp) + sw $2,16($sp) + lui $2,%hi(wapiCryptoTemp) + addiu $2,$2,%lo(wapiCryptoTemp) + sw $2,20($sp) + move $4,$3 + lw $5,48($sp) + lui $2,%hi(wapiDecrytHdrBuf) + addiu $6,$2,%lo(wapiDecrytHdrBuf) + lw $7,60($sp) + jal SecCalculateMicSMS4 + nop + + lui $2,%hi(wapiCryptoTemp) + addiu $4,$2,%lo(wapiCryptoTemp) + lw $5,64($sp) + li $6,16 # 0x10 + jal memcmp + nop + + beq $2,$0,$L142 + nop + + sw $0,88($sp) + j $L122 + nop + +$L142: + li $2,1 # 0x1 + sw $2,88($sp) +$L122: + lw $2,88($sp) + lw $31,96($sp) + addiu $sp,$sp,104 + j $31 + nop + + .set macro + .set reorder + .end SecSWSMS4Decryption + .data + .align 2 + .type mti, @object + .size mti, 4 +mti: + .word 625 + .section .text.WapiMTgenSeed,"ax",@progbits + .align 2 + .globl WapiMTgenSeed + .ent WapiMTgenSeed + .type WapiMTgenSeed, @function +WapiMTgenSeed: + .set nomips16 + .frame $sp,8,$31 # vars= 8, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-8 + sw $4,8($sp) + li $2,1812398080 # 0x6c070000 + ori $2,$2,0x8965 + sw $2,0($sp) + lui $3,%hi(mt) + lw $2,8($sp) + sw $2,%lo(mt)($3) + lui $3,%hi(mti) + li $2,1 # 0x1 + sw $2,%lo(mti)($3) +$L145: + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + slt $2,$2,624 + beq $2,$0,$L144 + nop + + lui $4,%hi(mt) + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $6,$3,$2 + lui $4,%hi(mt) + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $5,$3,$2 + lui $4,%hi(mt) + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $2,$3,$2 + lw $2,-4($2) + srl $3,$2,30 + lw $2,-4($5) + xor $3,$3,$2 + lw $2,0($sp) + mult $3,$2 + mflo $3 + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + addu $2,$3,$2 + sw $2,0($6) + lui $4,%hi(mt) + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $5,$3,$2 + lui $4,%hi(mt) + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $2,$3,$2 + lw $2,0($2) + sw $2,0($5) + lui $3,%hi(mti) + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + addiu $2,$2,1 + sw $2,%lo(mti)($3) + j $L145 + nop + +$L144: + addiu $sp,$sp,8 + j $31 + nop + + .set macro + .set reorder + .end WapiMTgenSeed + .data + .align 2 + .type mag01.6, @object + .size mag01.6, 8 +mag01.6: + .word 0 + .word -1727483681 + .section .text.WapiMTgenrand,"ax",@progbits + .align 2 + .globl WapiMTgenrand + .ent WapiMTgenrand + .type WapiMTgenrand, @function +WapiMTgenrand: + .set nomips16 + .frame $sp,32,$31 # vars= 8, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-32 + sw $31,24($sp) + lui $2,%hi(mti) + lw $2,%lo(mti)($2) + slt $2,$2,624 + bne $2,$0,$L149 + nop + + lui $2,%hi(mti) + lw $3,%lo(mti)($2) + li $2,625 # 0x271 + bne $3,$2,$L150 + nop + + li $4,5489 # 0x1571 + jal WapiMTgenSeed + nop + +$L150: + sw $0,20($sp) +$L151: + lw $2,20($sp) + slt $2,$2,227 + beq $2,$0,$L154 + nop + + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $2,$3,$2 + lw $3,0($2) + li $2,-2147483648 # 0x80000000 + and $5,$3,$2 + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $2,$3,$2 + lw $3,4($2) + li $2,2147418112 # 0x7fff0000 + ori $2,$2,0xffff + and $2,$3,$2 + or $2,$5,$2 + sw $2,16($sp) + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $6,$3,$2 + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $4,$3,$2 + lw $2,16($sp) + srl $3,$2,1 + lw $2,1588($4) + xor $5,$3,$2 + lui $4,%hi(mag01.6) + lw $2,16($sp) + andi $2,$2,0x1 + sll $3,$2,2 + addiu $2,$4,%lo(mag01.6) + addu $2,$3,$2 + lw $2,0($2) + xor $2,$5,$2 + sw $2,0($6) + lw $2,20($sp) + addiu $2,$2,1 + sw $2,20($sp) + j $L151 + nop + +$L154: + lw $2,20($sp) + slt $2,$2,623 + beq $2,$0,$L155 + nop + + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $2,$3,$2 + lw $3,0($2) + li $2,-2147483648 # 0x80000000 + and $5,$3,$2 + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $2,$3,$2 + lw $3,4($2) + li $2,2147418112 # 0x7fff0000 + ori $2,$2,0xffff + and $2,$3,$2 + or $2,$5,$2 + sw $2,16($sp) + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $6,$3,$2 + lui $4,%hi(mt) + lw $2,20($sp) + sll $3,$2,2 + addiu $2,$4,%lo(mt) + addu $4,$3,$2 + lw $2,16($sp) + srl $3,$2,1 + lw $2,-908($4) + xor $5,$3,$2 + lui $4,%hi(mag01.6) + lw $2,16($sp) + andi $2,$2,0x1 + sll $3,$2,2 + addiu $2,$4,%lo(mag01.6) + addu $2,$3,$2 + lw $2,0($2) + xor $2,$5,$2 + sw $2,0($6) + lw $2,20($sp) + addiu $2,$2,1 + sw $2,20($sp) + j $L154 + nop + +$L155: + lui $2,%hi(mt) + addiu $2,$2,%lo(mt) + lw $3,2492($2) + li $2,-2147483648 # 0x80000000 + and $4,$3,$2 + lui $2,%hi(mt) + lw $3,%lo(mt)($2) + li $2,2147418112 # 0x7fff0000 + ori $2,$2,0xffff + and $2,$3,$2 + or $2,$4,$2 + sw $2,16($sp) + lui $2,%hi(mt) + addiu $6,$2,%lo(mt) + lui $2,%hi(mt) + addiu $4,$2,%lo(mt) + lw $2,16($sp) + srl $3,$2,1 + lw $2,1584($4) + xor $5,$3,$2 + lui $4,%hi(mag01.6) + lw $2,16($sp) + andi $2,$2,0x1 + sll $3,$2,2 + addiu $2,$4,%lo(mag01.6) + addu $2,$3,$2 + lw $2,0($2) + xor $2,$5,$2 + sw $2,2492($6) + lui $2,%hi(mti) + sw $0,%lo(mti)($2) +$L149: + lui $5,%hi(mt) + lui $2,%hi(mti) + addiu $6,$2,%lo(mti) + lw $3,0($6) + move $2,$3 + sll $4,$2,2 + addiu $2,$5,%lo(mt) + addu $2,$4,$2 + addiu $3,$3,1 + sw $3,0($6) + lw $2,0($2) + sw $2,16($sp) + lw $2,16($sp) + srl $3,$2,11 + lw $2,16($sp) + xor $2,$2,$3 + sw $2,16($sp) + lw $2,16($sp) + sll $3,$2,7 + li $2,-1658060800 # 0x9d2c0000 + ori $2,$2,0x5680 + and $3,$3,$2 + lw $2,16($sp) + xor $2,$2,$3 + sw $2,16($sp) + lw $2,16($sp) + sll $3,$2,15 + li $2,-272236544 # 0xefc60000 + and $3,$3,$2 + lw $2,16($sp) + xor $2,$2,$3 + sw $2,16($sp) + lw $2,16($sp) + srl $3,$2,18 + lw $2,16($sp) + xor $2,$2,$3 + sw $2,16($sp) + lw $2,16($sp) + lw $31,24($sp) + addiu $sp,$sp,32 + j $31 + nop + + .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,72,$31 # vars= 48, regs= 1/0, args= 16, gp= 0 + .mask 0x80000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + + addiu $sp,$sp,-72 + sw $31,64($sp) + sw $4,72($sp) + sw $5,76($sp) + lui $2,%hi(jiffies) + lw $4,%lo(jiffies)($2) + jal srandom32 + nop + + jal random32 + nop + + sw $2,60($sp) + lw $4,60($sp) + jal WapiMTgenSeed + nop + + lw $2,76($sp) + andi $2,$2,0x3 + bne $2,$0,$L158 + nop + + lw $2,76($sp) + srl $2,$2,2 + sw $2,16($sp) + j $L159 + nop + +$L158: + lw $2,76($sp) + srl $2,$2,2 + addiu $2,$2,1 + sw $2,16($sp) +$L159: + addiu $3,$sp,24 + lw $2,16($sp) + sll $2,$2,2 + move $4,$3 + move $5,$0 + move $6,$2 + jal memset + nop + + sw $0,20($sp) +$L160: + lw $2,20($sp) + lw $3,16($sp) + slt $2,$2,$3 + beq $2,$0,$L161 + nop + + jal WapiMTgenrand + nop + + sw $2,56($sp) + addiu $3,$sp,24 + lw $2,20($sp) + sll $2,$2,2 + addu $2,$3,$2 + addiu $3,$sp,56 + move $4,$2 + move $5,$3 + li $6,4 # 0x4 + jal memcpy + nop + + lw $2,20($sp) + addiu $2,$2,1 + sw $2,20($sp) + j $L160 + nop + +$L161: + addiu $2,$sp,24 + lw $4,72($sp) + move $5,$2 + lw $6,76($sp) + jal memcpy + nop + + lw $31,64($sp) + addiu $sp,$sp,72 + j $31 + nop + + .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" |