decompress.s (2123B)
1 // assembler directives 2 .set noat // allow manual use of $at 3 .set noreorder // don't insert nops after branches 4 5 #include "macros.inc" 6 7 8 .section .text, "ax" 9 10 // This file is handwritten. 11 12 glabel decompress 13 #if !defined(VERSION_JP) && !defined(VERSION_US) 14 lw $a3, 8($a0) 15 lw $t9, 0xc($a0) 16 lw $t8, 4($a0) 17 add $a3, $a3, $a0 18 add $t9, $t9, $a0 19 or $a2, $zero, $zero 20 addi $a0, $a0, 0x10 21 add $t8, $t8, $a1 22 .L8026ED80: 23 bnezl $a2, .L8026ED98 24 slt $t1, $t0, $zero 25 lw $t0, ($a0) 26 li $a2, 32 27 addi $a0, $a0, 4 28 slt $t1, $t0, $zero 29 .L8026ED98: 30 beql $t1, $zero, .L8026EDB8 31 lhu $t2, ($a3) 32 lb $t2, ($t9) 33 addi $t9, $t9, 1 34 addi $a1, $a1, 1 35 b .L8026EDE4 36 sb $t2, -1($a1) 37 lhu $t2, ($a3) 38 .L8026EDB8: 39 addi $a3, $a3, 2 40 srl $t3, $t2, 0xc 41 andi $t2, $t2, 0xfff 42 sub $t1, $a1, $t2 43 addi $t3, $t3, 3 44 .L8026EDCC: 45 lb $t2, -1($t1) 46 addi $t3, $t3, -1 47 addi $t1, $t1, 1 48 addi $a1, $a1, 1 49 bnez $t3, .L8026EDCC 50 sb $t2, -1($a1) 51 .L8026EDE4: 52 sll $t0, $t0, 1 53 bne $a1, $t8, .L8026ED80 54 addi $a2, $a2, -1 55 jr $ra 56 nop 57 #else 58 lw $t8, 4($a0) 59 lw $a3, 8($a0) 60 lw $t9, 0xc($a0) 61 move $a2, $zero 62 add $t8, $t8, $a1 63 add $a3, $a3, $a0 64 add $t9, $t9, $a0 65 addi $a0, $a0, 0x10 66 .L8027EF50: 67 bnez $a2, .L8027EF64 68 nop 69 lw $t0, ($a0) 70 li $a2, 32 71 addi $a0, $a0, 4 72 .L8027EF64: 73 slt $t1, $t0, $zero 74 beqz $t1, .L8027EF88 75 nop 76 lb $t2, ($t9) 77 addi $t9, $t9, 1 78 sb $t2, ($a1) 79 addi $a1, $a1, 1 80 b .L8027EFBC 81 nop 82 .L8027EF88: 83 lhu $t2, ($a3) 84 addi $a3, $a3, 2 85 srl $t3, $t2, 0xc 86 andi $t2, $t2, 0xfff 87 sub $t1, $a1, $t2 88 addi $t3, $t3, 3 89 .L8027EFA0: 90 lb $t2, -1($t1) 91 addi $t3, $t3, -1 92 addi $t1, $t1, 1 93 sb $t2, ($a1) 94 addi $a1, $a1, 1 95 bnez $t3, .L8027EFA0 96 nop 97 .L8027EFBC: 98 sll $t0, $t0, 1 99 addi $a2, $a2, -1 100 bne $a1, $t8, .L8027EF50 101 nop 102 jr $ra 103 nop 104 #endif