.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_800351C8 /* 105C8 800351C8 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 105CC 800351CC AFB10014 */ sw $s1, 0x14($sp) /* 105D0 800351D0 3C11800A */ lui $s1, %hi(D_800A0931) /* 105D4 800351D4 26310931 */ addiu $s1, $s1, %lo(D_800A0931) /* 105D8 800351D8 AFBF0020 */ sw $ra, 0x20($sp) /* 105DC 800351DC AFB3001C */ sw $s3, 0x1c($sp) /* 105E0 800351E0 AFB20018 */ sw $s2, 0x18($sp) /* 105E4 800351E4 AFB00010 */ sw $s0, 0x10($sp) /* 105E8 800351E8 82230000 */ lb $v1, ($s1) /* 105EC 800351EC 24120001 */ addiu $s2, $zero, 1 /* 105F0 800351F0 10720030 */ beq $v1, $s2, .L800352B4 /* 105F4 800351F4 28620002 */ slti $v0, $v1, 2 /* 105F8 800351F8 10400005 */ beqz $v0, .L80035210 /* 105FC 800351FC 24130002 */ addiu $s3, $zero, 2 /* 10600 80035200 10600009 */ beqz $v1, .L80035228 /* 10604 80035204 00000000 */ nop /* 10608 80035208 0800D534 */ j .L800354D0 /* 1060C 8003520C 00000000 */ nop .L80035210: /* 10610 80035210 10730033 */ beq $v1, $s3, .L800352E0 /* 10614 80035214 24020003 */ addiu $v0, $zero, 3 /* 10618 80035218 10620055 */ beq $v1, $v0, .L80035370 /* 1061C 8003521C 00000000 */ nop /* 10620 80035220 0800D534 */ j .L800354D0 /* 10624 80035224 00000000 */ nop .L80035228: /* 10628 80035228 0C037DD0 */ jal update_player /* 1062C 8003522C 00000000 */ nop /* 10630 80035230 0C00E64C */ jal update_npcs /* 10634 80035234 00000000 */ nop /* 10638 80035238 0C00F949 */ jal func_8003E524 /* 1063C 8003523C 00000000 */ nop /* 10640 80035240 0C016754 */ jal func_80059D50 /* 10644 80035244 00000000 */ nop /* 10648 80035248 3C10800A */ lui $s0, %hi(D_800A0932) /* 1064C 8003524C 26100932 */ addiu $s0, $s0, %lo(D_800A0932) /* 10650 80035250 86020000 */ lh $v0, ($s0) /* 10654 80035254 96030000 */ lhu $v1, ($s0) /* 10658 80035258 284200FF */ slti $v0, $v0, 0xff /* 1065C 8003525C 10400013 */ beqz $v0, .L800352AC /* 10660 80035260 24620014 */ addiu $v0, $v1, 0x14 /* 10664 80035264 A6020000 */ sh $v0, ($s0) /* 10668 80035268 00021400 */ sll $v0, $v0, 0x10 /* 1066C 8003526C 00021403 */ sra $v0, $v0, 0x10 /* 10670 80035270 28420100 */ slti $v0, $v0, 0x100 /* 10674 80035274 14400002 */ bnez $v0, .L80035280 /* 10678 80035278 240200FF */ addiu $v0, $zero, 0xff /* 1067C 8003527C A6020000 */ sh $v0, ($s0) .L80035280: /* 10680 80035280 86020000 */ lh $v0, ($s0) /* 10684 80035284 44820000 */ mtc1 $v0, $f0 /* 10688 80035288 00000000 */ nop /* 1068C 8003528C 46800020 */ cvt.s.w $f0, $f0 /* 10690 80035290 44050000 */ mfc1 $a1, $f0 /* 10694 80035294 0C04DF62 */ jal func_80137D88 /* 10698 80035298 0000202D */ daddu $a0, $zero, $zero /* 1069C 8003529C 86030000 */ lh $v1, ($s0) /* 106A0 800352A0 240200FF */ addiu $v0, $zero, 0xff /* 106A4 800352A4 1462008A */ bne $v1, $v0, .L800354D0 /* 106A8 800352A8 00000000 */ nop .L800352AC: /* 106AC 800352AC 0800D534 */ j .L800354D0 /* 106B0 800352B0 A2320000 */ sb $s2, ($s1) .L800352B4: /* 106B4 800352B4 24020005 */ addiu $v0, $zero, 5 /* 106B8 800352B8 3C04800A */ lui $a0, %hi(D_8009A650) /* 106BC 800352BC 2484A650 */ addiu $a0, $a0, %lo(D_8009A650) /* 106C0 800352C0 3C01800A */ lui $at, %hi(D_800A0930) /* 106C4 800352C4 A0220930 */ sb $v0, %lo(D_800A0930)($at) /* 106C8 800352C8 8C820000 */ lw $v0, ($a0) /* 106CC 800352CC 24030002 */ addiu $v1, $zero, 2 /* 106D0 800352D0 A2230000 */ sb $v1, ($s1) /* 106D4 800352D4 34420008 */ ori $v0, $v0, 8 /* 106D8 800352D8 0800D534 */ j .L800354D0 /* 106DC 800352DC AC820000 */ sw $v0, ($a0) .L800352E0: /* 106E0 800352E0 3C10800A */ lui $s0, %hi(D_800A0930) /* 106E4 800352E4 26100930 */ addiu $s0, $s0, %lo(D_800A0930) /* 106E8 800352E8 92020000 */ lbu $v0, ($s0) /* 106EC 800352EC 2442FFFF */ addiu $v0, $v0, -1 /* 106F0 800352F0 A2020000 */ sb $v0, ($s0) /* 106F4 800352F4 00021600 */ sll $v0, $v0, 0x18 /* 106F8 800352F8 14400075 */ bnez $v0, .L800354D0 /* 106FC 800352FC 00000000 */ nop /* 10700 80035300 3C048007 */ lui $a0, %hi(D_80077980) /* 10704 80035304 24847980 */ addiu $a0, $a0, %lo(D_80077980) /* 10708 80035308 0C017CBC */ jal nuGfxSetCfb /* 1070C 8003530C 24050002 */ addiu $a1, $zero, 2 /* 10710 80035310 3C02800A */ lui $v0, %hi(D_8009A658) /* 10714 80035314 8C42A658 */ lw $v0, %lo(D_8009A658)($v0) /* 10718 80035318 8C430008 */ lw $v1, 8($v0) /* 1071C 8003531C 3C02800A */ lui $v0, %hi(D_8009A64C) /* 10720 80035320 8C42A64C */ lw $v0, %lo(D_8009A64C)($v0) /* 10724 80035324 14620008 */ bne $v1, $v0, .L80035348 /* 10728 80035328 24040003 */ addiu $a0, $zero, 3 /* 1072C 8003532C 3C02800A */ lui $v0, %hi(D_8009A650) /* 10730 80035330 2442A650 */ addiu $v0, $v0, %lo(D_8009A650) /* 10734 80035334 8C430000 */ lw $v1, ($v0) /* 10738 80035338 2404FFF7 */ addiu $a0, $zero, -9 /* 1073C 8003533C 00641824 */ and $v1, $v1, $a0 /* 10740 80035340 0800D534 */ j .L800354D0 /* 10744 80035344 AC430000 */ sw $v1, ($v0) .L80035348: /* 10748 80035348 3C02800A */ lui $v0, %hi(D_8009A650) /* 1074C 8003534C 2442A650 */ addiu $v0, $v0, %lo(D_8009A650) /* 10750 80035350 8C430000 */ lw $v1, ($v0) /* 10754 80035354 34630008 */ ori $v1, $v1, 8 /* 10758 80035358 0C051FB1 */ jal func_80147EC4 /* 1075C 8003535C AC430000 */ sw $v1, ($v0) /* 10760 80035360 24020003 */ addiu $v0, $zero, 3 /* 10764 80035364 A2120000 */ sb $s2, ($s0) /* 10768 80035368 0800D534 */ j .L800354D0 /* 1076C 8003536C A2220000 */ sb $v0, ($s1) .L80035370: /* 10770 80035370 3C10800A */ lui $s0, %hi(D_800A0930) /* 10774 80035374 26100930 */ addiu $s0, $s0, %lo(D_800A0930) /* 10778 80035378 82020000 */ lb $v0, ($s0) /* 1077C 8003537C 92030000 */ lbu $v1, ($s0) /* 10780 80035380 04400042 */ bltz $v0, .L8003548C /* 10784 80035384 2462FFFF */ addiu $v0, $v1, -1 /* 10788 80035388 A2020000 */ sb $v0, ($s0) /* 1078C 8003538C 00021600 */ sll $v0, $v0, 0x18 /* 10790 80035390 1440003B */ bnez $v0, .L80035480 /* 10794 80035394 2402FFFF */ addiu $v0, $zero, -1 /* 10798 80035398 0C05260E */ jal func_80149838 /* 1079C 8003539C A2020000 */ sb $v0, ($s0) /* 107A0 800353A0 0C00EC6A */ jal func_8003B1A8 /* 107A4 800353A4 00000000 */ nop /* 107A8 800353A8 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* 107AC 800353AC 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* 107B0 800353B0 0C016BA8 */ jal allocate_hit_tables /* 107B4 800353B4 A0530070 */ sb $s3, 0x70($v0) /* 107B8 800353B8 0C00AB28 */ jal battle_heap_create /* 107BC 800353BC 00000000 */ nop /* 107C0 800353C0 0C05259C */ jal func_80149670 /* 107C4 800353C4 0000202D */ daddu $a0, $zero, $zero /* 107C8 800353C8 0C0B763E */ jal func_802DD8F8 /* 107CC 800353CC 0000202D */ daddu $a0, $zero, $zero /* 107D0 800353D0 0C045751 */ jal clear_model_data /* 107D4 800353D4 00000000 */ nop /* 107D8 800353D8 0C052010 */ jal func_80148040 /* 107DC 800353DC 00000000 */ nop /* 107E0 800353E0 0C05177E */ jal func_80145DF8 /* 107E4 800353E4 00000000 */ nop /* 107E8 800353E8 0C0482EC */ jal clear_virtual_models /* 107EC 800353EC 00000000 */ nop /* 107F0 800353F0 0C047889 */ jal func_8011E224 /* 107F4 800353F4 00000000 */ nop /* 107F8 800353F8 0C048C2E */ jal clear_dynamic_entity_list /* 107FC 800353FC 00000000 */ nop /* 10800 80035400 3C048020 */ lui $a0, %hi(gBackgroundImage) /* 10804 80035404 24840000 */ addiu $a0, $a0, %lo(gBackgroundImage) /* 10808 80035408 0C0514BA */ jal func_801452E8 /* 1080C 8003540C 3C050002 */ lui $a1, 2 /* 10810 80035410 0C050440 */ jal func_80141100 /* 10814 80035414 00000000 */ nop /* 10818 80035418 0C03A6EC */ jal reset_status_menu /* 1081C 8003541C 00000000 */ nop /* 10820 80035420 0C04C3FC */ jal clear_item_entity_data /* 10824 80035424 00000000 */ nop /* 10828 80035428 0C0B0C77 */ jal clear_script_list /* 1082C 8003542C 00000000 */ nop /* 10830 80035430 0C00E12F */ jal clear_npcs /* 10834 80035434 00000000 */ nop /* 10838 80035438 0C04432E */ jal clear_entity_data /* 1083C 8003543C 0000202D */ daddu $a0, $zero, $zero /* 10840 80035440 0C0515A0 */ jal clear_trigger_data /* 10844 80035444 00000000 */ nop /* 10848 80035448 3C048007 */ lui $a0, %hi(D_8007798C) /* 1084C 8003544C 0C018038 */ jal nuPiReadRomOverlay /* 10850 80035450 2484798C */ addiu $a0, $a0, %lo(D_8007798C) /* 10854 80035454 0C091238 */ jal func_802448E0 /* 10858 80035458 24040001 */ addiu $a0, $zero, 1 /* 1085C 8003545C 240400FF */ addiu $a0, $zero, 0xff /* 10860 80035460 3C06800A */ lui $a2, %hi(D_8009A650) /* 10864 80035464 24C6A650 */ addiu $a2, $a2, %lo(D_8009A650) /* 10868 80035468 2403FFF7 */ addiu $v1, $zero, -9 /* 1086C 8003546C 8CC20000 */ lw $v0, ($a2) /* 10870 80035470 3C05437F */ lui $a1, 0x437f /* 10874 80035474 00431024 */ and $v0, $v0, $v1 /* 10878 80035478 0C04DF62 */ jal func_80137D88 /* 1087C 8003547C ACC20000 */ sw $v0, ($a2) .L80035480: /* 10880 80035480 82020000 */ lb $v0, ($s0) /* 10884 80035484 04410012 */ bgez $v0, .L800354D0 /* 10888 80035488 00000000 */ nop .L8003548C: /* 1088C 8003548C 0C090C68 */ jal func_802431A0 /* 10890 80035490 00000000 */ nop /* 10894 80035494 3C03800A */ lui $v1, %hi(D_800A0932) /* 10898 80035498 24630932 */ addiu $v1, $v1, %lo(D_800A0932) /* 1089C 8003549C 94620000 */ lhu $v0, ($v1) /* 108A0 800354A0 2442FFEC */ addiu $v0, $v0, -0x14 /* 108A4 800354A4 A4620000 */ sh $v0, ($v1) /* 108A8 800354A8 00021400 */ sll $v0, $v0, 0x10 /* 108AC 800354AC 04420001 */ bltzl $v0, .L800354B4 /* 108B0 800354B0 A4600000 */ sh $zero, ($v1) .L800354B4: /* 108B4 800354B4 84620000 */ lh $v0, ($v1) /* 108B8 800354B8 44820000 */ mtc1 $v0, $f0 /* 108BC 800354BC 00000000 */ nop /* 108C0 800354C0 46800020 */ cvt.s.w $f0, $f0 /* 108C4 800354C4 44050000 */ mfc1 $a1, $f0 /* 108C8 800354C8 0C04DF62 */ jal func_80137D88 /* 108CC 800354CC 0000202D */ daddu $a0, $zero, $zero .L800354D0: /* 108D0 800354D0 8FBF0020 */ lw $ra, 0x20($sp) /* 108D4 800354D4 8FB3001C */ lw $s3, 0x1c($sp) /* 108D8 800354D8 8FB20018 */ lw $s2, 0x18($sp) /* 108DC 800354DC 8FB10014 */ lw $s1, 0x14($sp) /* 108E0 800354E0 8FB00010 */ lw $s0, 0x10($sp) /* 108E4 800354E4 03E00008 */ jr $ra /* 108E8 800354E8 27BD0028 */ addiu $sp, $sp, 0x28