diff --git a/src/800c3.c b/src/800c3.c index 994f0583d..b9c4cc23e 100644 --- a/src/800c3.c +++ b/src/800c3.c @@ -928,7 +928,106 @@ void func_8005E1A4(void *arg0) { } } -INCLUDE_ASM("asm/nonmatchings/800c3", func_8005E228); +__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" +); + s32 func_8005E374(u8 *a0) { s32 t = ((a0[0xE3] + 1) / 2) * 4;