.set noat # allow manual use of $at .set noreorder # don't insert nops after branches .section .rodata glabel D_80150370 .double 3.8 glabel D_80150378 .double 122.0 glabel jtbl_80150380 .word L80123E98_BA598, L80124174_BA874, L80124174_BA874, L80123E50_BA550, L80124174_BA874, L80123F2C_BA62C, L80124174_BA874, L80124174_BA874, L80124174_BA874, L80124174_BA874, L80124018_BA718, L80124174_BA874, L80124174_BA874, L80124174_BA874 .section .text glabel _update_message /* B9F98 80123898 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B9F9C 8012389C AFB00010 */ sw $s0, 0x10($sp) /* B9FA0 801238A0 0080802D */ daddu $s0, $a0, $zero /* B9FA4 801238A4 AFBF0018 */ sw $ra, 0x18($sp) /* B9FA8 801238A8 AFB10014 */ sw $s1, 0x14($sp) /* B9FAC 801238AC 96020452 */ lhu $v0, 0x452($s0) /* B9FB0 801238B0 24420001 */ addiu $v0, $v0, 1 /* B9FB4 801238B4 A6020452 */ sh $v0, 0x452($s0) /* B9FB8 801238B8 3042FFFF */ andi $v0, $v0, 0xffff /* B9FBC 801238BC 2C420E10 */ sltiu $v0, $v0, 0xe10 /* B9FC0 801238C0 50400001 */ beql $v0, $zero, .L801238C8 /* B9FC4 801238C4 A6000452 */ sh $zero, 0x452($s0) .L801238C8: /* B9FC8 801238C8 8602050A */ lh $v0, 0x50a($s0) /* B9FCC 801238CC 3C014064 */ lui $at, 0x4064 /* B9FD0 801238D0 44811800 */ mtc1 $at, $f3 /* B9FD4 801238D4 44801000 */ mtc1 $zero, $f2 /* B9FD8 801238D8 44820000 */ mtc1 $v0, $f0 /* B9FDC 801238DC 00000000 */ nop /* B9FE0 801238E0 46800020 */ cvt.s.w $f0, $f0 /* B9FE4 801238E4 46000021 */ cvt.d.s $f0, $f0 /* B9FE8 801238E8 46220001 */ sub.d $f0, $f0, $f2 /* B9FEC 801238EC 3C018015 */ lui $at, %hi(D_80150370) /* B9FF0 801238F0 D4220370 */ ldc1 $f2, %lo(D_80150370)($at) /* B9FF4 801238F4 3C014050 */ lui $at, 0x4050 /* B9FF8 801238F8 44812800 */ mtc1 $at, $f5 /* B9FFC 801238FC 44802000 */ mtc1 $zero, $f4 /* BA000 80123900 46220003 */ div.d $f0, $f0, $f2 /* BA004 80123904 46240000 */ add.d $f0, $f0, $f4 /* BA008 80123908 46200120 */ cvt.s.d $f4, $f0 /* BA00C 8012390C 3C014014 */ lui $at, 0x4014 /* BA010 80123910 44810800 */ mtc1 $at, $f1 /* BA014 80123914 44800000 */ mtc1 $zero, $f0 /* BA018 80123918 460020A1 */ cvt.d.s $f2, $f4 /* BA01C 8012391C 4620103C */ c.lt.d $f2, $f0 /* BA020 80123920 00000000 */ nop /* BA024 80123924 45000005 */ bc1f .L8012393C /* BA028 80123928 00000000 */ nop /* BA02C 8012392C 3C0140A0 */ lui $at, 0x40a0 /* BA030 80123930 44812000 */ mtc1 $at, $f4 /* BA034 80123934 08048E57 */ j .L8012395C /* BA038 80123938 00000000 */ nop .L8012393C: /* BA03C 8012393C 3C018015 */ lui $at, %hi(D_80150378) /* BA040 80123940 D4200378 */ ldc1 $f0, %lo(D_80150378)($at) /* BA044 80123944 4622003C */ c.lt.d $f0, $f2 /* BA048 80123948 00000000 */ nop /* BA04C 8012394C 45000003 */ bc1f .L8012395C /* BA050 80123950 00000000 */ nop /* BA054 80123954 3C0142F4 */ lui $at, 0x42f4 /* BA058 80123958 44812000 */ mtc1 $at, $f4 .L8012395C: /* BA05C 8012395C 3C014F00 */ lui $at, 0x4f00 /* BA060 80123960 44810000 */ mtc1 $at, $f0 /* BA064 80123964 00000000 */ nop /* BA068 80123968 4604003E */ c.le.s $f0, $f4 /* BA06C 8012396C 00000000 */ nop /* BA070 80123970 45010005 */ bc1t .L80123988 /* BA074 80123974 2604051A */ addiu $a0, $s0, 0x51a /* BA078 80123978 4600218D */ trunc.w.s $f6, $f4 /* BA07C 8012397C 44033000 */ mfc1 $v1, $f6 /* BA080 80123980 08048E69 */ j .L801239A4 /* BA084 80123984 A0830000 */ sb $v1, ($a0) .L80123988: /* BA088 80123988 46002001 */ sub.s $f0, $f4, $f0 /* BA08C 8012398C 3C028000 */ lui $v0, 0x8000 /* BA090 80123990 4600018D */ trunc.w.s $f6, $f0 /* BA094 80123994 44033000 */ mfc1 $v1, $f6 /* BA098 80123998 00000000 */ nop /* BA09C 8012399C 00621825 */ or $v1, $v1, $v0 /* BA0A0 801239A0 A0830000 */ sb $v1, ($a0) .L801239A4: /* BA0A4 801239A4 8E0604FC */ lw $a2, 0x4fc($s0) /* BA0A8 801239A8 30C20040 */ andi $v0, $a2, 0x40 /* BA0AC 801239AC 144001F1 */ bnez $v0, L80124174_BA874 /* BA0B0 801239B0 0000882D */ daddu $s1, $zero, $zero /* BA0B4 801239B4 30C20030 */ andi $v0, $a2, 0x30 /* BA0B8 801239B8 144000F3 */ bnez $v0, .L80123D88 /* BA0BC 801239BC 30C20020 */ andi $v0, $a2, 0x20 /* BA0C0 801239C0 920304F8 */ lbu $v1, 0x4f8($s0) /* BA0C4 801239C4 24020007 */ addiu $v0, $zero, 7 /* BA0C8 801239C8 1062008D */ beq $v1, $v0, .L80123C00 /* BA0CC 801239CC 34078000 */ ori $a3, $zero, 0x8000 /* BA0D0 801239D0 28620008 */ slti $v0, $v1, 8 /* BA0D4 801239D4 10400005 */ beqz $v0, .L801239EC /* BA0D8 801239D8 24020005 */ addiu $v0, $zero, 5 /* BA0DC 801239DC 1062000A */ beq $v1, $v0, .L80123A08 /* BA0E0 801239E0 3C020008 */ lui $v0, 8 /* BA0E4 801239E4 08048F72 */ j .L80123DC8 /* BA0E8 801239E8 00000000 */ nop .L801239EC: /* BA0EC 801239EC 24020008 */ addiu $v0, $zero, 8 /* BA0F0 801239F0 106200D9 */ beq $v1, $v0, .L80123D58 /* BA0F4 801239F4 2402000C */ addiu $v0, $zero, 0xc /* BA0F8 801239F8 1062004F */ beq $v1, $v0, .L80123B38 /* BA0FC 801239FC 00000000 */ nop /* BA100 80123A00 08048F72 */ j .L80123DC8 /* BA104 80123A04 00000000 */ nop .L80123A08: /* BA108 80123A08 00C21024 */ and $v0, $a2, $v0 /* BA10C 80123A0C 54400001 */ bnel $v0, $zero, .L80123A14 /* BA110 80123A10 34078004 */ ori $a3, $zero, 0x8004 .L80123A14: /* BA114 80123A14 3C038007 */ lui $v1, %hi(gGameStatusPtr) /* BA118 80123A18 2463419C */ addiu $v1, $v1, %lo(gGameStatusPtr) /* BA11C 80123A1C 8C640000 */ lw $a0, ($v1) /* BA120 80123A20 8C850010 */ lw $a1, 0x10($a0) /* BA124 80123A24 00E51024 */ and $v0, $a3, $a1 /* BA128 80123A28 14400005 */ bnez $v0, .L80123A40 /* BA12C 80123A2C 00000000 */ nop /* BA130 80123A30 8C820000 */ lw $v0, ($a0) /* BA134 80123A34 30424000 */ andi $v0, $v0, 0x4000 /* BA138 80123A38 1040002F */ beqz $v0, .L80123AF8 /* BA13C 80123A3C 30A22000 */ andi $v0, $a1, 0x2000 .L80123A40: /* BA140 80123A40 8E0404FC */ lw $a0, 0x4fc($s0) /* BA144 80123A44 24020004 */ addiu $v0, $zero, 4 /* BA148 80123A48 A20204F8 */ sb $v0, 0x4f8($s0) /* BA14C 80123A4C A600000E */ sh $zero, 0xe($s0) /* BA150 80123A50 8C630000 */ lw $v1, ($v1) /* BA154 80123A54 34820004 */ ori $v0, $a0, 4 /* BA158 80123A58 AE0204FC */ sw $v0, 0x4fc($s0) /* BA15C 80123A5C 8C620010 */ lw $v0, 0x10($v1) /* BA160 80123A60 30428004 */ andi $v0, $v0, 0x8004 /* BA164 80123A64 10400003 */ beqz $v0, .L80123A74 /* BA168 80123A68 00000000 */ nop /* BA16C 80123A6C 08048EB7 */ j .L80123ADC /* BA170 80123A70 24110001 */ addiu $s1, $zero, 1 .L80123A74: /* BA174 80123A74 9603000C */ lhu $v1, 0xc($s0) /* BA178 80123A78 8E020000 */ lw $v0, ($s0) /* BA17C 80123A7C 00431021 */ addu $v0, $v0, $v1 /* BA180 80123A80 90430000 */ lbu $v1, ($v0) /* BA184 80123A84 240200FD */ addiu $v0, $zero, 0xfd /* BA188 80123A88 1062000F */ beq $v1, $v0, .L80123AC8 /* BA18C 80123A8C 34820104 */ ori $v0, $a0, 0x104 /* BA190 80123A90 92030455 */ lbu $v1, 0x455($s0) /* BA194 80123A94 14600008 */ bnez $v1, .L80123AB8 /* BA198 80123A98 AE0204FC */ sw $v0, 0x4fc($s0) /* BA19C 80123A9C 9603000C */ lhu $v1, 0xc($s0) /* BA1A0 80123AA0 8E020000 */ lw $v0, ($s0) /* BA1A4 80123AA4 00431021 */ addu $v0, $v0, $v1 /* BA1A8 80123AA8 90430000 */ lbu $v1, ($v0) /* BA1AC 80123AAC 240200C3 */ addiu $v0, $zero, 0xc3 /* BA1B0 80123AB0 5062000B */ beql $v1, $v0, .L80123AE0 /* BA1B4 80123AB4 240400CC */ addiu $a0, $zero, 0xcc .L80123AB8: /* BA1B8 80123AB8 34820184 */ ori $v0, $a0, 0x184 /* BA1BC 80123ABC AE0204FC */ sw $v0, 0x4fc($s0) /* BA1C0 80123AC0 08048EB8 */ j .L80123AE0 /* BA1C4 80123AC4 240400CC */ addiu $a0, $zero, 0xcc .L80123AC8: /* BA1C8 80123AC8 92020508 */ lbu $v0, 0x508($s0) /* BA1CC 80123ACC 2442FFFF */ addiu $v0, $v0, -1 /* BA1D0 80123AD0 2C420004 */ sltiu $v0, $v0, 4 /* BA1D4 80123AD4 104000BC */ beqz $v0, .L80123DC8 /* BA1D8 80123AD8 00000000 */ nop .L80123ADC: /* BA1DC 80123ADC 240400C9 */ addiu $a0, $zero, 0xc9 .L80123AE0: /* BA1E0 80123AE0 0000282D */ daddu $a1, $zero, $zero /* BA1E4 80123AE4 00A0302D */ daddu $a2, $a1, $zero /* BA1E8 80123AE8 0C0526AE */ jal _play_sound /* BA1EC 80123AEC 00A0382D */ daddu $a3, $a1, $zero /* BA1F0 80123AF0 08048F72 */ j .L80123DC8 /* BA1F4 80123AF4 00000000 */ nop .L80123AF8: /* BA1F8 80123AF8 104000B3 */ beqz $v0, .L80123DC8 /* BA1FC 80123AFC 3C020004 */ lui $v0, 4 /* BA200 80123B00 00C21024 */ and $v0, $a2, $v0 /* BA204 80123B04 144000B0 */ bnez $v0, .L80123DC8 /* BA208 80123B08 00000000 */ nop /* BA20C 80123B0C 92020486 */ lbu $v0, 0x486($s0) /* BA210 80123B10 104000AD */ beqz $v0, .L80123DC8 /* BA214 80123B14 240400CD */ addiu $a0, $zero, 0xcd /* BA218 80123B18 0000282D */ daddu $a1, $zero, $zero /* BA21C 80123B1C 00A0302D */ daddu $a2, $a1, $zero /* BA220 80123B20 92020486 */ lbu $v0, 0x486($s0) /* BA224 80123B24 2403000B */ addiu $v1, $zero, 0xb /* BA228 80123B28 A20304F8 */ sb $v1, 0x4f8($s0) /* BA22C 80123B2C A60004CC */ sh $zero, 0x4cc($s0) /* BA230 80123B30 08048EF2 */ j .L80123BC8 /* BA234 80123B34 2442FFFF */ addiu $v0, $v0, -1 .L80123B38: /* BA238 80123B38 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA23C 80123B3C 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA240 80123B40 8C430010 */ lw $v1, 0x10($v0) /* BA244 80123B44 30624000 */ andi $v0, $v1, 0x4000 /* BA248 80123B48 10400008 */ beqz $v0, .L80123B6C /* BA24C 80123B4C 240400CC */ addiu $a0, $zero, 0xcc /* BA250 80123B50 0000282D */ daddu $a1, $zero, $zero /* BA254 80123B54 00A0302D */ daddu $a2, $a1, $zero /* BA258 80123B58 92020486 */ lbu $v0, 0x486($s0) /* BA25C 80123B5C 2403000B */ addiu $v1, $zero, 0xb /* BA260 80123B60 A20304F8 */ sb $v1, 0x4f8($s0) /* BA264 80123B64 08048EF2 */ j .L80123BC8 /* BA268 80123B68 A60004CC */ sh $zero, 0x4cc($s0) .L80123B6C: /* BA26C 80123B6C 30622000 */ andi $v0, $v1, 0x2000 /* BA270 80123B70 1040000C */ beqz $v0, .L80123BA4 /* BA274 80123B74 30628000 */ andi $v0, $v1, 0x8000 /* BA278 80123B78 92020487 */ lbu $v0, 0x487($s0) /* BA27C 80123B7C 10400092 */ beqz $v0, .L80123DC8 /* BA280 80123B80 240400CD */ addiu $a0, $zero, 0xcd /* BA284 80123B84 0000282D */ daddu $a1, $zero, $zero /* BA288 80123B88 00A0302D */ daddu $a2, $a1, $zero /* BA28C 80123B8C 92020487 */ lbu $v0, 0x487($s0) /* BA290 80123B90 2403000B */ addiu $v1, $zero, 0xb /* BA294 80123B94 A20304F8 */ sb $v1, 0x4f8($s0) /* BA298 80123B98 A60004CC */ sh $zero, 0x4cc($s0) /* BA29C 80123B9C 08048EF2 */ j .L80123BC8 /* BA2A0 80123BA0 2442FFFF */ addiu $v0, $v0, -1 .L80123BA4: /* BA2A4 80123BA4 10400088 */ beqz $v0, .L80123DC8 /* BA2A8 80123BA8 240400CE */ addiu $a0, $zero, 0xce /* BA2AC 80123BAC 0000282D */ daddu $a1, $zero, $zero /* BA2B0 80123BB0 00A0302D */ daddu $a2, $a1, $zero /* BA2B4 80123BB4 92020487 */ lbu $v0, 0x487($s0) /* BA2B8 80123BB8 2403000B */ addiu $v1, $zero, 0xb /* BA2BC 80123BBC A20304F8 */ sb $v1, 0x4f8($s0) /* BA2C0 80123BC0 A60004CC */ sh $zero, 0x4cc($s0) /* BA2C4 80123BC4 24420001 */ addiu $v0, $v0, 1 .L80123BC8: /* BA2C8 80123BC8 A2020487 */ sb $v0, 0x487($s0) /* BA2CC 80123BCC 304200FF */ andi $v0, $v0, 0xff /* BA2D0 80123BD0 00021040 */ sll $v0, $v0, 1 /* BA2D4 80123BD4 02021021 */ addu $v0, $s0, $v0 /* BA2D8 80123BD8 94430488 */ lhu $v1, 0x488($v0) /* BA2DC 80123BDC 8E020460 */ lw $v0, 0x460($s0) /* BA2E0 80123BE0 00A0382D */ daddu $a3, $a1, $zero /* BA2E4 80123BE4 00431023 */ subu $v0, $v0, $v1 /* BA2E8 80123BE8 04420001 */ bltzl $v0, .L80123BF0 /* BA2EC 80123BEC 00021023 */ negu $v0, $v0 .L80123BF0: /* BA2F0 80123BF0 0C0526AE */ jal _play_sound /* BA2F4 80123BF4 A60204C8 */ sh $v0, 0x4c8($s0) /* BA2F8 80123BF8 08048F72 */ j .L80123DC8 /* BA2FC 80123BFC 00000000 */ nop .L80123C00: /* BA300 80123C00 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA304 80123C04 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA308 80123C08 8C440010 */ lw $a0, 0x10($v0) /* BA30C 80123C0C 30828000 */ andi $v0, $a0, 0x8000 /* BA310 80123C10 1040000E */ beqz $v0, .L80123C4C /* BA314 80123C14 0000282D */ daddu $a1, $zero, $zero /* BA318 80123C18 240400C9 */ addiu $a0, $zero, 0xc9 /* BA31C 80123C1C 00A0302D */ daddu $a2, $a1, $zero /* BA320 80123C20 00A0382D */ daddu $a3, $a1, $zero /* BA324 80123C24 24020001 */ addiu $v0, $zero, 1 /* BA328 80123C28 A20204E9 */ sb $v0, 0x4e9($s0) /* BA32C 80123C2C 24020004 */ addiu $v0, $zero, 4 /* BA330 80123C30 A20204F8 */ sb $v0, 0x4f8($s0) /* BA334 80123C34 8E0204FC */ lw $v0, 0x4fc($s0) /* BA338 80123C38 3C030002 */ lui $v1, 2 /* BA33C 80123C3C A20004ED */ sb $zero, 0x4ed($s0) /* BA340 80123C40 00431025 */ or $v0, $v0, $v1 /* BA344 80123C44 08048F50 */ j .L80123D40 /* BA348 80123C48 AE0204FC */ sw $v0, 0x4fc($s0) .L80123C4C: /* BA34C 80123C4C 920504EA */ lbu $a1, 0x4ea($s0) /* BA350 80123C50 240200FF */ addiu $v0, $zero, 0xff /* BA354 80123C54 30A300FF */ andi $v1, $a1, 0xff /* BA358 80123C58 10620019 */ beq $v1, $v0, .L80123CC0 /* BA35C 80123C5C 30824000 */ andi $v0, $a0, 0x4000 /* BA360 80123C60 10400017 */ beqz $v0, .L80123CC0 /* BA364 80123C64 00000000 */ nop /* BA368 80123C68 920204CE */ lbu $v0, 0x4ce($s0) /* BA36C 80123C6C 0062102B */ sltu $v0, $v1, $v0 /* BA370 80123C70 54400003 */ bnel $v0, $zero, .L80123C80 /* BA374 80123C74 A20504EE */ sb $a1, 0x4ee($s0) /* BA378 80123C78 920204E8 */ lbu $v0, 0x4e8($s0) /* BA37C 80123C7C A20204EE */ sb $v0, 0x4ee($s0) .L80123C80: /* BA380 80123C80 240400CA */ addiu $a0, $zero, 0xca /* BA384 80123C84 0000282D */ daddu $a1, $zero, $zero /* BA388 80123C88 00A0302D */ daddu $a2, $a1, $zero /* BA38C 80123C8C 920304EA */ lbu $v1, 0x4ea($s0) /* BA390 80123C90 24020001 */ addiu $v0, $zero, 1 /* BA394 80123C94 A20204E9 */ sb $v0, 0x4e9($s0) /* BA398 80123C98 24020004 */ addiu $v0, $zero, 4 /* BA39C 80123C9C A20204F8 */ sb $v0, 0x4f8($s0) /* BA3A0 80123CA0 8E0204FC */ lw $v0, 0x4fc($s0) /* BA3A4 80123CA4 00A0382D */ daddu $a3, $a1, $zero /* BA3A8 80123CA8 A20004ED */ sb $zero, 0x4ed($s0) /* BA3AC 80123CAC A20304E8 */ sb $v1, 0x4e8($s0) /* BA3B0 80123CB0 3C030002 */ lui $v1, 2 /* BA3B4 80123CB4 00431025 */ or $v0, $v0, $v1 /* BA3B8 80123CB8 08048F50 */ j .L80123D40 /* BA3BC 80123CBC AE0204FC */ sw $v0, 0x4fc($s0) .L80123CC0: /* BA3C0 80123CC0 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA3C4 80123CC4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA3C8 80123CC8 8C430020 */ lw $v1, 0x20($v0) /* BA3CC 80123CCC 3C020002 */ lui $v0, 2 /* BA3D0 80123CD0 00621024 */ and $v0, $v1, $v0 /* BA3D4 80123CD4 1040000B */ beqz $v0, .L80123D04 /* BA3D8 80123CD8 3C020001 */ lui $v0, 1 /* BA3DC 80123CDC 920204CE */ lbu $v0, 0x4ce($s0) /* BA3E0 80123CE0 920304E8 */ lbu $v1, 0x4e8($s0) /* BA3E4 80123CE4 2442FFFF */ addiu $v0, $v0, -1 /* BA3E8 80123CE8 10620017 */ beq $v1, $v0, .L80123D48 /* BA3EC 80123CEC 240400C7 */ addiu $a0, $zero, 0xc7 /* BA3F0 80123CF0 0000282D */ daddu $a1, $zero, $zero /* BA3F4 80123CF4 00A0302D */ daddu $a2, $a1, $zero /* BA3F8 80123CF8 00A0382D */ daddu $a3, $a1, $zero /* BA3FC 80123CFC 08048F4B */ j .L80123D2C /* BA400 80123D00 24620001 */ addiu $v0, $v1, 1 .L80123D04: /* BA404 80123D04 00621024 */ and $v0, $v1, $v0 /* BA408 80123D08 1040000F */ beqz $v0, .L80123D48 /* BA40C 80123D0C 00000000 */ nop /* BA410 80123D10 920204E8 */ lbu $v0, 0x4e8($s0) /* BA414 80123D14 1040000C */ beqz $v0, .L80123D48 /* BA418 80123D18 240400C7 */ addiu $a0, $zero, 0xc7 /* BA41C 80123D1C 0000282D */ daddu $a1, $zero, $zero /* BA420 80123D20 00A0302D */ daddu $a2, $a1, $zero /* BA424 80123D24 00A0382D */ daddu $a3, $a1, $zero /* BA428 80123D28 2442FFFF */ addiu $v0, $v0, -1 .L80123D2C: /* BA42C 80123D2C A20204EC */ sb $v0, 0x4ec($s0) /* BA430 80123D30 24020008 */ addiu $v0, $zero, 8 /* BA434 80123D34 A20204F8 */ sb $v0, 0x4f8($s0) /* BA438 80123D38 24020001 */ addiu $v0, $zero, 1 /* BA43C 80123D3C A20204ED */ sb $v0, 0x4ed($s0) .L80123D40: /* BA440 80123D40 0C0526AE */ jal _play_sound /* BA444 80123D44 00000000 */ nop .L80123D48: /* BA448 80123D48 920304F8 */ lbu $v1, 0x4f8($s0) /* BA44C 80123D4C 24020008 */ addiu $v0, $zero, 8 /* BA450 80123D50 1462001D */ bne $v1, $v0, .L80123DC8 /* BA454 80123D54 00000000 */ nop .L80123D58: /* BA458 80123D58 920204ED */ lbu $v0, 0x4ed($s0) /* BA45C 80123D5C 24420001 */ addiu $v0, $v0, 1 /* BA460 80123D60 A20204ED */ sb $v0, 0x4ed($s0) /* BA464 80123D64 304200FF */ andi $v0, $v0, 0xff /* BA468 80123D68 2C420005 */ sltiu $v0, $v0, 5 /* BA46C 80123D6C 14400016 */ bnez $v0, .L80123DC8 /* BA470 80123D70 24020007 */ addiu $v0, $zero, 7 /* BA474 80123D74 920304EC */ lbu $v1, 0x4ec($s0) /* BA478 80123D78 A20204F8 */ sb $v0, 0x4f8($s0) /* BA47C 80123D7C A20304E8 */ sb $v1, 0x4e8($s0) /* BA480 80123D80 08048F72 */ j .L80123DC8 /* BA484 80123D84 A20304EE */ sb $v1, 0x4ee($s0) .L80123D88: /* BA488 80123D88 1440000F */ bnez $v0, .L80123DC8 /* BA48C 80123D8C 24020005 */ addiu $v0, $zero, 5 /* BA490 80123D90 920304F8 */ lbu $v1, 0x4f8($s0) /* BA494 80123D94 1462000C */ bne $v1, $v0, .L80123DC8 /* BA498 80123D98 00000000 */ nop /* BA49C 80123D9C 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA4A0 80123DA0 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA4A4 80123DA4 8C420010 */ lw $v0, 0x10($v0) /* BA4A8 80123DA8 30428000 */ andi $v0, $v0, 0x8000 /* BA4AC 80123DAC 10400006 */ beqz $v0, .L80123DC8 /* BA4B0 80123DB0 24020004 */ addiu $v0, $zero, 4 /* BA4B4 80123DB4 8E0304FC */ lw $v1, 0x4fc($s0) /* BA4B8 80123DB8 A20204F8 */ sb $v0, 0x4f8($s0) /* BA4BC 80123DBC A600000E */ sh $zero, 0xe($s0) /* BA4C0 80123DC0 34630004 */ ori $v1, $v1, 4 /* BA4C4 80123DC4 AE0304FC */ sw $v1, 0x4fc($s0) .L80123DC8: /* BA4C8 80123DC8 8E0304FC */ lw $v1, 0x4fc($s0) /* BA4CC 80123DCC 30620004 */ andi $v0, $v1, 4 /* BA4D0 80123DD0 1040000B */ beqz $v0, .L80123E00 /* BA4D4 80123DD4 0000282D */ daddu $a1, $zero, $zero /* BA4D8 80123DD8 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA4DC 80123DDC 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA4E0 80123DE0 8C420000 */ lw $v0, ($v0) /* BA4E4 80123DE4 30428000 */ andi $v0, $v0, 0x8000 /* BA4E8 80123DE8 14400006 */ bnez $v0, .L80123E04 /* BA4EC 80123DEC 0200202D */ daddu $a0, $s0, $zero /* BA4F0 80123DF0 2402FFFB */ addiu $v0, $zero, -5 /* BA4F4 80123DF4 00621024 */ and $v0, $v1, $v0 /* BA4F8 80123DF8 AE0204FC */ sw $v0, 0x4fc($s0) /* BA4FC 80123DFC 0000282D */ daddu $a1, $zero, $zero .L80123E00: /* BA500 80123E00 0200202D */ daddu $a0, $s0, $zero .L80123E04: /* BA504 80123E04 84820474 */ lh $v0, 0x474($a0) /* BA508 80123E08 94830474 */ lhu $v1, 0x474($a0) /* BA50C 80123E0C 18400003 */ blez $v0, .L80123E1C /* BA510 80123E10 24A50001 */ addiu $a1, $a1, 1 /* BA514 80123E14 2462FFFF */ addiu $v0, $v1, -1 /* BA518 80123E18 A4820474 */ sh $v0, 0x474($a0) .L80123E1C: /* BA51C 80123E1C 28A20004 */ slti $v0, $a1, 4 /* BA520 80123E20 1440FFF8 */ bnez $v0, .L80123E04 /* BA524 80123E24 24840002 */ addiu $a0, $a0, 2 /* BA528 80123E28 920204F8 */ lbu $v0, 0x4f8($s0) /* BA52C 80123E2C 2443FFFF */ addiu $v1, $v0, -1 /* BA530 80123E30 2C62000E */ sltiu $v0, $v1, 0xe /* BA534 80123E34 104000CF */ beqz $v0, L80124174_BA874 /* BA538 80123E38 00031080 */ sll $v0, $v1, 2 /* BA53C 80123E3C 3C018015 */ lui $at, %hi(jtbl_80150380) /* BA540 80123E40 00220821 */ addu $at, $at, $v0 /* BA544 80123E44 8C220380 */ lw $v0, %lo(jtbl_80150380)($at) /* BA548 80123E48 00400008 */ jr $v0 /* BA54C 80123E4C 00000000 */ nop glabel L80123E50_BA550 /* BA550 80123E50 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA554 80123E54 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA558 80123E58 8C430010 */ lw $v1, 0x10($v0) /* BA55C 80123E5C 8C420000 */ lw $v0, ($v0) /* BA560 80123E60 30638000 */ andi $v1, $v1, 0x8000 /* BA564 80123E64 30424000 */ andi $v0, $v0, 0x4000 /* BA568 80123E68 00621825 */ or $v1, $v1, $v0 /* BA56C 80123E6C 1060000B */ beqz $v1, .L80123E9C /* BA570 80123E70 24020001 */ addiu $v0, $zero, 1 /* BA574 80123E74 8E0304FC */ lw $v1, 0x4fc($s0) /* BA578 80123E78 30620030 */ andi $v0, $v1, 0x30 /* BA57C 80123E7C 14400007 */ bnez $v0, .L80123E9C /* BA580 80123E80 24020001 */ addiu $v0, $zero, 1 /* BA584 80123E84 322200FF */ andi $v0, $s1, 0xff /* BA588 80123E88 14400004 */ bnez $v0, .L80123E9C /* BA58C 80123E8C 24020001 */ addiu $v0, $zero, 1 /* BA590 80123E90 34620100 */ ori $v0, $v1, 0x100 /* BA594 80123E94 AE0204FC */ sw $v0, 0x4fc($s0) glabel L80123E98_BA598 /* BA598 80123E98 24020001 */ addiu $v0, $zero, 1 .L80123E9C: /* BA59C 80123E9C 920304F8 */ lbu $v1, 0x4f8($s0) /* BA5A0 80123EA0 9205045F */ lbu $a1, 0x45f($s0) /* BA5A4 80123EA4 14620003 */ bne $v1, $v0, .L80123EB4 /* BA5A8 80123EA8 24020004 */ addiu $v0, $zero, 4 /* BA5AC 80123EAC 08048FBE */ j .L80123EF8 /* BA5B0 80123EB0 A20204F8 */ sb $v0, 0x4f8($s0) .L80123EB4: /* BA5B4 80123EB4 8E0304FC */ lw $v1, 0x4fc($s0) /* BA5B8 80123EB8 30620100 */ andi $v0, $v1, 0x100 /* BA5BC 80123EBC 10400003 */ beqz $v0, .L80123ECC /* BA5C0 80123EC0 30620004 */ andi $v0, $v1, 4 /* BA5C4 80123EC4 08048FBE */ j .L80123EF8 /* BA5C8 80123EC8 2405000C */ addiu $a1, $zero, 0xc .L80123ECC: /* BA5CC 80123ECC 1440000B */ bnez $v0, .L80123EFC /* BA5D0 80123ED0 30620030 */ andi $v0, $v1, 0x30 /* BA5D4 80123ED4 14400009 */ bnez $v0, .L80123EFC /* BA5D8 80123ED8 00000000 */ nop /* BA5DC 80123EDC 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA5E0 80123EE0 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA5E4 80123EE4 8C420000 */ lw $v0, ($v0) /* BA5E8 80123EE8 30428000 */ andi $v0, $v0, 0x8000 /* BA5EC 80123EEC 10400003 */ beqz $v0, .L80123EFC /* BA5F0 80123EF0 00000000 */ nop /* BA5F4 80123EF4 24050006 */ addiu $a1, $zero, 6 .L80123EF8: /* BA5F8 80123EF8 A600000E */ sh $zero, 0xe($s0) .L80123EFC: /* BA5FC 80123EFC 9602000E */ lhu $v0, 0xe($s0) /* BA600 80123F00 10400005 */ beqz $v0, .L80123F18 /* BA604 80123F04 2442FFFF */ addiu $v0, $v0, -1 /* BA608 80123F08 A602000E */ sh $v0, 0xe($s0) /* BA60C 80123F0C 3042FFFF */ andi $v0, $v0, 0xffff /* BA610 80123F10 14400098 */ bnez $v0, L80124174_BA874 /* BA614 80123F14 00000000 */ nop .L80123F18: /* BA618 80123F18 0200202D */ daddu $a0, $s0, $zero /* BA61C 80123F1C 0C04915C */ jal func_80124570 /* BA620 80123F20 0000302D */ daddu $a2, $zero, $zero /* BA624 80123F24 0804905D */ j L80124174_BA874 /* BA628 80123F28 00000000 */ nop glabel L80123F2C_BA62C /* BA62C 80123F2C 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA630 80123F30 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA634 80123F34 8C420010 */ lw $v0, 0x10($v0) /* BA638 80123F38 3042C000 */ andi $v0, $v0, 0xc000 /* BA63C 80123F3C 10400006 */ beqz $v0, .L80123F58 /* BA640 80123F40 00000000 */ nop /* BA644 80123F44 8E0304FC */ lw $v1, 0x4fc($s0) /* BA648 80123F48 30620030 */ andi $v0, $v1, 0x30 /* BA64C 80123F4C 14400002 */ bnez $v0, .L80123F58 /* BA650 80123F50 34620100 */ ori $v0, $v1, 0x100 /* BA654 80123F54 AE0204FC */ sw $v0, 0x4fc($s0) .L80123F58: /* BA658 80123F58 92030464 */ lbu $v1, 0x464($s0) /* BA65C 80123F5C 8E020460 */ lw $v0, 0x460($s0) /* BA660 80123F60 8E0404FC */ lw $a0, 0x4fc($s0) /* BA664 80123F64 00431821 */ addu $v1, $v0, $v1 /* BA668 80123F68 30820100 */ andi $v0, $a0, 0x100 /* BA66C 80123F6C 1440000A */ bnez $v0, .L80123F98 /* BA670 80123F70 AE030460 */ sw $v1, 0x460($s0) /* BA674 80123F74 30820014 */ andi $v0, $a0, 0x14 /* BA678 80123F78 14400009 */ bnez $v0, .L80123FA0 /* BA67C 80123F7C 00000000 */ nop /* BA680 80123F80 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* BA684 80123F84 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* BA688 80123F88 8C420000 */ lw $v0, ($v0) /* BA68C 80123F8C 30428000 */ andi $v0, $v0, 0x8000 /* BA690 80123F90 10400003 */ beqz $v0, .L80123FA0 /* BA694 80123F94 00000000 */ nop .L80123F98: /* BA698 80123F98 24620006 */ addiu $v0, $v1, 6 /* BA69C 80123F9C AE020460 */ sw $v0, 0x460($s0) .L80123FA0: /* BA6A0 80123FA0 96030466 */ lhu $v1, 0x466($s0) /* BA6A4 80123FA4 8E020460 */ lw $v0, 0x460($s0) /* BA6A8 80123FA8 0043102A */ slt $v0, $v0, $v1 /* BA6AC 80123FAC 14400071 */ bnez $v0, L80124174_BA874 /* BA6B0 80123FB0 24020004 */ addiu $v0, $zero, 4 /* BA6B4 80123FB4 A20204F8 */ sb $v0, 0x4f8($s0) /* BA6B8 80123FB8 8E0204FC */ lw $v0, 0x4fc($s0) /* BA6BC 80123FBC AE030460 */ sw $v1, 0x460($s0) /* BA6C0 80123FC0 92030508 */ lbu $v1, 0x508($s0) /* BA6C4 80123FC4 34420004 */ ori $v0, $v0, 4 /* BA6C8 80123FC8 2463FFF9 */ addiu $v1, $v1, -7 /* BA6CC 80123FCC 2C630002 */ sltiu $v1, $v1, 2 /* BA6D0 80123FD0 14600008 */ bnez $v1, .L80123FF4 /* BA6D4 80123FD4 AE0204FC */ sw $v0, 0x4fc($s0) /* BA6D8 80123FD8 9603000C */ lhu $v1, 0xc($s0) /* BA6DC 80123FDC 8E020000 */ lw $v0, ($s0) /* BA6E0 80123FE0 00431021 */ addu $v0, $v0, $v1 /* BA6E4 80123FE4 90430000 */ lbu $v1, ($v0) /* BA6E8 80123FE8 240200F1 */ addiu $v0, $zero, 0xf1 /* BA6EC 80123FEC 14620003 */ bne $v1, $v0, .L80123FFC /* BA6F0 80123FF0 24020005 */ addiu $v0, $zero, 5 .L80123FF4: /* BA6F4 80123FF4 08049000 */ j .L80124000 /* BA6F8 80123FF8 A600000E */ sh $zero, 0xe($s0) .L80123FFC: /* BA6FC 80123FFC A602000E */ sh $v0, 0xe($s0) .L80124000: /* BA700 80124000 92020486 */ lbu $v0, 0x486($s0) /* BA704 80124004 96030462 */ lhu $v1, 0x462($s0) /* BA708 80124008 00021040 */ sll $v0, $v0, 1 /* BA70C 8012400C 02021021 */ addu $v0, $s0, $v0 /* BA710 80124010 0804905D */ j L80124174_BA874 /* BA714 80124014 A4430488 */ sh $v1, 0x488($v0) glabel L80124018_BA718 /* BA718 80124018 960204CC */ lhu $v0, 0x4cc($s0) /* BA71C 8012401C 92030487 */ lbu $v1, 0x487($s0) /* BA720 80124020 24420001 */ addiu $v0, $v0, 1 /* BA724 80124024 00031840 */ sll $v1, $v1, 1 /* BA728 80124028 02031821 */ addu $v1, $s0, $v1 /* BA72C 8012402C A60204CC */ sh $v0, 0x4cc($s0) /* BA730 80124030 94620488 */ lhu $v0, 0x488($v1) /* BA734 80124034 8E030460 */ lw $v1, 0x460($s0) /* BA738 80124038 00621823 */ subu $v1, $v1, $v0 /* BA73C 8012403C 960204C8 */ lhu $v0, 0x4c8($s0) /* BA740 80124040 04620001 */ bltzl $v1, .L80124048 /* BA744 80124044 00031823 */ negu $v1, $v1 .L80124048: /* BA748 80124048 2C420011 */ sltiu $v0, $v0, 0x11 /* BA74C 8012404C 10400008 */ beqz $v0, .L80124070 /* BA750 80124050 24040002 */ addiu $a0, $zero, 2 /* BA754 80124054 00031400 */ sll $v0, $v1, 0x10 /* BA758 80124058 00021C03 */ sra $v1, $v0, 0x10 /* BA75C 8012405C 2862000F */ slti $v0, $v1, 0xf /* BA760 80124060 10400018 */ beqz $v0, .L801240C4 /* BA764 80124064 28620009 */ slti $v0, $v1, 9 /* BA768 80124068 08049033 */ j .L801240CC /* BA76C 8012406C 00000000 */ nop .L80124070: /* BA770 80124070 00031400 */ sll $v0, $v1, 0x10 /* BA774 80124074 00021C03 */ sra $v1, $v0, 0x10 /* BA778 80124078 28620061 */ slti $v0, $v1, 0x61 /* BA77C 8012407C 14400003 */ bnez $v0, .L8012408C /* BA780 80124080 28620031 */ slti $v0, $v1, 0x31 /* BA784 80124084 08049035 */ j .L801240D4 /* BA788 80124088 2404000A */ addiu $a0, $zero, 0xa .L8012408C: /* BA78C 8012408C 14400003 */ bnez $v0, .L8012409C /* BA790 80124090 28620018 */ slti $v0, $v1, 0x18 /* BA794 80124094 08049035 */ j .L801240D4 /* BA798 80124098 24040009 */ addiu $a0, $zero, 9 .L8012409C: /* BA79C 8012409C 14400003 */ bnez $v0, .L801240AC /* BA7A0 801240A0 28620010 */ slti $v0, $v1, 0x10 /* BA7A4 801240A4 08049035 */ j .L801240D4 /* BA7A8 801240A8 24040007 */ addiu $a0, $zero, 7 .L801240AC: /* BA7AC 801240AC 14400003 */ bnez $v0, .L801240BC /* BA7B0 801240B0 28620008 */ slti $v0, $v1, 8 /* BA7B4 801240B4 08049035 */ j .L801240D4 /* BA7B8 801240B8 24040005 */ addiu $a0, $zero, 5 .L801240BC: /* BA7BC 801240BC 14400003 */ bnez $v0, .L801240CC /* BA7C0 801240C0 28620005 */ slti $v0, $v1, 5 .L801240C4: /* BA7C4 801240C4 08049035 */ j .L801240D4 /* BA7C8 801240C8 24040004 */ addiu $a0, $zero, 4 .L801240CC: /* BA7CC 801240CC 50400001 */ beql $v0, $zero, .L801240D4 /* BA7D0 801240D0 24040003 */ addiu $a0, $zero, 3 .L801240D4: /* BA7D4 801240D4 92020487 */ lbu $v0, 0x487($s0) /* BA7D8 801240D8 8E030460 */ lw $v1, 0x460($s0) /* BA7DC 801240DC A60404CA */ sh $a0, 0x4ca($s0) /* BA7E0 801240E0 00021040 */ sll $v0, $v0, 1 /* BA7E4 801240E4 02021021 */ addu $v0, $s0, $v0 /* BA7E8 801240E8 94420488 */ lhu $v0, 0x488($v0) /* BA7EC 801240EC 0043102A */ slt $v0, $v0, $v1 /* BA7F0 801240F0 5040000E */ beql $v0, $zero, .L8012412C /* BA7F4 801240F4 00831821 */ addu $v1, $a0, $v1 /* BA7F8 801240F8 92020487 */ lbu $v0, 0x487($s0) /* BA7FC 801240FC 00641823 */ subu $v1, $v1, $a0 /* BA800 80124100 AE030460 */ sw $v1, 0x460($s0) /* BA804 80124104 00021040 */ sll $v0, $v0, 1 /* BA808 80124108 02021021 */ addu $v0, $s0, $v0 /* BA80C 8012410C 94420488 */ lhu $v0, 0x488($v0) /* BA810 80124110 0043182A */ slt $v1, $v0, $v1 /* BA814 80124114 14600017 */ bnez $v1, L80124174_BA874 /* BA818 80124118 00000000 */ nop /* BA81C 8012411C AE020460 */ sw $v0, 0x460($s0) /* BA820 80124120 2402000C */ addiu $v0, $zero, 0xc /* BA824 80124124 0804905D */ j L80124174_BA874 /* BA828 80124128 A20204F8 */ sb $v0, 0x4f8($s0) .L8012412C: /* BA82C 8012412C 92020487 */ lbu $v0, 0x487($s0) /* BA830 80124130 AE030460 */ sw $v1, 0x460($s0) /* BA834 80124134 00021040 */ sll $v0, $v0, 1 /* BA838 80124138 02021021 */ addu $v0, $s0, $v0 /* BA83C 8012413C 94420488 */ lhu $v0, 0x488($v0) /* BA840 80124140 0062182A */ slt $v1, $v1, $v0 /* BA844 80124144 1460000B */ bnez $v1, L80124174_BA874 /* BA848 80124148 00000000 */ nop /* BA84C 8012414C 92040487 */ lbu $a0, 0x487($s0) /* BA850 80124150 92030486 */ lbu $v1, 0x486($s0) /* BA854 80124154 AE020460 */ sw $v0, 0x460($s0) /* BA858 80124158 2402000C */ addiu $v0, $zero, 0xc /* BA85C 8012415C 14830005 */ bne $a0, $v1, L80124174_BA874 /* BA860 80124160 A20204F8 */ sb $v0, 0x4f8($s0) /* BA864 80124164 24020005 */ addiu $v0, $zero, 5 /* BA868 80124168 A20204F8 */ sb $v0, 0x4f8($s0) /* BA86C 8012416C A200047C */ sb $zero, 0x47c($s0) /* BA870 80124170 A600047E */ sh $zero, 0x47e($s0) glabel L80124174_BA874 /* BA874 80124174 8E0204FC */ lw $v0, 0x4fc($s0) /* BA878 80124178 30420001 */ andi $v0, $v0, 1 /* BA87C 8012417C 1040001B */ beqz $v0, .L801241EC /* BA880 80124180 00000000 */ nop /* BA884 80124184 8E040544 */ lw $a0, 0x544($s0) /* BA888 80124188 A20004F8 */ sb $zero, 0x4f8($s0) /* BA88C 8012418C 10800003 */ beqz $a0, .L8012419C /* BA890 80124190 AE0004FC */ sw $zero, 0x4fc($s0) /* BA894 80124194 0C00AB1E */ jal general_heap_free /* BA898 80124198 00000000 */ nop .L8012419C: /* BA89C 8012419C 8E040548 */ lw $a0, 0x548($s0) /* BA8A0 801241A0 10800003 */ beqz $a0, .L801241B0 /* BA8A4 801241A4 00000000 */ nop /* BA8A8 801241A8 0C00AB1E */ jal general_heap_free /* BA8AC 801241AC 00000000 */ nop .L801241B0: /* BA8B0 801241B0 8E04054C */ lw $a0, 0x54c($s0) /* BA8B4 801241B4 10800003 */ beqz $a0, .L801241C4 /* BA8B8 801241B8 00000000 */ nop /* BA8BC 801241BC 0C00AB1E */ jal general_heap_free /* BA8C0 801241C0 00000000 */ nop .L801241C4: /* BA8C4 801241C4 8E040550 */ lw $a0, 0x550($s0) /* BA8C8 801241C8 10800003 */ beqz $a0, .L801241D8 /* BA8CC 801241CC 00000000 */ nop /* BA8D0 801241D0 0C00AB1E */ jal general_heap_free /* BA8D4 801241D4 00000000 */ nop .L801241D8: /* BA8D8 801241D8 8E030504 */ lw $v1, 0x504($s0) /* BA8DC 801241DC 10600003 */ beqz $v1, .L801241EC /* BA8E0 801241E0 24020001 */ addiu $v0, $zero, 1 /* BA8E4 801241E4 AC620000 */ sw $v0, ($v1) /* BA8E8 801241E8 AE000504 */ sw $zero, 0x504($s0) .L801241EC: /* BA8EC 801241EC 920204F8 */ lbu $v0, 0x4f8($s0) /* BA8F0 801241F0 8FBF0018 */ lw $ra, 0x18($sp) /* BA8F4 801241F4 8FB10014 */ lw $s1, 0x14($sp) /* BA8F8 801241F8 8FB00010 */ lw $s0, 0x10($sp) /* BA8FC 801241FC 03E00008 */ jr $ra /* BA900 80124200 27BD0020 */ addiu $sp, $sp, 0x20