diff --git a/src/800c3.c b/src/800c3.c index a19b318dd..61fbc781c 100644 --- a/src/800c3.c +++ b/src/800c3.c @@ -437,282 +437,20 @@ s32 func_8005D244(s32 arg0, s32 arg1, s32 arg2) { } -__asm__( - ".set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005D33C\n" - "func_8005D33C:\n" - "lui $v0, %hi(D_80072970)\n" - "lw $v0, %lo(D_80072970)($v0)\n" - "addiu $sp, $sp, -32\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a1, $zero\n" - "sw $s1, 20($sp)\n" - "sw $ra, 24($sp)\n" - "jalr $v0\n" - "addu $s1, $a2, $zero\n" - "bgez $s0, 1f\n" - "addu $v1, $v0, $zero\n" - "lbu $v0, 233($v1)\n" - "j 4f\n" - "nop\n" - "1:\n" - "lbu $v0, 233($v1)\n" - "nop\n" - "slt $v0, $s0, $v0\n" - "beqz $v0, 3f\n" - "sll $v0, $s0, 2\n" - "lw $v1, 4($v1)\n" - "addu $v0, $v0, $s0\n" - "addiu $a2, $s1, -1\n" - "addu $v1, $v1, $v0\n" - "sltiu $v0, $a2, 5\n" - "beqz $v0, 3f\n" - "sll $v0, $a2, 2\n" - "lui $at, %hi(jtbl_800744A0)\n" - "addu $at, $at, $v0\n" - "lw $v0, %lo(jtbl_800744A0)($at)\n" - "nop\n" - "jr $v0\n" - "nop\n" - "lbu $v0, 0($v1)\n" - "j 4f\n" - "nop\n" - "lbu $v0, 1($v1)\n" - "j 4f\n" - "nop\n" - "lbu $v0, 2($v1)\n" - "j 4f\n" - "nop\n" - "lbu $v0, 3($v1)\n" - "j 4f\n" - "nop\n" - "lbu $v0, 4($v1)\n" - "j 4f\n" - "nop\n" - "3:\n" - "addu $v0, $zero, $zero\n" - "4:\n" - "lw $ra, 24($sp)\n" - "lw $s1, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 32\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D33C); extern void* (*D_80072970)(void); -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005D410\n" - "func_8005D410:\n" - "lui $v0, %hi(D_80072970)\n" - "lw $v0, %lo(D_80072970)($v0)\n" - "addiu $sp, $sp, -32\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a1, $zero\n" - "sw $s1, 20($sp)\n" - "sw $ra, 24($sp)\n" - "jalr $v0\n" - "addu $s1, $a2, $zero\n" - "bgez $s0, 1f\n" - "addu $v1, $v0, $zero\n" - "lbu $v0, 234($v1)\n" - "j 4f\n" - "nop\n" - "1:\n" - "lbu $v0, 234($v1)\n" - "nop\n" - "slt $v0, $s0, $v0\n" - "beq $v0, $zero, 3f\n" - "sll $v0, $s0, 3\n" - "lw $v1, 8($v1)\n" - "bgez $s1, 2f\n" - "addu $v1, $v1, $v0\n" - "lbu $v0, 0($v1)\n" - "j 4f\n" - "nop\n" - "2:\n" - "lbu $v0, 0($v1)\n" - "nop\n" - "slt $v0, $s1, $v0\n" - "beq $v0, $zero, 4f\n" - "addu $v0, $zero, $zero\n" - "lw $v0, 4($v1)\n" - "nop\n" - "addu $v0, $v0, $s1\n" - "lbu $v0, 0($v0)\n" - "j 4f\n" - "nop\n" - "3:\n" - "addu $v0, $zero, $zero\n" - "4:\n" - "lw $ra, 24($sp)\n" - "lw $s1, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 32\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D410); -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005D4B8\n" - "func_8005D4B8:\n" - "lui $v0, %hi(D_80072970)\n" - "lw $v0, %lo(D_80072970)($v0)\n" - "addiu $sp, $sp, -24\n" - "sw $s0, 16($sp)\n" - "sw $ra, 20($sp)\n" - "jalr $v0\n" - "addu $s0, $a1, $zero\n" - "addu $a0, $v0, $zero\n" - "jal func_8005E79C\n" - "addu $a1, $s0, $zero\n" - "lw $ra, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 24\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D4B8); -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005D4F0\n" - "func_8005D4F0:\n" - "lui $v0, %hi(D_80072970)\n" - "lw $v0, %lo(D_80072970)($v0)\n" - "addiu $sp, $sp, -32\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a1, $zero\n" - "sw $s1, 20($sp)\n" - "sw $ra, 24($sp)\n" - "jalr $v0\n" - "addu $s1, $a2, $zero\n" - "addu $a0, $v0, $zero\n" - "andi $a1, $s0, 255\n" - "jal func_8005E8E8\n" - "andi $a2, $s1, 255\n" - "lw $ra, 24($sp)\n" - "lw $s1, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 32\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D4F0); -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005D538\n" - "func_8005D538:\n" - "lui $v0, %hi(D_80072970)\n" - "lw $v0, %lo(D_80072970)($v0)\n" - "addiu $sp, $sp, -32\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a1, $zero\n" - "sw $s1, 20($sp)\n" - "sw $ra, 24($sp)\n" - "jalr $v0\n" - "addu $s1, $a2, $zero\n" - "addu $a0, $v0, $zero\n" - "addu $a1, $s0, $zero\n" - "jal func_8005E188\n" - "addu $a2, $s1, $zero\n" - "lw $ra, 24($sp)\n" - "lw $s1, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 32\n" - "nop\n" - "nop\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D538); -__asm__( - " .set noat\n" - " .set noreorder\n" - " .section .text\n" - " .globl func_8005D588\n" - "func_8005D588:\n" - ".word 0x3C038007\n" - ".word 0x8C6329B0\n" - ".word 0x3C028007\n" - ".word 0x8C4229AC\n" - ".word 0x27BDFFE0\n" - ".word 0xAFB00010\n" - ".word 0x00808021\n" - ".word 0xAFBF001C\n" - ".word 0xAFB20018\n" - ".word 0xAFB10014\n" - ".word 0x00031840\n" - ".word 0x2C420001\n" - ".word 0x00628825\n" - ".word 0x12300031\n" - ".word 0x32020001\n" - ".word 0x3C018007\n" - ".word 0xAC202994\n" - ".word 0x10400012\n" - ".word 0x24020001\n" - ".word 0x3C128008\n" - ".word 0x26528998\n" - ".word 0x8E420000\n" - ".word 0x3C018007\n" - ".word 0xAC2029AC\n" - ".word 0x28420096\n" - ".word 0x14400008\n" - ".word 0x00000000\n" - ".word 0x3C048007\n" - ".word 0x8C842990\n" - ".word 0x3C028007\n" - ".word 0x8C422960\n" - ".word 0x00000000\n" - ".word 0x0040F809\n" - ".word 0x00000000\n" - ".word 0x08017588\n" - ".word 0xAE400000\n" - ".word 0x3C018007\n" - ".word 0xAC2229AC\n" - ".word 0x32020002\n" - ".word 0x10400012\n" - ".word 0x24030001\n" - ".word 0x3C108008\n" - ".word 0x2610899C\n" - ".word 0x8E020000\n" - ".word 0x3C018007\n" - ".word 0xAC2329B0\n" - ".word 0x28420096\n" - ".word 0x14400008\n" - ".word 0x00000000\n" - ".word 0x3C048007\n" - ".word 0x8C842990\n" - ".word 0x3C028007\n" - ".word 0x8C422960\n" - ".word 0x00000000\n" - ".word 0x0040F809\n" - ".word 0x248400F0\n" - ".word 0x0801759E\n" - ".word 0xAE000000\n" - ".word 0x3C018007\n" - ".word 0xAC2029B0\n" - ".word 0x24020001\n" - ".word 0x3C018007\n" - ".word 0xAC222994\n" - ".word 0x02201021\n" - ".word 0x8FBF001C\n" - ".word 0x8FB20018\n" - ".word 0x8FB10014\n" - ".word 0x8FB00010\n" - ".word 0x03E00008\n" - ".word 0x27BD0020\n" - " .set reorder\n" - " .set at\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D588); void func_8005D6A0(void) { extern s32 D_8007898C; @@ -749,116 +487,7 @@ s32 func_8005D6CC(void) { * Byte-equivalent to the INCLUDE_ASM stub by construction; the function is NOT * decompiled (§265 ACCOUNTING). Immediates/offsets are decimal for maspsx (§383). */ -__asm__( - ".text\n" - ".align\t2\n" - ".globl\tfunc_8005D734\n" - ".ent\tfunc_8005D734\n" - "func_8005D734:\n" - ".frame\t$sp,24,$31\n" - ".mask\t0x80000000,-4\n" - ".fmask\t0,0\n" - ".set\tnoreorder\n" - "addiu $sp,$sp,-24\n" - "lui $v1,%hi(D_800729AC)\n" - "lw $v1,%lo(D_800729AC)($v1)\n" - "addiu $v0,$zero,1\n" - "sw $ra,16($sp)\n" - "lui $at,%hi(D_800729C4)\n" - "beqz $v1,.L8005D774\n" - " sw $v0,%lo(D_800729C4)($at)\n" - "lui $a0,%hi(D_80078998)\n" - "addiu $a0,$a0,%lo(D_80078998)\n" - "lw $v1,0($a0)\n" - "nop\n" - "slti $v0,$v1,150\n" - "beqz $v0,.L8005D774\n" - " addiu $v0,$v1,1\n" - "sw $v0,0($a0)\n" - ".L8005D774:\n" - "lui $v0,%hi(D_800729B0)\n" - "lw $v0,%lo(D_800729B0)($v0)\n" - "nop\n" - "bnez $v0,.L8005D7A8\n" - " nop\n" - "lui $a0,%hi(D_8007899C)\n" - "addiu $a0,$a0,%lo(D_8007899C)\n" - "lw $v1,0($a0)\n" - "nop\n" - "slti $v0,$v1,150\n" - "beqz $v0,.L8005D7A8\n" - " addiu $v0,$v1,1\n" - "sw $v0,0($a0)\n" - ".L8005D7A8:\n" - "lui $v0,%hi(D_80072994)\n" - "lw $v0,%lo(D_80072994)($v0)\n" - "nop\n" - "beqz $v0,.L8005D890\n" - " nop\n" - "lui $v1,%hi(D_800729AC)\n" - "lw $v1,%lo(D_800729AC)($v1)\n" - "lui $v0,%hi(D_800729B0)\n" - "lw $v0,%lo(D_800729B0)($v0)\n" - "nop\n" - "slt $v0,$v0,$v1\n" - "bnez $v0,.L8005D890\n" - " sll $a0,$v1,4\n" - "subu $a0,$a0,$v1\n" - "lui $v0,%hi(D_80072990)\n" - "lw $v0,%lo(D_80072990)($v0)\n" - "sll $a0,$a0,4\n" - "lui $at,%hi(D_800729A0)\n" - "sw $zero,%lo(D_800729A0)($at)\n" - "lui $at,%hi(D_8007299C)\n" - "sw $v1,%lo(D_8007299C)($at)\n" - "jal func_8005D9C4\n" - " addu $a0,$v0,$a0\n" - "bnez $v0,.L8005D820\n" - " nop\n" - "lui $v0,%hi(D_8007295C)\n" - "lw $v0,%lo(D_8007295C)($v0)\n" - "nop\n" - "jalr $v0\n" - " ori $a0,$zero,65535\n" - ".L8005D820:\n" - "lui $v1,%hi(D_8007299C)\n" - "lw $v1,%lo(D_8007299C)($v1)\n" - "lui $v0,%hi(D_800729B0)\n" - "lw $v0,%lo(D_800729B0)($v0)\n" - "lui $at,%hi(D_800729A4)\n" - "sw $zero,%lo(D_800729A4)($at)\n" - "slt $v0,$v0,$v1\n" - "bnez $v0,.L8005D880\n" - " nop\n" - ".L8005D844:\n" - "sll $a0,$v1,4\n" - "subu $a0,$a0,$v1\n" - "lui $v0,%hi(D_80072990)\n" - "lw $v0,%lo(D_80072990)($v0)\n" - "sll $a0,$a0,4\n" - "jal func_8005DBD8\n" - " addu $a0,$v0,$a0\n" - "lui $v1,%hi(D_8007299C)\n" - "lw $v1,%lo(D_8007299C)($v1)\n" - "lui $v0,%hi(D_800729B0)\n" - "lw $v0,%lo(D_800729B0)($v0)\n" - "nop\n" - "slt $v0,$v0,$v1\n" - "beqz $v0,.L8005D844\n" - " nop\n" - ".L8005D880:\n" - "lui $v1,%hi(D_800729C0)\n" - "lw $v1,%lo(D_800729C0)($v1)\n" - "addiu $v0,$zero,136\n" - "sh $v0,14($v1)\n" - ".L8005D890:\n" - "lw $ra,16($sp)\n" - "addu $v0,$zero,$zero\n" - "jr $ra\n" - " addiu $sp,$sp,24\n" - ".set\treorder\n" - ".end\tfunc_8005D734\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D734); extern s32 D_800729C4; @@ -876,66 +505,7 @@ asm( s32 func_8005D8A0(void); -__asm__( - ".globl func_8005D8B4\n" - "func_8005D8B4:\n" - "addiu $sp,$sp,-24\n" - "sw $ra,20($sp)\n" - "sw $s0,16($sp)\n" - "lui $at,%hi(D_80072994)\n" - ".reloc ., R_MIPS_26, func_8005CF08\n" - ".word 0x0c000000\n" - "sw $zero,%lo(D_80072994)($at)\n" - "addiu $a0,$zero,2\n" - "lui $s0,%hi(D_80078988)\n" - "addiu $s0,$s0,%lo(D_80078988)\n" - ".reloc ., R_MIPS_26, SysDeqIntRP\n" - ".word 0x0c000000\n" - "addu $a1,$s0,$zero\n" - "addiu $a0,$zero,2\n" - ".reloc ., R_MIPS_26, SysEnqIntRP\n" - ".word 0x0c000000\n" - "addu $a1,$s0,$zero\n" - "addiu $a0,$zero,3\n" - "lui $v1,%hi(D_800729BC)\n" - "lw $v1,%lo(D_800729BC)($v1)\n" - "addiu $v0,$zero,-2\n" - "sw $v0,0($v1)\n" - "lw $v0,4($v1)\n" - "addu $a1,$zero,$zero\n" - "ori $v0,$v0,1\n" - ".reloc ., R_MIPS_26, ChangeClearRCnt\n" - ".word 0x0c000000\n" - "sw $v0,4($v1)\n" - ".reloc ., R_MIPS_26, func_8005CF18\n" - ".word 0x0c000000\n" - "nop\n" - "lui $a0,%hi(D_80072990)\n" - "lw $a0,%lo(D_80072990)($a0)\n" - "lui $v0,%hi(D_80072960)\n" - "lw $v0,%lo(D_80072960)($v0)\n" - "nop\n" - ".word 0x0040f809\n" - "nop\n" - "lui $a0,%hi(D_80072990)\n" - "lw $a0,%lo(D_80072990)($a0)\n" - "lui $v0,%hi(D_80072960)\n" - "lw $v0,%lo(D_80072960)($v0)\n" - "nop\n" - ".word 0x0040f809\n" - "addiu $a0,$a0,240\n" - "lui $v0,%hi(D_80078998)\n" - "addiu $v0,$v0,%lo(D_80078998)\n" - "sw $zero,4($v0)\n" - "sw $zero,0($v0)\n" - "addiu $v0,$zero,1\n" - "lui $at,%hi(D_80072994)\n" - "sw $v0,%lo(D_80072994)($at)\n" - ".word 0x8fbf0014\n" - ".word 0x8fb00010\n" - ".word 0x03e00008\n" - "addiu $sp,$sp,24\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005D8B4); extern void func_8005CF08(void); extern void func_8005CF18(void); @@ -1095,28 +665,7 @@ s32 func_8005E0AC(void) { extern s32 *D_800729C0; -__asm__( - ".text\n" - ".align\t2\n" - ".globl\tfunc_8005E13C\n" - ".ent\tfunc_8005E13C\n" - "func_8005E13C:\n" - ".set\tnoreorder\n" - "lui $v1, %hi(D_800729C0)\n" - "lw $v1, %lo(D_800729C0)($v1)\n" - "nop\n" - "1:\n" - "lhu $v0, 4($v1)\n" - "nop\n" - "andi $v0, $v0, 0x2\n" - "beqz $v0, 1b\n" - "nop\n" - "jr $ra\n" - "nop\n" - ".set\treorder\n" - ".end\tfunc_8005E13C\n" - "nop\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E13C); /* §295 kernel-trap trampoline: A/B/C dispatch vector in $t2, syscall # in the jr delay slot; * unreachable from C (§179-C) -> file-scope verbatim asm (§265 form 1). Pad nop is load-bearing (stride 0x10). */ @@ -1173,105 +722,7 @@ void func_8005E1A4(void *arg0) { } } -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005E228\n" - "func_8005E228:\n" - "addiu $sp, $sp, -24\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a0, $zero\n" - "sw $ra, 20($sp)\n" - "lbu $v1, 70($s0)\n" - "addiu $v0, $zero, 3\n" - "beq $v1, $v0, .L8005E2B4\n" - "slti $v0, $v1, 4\n" - "beqz $v0, .L8005E260\n" - "addiu $v0, $zero, 2\n" - "beq $v1, $v0, .L8005E274\n" - "addiu $v0, $zero, 1\n" - "j .L8005E364\n" - "nop\n" - ".L8005E260:\n" - "addiu $v0, $zero, 4\n" - "beq $v1, $v0, .L8005E2D8\n" - "addiu $v0, $zero, 1\n" - "j .L8005E364\n" - "nop\n" - ".L8005E274:\n" - "lw $v0, 60($s0)\n" - "lw $v1, 60($s0)\n" - "lbu $v0, 3($v0)\n" - "nop\n" - "sb $v0, 227($s0)\n" - "lbu $v0, 4($v1)\n" - "lw $v1, 60($s0)\n" - "sh $zero, 230($s0)\n" - "sb $v0, 228($s0)\n" - "lbu $v0, 5($v1)\n" - "lw $v1, 60($s0)\n" - "sb $v0, 233($s0)\n" - "lbu $v0, 6($v1)\n" - "sw $zero, 236($s0)\n" - "j .L8005E360\n" - "sb $v0, 234($s0)\n" - ".L8005E2B4:\n" - "lw $v0, 60($s0)\n" - "nop\n" - "lbu $v1, 4($v0)\n" - "lbu $v0, 5($v0)\n" - "sb $zero, 71($s0)\n" - "sll $v1, $v1, 8\n" - "addu $v0, $v0, $v1\n" - "j .L8005E360\n" - "sh $v0, 230($s0)\n" - ".L8005E2D8:\n" - "lw $a0, 236($s0)\n" - "lbu $v0, 71($s0)\n" - "lw $v1, 60($s0)\n" - "addiu $v0, $v0, 1\n" - "lbu $v1, 4($v1)\n" - "addiu $a0, $a0, 8\n" - "sb $v0, 71($s0)\n" - "addiu $v1, $v1, 3\n" - "andi $v1, $v1, 0x1FC\n" - "addu $a0, $a0, $v1\n" - "lbu $v1, 234($s0)\n" - "andi $v0, $v0, 0xFF\n" - "sltu $v0,$v0,$v1\n" - "beqz $v0, .L8005E31C\n" - "sw $a0, 236($s0)\n" - ".L8005E314:\n" - "j .L8005E364\n" - "addu $v0, $zero, $zero\n" - ".L8005E31C:\n" - "jal func_8005E374\n" - "addu $a0, $s0, $zero\n" - "slti $v0, $v0, 0x81\n" - "bnez $v0, .L8005E344\n" - "addu $a0, $s0, $zero\n" - "addiu $v0, $zero, 0xFE\n" - "sb $v0, 70($s0)\n" - "addiu $v0, $zero, 2\n" - "j .L8005E314\n" - "sb $v0, 73($s0)\n" - ".L8005E344:\n" - "addiu $v0, $zero, 0xFF\n" - "addiu $a1, $s0, 0x63\n" - "jal func_8005E3AC\n" - "sb $v0, 70($s0)\n" - "addiu $v0, $zero, 2\n" - "j .L8005E314\n" - "sb $v0, 70($s0)\n" - ".L8005E360:\n" - "addiu $v0, $zero, 1\n" - ".L8005E364:\n" - "lw $ra, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 24\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E228); s32 func_8005E374(u8 *a0) { @@ -1280,69 +731,7 @@ s32 func_8005E374(u8 *a0) { return t + m + *(u32 *)(a0 + 0xEC); } -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005E3AC\n" - "func_8005E3AC:\n" - "addiu $sp, $sp, -32\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a0, $zero\n" - "sw $s1, 20($sp)\n" - "addu $s1, $a1, $zero\n" - "beqz $s1, .L8005E3F4\n" - "sw $ra, 24($sp)\n" - "lw $v0, 4($s0)\n" - "nop\n" - "bnez $v0, .L8005E46C\n" - "addu $v0, $zero, $zero\n" - "lui $v0, %hi(D_80072978)\n" - "lw $v0, %lo(D_80072978)($v0)\n" - "nop\n" - "jalr $v0\n" - "nop\n" - "beqz $v0, .L8005E3FC\n" - "addiu $v0, $zero, 1\n" - ".L8005E3F4:\n" - "j .L8005E46C\n" - "addu $v0, $zero, $zero\n" - ".L8005E3FC:\n" - "addiu $v1, $zero, 4\n" - "addiu $a1, $s1, 3\n" - "sra $a1, $a1, 2\n" - "sb $v1, 73($s0)\n" - "addiu $v1, $zero, 1\n" - "sb $v1, 70($s0)\n" - "lui $v1, %hi(func_8005E480)\n" - "addiu $v1, $v1, %lo(func_8005E480)\n" - "sw $v1, 20($s0)\n" - "lbu $v1, 227($s0)\n" - "lui $a0, %hi(func_8005E528)\n" - "addiu $a0, $a0, %lo(func_8005E528)\n" - "sw $a0, 24($s0)\n" - "lbu $a0, 233($s0)\n" - "sll $a1, $a1, 2\n" - "sw $a1, 0($s0)\n" - "sb $zero, 71($s0)\n" - "addiu $v1, $v1, 1\n" - "sra $v1, $v1, 1\n" - "sll $v1, $v1, 2\n" - "addu $a1, $a1, $v1\n" - "sll $v1, $a0, 2\n" - "addu $v1, $v1, $a0\n" - "addiu $v1, $v1, 3\n" - "andi $v1, $v1, 0xFFC\n" - "sw $a1, 4($s0)\n" - "addu $a1, $a1, $v1\n" - "sw $a1, 8($s0)\n" - ".L8005E46C:\n" - "lw $ra, 24($sp)\n" - "lw $s1, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 32\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E3AC); extern void func_8005EA68(void *arg0, s32 arg1); extern void func_8005EA88(void *arg0, s32 arg1); @@ -1469,40 +858,7 @@ s32 func_8005E528(Ctx *s) { return 1; } -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005E79C\n" - "func_8005E79C:\n" - "addiu $sp, $sp, -32\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a0, $zero\n" - "sw $s1, 20($sp)\n" - "lui $v0, %hi(D_80072978)\n" - "lw $v0, %lo(D_80072978)($v0)\n" - "sw $ra, 24($sp)\n" - "jalr $v0\n" - "addu $s1, $a1, $zero\n" - "bnez $v0, 1f\n" - "addu $v0, $zero, $zero\n" - "addiu $v0, $zero, 1\n" - "addiu $v1, $zero, 1\n" - "sb $v1, 70($s0)\n" - "lui $v1, %hi(func_8005E804)\n" - "addiu $v1, $v1, %lo(func_8005E804)\n" - "sw $v1, 20($s0)\n" - "lui $v1, %hi(func_8005E820)\n" - "addiu $v1, $v1, %lo(func_8005E820)\n" - "sw $s1, 32($s0)\n" - "sw $v1, 24($s0)\n" - "1:\n" - "lw $ra, 24($sp)\n" - "lw $s1, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 32\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E79C); void func_8005E804(u8 *arg0) { u32 v1; @@ -1568,52 +924,7 @@ s32 func_8005E820(void *a0) return 0; } -__asm__( - "\t.set\tnoreorder\n" - ".set noreorder\n" - "\t.globl\tfunc_8005E8E8\n" - "func_8005E8E8:\n" - "addiu $sp, $sp, -40\n" - "sw $s0, 16($sp)\n" - "addu $s0, $a0, $zero\n" - "sw $s1, 20($sp)\n" - "addu $s1, $a1, $zero\n" - "sw $s2, 24($sp)\n" - "addu $s2, $a2, $zero\n" - "sw $s3, 28($sp)\n" - "lui $v0, %hi(D_80072978)\n" - "lw $v0, %lo(D_80072978)($v0)\n" - "sw $ra, 32($sp)\n" - "jalr $v0\n" - "addu $s3, $s1, $zero\n" - "bnez $v0, 1f\n" - "addu $v0, $zero, $zero\n" - "addiu $v0, $zero, 1\n" - "lbu $a0, 228($s0)\n" - "addiu $v1, $zero, 1\n" - "sb $v1, 70($s0)\n" - "lui $v1, %hi(func_8005E980)\n" - "addiu $v1, $v1, %lo(func_8005E980)\n" - "sw $v1, 20($s0)\n" - "lui $v1, %hi(func_8005E9D4)\n" - "addiu $v1, $v1, %lo(func_8005E9D4)\n" - "sw $v1, 24($s0)\n" - "andi $v1, $s3, 0xFF\n" - "sb $s1, 81($s0)\n" - "sb $s2, 82($s0)\n" - "xor $v1, $v1, $a0\n" - "sltiu $v1, $v1, 1\n" - "sb $v1, 83($s0)\n" - "1:\n" - "lw $ra, 32($sp)\n" - "lw $s3, 28($sp)\n" - "lw $s2, 24($sp)\n" - "lw $s1, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 40\n" - ".set reorder\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E8E8); void func_8005E980(void) { @@ -1685,48 +996,9 @@ void func_8005EAA8(void *arg0, s32 arg1) { *(u8 *)((u8 *)arg0 + 0x35) = 1; } -__asm__( - ".text\n" - ".align\t2\n" - ".globl\tfunc_8005EAC8\n" - ".ent\tfunc_8005EAC8\n" - "func_8005EAC8:\n" - ".set\tnoreorder\n" - "addiu $v0, $zero, 75\n" - "sb $v0, 54($a0)\n" - "sw $zero, 44($a0)\n" - "jr $ra\n" - "sb $zero, 53($a0)\n" - "nop\n" - "nop\n" - "nop\n" - ".end\tfunc_8005EAC8\n"); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EAC8); -__asm__( - ".text\n" - ".align\t2\n" - ".globl\tfunc_8005EAE8\n" - ".ent\tfunc_8005EAE8\n" - "func_8005EAE8:\n" - ".set\tnoreorder\n" - "addiu $sp, $sp, -24\n" - "sw $s0, 16($sp)\n" - "lui $v0, %hi(D_80072974)\n" - "lw $v0, %lo(D_80072974)($v0)\n" - "sw $ra, 20($sp)\n" - "jalr $v0\n" - "addu $s0, $a0, $zero\n" - "addu $a0, $s0, $zero\n" - "lui $at, %hi(D_800729DC)\n" - "sw $v0, %lo(D_800729DC)($at)\n" - "jal func_8005DCA0\n" - "addiu $a1, $zero, -2\n" - "lw $ra, 20($sp)\n" - "lw $s0, 16($sp)\n" - "jr $ra\n" - "addiu $sp, $sp, 24\n" - ".set\treorder\n" - ".end\tfunc_8005EAE8\n"); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EAE8); /* * func_8005EB28 -- the target's epilogue restores TWO callee-saved registers @@ -1743,68 +1015,7 @@ __asm__( * it through untouched. See src/md_MAIN_003/md_MAIN_003.c:524 (func_800D0440) * for the precedent this follows. */ -__asm__(".text\n.align 2\n.globl func_8005EB28\n.ent\tfunc_8005EB28\n" -"func_8005EB28:\n.frame $sp,24,$31\n.mask 0x80010000,-4\n.fmask 0,0\n" -".set\tnoreorder\n" -"lui $v1, %hi(D_8007299C)\n" -"lw $v1, %lo(D_8007299C)($v1)\n" -"lui $v0, %hi(D_800729AC)\n" -"lw $v0, %lo(D_800729AC)($v0)\n" -"addiu $sp, $sp, -24\n" -"sw $s0, 16($sp)\n" -"addu $s0, $a0, $zero\n" -"bne $v1, $v0, .L8005EB88\n" -" sw $ra, 20($sp)\n" -"lui $v0, %hi(D_80072998)\n" -"lw $v0, %lo(D_80072998)($v0)\n" -"nop\n" -"beqz $v0, .L8005EB88\n" -" nop\n" -"lui $v0, %hi(D_8007298C)\n" -"lw $v0, %lo(D_8007298C)($v0)\n" -"nop\n" -"jalr $v0\n" -" nop\n" -"lui $v0, %hi(D_80072988)\n" -"lw $v0, %lo(D_80072988)($v0)\n" -"nop\n" -"jalr $v0\n" -" nop\n" -".L8005EB88:\n" -"lui $v0, %hi(D_800729DC)\n" -"lw $v0, %lo(D_800729DC)($v0)\n" -"nop\n" -"beqz $v0, .L8005EBCC\n" -" nop\n" -"lw $a0, 12($s0)\n" -"lui $v0, %hi(D_80072974)\n" -"lw $v0, %lo(D_80072974)($v0)\n" -"nop\n" -"jalr $v0\n" -" nop\n" -"lw $a0, 12($s0)\n" -"lui $v0, %hi(D_80072974)\n" -"lw $v0, %lo(D_80072974)($v0)\n" -"nop\n" -"jalr $v0\n" -" addiu $a0, $a0, 240\n" -".L8005EBCC:\n" -"lbu $v0, 54($s0)\n" -"nop\n" -"bnez $v0, .L8005EBE4\n" -" addu $a0, $s0, $zero\n" -"j .L8005EBE8\n" -" addiu $a1, $zero, 66\n" -".L8005EBE4:\n" -"lbu $a1, 54($s0)\n" -".L8005EBE8:\n" -"jal func_8005DE78\n" -" nop\n" -"lw $ra, 20($sp)\n" -"lw $s0, 16($sp)\n" -"jr $ra\n" -" addiu $sp, $sp, 24\n" -".set\treorder\n.end\tfunc_8005EB28\n"); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EB28); /* * func_8005EC00 -- same wall as func_8005EB28 (src/800c3.c:1338): the target @@ -1845,62 +1056,7 @@ __asm__(".text\n.align 2\n.globl func_8005EB28\n.ent\tfunc_8005EB28\n" * return 0; * } */ -__asm__(".text\n.align 2\n.globl func_8005EC00\n.ent\tfunc_8005EC00\n" -"func_8005EC00:\n.frame $sp,24,$31\n.mask 0x80010000,-4\n.fmask 0,0\n" -".set\tnoreorder\n" -"lui $v0, %hi(D_800729DC)\n" -"lw $v0, %lo(D_800729DC)($v0)\n" -"addiu $sp, $sp, -24\n" -"sw $s0, 16($sp)\n" -"addu $s0, $a0, $zero\n" -"beqz $v0, .L8005EC4C\n" -" sw $ra, 20($sp)\n" -"lw $a0, 12($s0)\n" -"lui $v0, %hi(D_80072974)\n" -"lw $v0, %lo(D_80072974)($v0)\n" -"nop\n" -"jalr $v0\n" -" addiu $a0, $a0, 480\n" -"lw $a0, 12($s0)\n" -"lui $v0, %hi(D_80072974)\n" -"lw $v0, %lo(D_80072974)($v0)\n" -"nop\n" -"jalr $v0\n" -" addiu $a0, $a0, 720\n" -".L8005EC4C:\n" -"lbu $v0, 54($s0)\n" -"nop\n" -"bnez $v0, .L8005EC64\n" -" addu $a1, $zero, $zero\n" -"lui $a1, %hi(D_800729A8)\n" -"lw $a1, %lo(D_800729A8)($a1)\n" -".L8005EC64:\n" -"jal func_8005DE78\n" -" addu $a0, $s0, $zero\n" -"addu $v1, $v0, $zero\n" -"bltz $v1, .L8005ECB0\n" -" nop\n" -"andi $v0, $v1, 240\n" -"bnez $v0, .L8005EC8C\n" -" andi $v0, $v1, 15\n" -"j .L8005ECB0\n" -" addiu $v0, $zero, -9\n" -".L8005EC8C:\n" -"sll $v0, $v0, 1\n" -"lui $at, %hi(D_800729D4)\n" -"sw $v0, %lo(D_800729D4)($at)\n" -"bnez $v0, .L8005ECB0\n" -" addu $v0, $zero, $zero\n" -"addiu $v0, $zero, 32\n" -"lui $at, %hi(D_800729D4)\n" -"sw $v0, %lo(D_800729D4)($at)\n" -"addu $v0, $zero, $zero\n" -".L8005ECB0:\n" -"lw $ra, 20($sp)\n" -"lw $s0, 16($sp)\n" -"jr $ra\n" -" addiu $sp, $sp, 24\n" -".set\treorder\n.end\tfunc_8005EC00\n"); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005EC00); INCLUDE_ASM("asm/nonmatchings/800c3", func_8005ECC0); @@ -1909,258 +1065,7 @@ INCLUDE_ASM("asm/nonmatchings/800c3", func_8005ECC0); * Byte-equivalent to the INCLUDE_ASM stub by construction; the function is NOT * decompiled (§265 ACCOUNTING). Immediates/offsets are decimal for maspsx (§383). */ -__asm__( - ".text\n" - ".align\t2\n" - ".globl\tfunc_8005ED4C\n" - ".ent\tfunc_8005ED4C\n" - "func_8005ED4C:\n" - ".frame\t$sp,48,$31\n" - ".mask\t0x803F0000,-4\n" - ".fmask\t0,0\n" - ".set\tnoreorder\n" - "addiu $sp,$sp,-48\n" - "sw $s1,20($sp)\n" - "addu $s1,$a0,$zero\n" - "lui $v0,%hi(D_80072968)\n" - "lw $v0,%lo(D_80072968)($v0)\n" - "sw $ra,40($sp)\n" - "sw $s5,36($sp)\n" - "sw $s4,32($sp)\n" - "sw $s3,28($sp)\n" - "sw $s2,24($sp)\n" - "jalr $v0\n" - " sw $s0,16($sp)\n" - "lui $v0,%hi(D_800729A8)\n" - "lw $v0,%lo(D_800729A8)($v0)\n" - "nop\n" - "beqz $v0,.L8005EDB8\n" - " addu $s4,$zero,$zero\n" - "lw $v0,60($s1)\n" - "nop\n" - "lbu $v0,0($v0)\n" - "addiu $v1,$zero,8\n" - "sra $v0,$v0,4\n" - "bne $v0,$v1,.L8005EDB8\n" - " nop\n" - "lbu $v0,54($s1)\n" - "nop\n" - "sltiu $s4,$v0,1\n" - ".L8005EDB8:\n" - "beqz $s4,.L8005EE54\n" - " nop\n" - "addiu $s0,$zero,-1\n" - "addiu $s2,$zero,-240\n" - ".L8005EDC8:\n" - "lui $v0,%hi(D_800729D4)\n" - "lw $v0,%lo(D_800729D4)($v0)\n" - "nop\n" - "addiu $v0,$v0,-1\n" - "lui $at,%hi(D_800729D4)\n" - "blez $v0,.L8005EE54\n" - " sw $v0,%lo(D_800729D4)($at)\n" - "bltz $s0,.L8005EE04\n" - " nop\n" - "lw $a0,12($s1)\n" - "lui $v0,%hi(D_80072968)\n" - "lw $v0,%lo(D_80072968)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a0,$a0,$s2\n" - ".L8005EE04:\n" - "addu $a0,$s1,$zero\n" - "lui $v0,%hi(D_80072964)\n" - "lw $v0,%lo(D_80072964)($v0)\n" - "nop\n" - "jalr $v0\n" - " addiu $a1,$zero,1\n" - "addu $a0,$s1,$zero\n" - "jal func_8005DE78\n" - " andi $a1,$v0,255\n" - "bltz $v0,.L8005F0A4\n" - " nop\n" - "jal func_8005FBA8\n" - " addiu $a0,$zero,60\n" - "jal func_8005E0AC\n" - " nop\n" - "beqz $v0,.L8005EFC8\n" - " addiu $s0,$s0,1\n" - "slti $v0,$s0,4\n" - "bnez $v0,.L8005EDC8\n" - " addiu $s2,$s2,240\n" - ".L8005EE54:\n" - "lui $v1,%hi(D_8007299C)\n" - "lw $v1,%lo(D_8007299C)($v1)\n" - "lui $v0,%hi(D_800729D4)\n" - "lw $v0,%lo(D_800729D4)($v0)\n" - "nop\n" - "slti $v0,$v0,2\n" - "bnez $v0,.L8005F040\n" - " sltiu $a0,$v1,1\n" - "lui $v1,%hi(D_800729B4)\n" - "addiu $v1,$v1,%lo(D_800729B4)\n" - "sll $v0,$a0,2\n" - "addu $s0,$v0,$v1\n" - "sll $v0,$a0,4\n" - "subu $v0,$v0,$a0\n" - "sll $s2,$v0,4\n" - "addiu $s5,$zero,3\n" - ".L8005EE94:\n" - "lw $a0,0($s0)\n" - "nop\n" - "bltz $a0,.L8005F040\n" - " nop\n" - "blez $a0,.L8005EEE0\n" - " sll $v0,$a0,4\n" - "lui $v1,%hi(D_80072990)\n" - "lw $v1,%lo(D_80072990)($v1)\n" - "subu $v0,$v0,$a0\n" - "addu $v1,$s2,$v1\n" - "lw $v1,12($v1)\n" - "sll $v0,$v0,4\n" - "addu $v1,$v1,$v0\n" - "addiu $s3,$v1,-240\n" - "lui $v0,%hi(D_8007297C)\n" - "lw $v0,%lo(D_8007297C)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a0,$s3,$zero\n" - ".L8005EEE0:\n" - "lw $v1,0($s0)\n" - "nop\n" - "beq $v1,$s5,.L8005EF28\n" - " nop\n" - "slti $v0,$v1,4\n" - "beqz $v0,.L8005EF14\n" - " slti $v0,$v1,2\n" - "beqz $v0,.L8005EF88\n" - " addu $a0,$s1,$zero\n" - "bltz $v1,.L8005EF88\n" - " nop\n" - "j .L8005EF44\n" - " nop\n" - ".L8005EF14:\n" - "addiu $v0,$zero,4\n" - "bne $v1,$v0,.L8005EF88\n" - " addu $a0,$s1,$zero\n" - "j .L8005EF88\n" - " sw $s5,0($s0)\n" - ".L8005EF28:\n" - "lui $v0,%hi(D_8007297C)\n" - "lw $v0,%lo(D_8007297C)($v0)\n" - "nop\n" - "jalr $v0\n" - " addiu $a0,$s3,-240\n" - "j .L8005EF80\n" - " addiu $v0,$zero,1\n" - ".L8005EF44:\n" - "lui $v0,%hi(D_80072990)\n" - "lw $v0,%lo(D_80072990)($v0)\n" - "nop\n" - "addu $s3,$v0,$s2\n" - "lui $v0,%hi(D_8007297C)\n" - "lw $v0,%lo(D_8007297C)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a0,$s3,$zero\n" - "lui $v0,%hi(D_80072980)\n" - "lw $v0,%lo(D_80072980)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a0,$s3,$zero\n" - "addiu $v0,$zero,-1\n" - ".L8005EF80:\n" - "sw $v0,0($s0)\n" - "addu $a0,$s1,$zero\n" - ".L8005EF88:\n" - "lui $v0,%hi(D_80072964)\n" - "lw $v0,%lo(D_80072964)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a1,$s4,$zero\n" - "addu $a0,$s1,$zero\n" - "jal func_8005DCA0\n" - " andi $a1,$v0,255\n" - "bltz $v0,.L8005F0A4\n" - " nop\n" - "jal func_8005FBA8\n" - " addiu $a0,$zero,60\n" - "jal func_8005E0AC\n" - " nop\n" - "bnez $v0,.L8005EFD0\n" - " nop\n" - ".L8005EFC8:\n" - "j .L8005F0A4\n" - " addiu $v0,$zero,-3\n" - ".L8005EFD0:\n" - "lui $v0,%hi(D_800729D4)\n" - "lw $v0,%lo(D_800729D4)($v0)\n" - "nop\n" - "addiu $v0,$v0,-1\n" - "lui $at,%hi(D_800729D4)\n" - "sw $v0,%lo(D_800729D4)($at)\n" - "slti $v0,$v0,2\n" - "beqz $v0,.L8005EE94\n" - " nop\n" - "j .L8005F040\n" - " nop\n" - ".L8005EFFC:\n" - "addu $a0,$s1,$zero\n" - "lui $v0,%hi(D_80072964)\n" - "lw $v0,%lo(D_80072964)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a1,$s4,$zero\n" - "addu $a0,$s1,$zero\n" - "jal func_8005DCA0\n" - " andi $a1,$v0,255\n" - "bltz $v0,.L8005F0A4\n" - " nop\n" - "jal func_8005FBA8\n" - " addiu $a0,$zero,60\n" - "jal func_8005E0AC\n" - " nop\n" - "beqz $v0,.L8005F0A4\n" - " addiu $v0,$zero,-3\n" - ".L8005F040:\n" - "lui $v0,%hi(D_800729D4)\n" - "lw $v0,%lo(D_800729D4)($v0)\n" - "nop\n" - "addiu $v0,$v0,-1\n" - "lui $at,%hi(D_800729D4)\n" - "bgtz $v0,.L8005EFFC\n" - " sw $v0,%lo(D_800729D4)($at)\n" - "jal func_8005E13C\n" - " nop\n" - "lbu $v1,68($s1)\n" - "nop\n" - "addiu $v0,$v1,1\n" - "sb $v0,68($s1)\n" - "lui $v0,%hi(D_800729D8)\n" - "lw $v0,%lo(D_800729D8)($v0)\n" - "lw $a0,60($s1)\n" - "lbu $v0,0($v0)\n" - "addu $v1,$v1,$a0\n" - "sb $v0,0($v1)\n" - "lui $v0,%hi(D_8007295C)\n" - "lw $v0,%lo(D_8007295C)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a0,$zero,$zero\n" - "addu $v0,$zero,$zero\n" - ".L8005F0A4:\n" - "lw $ra,40($sp)\n" - "lw $s5,36($sp)\n" - "lw $s4,32($sp)\n" - "lw $s3,28($sp)\n" - "lw $s2,24($sp)\n" - "lw $s1,20($sp)\n" - "lw $s0,16($sp)\n" - "jr $ra\n" - " addiu $sp,$sp,48\n" - ".set\treorder\n" - ".end\tfunc_8005ED4C\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005ED4C); INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F0C8); @@ -2238,196 +1143,7 @@ s32 func_8005F394(u8 *arg0) { * Byte-equivalent to the INCLUDE_ASM stub by construction; the function is NOT * decompiled (§265 ACCOUNTING). Immediates/offsets are decimal for maspsx (§383). */ -__asm__( - ".text\n" - ".align\t2\n" - ".globl\tfunc_8005F450\n" - ".ent\tfunc_8005F450\n" - "func_8005F450:\n" - ".frame\t$sp,24,$31\n" - ".mask\t0x80010000,0\n" - ".fmask\t0,0\n" - ".set\tnoreorder\n" - "addiu $sp,$sp,-24\n" - "sw $s0,16($sp)\n" - "addu $s0,$a0,$zero\n" - "addiu $a0,$s0,87\n" - "sw $ra,20($sp)\n" - "jal func_8005C2C8\n" - " addiu $a1,$zero,6\n" - "lhu $v0,230($s0)\n" - "nop\n" - "beqz $v0,.L8005F5C8\n" - " nop\n" - "lw $v0,40($s0)\n" - "nop\n" - "beqz $v0,.L8005F5C8\n" - " nop\n" - "lbu $v0,52($s0)\n" - "nop\n" - "sltiu $v0,$v0,7\n" - "beqz $v0,.L8005F4A4\n" - " addiu $t1,$zero,6\n" - "lbu $t1,52($s0)\n" - ".L8005F4A4:\n" - "lbu $v0,233($s0)\n" - "nop\n" - "beqz $v0,.L8005F6BC\n" - " addu $t0,$zero,$zero\n" - "addiu $t3,$zero,1\n" - "addu $t2,$zero,$zero\n" - ".L8005F4BC:\n" - "lw $v0,4($s0)\n" - "addu $a2,$zero,$zero\n" - "addu $v0,$t2,$v0\n" - "lbu $v0,2($v0)\n" - "nop\n" - "beqz $v0,.L8005F4DC\n" - " addiu $a3,$zero,1\n" - "addiu $a3,$zero,255\n" - ".L8005F4DC:\n" - "addiu $a1,$s0,93\n" - "lw $a0,40($s0)\n" - "beqz $t1,.L8005F524\n" - " addu $v1,$zero,$zero\n" - ".L8005F4EC:\n" - "lbu $v0,0($a1)\n" - "nop\n" - "bne $v0,$t0,.L8005F510\n" - " nop\n" - "lbu $v0,0($a0)\n" - "nop\n" - "and $v0,$v0,$a3\n" - "bnez $v0,.L8005F564\n" - " nop\n" - ".L8005F510:\n" - "addiu $a1,$a1,1\n" - "addiu $v1,$v1,1\n" - "slt $v0,$v1,$t1\n" - "bnez $v0,.L8005F4EC\n" - " addiu $a0,$a0,1\n" - ".L8005F524:\n" - "beqz $a2,.L8005F5AC\n" - " nop\n" - "lw $v0,4($s0)\n" - "nop\n" - "addu $v0,$t2,$v0\n" - "lbu $v1,3($v0)\n" - "lui $v0,%hi(D_800729A4)\n" - "lw $v0,%lo(D_800729A4)($v0)\n" - "nop\n" - "addu $v1,$v0,$v1\n" - "slti $v0,$v1,61\n" - "beqz $v0,.L8005F56C\n" - " nop\n" - "lui $at,%hi(D_800729A4)\n" - "j .L8005F570\n" - " sw $v1,%lo(D_800729A4)($at)\n" - ".L8005F564:\n" - "j .L8005F524\n" - " addiu $a2,$zero,1\n" - ".L8005F56C:\n" - "addu $a2,$zero,$zero\n" - ".L8005F570:\n" - "beqz $a2,.L8005F5AC\n" - " nop\n" - "addiu $a1,$s0,93\n" - "addiu $a0,$s0,87\n" - "beqz $t1,.L8005F5AC\n" - " addu $v1,$zero,$zero\n" - ".L8005F588:\n" - "lbu $v0,0($a1)\n" - "nop\n" - "bne $v0,$t0,.L8005F59C\n" - " addiu $a1,$a1,1\n" - "sb $t3,0($a0)\n" - ".L8005F59C:\n" - "addiu $v1,$v1,1\n" - "slt $v0,$v1,$t1\n" - "bnez $v0,.L8005F588\n" - " addiu $a0,$a0,1\n" - ".L8005F5AC:\n" - "lbu $v0,233($s0)\n" - "addiu $t0,$t0,1\n" - "slt $v0,$t0,$v0\n" - "bnez $v0,.L8005F4BC\n" - " addiu $t2,$t2,5\n" - "j .L8005F6BC\n" - " nop\n" - ".L8005F5C8:\n" - "lbu $v1,232($s0)\n" - "nop\n" - "addiu $v0,$v1,-4\n" - "sltiu $v0,$v0,2\n" - "bnez $v0,.L8005F5E8\n" - " addiu $v0,$zero,7\n" - "bne $v1,$v0,.L8005F67C\n" - " nop\n" - ".L8005F5E8:\n" - "lhu $v0,230($s0)\n" - "nop\n" - "bnez $v0,.L8005F67C\n" - " nop\n" - "lbu $v0,52($s0)\n" - "nop\n" - "sltiu $v0,$v0,2\n" - "bnez $v0,.L8005F67C\n" - " addiu $v1,$zero,64\n" - "lw $a0,40($s0)\n" - "nop\n" - "lbu $v0,0($a0)\n" - "nop\n" - "andi $v0,$v0,192\n" - "bne $v0,$v1,.L8005F6BC\n" - " nop\n" - "lbu $v0,1($a0)\n" - "nop\n" - "andi $v0,$v0,1\n" - "beqz $v0,.L8005F6BC\n" - " nop\n" - "lui $v0,%hi(D_800729A4)\n" - "lw $v0,%lo(D_800729A4)($v0)\n" - "nop\n" - "addiu $v0,$v0,10\n" - "slti $v0,$v0,61\n" - "beqz $v0,.L8005F6BC\n" - " addiu $v0,$zero,1\n" - "sb $v0,88($s0)\n" - "sb $v0,87($s0)\n" - "lui $v0,%hi(D_800729A4)\n" - "lw $v0,%lo(D_800729A4)($v0)\n" - "nop\n" - "addiu $v0,$v0,10\n" - "lui $at,%hi(D_800729A4)\n" - "j .L8005F6BC\n" - " sw $v0,%lo(D_800729A4)($at)\n" - ".L8005F67C:\n" - "lbu $v1,232($s0)\n" - "addiu $v0,$zero,3\n" - "bne $v1,$v0,.L8005F694\n" - " addiu $v0,$zero,1\n" - "j .L8005F6BC\n" - " sb $v0,87($s0)\n" - ".L8005F694:\n" - "lhu $v0,230($s0)\n" - "nop\n" - "bnez $v0,.L8005F6BC\n" - " addiu $v0,$zero,1\n" - "addiu $v1,$zero,5\n" - "addiu $a0,$s0,5\n" - ".L8005F6AC:\n" - "sb $v0,87($a0)\n" - "addiu $v1,$v1,-1\n" - "bgez $v1,.L8005F6AC\n" - " addiu $a0,$a0,-1\n" - ".L8005F6BC:\n" - "lw $ra,20($sp)\n" - "lw $s0,16($sp)\n" - "jr $ra\n" - " addiu $sp,$sp,24\n" - ".set\treorder\n" - ".end\tfunc_8005F450\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F450); extern u8 D_80078A48; @@ -2557,79 +1273,7 @@ INCLUDE_ASM("asm/nonmatchings/800c3", func_8005F830); * Byte-equivalent to the INCLUDE_ASM stub by construction; the function is NOT * decompiled (§265 ACCOUNTING). Immediates/offsets are decimal for maspsx (§383). */ -__asm__( - ".text\n" - ".align\t2\n" - ".globl\tfunc_8005FA94\n" - ".ent\tfunc_8005FA94\n" - "func_8005FA94:\n" - ".frame\t$sp,24,$31\n" - ".mask\t0x80010000,0\n" - ".fmask\t0,0\n" - ".set\tnoreorder\n" - "addiu $sp,$sp,-24\n" - "sw $s0,16($sp)\n" - "addu $s0,$a0,$zero\n" - "sw $ra,20($sp)\n" - "lw $v0,76($s0)\n" - "lbu $v1,70($s0)\n" - "addiu $v0,$v0,1\n" - "beqz $v1,.L8005FB2C\n" - " sw $v0,76($s0)\n" - "addiu $v0,$zero,1\n" - "bne $v1,$v0,.L8005FAEC\n" - " nop\n" - "lbu $v1,74($s0)\n" - "nop\n" - "sltiu $v0,$v1,2\n" - "bnez $v0,.L8005FB00\n" - " addiu $v0,$v1,1\n" - "addiu $v0,$zero,2\n" - "sb $v0,73($s0)\n" - "addiu $v0,$zero,255\n" - "j .L8005FB60\n" - " sb $v0,70($s0)\n" - ".L8005FAEC:\n" - "lbu $v1,74($s0)\n" - "nop\n" - "sltiu $v0,$v1,4\n" - "beqz $v0,.L8005FB08\n" - " addiu $v0,$v1,1\n" - ".L8005FB00:\n" - "j .L8005FB60\n" - " sb $v0,74($s0)\n" - ".L8005FB08:\n" - "lbu $v0,73($s0)\n" - "nop\n" - "beqz $v0,.L8005FB2C\n" - " nop\n" - "lui $v0,%hi(D_80072960)\n" - "lw $v0,%lo(D_80072960)($v0)\n" - "nop\n" - "jalr $v0\n" - " addu $a0,$s0,$zero\n" - ".L8005FB2C:\n" - "lw $v0,60($s0)\n" - "nop\n" - "lbu $v1,0($v0)\n" - "addiu $v0,$zero,243\n" - "beq $v1,$v0,.L8005FB60\n" - " addiu $v1,$zero,255\n" - "lw $v0,48($s0)\n" - "nop\n" - "sb $v1,0($v0)\n" - "lw $v0,48($s0)\n" - "nop\n" - "sb $zero,1($v0)\n" - "sb $zero,232($s0)\n" - ".L8005FB60:\n" - "lw $ra,20($sp)\n" - "lw $s0,16($sp)\n" - "jr $ra\n" - " addiu $sp,$sp,24\n" - ".set\treorder\n" - ".end\tfunc_8005FA94\n" -); +INCLUDE_ASM("asm/nonmatchings/800c3", func_8005FA94); s32 func_8005FB70(void *arg0) { register s32 ff __asm__("$2");