papermario/asm/nonmatchings/code_111f0_len_860/func_8003617C.s
2020-08-12 22:37:16 -04:00

179 lines
8.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8003617C
/* 01157C 8003617C 3C03800A */ lui $v1, 0x800a
/* 011580 80036180 84630944 */ lh $v1, 0x944($v1)
/* 011584 80036184 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 011588 80036188 AFBF0018 */ sw $ra, 0x18($sp)
/* 01158C 8003618C AFB10014 */ sw $s1, 0x14($sp)
/* 011590 80036190 2C620005 */ sltiu $v0, $v1, 5
/* 011594 80036194 10400094 */ beqz $v0, .L800363E8
/* 011598 80036198 AFB00010 */ sw $s0, 0x10($sp)
/* 01159C 8003619C 00031080 */ sll $v0, $v1, 2
/* 0115A0 800361A0 3C01800A */ lui $at, 0x800a
/* 0115A4 800361A4 00220821 */ addu $at, $at, $v0
/* 0115A8 800361A8 8C228320 */ lw $v0, -0x7ce0($at)
/* 0115AC 800361AC 00400008 */ jr $v0
/* 0115B0 800361B0 00000000 */ nop
/* 0115B4 800361B4 0C00E64C */ jal func_80039930
/* 0115B8 800361B8 00000000 */ nop
/* 0115BC 800361BC 0C037DD0 */ jal func_800DF740
/* 0115C0 800361C0 00000000 */ nop
/* 0115C4 800361C4 0C016754 */ jal func_80059D50
/* 0115C8 800361C8 00000000 */ nop
/* 0115CC 800361CC 0C00B500 */ jal update_cameras
/* 0115D0 800361D0 00000000 */ nop
/* 0115D4 800361D4 3C04800A */ lui $a0, 0x800a
/* 0115D8 800361D8 24840940 */ addiu $a0, $a0, 0x940
/* 0115DC 800361DC 0C04E0AB */ jal func_801382AC
/* 0115E0 800361E0 00000000 */ nop
/* 0115E4 800361E4 00021400 */ sll $v0, $v0, 0x10
/* 0115E8 800361E8 1040007F */ beqz $v0, .L800363E8
/* 0115EC 800361EC 00000000 */ nop
/* 0115F0 800361F0 3C03800A */ lui $v1, 0x800a
/* 0115F4 800361F4 24630944 */ addiu $v1, $v1, 0x944
/* 0115F8 800361F8 94620000 */ lhu $v0, ($v1)
/* 0115FC 800361FC 24420001 */ addiu $v0, $v0, 1
/* 011600 80036200 0800D8FA */ j .L800363E8
/* 011604 80036204 A4620000 */ sh $v0, ($v1)
/* 011608 80036208 3C03800A */ lui $v1, 0x800a
/* 01160C 8003620C 2463A650 */ addiu $v1, $v1, -0x59b0
/* 011610 80036210 8C620000 */ lw $v0, ($v1)
/* 011614 80036214 34420008 */ ori $v0, $v0, 8
/* 011618 80036218 0C018028 */ jal nuContRmbForceStop
/* 01161C 8003621C AC620000 */ sw $v0, ($v1)
/* 011620 80036220 3C04800A */ lui $a0, 0x800a
/* 011624 80036224 24840944 */ addiu $a0, $a0, 0x944
/* 011628 80036228 94820000 */ lhu $v0, ($a0)
/* 01162C 8003622C 24030004 */ addiu $v1, $zero, 4
/* 011630 80036230 3C01800A */ lui $at, 0x800a
/* 011634 80036234 A4230946 */ sh $v1, 0x946($at)
/* 011638 80036238 24420001 */ addiu $v0, $v0, 1
/* 01163C 8003623C 0800D8FA */ j .L800363E8
/* 011640 80036240 A4820000 */ sh $v0, ($a0)
/* 011644 80036244 3C108007 */ lui $s0, 0x8007
/* 011648 80036248 2610419C */ addiu $s0, $s0, 0x419c
/* 01164C 8003624C 8E020000 */ lw $v0, ($s0)
/* 011650 80036250 80420071 */ lb $v0, 0x71($v0)
/* 011654 80036254 10400003 */ beqz $v0, .L80036264
/* 011658 80036258 00000000 */ nop
/* 01165C 8003625C 0C00CD3C */ jal set_game_mode
/* 011660 80036260 24040011 */ addiu $a0, $zero, 0x11
.L80036264:
/* 011664 80036264 3C11800A */ lui $s1, 0x800a
/* 011668 80036268 26310946 */ addiu $s1, $s1, 0x946
/* 01166C 8003626C 86220000 */ lh $v0, ($s1)
/* 011670 80036270 96230000 */ lhu $v1, ($s1)
/* 011674 80036274 10400003 */ beqz $v0, .L80036284
/* 011678 80036278 2462FFFF */ addiu $v0, $v1, -1
/* 01167C 8003627C 0800D8FA */ j .L800363E8
/* 011680 80036280 A6220000 */ sh $v0, ($s1)
.L80036284:
/* 011684 80036284 8E020000 */ lw $v0, ($s0)
/* 011688 80036288 A0400070 */ sb $zero, 0x70($v0)
/* 01168C 8003628C 8E020000 */ lw $v0, ($s0)
/* 011690 80036290 A0400078 */ sb $zero, 0x78($v0)
/* 011694 80036294 8E020000 */ lw $v0, ($s0)
/* 011698 80036298 84440086 */ lh $a0, 0x86($v0)
/* 01169C 8003629C 8445008C */ lh $a1, 0x8c($v0)
/* 0116A0 800362A0 0C0169BD */ jal load_map_by_IDs
/* 0116A4 800362A4 0000302D */ daddu $a2, $zero, $zero
/* 0116A8 800362A8 0C009C22 */ jal func_80027088
/* 0116AC 800362AC 0000202D */ daddu $a0, $zero, $zero
/* 0116B0 800362B0 0C018030 */ jal nuContRmbForceStopEnd
/* 0116B4 800362B4 00000000 */ nop
/* 0116B8 800362B8 8E020000 */ lw $v0, ($s0)
/* 0116BC 800362BC 80420071 */ lb $v0, 0x71($v0)
/* 0116C0 800362C0 14400003 */ bnez $v0, .L800362D0
/* 0116C4 800362C4 00000000 */ nop
/* 0116C8 800362C8 0C03805E */ jal func_800E0178
/* 0116CC 800362CC 00000000 */ nop
.L800362D0:
/* 0116D0 800362D0 0C00B500 */ jal update_cameras
/* 0116D4 800362D4 00000000 */ nop
/* 0116D8 800362D8 3C02800A */ lui $v0, 0x800a
/* 0116DC 800362DC 24420944 */ addiu $v0, $v0, 0x944
/* 0116E0 800362E0 94430000 */ lhu $v1, ($v0)
/* 0116E4 800362E4 24040002 */ addiu $a0, $zero, 2
/* 0116E8 800362E8 A6240000 */ sh $a0, ($s1)
/* 0116EC 800362EC 24630001 */ addiu $v1, $v1, 1
/* 0116F0 800362F0 0800D8FA */ j .L800363E8
/* 0116F4 800362F4 A4430000 */ sh $v1, ($v0)
/* 0116F8 800362F8 0C00F949 */ jal func_8003E524
/* 0116FC 800362FC 00000000 */ nop
/* 011700 80036300 0C00E64C */ jal func_80039930
/* 011704 80036304 00000000 */ nop
/* 011708 80036308 0C037DD0 */ jal func_800DF740
/* 01170C 8003630C 00000000 */ nop
/* 011710 80036310 0C00B500 */ jal update_cameras
/* 011714 80036314 00000000 */ nop
/* 011718 80036318 3C04800A */ lui $a0, 0x800a
/* 01171C 8003631C 24840946 */ addiu $a0, $a0, 0x946
/* 011720 80036320 84820000 */ lh $v0, ($a0)
/* 011724 80036324 94830000 */ lhu $v1, ($a0)
/* 011728 80036328 10400003 */ beqz $v0, .L80036338
/* 01172C 8003632C 2462FFFF */ addiu $v0, $v1, -1
/* 011730 80036330 0800D8FA */ j .L800363E8
/* 011734 80036334 A4820000 */ sh $v0, ($a0)
.L80036338:
/* 011738 80036338 3C028007 */ lui $v0, 0x8007
/* 01173C 8003633C 8C42419C */ lw $v0, 0x419c($v0)
/* 011740 80036340 0C0B1059 */ jal does_script_exist
/* 011744 80036344 8C44006C */ lw $a0, 0x6c($v0)
/* 011748 80036348 14400027 */ bnez $v0, .L800363E8
/* 01174C 8003634C 2405FFF7 */ addiu $a1, $zero, -9
/* 011750 80036350 3C04800A */ lui $a0, 0x800a
/* 011754 80036354 2484A650 */ addiu $a0, $a0, -0x59b0
/* 011758 80036358 3C06800A */ lui $a2, 0x800a
/* 01175C 8003635C 24C60944 */ addiu $a2, $a2, 0x944
/* 011760 80036360 8C820000 */ lw $v0, ($a0)
/* 011764 80036364 94C30000 */ lhu $v1, ($a2)
/* 011768 80036368 00451024 */ and $v0, $v0, $a1
/* 01176C 8003636C 24630001 */ addiu $v1, $v1, 1
/* 011770 80036370 AC820000 */ sw $v0, ($a0)
/* 011774 80036374 0800D8FA */ j .L800363E8
/* 011778 80036378 A4C30000 */ sh $v1, ($a2)
/* 01177C 8003637C 0C00E64C */ jal func_80039930
/* 011780 80036380 00000000 */ nop
/* 011784 80036384 0C037DD0 */ jal func_800DF740
/* 011788 80036388 00000000 */ nop
/* 01178C 8003638C 0C016754 */ jal func_80059D50
/* 011790 80036390 00000000 */ nop
/* 011794 80036394 0C00B500 */ jal update_cameras
/* 011798 80036398 00000000 */ nop
/* 01179C 8003639C 3C04800A */ lui $a0, 0x800a
/* 0117A0 800363A0 24840940 */ addiu $a0, $a0, 0x940
/* 0117A4 800363A4 0C04E175 */ jal func_801385D4
/* 0117A8 800363A8 00000000 */ nop
/* 0117AC 800363AC 00021400 */ sll $v0, $v0, 0x10
/* 0117B0 800363B0 1040000D */ beqz $v0, .L800363E8
/* 0117B4 800363B4 00000000 */ nop
/* 0117B8 800363B8 3C028007 */ lui $v0, 0x8007
/* 0117BC 800363BC 8C42419C */ lw $v0, 0x419c($v0)
/* 0117C0 800363C0 80420071 */ lb $v0, 0x71($v0)
/* 0117C4 800363C4 14400003 */ bnez $v0, .L800363D4
/* 0117C8 800363C8 00000000 */ nop
/* 0117CC 800363CC 0C038069 */ jal func_800E01A4
/* 0117D0 800363D0 00000000 */ nop
.L800363D4:
/* 0117D4 800363D4 3C05BF80 */ lui $a1, 0xbf80
/* 0117D8 800363D8 0C04DF62 */ jal func_80137D88
/* 0117DC 800363DC 240400FF */ addiu $a0, $zero, 0xff
/* 0117E0 800363E0 0C00CD3C */ jal set_game_mode
/* 0117E4 800363E4 24040004 */ addiu $a0, $zero, 4
.L800363E8:
/* 0117E8 800363E8 8FBF0018 */ lw $ra, 0x18($sp)
/* 0117EC 800363EC 8FB10014 */ lw $s1, 0x14($sp)
/* 0117F0 800363F0 8FB00010 */ lw $s0, 0x10($sp)
/* 0117F4 800363F4 03E00008 */ jr $ra
/* 0117F8 800363F8 27BD0020 */ addiu $sp, $sp, 0x20