papermario/asm/nonmatchings/code_428A70/func_802A9278_428CE8.s
Ethan Roseman 20a99f4037 OK
2021-02-03 15:40:16 +09:00

319 lines
16 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802A9278_428CE8
/* 428CE8 802A9278 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 428CEC 802A927C AFB10014 */ sw $s1, 0x14($sp)
/* 428CF0 802A9280 3C11802A */ lui $s1, %hi(D_8029FBE0)
/* 428CF4 802A9284 2631FBE0 */ addiu $s1, $s1, %lo(D_8029FBE0)
/* 428CF8 802A9288 AFBF001C */ sw $ra, 0x1c($sp)
/* 428CFC 802A928C AFB20018 */ sw $s2, 0x18($sp)
/* 428D00 802A9290 AFB00010 */ sw $s0, 0x10($sp)
/* 428D04 802A9294 8623004C */ lh $v1, 0x4c($s1)
/* 428D08 802A9298 3C12800E */ lui $s2, %hi(gBattleStatus)
/* 428D0C 802A929C 2652C070 */ addiu $s2, $s2, %lo(gBattleStatus)
/* 428D10 802A92A0 2C62000D */ sltiu $v0, $v1, 0xd
/* 428D14 802A92A4 1040010B */ beqz $v0, .L802A96D4
/* 428D18 802A92A8 00031080 */ sll $v0, $v1, 2
/* 428D1C 802A92AC 3C01802B */ lui $at, %hi(jtbl_802A9870_4292E0)
/* 428D20 802A92B0 00220821 */ addu $at, $at, $v0
/* 428D24 802A92B4 8C229870 */ lw $v0, %lo(jtbl_802A9870_4292E0)($at)
/* 428D28 802A92B8 00400008 */ jr $v0
/* 428D2C 802A92BC 00000000 */ nop
glabel L802A92C0_428D30
/* 428D30 802A92C0 0C093EB1 */ jal set_popup_duration
/* 428D34 802A92C4 24040063 */ addiu $a0, $zero, 0x63
/* 428D38 802A92C8 8E300004 */ lw $s0, 4($s1)
/* 428D3C 802A92CC 240500FF */ addiu $a1, $zero, 0xff
/* 428D40 802A92D0 0C0513AC */ jal icon_set_opacity
/* 428D44 802A92D4 0200202D */ daddu $a0, $s0, $zero
/* 428D48 802A92D8 82220061 */ lb $v0, 0x61($s1)
/* 428D4C 802A92DC 10400003 */ beqz $v0, .L802A92EC
/* 428D50 802A92E0 0200202D */ daddu $a0, $s0, $zero
/* 428D54 802A92E4 0C05128B */ jal clear_icon_flags
/* 428D58 802A92E8 24050002 */ addiu $a1, $zero, 2
.L802A92EC:
/* 428D5C 802A92EC 8E300008 */ lw $s0, 8($s1)
/* 428D60 802A92F0 240500FF */ addiu $a1, $zero, 0xff
/* 428D64 802A92F4 0C0513AC */ jal icon_set_opacity
/* 428D68 802A92F8 0200202D */ daddu $a0, $s0, $zero
/* 428D6C 802A92FC 82220061 */ lb $v0, 0x61($s1)
/* 428D70 802A9300 10400003 */ beqz $v0, .L802A9310
/* 428D74 802A9304 0200202D */ daddu $a0, $s0, $zero
/* 428D78 802A9308 0C05128B */ jal clear_icon_flags
/* 428D7C 802A930C 24050002 */ addiu $a1, $zero, 2
.L802A9310:
/* 428D80 802A9310 24020001 */ addiu $v0, $zero, 1
/* 428D84 802A9314 080AA5B5 */ j .L802A96D4
/* 428D88 802A9318 A622004C */ sh $v0, 0x4c($s1)
glabel L802A931C_428D8C
/* 428D8C 802A931C 0C093EB1 */ jal set_popup_duration
/* 428D90 802A9320 24040063 */ addiu $a0, $zero, 0x63
/* 428D94 802A9324 8622006C */ lh $v0, 0x6c($s1)
/* 428D98 802A9328 9623006C */ lhu $v1, 0x6c($s1)
/* 428D9C 802A932C 10400003 */ beqz $v0, .L802A933C
/* 428DA0 802A9330 2462FFFF */ addiu $v0, $v1, -1
/* 428DA4 802A9334 080AA5B5 */ j .L802A96D4
/* 428DA8 802A9338 A622006C */ sh $v0, 0x6c($s1)
.L802A933C:
/* 428DAC 802A933C 96220056 */ lhu $v0, 0x56($s1)
/* 428DB0 802A9340 24420014 */ addiu $v0, $v0, 0x14
/* 428DB4 802A9344 A6220056 */ sh $v0, 0x56($s1)
/* 428DB8 802A9348 00021400 */ sll $v0, $v0, 0x10
/* 428DBC 802A934C 00021403 */ sra $v0, $v0, 0x10
/* 428DC0 802A9350 28420033 */ slti $v0, $v0, 0x33
/* 428DC4 802A9354 14400002 */ bnez $v0, .L802A9360
/* 428DC8 802A9358 24020032 */ addiu $v0, $zero, 0x32
/* 428DCC 802A935C A6220056 */ sh $v0, 0x56($s1)
.L802A9360:
/* 428DD0 802A9360 8E240004 */ lw $a0, 4($s1)
/* 428DD4 802A9364 86250056 */ lh $a1, 0x56($s1)
/* 428DD8 802A9368 0C051261 */ jal set_icon_render_pos
/* 428DDC 802A936C 86260058 */ lh $a2, 0x58($s1)
/* 428DE0 802A9370 8E240008 */ lw $a0, 8($s1)
/* 428DE4 802A9374 86260058 */ lh $a2, 0x58($s1)
/* 428DE8 802A9378 86250056 */ lh $a1, 0x56($s1)
/* 428DEC 802A937C 0C051261 */ jal set_icon_render_pos
/* 428DF0 802A9380 24C6001C */ addiu $a2, $a2, 0x1c
/* 428DF4 802A9384 080AA5B5 */ j .L802A96D4
/* 428DF8 802A9388 00000000 */ nop
glabel L802A938C_428DFC
/* 428DFC 802A938C 0C093EB1 */ jal set_popup_duration
/* 428E00 802A9390 24040063 */ addiu $a0, $zero, 0x63
/* 428E04 802A9394 8622004E */ lh $v0, 0x4e($s1)
/* 428E08 802A9398 9623004E */ lhu $v1, 0x4e($s1)
/* 428E0C 802A939C 10400003 */ beqz $v0, .L802A93AC
/* 428E10 802A93A0 2462FFFF */ addiu $v0, $v1, -1
/* 428E14 802A93A4 080AA5B5 */ j .L802A96D4
/* 428E18 802A93A8 A622004E */ sh $v0, 0x4e($s1)
.L802A93AC:
/* 428E1C 802A93AC 8E240004 */ lw $a0, 4($s1)
/* 428E20 802A93B0 3C058011 */ lui $a1, %hi(D_80108B80)
/* 428E24 802A93B4 24A58B80 */ addiu $a1, $a1, %lo(D_80108B80)
/* 428E28 802A93B8 0C0511FF */ jal set_menu_icon_script
/* 428E2C 802A93BC 00000000 */ nop
/* 428E30 802A93C0 3C048000 */ lui $a0, 0x8000
/* 428E34 802A93C4 34840041 */ ori $a0, $a0, 0x41
/* 428E38 802A93C8 0000282D */ daddu $a1, $zero, $zero
/* 428E3C 802A93CC 00A0302D */ daddu $a2, $a1, $zero
/* 428E40 802A93D0 00A0382D */ daddu $a3, $a1, $zero
/* 428E44 802A93D4 96220052 */ lhu $v0, 0x52($s1)
/* 428E48 802A93D8 24030001 */ addiu $v1, $zero, 1
/* 428E4C 802A93DC 3C01802B */ lui $at, %hi(func_802A98B0)
/* 428E50 802A93E0 AC2398B0 */ sw $v1, %lo(func_802A98B0)($at)
/* 428E54 802A93E4 0C0526AE */ jal _play_sound
/* 428E58 802A93E8 A6220054 */ sh $v0, 0x54($s1)
/* 428E5C 802A93EC 2402000B */ addiu $v0, $zero, 0xb
/* 428E60 802A93F0 A622004C */ sh $v0, 0x4c($s1)
glabel L802A93F4_428E64
/* 428E64 802A93F4 0C093EB1 */ jal set_popup_duration
/* 428E68 802A93F8 24040063 */ addiu $a0, $zero, 0x63
/* 428E6C 802A93FC 86220068 */ lh $v0, 0x68($s1)
/* 428E70 802A9400 14400027 */ bnez $v0, .L802A94A0
/* 428E74 802A9404 00000000 */ nop
/* 428E78 802A9408 8622005A */ lh $v0, 0x5a($s1)
/* 428E7C 802A940C 1040001E */ beqz $v0, .L802A9488
/* 428E80 802A9410 00000000 */ nop
/* 428E84 802A9414 82220080 */ lb $v0, 0x80($s1)
/* 428E88 802A9418 00021040 */ sll $v0, $v0, 1
/* 428E8C 802A941C 02221021 */ addu $v0, $s1, $v0
/* 428E90 802A9420 84430074 */ lh $v1, 0x74($v0)
/* 428E94 802A9424 86220044 */ lh $v0, 0x44($s1)
/* 428E98 802A9428 14600002 */ bnez $v1, .L802A9434
/* 428E9C 802A942C 0043001A */ div $zero, $v0, $v1
/* 428EA0 802A9430 0007000D */ break 7
.L802A9434:
/* 428EA4 802A9434 2401FFFF */ addiu $at, $zero, -1
/* 428EA8 802A9438 14610004 */ bne $v1, $at, .L802A944C
/* 428EAC 802A943C 3C018000 */ lui $at, 0x8000
/* 428EB0 802A9440 14410002 */ bne $v0, $at, .L802A944C
/* 428EB4 802A9444 00000000 */ nop
/* 428EB8 802A9448 0006000D */ break 6
.L802A944C:
/* 428EBC 802A944C 00001012 */ mflo $v0
/* 428EC0 802A9450 3C036666 */ lui $v1, 0x6666
/* 428EC4 802A9454 34636667 */ ori $v1, $v1, 0x6667
/* 428EC8 802A9458 00430018 */ mult $v0, $v1
/* 428ECC 802A945C 000217C3 */ sra $v0, $v0, 0x1f
/* 428ED0 802A9460 00001810 */ mfhi $v1
/* 428ED4 802A9464 000318C3 */ sra $v1, $v1, 3
/* 428ED8 802A9468 00621823 */ subu $v1, $v1, $v0
/* 428EDC 802A946C 00031880 */ sll $v1, $v1, 2
/* 428EE0 802A9470 96220044 */ lhu $v0, 0x44($s1)
/* 428EE4 802A9474 3C01802B */ lui $at, %hi(D_802A9852_4292C2)
/* 428EE8 802A9478 00230821 */ addu $at, $at, $v1
/* 428EEC 802A947C 94239852 */ lhu $v1, %lo(D_802A9852_4292C2)($at)
/* 428EF0 802A9480 080AA524 */ j .L802A9490
/* 428EF4 802A9484 00431023 */ subu $v0, $v0, $v1
.L802A9488:
/* 428EF8 802A9488 96220044 */ lhu $v0, 0x44($s1)
/* 428EFC 802A948C 2442FFF6 */ addiu $v0, $v0, -0xa
.L802A9490:
/* 428F00 802A9490 A6220044 */ sh $v0, 0x44($s1)
/* 428F04 802A9494 00021400 */ sll $v0, $v0, 0x10
/* 428F08 802A9498 04420001 */ bltzl $v0, .L802A94A0
/* 428F0C 802A949C A6200044 */ sh $zero, 0x44($s1)
.L802A94A0:
/* 428F10 802A94A0 82420083 */ lb $v0, 0x83($s2)
/* 428F14 802A94A4 10400029 */ beqz $v0, .L802A954C
/* 428F18 802A94A8 00000000 */ nop
/* 428F1C 802A94AC 8E420214 */ lw $v0, 0x214($s2)
/* 428F20 802A94B0 30428000 */ andi $v0, $v0, 0x8000
/* 428F24 802A94B4 10400025 */ beqz $v0, .L802A954C
/* 428F28 802A94B8 00000000 */ nop
/* 428F2C 802A94BC 8625005A */ lh $a1, 0x5a($s1)
/* 428F30 802A94C0 10A00019 */ beqz $a1, .L802A9528
/* 428F34 802A94C4 00000000 */ nop
/* 428F38 802A94C8 86240050 */ lh $a0, 0x50($s1)
/* 428F3C 802A94CC 8E420434 */ lw $v0, 0x434($s2)
/* 428F40 802A94D0 00042080 */ sll $a0, $a0, 2
/* 428F44 802A94D4 00822021 */ addu $a0, $a0, $v0
/* 428F48 802A94D8 00051040 */ sll $v0, $a1, 1
/* 428F4C 802A94DC 00451021 */ addu $v0, $v0, $a1
/* 428F50 802A94E0 00021900 */ sll $v1, $v0, 4
/* 428F54 802A94E4 00431021 */ addu $v0, $v0, $v1
/* 428F58 802A94E8 00021080 */ sll $v0, $v0, 2
/* 428F5C 802A94EC 00451021 */ addu $v0, $v0, $a1
/* 428F60 802A94F0 8C840000 */ lw $a0, ($a0)
/* 428F64 802A94F4 00021080 */ sll $v0, $v0, 2
/* 428F68 802A94F8 00820018 */ mult $a0, $v0
/* 428F6C 802A94FC 00002012 */ mflo $a0
/* 428F70 802A9500 3C0268DB */ lui $v0, 0x68db
/* 428F74 802A9504 34428BAD */ ori $v0, $v0, 0x8bad
/* 428F78 802A9508 00820018 */ mult $a0, $v0
/* 428F7C 802A950C 000427C3 */ sra $a0, $a0, 0x1f
/* 428F80 802A9510 96220044 */ lhu $v0, 0x44($s1)
/* 428F84 802A9514 00001810 */ mfhi $v1
/* 428F88 802A9518 00031B03 */ sra $v1, $v1, 0xc
/* 428F8C 802A951C 00641823 */ subu $v1, $v1, $a0
/* 428F90 802A9520 080AA552 */ j .L802A9548
/* 428F94 802A9524 00431021 */ addu $v0, $v0, $v1
.L802A9528:
/* 428F98 802A9528 96220044 */ lhu $v0, 0x44($s1)
/* 428F9C 802A952C 24420064 */ addiu $v0, $v0, 0x64
/* 428FA0 802A9530 A6220044 */ sh $v0, 0x44($s1)
/* 428FA4 802A9534 00021400 */ sll $v0, $v0, 0x10
/* 428FA8 802A9538 00021403 */ sra $v0, $v0, 0x10
/* 428FAC 802A953C 284201F4 */ slti $v0, $v0, 0x1f4
/* 428FB0 802A9540 14400002 */ bnez $v0, .L802A954C
/* 428FB4 802A9544 240201F4 */ addiu $v0, $zero, 0x1f4
.L802A9548:
/* 428FB8 802A9548 A6220044 */ sh $v0, 0x44($s1)
.L802A954C:
/* 428FBC 802A954C 86220044 */ lh $v0, 0x44($s1)
/* 428FC0 802A9550 28422711 */ slti $v0, $v0, 0x2711
/* 428FC4 802A9554 14400010 */ bnez $v0, .L802A9598
/* 428FC8 802A9558 3C0451EB */ lui $a0, 0x51eb
/* 428FCC 802A955C 8E30000C */ lw $s0, 0xc($s1)
/* 428FD0 802A9560 86250056 */ lh $a1, 0x56($s1)
/* 428FD4 802A9564 86260058 */ lh $a2, 0x58($s1)
/* 428FD8 802A9568 24022710 */ addiu $v0, $zero, 0x2710
/* 428FDC 802A956C A6220044 */ sh $v0, 0x44($s1)
/* 428FE0 802A9570 24020001 */ addiu $v0, $zero, 1
/* 428FE4 802A9574 A6220068 */ sh $v0, 0x68($s1)
/* 428FE8 802A9578 0200202D */ daddu $a0, $s0, $zero
/* 428FEC 802A957C 24A50032 */ addiu $a1, $a1, 0x32
/* 428FF0 802A9580 0C051261 */ jal set_icon_render_pos
/* 428FF4 802A9584 24C6001C */ addiu $a2, $a2, 0x1c
/* 428FF8 802A9588 0200202D */ daddu $a0, $s0, $zero
/* 428FFC 802A958C 0C05128B */ jal clear_icon_flags
/* 429000 802A9590 24050002 */ addiu $a1, $zero, 2
/* 429004 802A9594 3C0451EB */ lui $a0, 0x51eb
.L802A9598:
/* 429008 802A9598 96220044 */ lhu $v0, 0x44($s1)
/* 42900C 802A959C 3484851F */ ori $a0, $a0, 0x851f
/* 429010 802A95A0 00021400 */ sll $v0, $v0, 0x10
/* 429014 802A95A4 00021C03 */ sra $v1, $v0, 0x10
/* 429018 802A95A8 00640018 */ mult $v1, $a0
/* 42901C 802A95AC 000217C3 */ sra $v0, $v0, 0x1f
/* 429020 802A95B0 00004010 */ mfhi $t0
/* 429024 802A95B4 00081943 */ sra $v1, $t0, 5
/* 429028 802A95B8 00622023 */ subu $a0, $v1, $v0
/* 42902C 802A95BC 00041600 */ sll $v0, $a0, 0x18
/* 429030 802A95C0 82430084 */ lb $v1, 0x84($s2)
/* 429034 802A95C4 00021603 */ sra $v0, $v0, 0x18
/* 429038 802A95C8 0062182A */ slt $v1, $v1, $v0
/* 42903C 802A95CC 10600002 */ beqz $v1, .L802A95D8
/* 429040 802A95D0 A2440081 */ sb $a0, 0x81($s2)
/* 429044 802A95D4 A2440084 */ sb $a0, 0x84($s2)
.L802A95D8:
/* 429048 802A95D8 3C048000 */ lui $a0, 0x8000
/* 42904C 802A95DC 34840041 */ ori $a0, $a0, 0x41
/* 429050 802A95E0 0000282D */ daddu $a1, $zero, $zero
/* 429054 802A95E4 82420081 */ lb $v0, 0x81($s2)
/* 429058 802A95E8 00A0302D */ daddu $a2, $a1, $zero
/* 42905C 802A95EC 00023840 */ sll $a3, $v0, 1
/* 429060 802A95F0 00E23821 */ addu $a3, $a3, $v0
/* 429064 802A95F4 0C0526F9 */ jal func_80149BE4
/* 429068 802A95F8 00073880 */ sll $a3, $a3, 2
/* 42906C 802A95FC 86220054 */ lh $v0, 0x54($s1)
/* 429070 802A9600 96230054 */ lhu $v1, 0x54($s1)
/* 429074 802A9604 1440002F */ bnez $v0, .L802A96C4
/* 429078 802A9608 2462FFFF */ addiu $v0, $v1, -1
/* 42907C 802A960C 8622005A */ lh $v0, 0x5a($s1)
/* 429080 802A9610 50400001 */ beql $v0, $zero, .L802A9618
/* 429084 802A9614 A2400084 */ sb $zero, 0x84($s2)
.L802A9618:
/* 429088 802A9618 92420084 */ lbu $v0, 0x84($s2)
/* 42908C 802A961C 24040063 */ addiu $a0, $zero, 0x63
/* 429090 802A9620 0C00A67F */ jal rand_int
/* 429094 802A9624 A2420081 */ sb $v0, 0x81($s2)
/* 429098 802A9628 82430081 */ lb $v1, 0x81($s2)
/* 42909C 802A962C 0043102A */ slt $v0, $v0, $v1
/* 4290A0 802A9630 10400003 */ beqz $v0, .L802A9640
/* 4290A4 802A9634 24020001 */ addiu $v0, $zero, 1
/* 4290A8 802A9638 080AA593 */ j .L802A964C
/* 4290AC 802A963C A2420086 */ sb $v0, 0x86($s2)
.L802A9640:
/* 4290B0 802A9640 2402FFFE */ addiu $v0, $zero, -2
/* 4290B4 802A9644 A2420086 */ sb $v0, 0x86($s2)
/* 4290B8 802A9648 2402FFFF */ addiu $v0, $zero, -1
.L802A964C:
/* 4290BC 802A964C A2420081 */ sb $v0, 0x81($s2)
/* 4290C0 802A9650 82430081 */ lb $v1, 0x81($s2)
/* 4290C4 802A9654 24020001 */ addiu $v0, $zero, 1
/* 4290C8 802A9658 14620003 */ bne $v1, $v0, .L802A9668
/* 4290CC 802A965C 00000000 */ nop
/* 4290D0 802A9660 0C09A458 */ jal func_80269160
/* 4290D4 802A9664 00000000 */ nop
.L802A9668:
/* 4290D8 802A9668 0C093EB1 */ jal set_popup_duration
/* 4290DC 802A966C 0000202D */ daddu $a0, $zero, $zero
/* 4290E0 802A9670 3C048000 */ lui $a0, 0x8000
/* 4290E4 802A9674 0C05271B */ jal stop_sound
/* 4290E8 802A9678 34840041 */ ori $a0, $a0, 0x41
/* 4290EC 802A967C 24020014 */ addiu $v0, $zero, 0x14
/* 4290F0 802A9680 A6220054 */ sh $v0, 0x54($s1)
/* 4290F4 802A9684 2402000C */ addiu $v0, $zero, 0xc
/* 4290F8 802A9688 080AA5B5 */ j .L802A96D4
/* 4290FC 802A968C A622004C */ sh $v0, 0x4c($s1)
glabel L802A9690_429100
/* 429100 802A9690 8622005A */ lh $v0, 0x5a($s1)
/* 429104 802A9694 14400007 */ bnez $v0, .L802A96B4
/* 429108 802A9698 00000000 */ nop
/* 42910C 802A969C 96220044 */ lhu $v0, 0x44($s1)
/* 429110 802A96A0 2442FF9C */ addiu $v0, $v0, -0x64
/* 429114 802A96A4 A6220044 */ sh $v0, 0x44($s1)
/* 429118 802A96A8 00021400 */ sll $v0, $v0, 0x10
/* 42911C 802A96AC 04420001 */ bltzl $v0, .L802A96B4
/* 429120 802A96B0 A6200044 */ sh $zero, 0x44($s1)
.L802A96B4:
/* 429124 802A96B4 86220054 */ lh $v0, 0x54($s1)
/* 429128 802A96B8 96230054 */ lhu $v1, 0x54($s1)
/* 42912C 802A96BC 10400003 */ beqz $v0, .L802A96CC
/* 429130 802A96C0 2462FFFF */ addiu $v0, $v1, -1
.L802A96C4:
/* 429134 802A96C4 080AA5B5 */ j .L802A96D4
/* 429138 802A96C8 A6220054 */ sh $v0, 0x54($s1)
.L802A96CC:
/* 42913C 802A96CC 0C09A327 */ jal func_80268C9C
/* 429140 802A96D0 00000000 */ nop
.L802A96D4:
glabel L802A96D4_429144
/* 429144 802A96D4 8FBF001C */ lw $ra, 0x1c($sp)
/* 429148 802A96D8 8FB20018 */ lw $s2, 0x18($sp)
/* 42914C 802A96DC 8FB10014 */ lw $s1, 0x14($sp)
/* 429150 802A96E0 8FB00010 */ lw $s0, 0x10($sp)
/* 429154 802A96E4 03E00008 */ jr $ra
/* 429158 802A96E8 27BD0020 */ addiu $sp, $sp, 0x20