mirror of
https://github.com/pmret/papermario.git
synced 2024-11-13 22:43:00 +01:00
124 lines
5.8 KiB
ArmAsm
124 lines
5.8 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_8011B7C0
|
|
/* B1EC0 8011B7C0 3084FFFF */ andi $a0, $a0, 0xffff
|
|
/* B1EC4 8011B7C4 3C0A800A */ lui $t2, 0x800a
|
|
/* B1EC8 8011B7C8 8D4AA5F4 */ lw $t2, -0x5a0c($t2)
|
|
/* B1ECC 8011B7CC 00041080 */ sll $v0, $a0, 2
|
|
/* B1ED0 8011B7D0 004A3821 */ addu $a3, $v0, $t2
|
|
/* B1ED4 8011B7D4 90E30000 */ lbu $v1, ($a3)
|
|
/* B1ED8 8011B7D8 286200FF */ slti $v0, $v1, 0xff
|
|
/* B1EDC 8011B7DC 10400004 */ beqz $v0, .L8011B7F0
|
|
/* B1EE0 8011B7E0 2408FFFF */ addiu $t0, $zero, -1
|
|
/* B1EE4 8011B7E4 0060402D */ daddu $t0, $v1, $zero
|
|
/* B1EE8 8011B7E8 08046E10 */ j .L8011B840
|
|
/* B1EEC 8011B7EC 0100482D */ daddu $t1, $t0, $zero
|
|
.L8011B7F0:
|
|
/* B1EF0 8011B7F0 2484FFFF */ addiu $a0, $a0, -1
|
|
/* B1EF4 8011B7F4 90EB0001 */ lbu $t3, 1($a3)
|
|
/* B1EF8 8011B7F8 04800011 */ bltz $a0, .L8011B840
|
|
/* B1EFC 8011B7FC 00041080 */ sll $v0, $a0, 2
|
|
/* B1F00 8011B800 240CFFFF */ addiu $t4, $zero, -1
|
|
/* B1F04 8011B804 004A3821 */ addu $a3, $v0, $t2
|
|
.L8011B808:
|
|
/* B1F08 8011B808 90E20001 */ lbu $v0, 1($a3)
|
|
/* B1F0C 8011B80C 0162102A */ slt $v0, $t3, $v0
|
|
/* B1F10 8011B810 1040000C */ beqz $v0, .L8011B844
|
|
/* B1F14 8011B814 28C20002 */ slti $v0, $a2, 2
|
|
/* B1F18 8011B818 90E30000 */ lbu $v1, ($a3)
|
|
/* B1F1C 8011B81C 286200FF */ slti $v0, $v1, 0xff
|
|
/* B1F20 8011B820 50400005 */ beql $v0, $zero, .L8011B838
|
|
/* B1F24 8011B824 2484FFFF */ addiu $a0, $a0, -1
|
|
/* B1F28 8011B828 510C0001 */ beql $t0, $t4, .L8011B830
|
|
/* B1F2C 8011B82C 0060402D */ daddu $t0, $v1, $zero
|
|
.L8011B830:
|
|
/* B1F30 8011B830 0060482D */ daddu $t1, $v1, $zero
|
|
/* B1F34 8011B834 2484FFFF */ addiu $a0, $a0, -1
|
|
.L8011B838:
|
|
/* B1F38 8011B838 0481FFF3 */ bgez $a0, .L8011B808
|
|
/* B1F3C 8011B83C 24E7FFFC */ addiu $a3, $a3, -4
|
|
.L8011B840:
|
|
/* B1F40 8011B840 28C20002 */ slti $v0, $a2, 2
|
|
.L8011B844:
|
|
/* B1F44 8011B844 10400016 */ beqz $v0, .L8011B8A0
|
|
/* B1F48 8011B848 0120202D */ daddu $a0, $t1, $zero
|
|
/* B1F4C 8011B84C 0104102A */ slt $v0, $t0, $a0
|
|
/* B1F50 8011B850 14400011 */ bnez $v0, .L8011B898
|
|
/* B1F54 8011B854 00054827 */ nor $t1, $zero, $a1
|
|
/* B1F58 8011B858 3C038015 */ lui $v1, %hi(gCurrentModelListPtr)
|
|
/* B1F5C 8011B85C 8C6312CC */ lw $v1, %lo(gCurrentModelListPtr)($v1)
|
|
/* B1F60 8011B860 00041080 */ sll $v0, $a0, 2
|
|
/* B1F64 8011B864 00433821 */ addu $a3, $v0, $v1
|
|
.L8011B868:
|
|
/* B1F68 8011B868 10C00004 */ beqz $a2, .L8011B87C
|
|
/* B1F6C 8011B86C 8CE30000 */ lw $v1, ($a3)
|
|
/* B1F70 8011B870 94620000 */ lhu $v0, ($v1)
|
|
/* B1F74 8011B874 08046E21 */ j .L8011B884
|
|
/* B1F78 8011B878 00491024 */ and $v0, $v0, $t1
|
|
.L8011B87C:
|
|
/* B1F7C 8011B87C 94620000 */ lhu $v0, ($v1)
|
|
/* B1F80 8011B880 00451025 */ or $v0, $v0, $a1
|
|
.L8011B884:
|
|
/* B1F84 8011B884 A4620000 */ sh $v0, ($v1)
|
|
/* B1F88 8011B888 24840001 */ addiu $a0, $a0, 1
|
|
/* B1F8C 8011B88C 0104102A */ slt $v0, $t0, $a0
|
|
/* B1F90 8011B890 1040FFF5 */ beqz $v0, .L8011B868
|
|
/* B1F94 8011B894 24E70004 */ addiu $a3, $a3, 4
|
|
.L8011B898:
|
|
/* B1F98 8011B898 03E00008 */ jr $ra
|
|
/* B1F9C 8011B89C 00000000 */ nop
|
|
.L8011B8A0:
|
|
/* B1FA0 8011B8A0 19200011 */ blez $t1, .L8011B8E8
|
|
/* B1FA4 8011B8A4 0000202D */ daddu $a0, $zero, $zero
|
|
/* B1FA8 8011B8A8 240B0003 */ addiu $t3, $zero, 3
|
|
/* B1FAC 8011B8AC 00055027 */ nor $t2, $zero, $a1
|
|
/* B1FB0 8011B8B0 3C078015 */ lui $a3, %hi(gCurrentModelListPtr)
|
|
/* B1FB4 8011B8B4 8CE712CC */ lw $a3, %lo(gCurrentModelListPtr)($a3)
|
|
.L8011B8B8:
|
|
/* B1FB8 8011B8B8 14CB0004 */ bne $a2, $t3, .L8011B8CC
|
|
/* B1FBC 8011B8BC 8CE30000 */ lw $v1, ($a3)
|
|
/* B1FC0 8011B8C0 94620000 */ lhu $v0, ($v1)
|
|
/* B1FC4 8011B8C4 08046E35 */ j .L8011B8D4
|
|
/* B1FC8 8011B8C8 004A1024 */ and $v0, $v0, $t2
|
|
.L8011B8CC:
|
|
/* B1FCC 8011B8CC 94620000 */ lhu $v0, ($v1)
|
|
/* B1FD0 8011B8D0 00451025 */ or $v0, $v0, $a1
|
|
.L8011B8D4:
|
|
/* B1FD4 8011B8D4 A4620000 */ sh $v0, ($v1)
|
|
/* B1FD8 8011B8D8 24840001 */ addiu $a0, $a0, 1
|
|
/* B1FDC 8011B8DC 0089102A */ slt $v0, $a0, $t1
|
|
/* B1FE0 8011B8E0 1440FFF5 */ bnez $v0, .L8011B8B8
|
|
/* B1FE4 8011B8E4 24E70004 */ addiu $a3, $a3, 4
|
|
.L8011B8E8:
|
|
/* B1FE8 8011B8E8 25040001 */ addiu $a0, $t0, 1
|
|
/* B1FEC 8011B8EC 28820100 */ slti $v0, $a0, 0x100
|
|
/* B1FF0 8011B8F0 1040FFE9 */ beqz $v0, .L8011B898
|
|
/* B1FF4 8011B8F4 24090003 */ addiu $t1, $zero, 3
|
|
/* B1FF8 8011B8F8 00054027 */ nor $t0, $zero, $a1
|
|
/* B1FFC 8011B8FC 3C038015 */ lui $v1, %hi(gCurrentModelListPtr)
|
|
/* B2000 8011B900 8C6312CC */ lw $v1, %lo(gCurrentModelListPtr)($v1)
|
|
/* B2004 8011B904 00041080 */ sll $v0, $a0, 2
|
|
/* B2008 8011B908 00433821 */ addu $a3, $v0, $v1
|
|
.L8011B90C:
|
|
/* B200C 8011B90C 8CE30000 */ lw $v1, ($a3)
|
|
/* B2010 8011B910 5060000A */ beql $v1, $zero, .L8011B93C
|
|
/* B2014 8011B914 24840001 */ addiu $a0, $a0, 1
|
|
/* B2018 8011B918 14C90004 */ bne $a2, $t1, .L8011B92C
|
|
/* B201C 8011B91C 00000000 */ nop
|
|
/* B2020 8011B920 94620000 */ lhu $v0, ($v1)
|
|
/* B2024 8011B924 08046E4D */ j .L8011B934
|
|
/* B2028 8011B928 00481024 */ and $v0, $v0, $t0
|
|
.L8011B92C:
|
|
/* B202C 8011B92C 94620000 */ lhu $v0, ($v1)
|
|
/* B2030 8011B930 00451025 */ or $v0, $v0, $a1
|
|
.L8011B934:
|
|
/* B2034 8011B934 A4620000 */ sh $v0, ($v1)
|
|
/* B2038 8011B938 24840001 */ addiu $a0, $a0, 1
|
|
.L8011B93C:
|
|
/* B203C 8011B93C 28820100 */ slti $v0, $a0, 0x100
|
|
/* B2040 8011B940 1440FFF2 */ bnez $v0, .L8011B90C
|
|
/* B2044 8011B944 24E70004 */ addiu $a3, $a3, 4
|
|
/* B2048 8011B948 03E00008 */ jr $ra
|
|
/* B204C 8011B94C 00000000 */ nop
|